dominus-sdk-nodejs 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LLM-GUIDE.md +537 -0
- package/README.md +408 -0
- package/dist/index.d.ts +114 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +129 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/client.d.ts +32 -0
- package/dist/lib/client.d.ts.map +1 -0
- package/dist/lib/client.js +374 -0
- package/dist/lib/client.js.map +1 -0
- package/dist/lib/config.d.ts +20 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +35 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/errors.d.ts +77 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +134 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/namespaces/auth.d.ts +65 -0
- package/dist/namespaces/auth.d.ts.map +1 -0
- package/dist/namespaces/auth.js +266 -0
- package/dist/namespaces/auth.js.map +1 -0
- package/dist/namespaces/courier.d.ts +67 -0
- package/dist/namespaces/courier.d.ts.map +1 -0
- package/dist/namespaces/courier.js +90 -0
- package/dist/namespaces/courier.js.map +1 -0
- package/dist/namespaces/db.d.ts +117 -0
- package/dist/namespaces/db.d.ts.map +1 -0
- package/dist/namespaces/db.js +149 -0
- package/dist/namespaces/db.js.map +1 -0
- package/dist/namespaces/ddl.d.ts +84 -0
- package/dist/namespaces/ddl.d.ts.map +1 -0
- package/dist/namespaces/ddl.js +211 -0
- package/dist/namespaces/ddl.js.map +1 -0
- package/dist/namespaces/files.d.ts +107 -0
- package/dist/namespaces/files.d.ts.map +1 -0
- package/dist/namespaces/files.js +161 -0
- package/dist/namespaces/files.js.map +1 -0
- package/dist/namespaces/health.d.ts +30 -0
- package/dist/namespaces/health.d.ts.map +1 -0
- package/dist/namespaces/health.js +66 -0
- package/dist/namespaces/health.js.map +1 -0
- package/dist/namespaces/logs.d.ts +97 -0
- package/dist/namespaces/logs.d.ts.map +1 -0
- package/dist/namespaces/logs.js +194 -0
- package/dist/namespaces/logs.js.map +1 -0
- package/dist/namespaces/open.d.ts +27 -0
- package/dist/namespaces/open.d.ts.map +1 -0
- package/dist/namespaces/open.js +46 -0
- package/dist/namespaces/open.js.map +1 -0
- package/dist/namespaces/portal.d.ts +124 -0
- package/dist/namespaces/portal.d.ts.map +1 -0
- package/dist/namespaces/portal.js +270 -0
- package/dist/namespaces/portal.js.map +1 -0
- package/dist/namespaces/redis.d.ts +144 -0
- package/dist/namespaces/redis.d.ts.map +1 -0
- package/dist/namespaces/redis.js +218 -0
- package/dist/namespaces/redis.js.map +1 -0
- package/dist/namespaces/secrets.d.ts +50 -0
- package/dist/namespaces/secrets.d.ts.map +1 -0
- package/dist/namespaces/secrets.js +93 -0
- package/dist/namespaces/secrets.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redis Namespace - Whisperer caching operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides Redis caching operations via Upstash REST API.
|
|
5
|
+
* TTL enforced: min 60 seconds, max 86400 seconds (24 hours).
|
|
6
|
+
*/
|
|
7
|
+
export class RedisNamespace {
|
|
8
|
+
client;
|
|
9
|
+
constructor(client) {
|
|
10
|
+
this.client = client;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Set a value with TTL.
|
|
14
|
+
*
|
|
15
|
+
* @param key - Key name
|
|
16
|
+
* @param value - Any JSON-serializable value
|
|
17
|
+
* @param ttl - Time-to-live in seconds (60-86400, default: 3600)
|
|
18
|
+
* @param category - Optional namespace category
|
|
19
|
+
*/
|
|
20
|
+
async set(key, value, ttl = 3600, category) {
|
|
21
|
+
const body = {
|
|
22
|
+
logical_path: key,
|
|
23
|
+
value,
|
|
24
|
+
ttl_seconds: ttl,
|
|
25
|
+
};
|
|
26
|
+
if (category)
|
|
27
|
+
body.category = category;
|
|
28
|
+
return this.client.request({
|
|
29
|
+
endpoint: '/api/whisperer/set',
|
|
30
|
+
body,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get a value, optionally refreshing TTL.
|
|
35
|
+
*
|
|
36
|
+
* @param key - Key name
|
|
37
|
+
* @param options - Get options (category, nudge, ttl)
|
|
38
|
+
*/
|
|
39
|
+
async get(key, options = {}) {
|
|
40
|
+
const { category, nudge = false, ttl } = options;
|
|
41
|
+
const body = {
|
|
42
|
+
logical_path: key,
|
|
43
|
+
nudge,
|
|
44
|
+
};
|
|
45
|
+
if (category)
|
|
46
|
+
body.category = category;
|
|
47
|
+
if (ttl && nudge)
|
|
48
|
+
body.ttl_seconds = ttl;
|
|
49
|
+
return this.client.request({
|
|
50
|
+
endpoint: '/api/whisperer/get',
|
|
51
|
+
body,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Delete a key.
|
|
56
|
+
*
|
|
57
|
+
* @param key - Key name
|
|
58
|
+
* @param category - Optional namespace category
|
|
59
|
+
*/
|
|
60
|
+
async delete(key, category) {
|
|
61
|
+
const body = { logical_path: key };
|
|
62
|
+
if (category)
|
|
63
|
+
body.category = category;
|
|
64
|
+
return this.client.request({
|
|
65
|
+
endpoint: '/api/whisperer/delete',
|
|
66
|
+
body,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* List keys by prefix with pagination.
|
|
71
|
+
*
|
|
72
|
+
* @param options - List options (prefix, category, limit, cursor)
|
|
73
|
+
*/
|
|
74
|
+
async list(options = {}) {
|
|
75
|
+
const { prefix, category, limit = 100, cursor } = options;
|
|
76
|
+
const body = { limit: Math.min(limit, 500) };
|
|
77
|
+
if (prefix)
|
|
78
|
+
body.logical_prefix = prefix;
|
|
79
|
+
if (category)
|
|
80
|
+
body.category = category;
|
|
81
|
+
if (cursor)
|
|
82
|
+
body.cursor = cursor;
|
|
83
|
+
return this.client.request({
|
|
84
|
+
endpoint: '/api/whisperer/list',
|
|
85
|
+
body,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get multiple keys at once.
|
|
90
|
+
*
|
|
91
|
+
* @param keys - List of key specs (max 100)
|
|
92
|
+
*/
|
|
93
|
+
async mget(keys) {
|
|
94
|
+
return this.client.request({
|
|
95
|
+
endpoint: '/api/whisperer/mget',
|
|
96
|
+
body: { keys: keys.slice(0, 100) },
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Set if not exists (for distributed locks).
|
|
101
|
+
*
|
|
102
|
+
* @param key - Key name
|
|
103
|
+
* @param value - Any JSON-serializable value
|
|
104
|
+
* @param ttl - Time-to-live in seconds (60-86400, default: 60)
|
|
105
|
+
* @param category - Optional namespace category
|
|
106
|
+
*/
|
|
107
|
+
async setnx(key, value, ttl = 60, category) {
|
|
108
|
+
const body = {
|
|
109
|
+
logical_path: key,
|
|
110
|
+
value,
|
|
111
|
+
ttl_seconds: ttl,
|
|
112
|
+
};
|
|
113
|
+
if (category)
|
|
114
|
+
body.category = category;
|
|
115
|
+
return this.client.request({
|
|
116
|
+
endpoint: '/api/whisperer/setnx',
|
|
117
|
+
body,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Increment counter (creates if not exists).
|
|
122
|
+
*
|
|
123
|
+
* @param key - Key name
|
|
124
|
+
* @param delta - Increment amount (default: 1)
|
|
125
|
+
* @param ttl - Time-to-live in seconds (60-86400, default: 3600)
|
|
126
|
+
* @param category - Optional namespace category
|
|
127
|
+
*/
|
|
128
|
+
async incr(key, delta = 1, ttl = 3600, category) {
|
|
129
|
+
const body = {
|
|
130
|
+
logical_path: key,
|
|
131
|
+
delta,
|
|
132
|
+
ttl_seconds: ttl,
|
|
133
|
+
};
|
|
134
|
+
if (category)
|
|
135
|
+
body.category = category;
|
|
136
|
+
return this.client.request({
|
|
137
|
+
endpoint: '/api/whisperer/incr',
|
|
138
|
+
body,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Set a hash field.
|
|
143
|
+
*
|
|
144
|
+
* @param key - Hash key name
|
|
145
|
+
* @param field - Field name
|
|
146
|
+
* @param value - Any JSON-serializable value
|
|
147
|
+
* @param ttl - Time-to-live in seconds (60-86400, default: 3600)
|
|
148
|
+
* @param category - Optional namespace category
|
|
149
|
+
*/
|
|
150
|
+
async hset(key, field, value, ttl = 3600, category) {
|
|
151
|
+
const body = {
|
|
152
|
+
logical_path: key,
|
|
153
|
+
field,
|
|
154
|
+
value,
|
|
155
|
+
ttl_seconds: ttl,
|
|
156
|
+
};
|
|
157
|
+
if (category)
|
|
158
|
+
body.category = category;
|
|
159
|
+
return this.client.request({
|
|
160
|
+
endpoint: '/api/whisperer/hset',
|
|
161
|
+
body,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get a hash field.
|
|
166
|
+
*
|
|
167
|
+
* @param key - Hash key name
|
|
168
|
+
* @param field - Field name
|
|
169
|
+
* @param category - Optional namespace category
|
|
170
|
+
*/
|
|
171
|
+
async hget(key, field, category) {
|
|
172
|
+
const body = {
|
|
173
|
+
logical_path: key,
|
|
174
|
+
field,
|
|
175
|
+
};
|
|
176
|
+
if (category)
|
|
177
|
+
body.category = category;
|
|
178
|
+
return this.client.request({
|
|
179
|
+
endpoint: '/api/whisperer/hget',
|
|
180
|
+
body,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get all fields from a hash.
|
|
185
|
+
*
|
|
186
|
+
* @param key - Hash key name
|
|
187
|
+
* @param category - Optional namespace category
|
|
188
|
+
*/
|
|
189
|
+
async hgetall(key, category) {
|
|
190
|
+
const body = { logical_path: key };
|
|
191
|
+
if (category)
|
|
192
|
+
body.category = category;
|
|
193
|
+
return this.client.request({
|
|
194
|
+
endpoint: '/api/whisperer/hgetall',
|
|
195
|
+
body,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Delete a hash field.
|
|
200
|
+
*
|
|
201
|
+
* @param key - Hash key name
|
|
202
|
+
* @param field - Field name to delete
|
|
203
|
+
* @param category - Optional namespace category
|
|
204
|
+
*/
|
|
205
|
+
async hdel(key, field, category) {
|
|
206
|
+
const body = {
|
|
207
|
+
logical_path: key,
|
|
208
|
+
field,
|
|
209
|
+
};
|
|
210
|
+
if (category)
|
|
211
|
+
body.category = category;
|
|
212
|
+
return this.client.request({
|
|
213
|
+
endpoint: '/api/whisperer/hdel',
|
|
214
|
+
body,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=redis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/namespaces/redis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuCH,MAAM,OAAO,cAAc;IACL;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;;OAOG;IACH,KAAK,CAAC,GAAG,CACP,GAAW,EACX,KAAc,EACd,GAAG,GAAG,IAAI,EACV,QAAiB;QAEjB,MAAM,IAAI,GAA4B;YACpC,YAAY,EAAE,GAAG;YACjB,KAAK;YACL,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,oBAAoB;YAC9B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CACP,GAAW,EACX,UAAgE,EAAE;QAElE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAEjD,MAAM,IAAI,GAA4B;YACpC,YAAY,EAAE,GAAG;YACjB,KAAK;SACN,CAAC;QACF,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACvC,IAAI,GAAG,IAAI,KAAK;YAAE,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QAEzC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,oBAAoB;YAC9B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACV,GAAW,EACX,QAAiB;QAEjB,MAAM,IAAI,GAA4B,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;QAC5D,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,uBAAuB;YACjC,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,UAKI,EAAE;QAEN,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE1D,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QACtE,IAAI,MAAM;YAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QACzC,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACvC,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAEjC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,qBAAqB;YAC/B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,IAAwD;QAExD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,qBAAqB;YAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,CACT,GAAW,EACX,KAAc,EACd,GAAG,GAAG,EAAE,EACR,QAAiB;QAEjB,MAAM,IAAI,GAA4B;YACpC,YAAY,EAAE,GAAG;YACjB,KAAK;YACL,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,sBAAsB;YAChC,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CACR,GAAW,EACX,KAAK,GAAG,CAAC,EACT,GAAG,GAAG,IAAI,EACV,QAAiB;QAEjB,MAAM,IAAI,GAA4B;YACpC,YAAY,EAAE,GAAG;YACjB,KAAK;YACL,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,qBAAqB;YAC/B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CACR,GAAW,EACX,KAAa,EACb,KAAc,EACd,GAAG,GAAG,IAAI,EACV,QAAiB;QAEjB,MAAM,IAAI,GAA4B;YACpC,YAAY,EAAE,GAAG;YACjB,KAAK;YACL,KAAK;YACL,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,qBAAqB;YAC/B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CACR,GAAW,EACX,KAAa,EACb,QAAiB;QAEjB,MAAM,IAAI,GAA4B;YACpC,YAAY,EAAE,GAAG;YACjB,KAAK;SACN,CAAC;QACF,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,qBAAqB;YAC/B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,QAAiB;QAC1C,MAAM,IAAI,GAA4B,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;QAC5D,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,wBAAwB;YAClC,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CACR,GAAW,EACX,KAAa,EACb,QAAiB;QAEjB,MAAM,IAAI,GAA4B;YACpC,YAAY,EAAE,GAAG;YACjB,KAAK;SACN,CAAC;QACF,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,qBAAqB;YAC/B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secrets Namespace - Warden secrets management.
|
|
3
|
+
*
|
|
4
|
+
* Provides CRUD operations for secrets stored in the Warden service.
|
|
5
|
+
*/
|
|
6
|
+
import type { DominusClient } from '../lib/client.js';
|
|
7
|
+
export interface Secret {
|
|
8
|
+
key: string;
|
|
9
|
+
value: unknown;
|
|
10
|
+
comment?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface UpsertResult {
|
|
13
|
+
operation: 'created' | 'updated';
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
export declare class SecretsNamespace {
|
|
17
|
+
private client;
|
|
18
|
+
constructor(client: DominusClient);
|
|
19
|
+
/**
|
|
20
|
+
* Get a secret value.
|
|
21
|
+
*
|
|
22
|
+
* @param key - Secret key name
|
|
23
|
+
* @returns Secret value
|
|
24
|
+
*/
|
|
25
|
+
get(key: string): Promise<unknown>;
|
|
26
|
+
/**
|
|
27
|
+
* Create or update a secret.
|
|
28
|
+
*
|
|
29
|
+
* @param key - Secret key name
|
|
30
|
+
* @param value - Secret value
|
|
31
|
+
* @param comment - Optional comment/description
|
|
32
|
+
* @returns Operation result with created/updated status
|
|
33
|
+
*/
|
|
34
|
+
upsert(key: string, value: string, comment?: string): Promise<UpsertResult>;
|
|
35
|
+
/**
|
|
36
|
+
* List secrets, optionally filtered by prefix.
|
|
37
|
+
*
|
|
38
|
+
* @param prefix - Optional key prefix filter
|
|
39
|
+
* @returns List of secret metadata (keys only, not values)
|
|
40
|
+
*/
|
|
41
|
+
list(prefix?: string): Promise<Array<Record<string, unknown>>>;
|
|
42
|
+
/**
|
|
43
|
+
* Delete a secret.
|
|
44
|
+
*
|
|
45
|
+
* @param key - Secret key to delete
|
|
46
|
+
* @returns Operation result
|
|
47
|
+
*/
|
|
48
|
+
delete(key: string): Promise<Record<string, unknown>>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/namespaces/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;OAKG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQxC;;;;;;;OAOG;IACG,MAAM,CACV,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC;IAkCxB;;;;;OAKG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAepE;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAM5D"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secrets Namespace - Warden secrets management.
|
|
3
|
+
*
|
|
4
|
+
* Provides CRUD operations for secrets stored in the Warden service.
|
|
5
|
+
*/
|
|
6
|
+
export class SecretsNamespace {
|
|
7
|
+
client;
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get a secret value.
|
|
13
|
+
*
|
|
14
|
+
* @param key - Secret key name
|
|
15
|
+
* @returns Secret value
|
|
16
|
+
*/
|
|
17
|
+
async get(key) {
|
|
18
|
+
const result = await this.client.request({
|
|
19
|
+
endpoint: '/api/warden/secrets',
|
|
20
|
+
body: { action: 'get', key },
|
|
21
|
+
});
|
|
22
|
+
return result.secret?.value;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create or update a secret.
|
|
26
|
+
*
|
|
27
|
+
* @param key - Secret key name
|
|
28
|
+
* @param value - Secret value
|
|
29
|
+
* @param comment - Optional comment/description
|
|
30
|
+
* @returns Operation result with created/updated status
|
|
31
|
+
*/
|
|
32
|
+
async upsert(key, value, comment) {
|
|
33
|
+
const body = {
|
|
34
|
+
action: 'update',
|
|
35
|
+
key,
|
|
36
|
+
value,
|
|
37
|
+
};
|
|
38
|
+
if (comment) {
|
|
39
|
+
body.comment = comment;
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const result = await this.client.request({
|
|
43
|
+
endpoint: '/api/warden/secrets',
|
|
44
|
+
body,
|
|
45
|
+
});
|
|
46
|
+
return { ...result, operation: 'updated' };
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
// If update fails (secret doesn't exist), try create
|
|
50
|
+
if (error instanceof Error &&
|
|
51
|
+
'statusCode' in error &&
|
|
52
|
+
error.statusCode === 500) {
|
|
53
|
+
body.action = 'create';
|
|
54
|
+
const result = await this.client.request({
|
|
55
|
+
endpoint: '/api/warden/secrets',
|
|
56
|
+
body,
|
|
57
|
+
});
|
|
58
|
+
return { ...result, operation: 'created' };
|
|
59
|
+
}
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* List secrets, optionally filtered by prefix.
|
|
65
|
+
*
|
|
66
|
+
* @param prefix - Optional key prefix filter
|
|
67
|
+
* @returns List of secret metadata (keys only, not values)
|
|
68
|
+
*/
|
|
69
|
+
async list(prefix) {
|
|
70
|
+
const body = { action: 'list' };
|
|
71
|
+
if (prefix) {
|
|
72
|
+
body.prefix = prefix;
|
|
73
|
+
}
|
|
74
|
+
const result = await this.client.request({
|
|
75
|
+
endpoint: '/api/warden/secrets',
|
|
76
|
+
body,
|
|
77
|
+
});
|
|
78
|
+
return result.secrets || [];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Delete a secret.
|
|
82
|
+
*
|
|
83
|
+
* @param key - Secret key to delete
|
|
84
|
+
* @returns Operation result
|
|
85
|
+
*/
|
|
86
|
+
async delete(key) {
|
|
87
|
+
return this.client.request({
|
|
88
|
+
endpoint: '/api/warden/secrets',
|
|
89
|
+
body: { action: 'delete', key },
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/namespaces/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB;YAC5D,QAAQ,EAAE,qBAAqB;YAC/B,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;SAC7B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,GAAW,EACX,KAAa,EACb,OAAgB;QAEhB,MAAM,IAAI,GAA4B;YACpC,MAAM,EAAE,QAAQ;YAChB,GAAG;YACH,KAAK;SACN,CAAC;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAe;gBACrD,QAAQ,EAAE,qBAAqB;gBAC/B,IAAI;aACL,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qDAAqD;YACrD,IACE,KAAK,YAAY,KAAK;gBACtB,YAAY,IAAI,KAAK;gBACpB,KAAgC,CAAC,UAAU,KAAK,GAAG,EACpD,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAe;oBACrD,QAAQ,EAAE,qBAAqB;oBAC/B,IAAI;iBACL,CAAC,CAAC;gBACH,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACzD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAErC;YACD,QAAQ,EAAE,qBAAqB;YAC/B,IAAI;SACL,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,qBAAqB;YAC/B,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dominus-sdk-nodejs",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Node.js SDK for the Dominus Orchestrator Platform",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=18.0.0"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"dev": "tsc --watch",
|
|
14
|
+
"clean": "rm -rf dist",
|
|
15
|
+
"prepublishOnly": "npm run build",
|
|
16
|
+
"test": "node --test",
|
|
17
|
+
"lint": "tsc --noEmit"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"dominus",
|
|
21
|
+
"carebridge",
|
|
22
|
+
"sdk",
|
|
23
|
+
"orchestrator",
|
|
24
|
+
"api"
|
|
25
|
+
],
|
|
26
|
+
"author": "CareBridge Systems",
|
|
27
|
+
"license": "PROPRIETARY",
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "https://github.com/carebridgesystems/dominus-sdk-nodejs.git"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"bcryptjs": "^2.4.3"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/bcryptjs": "^2.4.6",
|
|
37
|
+
"@types/node": "^22.0.0",
|
|
38
|
+
"typescript": "^5.6.0"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist",
|
|
42
|
+
"README.md",
|
|
43
|
+
"LLM-GUIDE.md"
|
|
44
|
+
]
|
|
45
|
+
}
|