dominus-sdk-nodejs 1.24.1 → 1.24.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dominus-sdk-nodejs",
3
- "version": "1.24.1",
3
+ "version": "1.24.3",
4
4
  "description": "Node.js SDK for the Dominus Orchestrator Platform",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/docs/services.md DELETED
@@ -1,479 +0,0 @@
1
- # Services Reference
2
-
3
- All 19 service namespaces with actual endpoints and method signatures from source code.
4
-
5
- Gateway routing: all `/api/*` paths are transformed to `/svc/*` by the client.
6
-
7
- ## 1. secrets (Warden)
8
-
9
- Encrypted secrets management. Single endpoint with action-based dispatch.
10
-
11
- | Method | Endpoint | Action |
12
- |--------|----------|--------|
13
- | `get(key)` | `POST /api/warden/secrets` | `get` |
14
- | `upsert(key, value, comment?)` | `POST /api/warden/secrets` | `update` (falls back to `create`) |
15
- | `list(prefix?)` | `POST /api/warden/secrets` | `list` |
16
- | `delete(key)` | `POST /api/warden/secrets` | `delete` |
17
-
18
- **Root shortcuts:** `dominus.get(key)`, `dominus.upsert(key, value, comment?)`
19
-
20
- ---
21
-
22
- ## 2. db (Scribe)
23
-
24
- Database CRUD via DB Worker. Includes provisioning.
25
-
26
- | Method | Endpoint | HTTP |
27
- |--------|----------|------|
28
- | `schemas()` | `/api/database/schemas` | POST |
29
- | `tables(schema?)` | `/api/database/tables` | POST |
30
- | `columns(table, schema?)` | `/api/database/columns` | POST |
31
- | `query(table, options?)` | `/api/database/select` | POST |
32
- | `insert(table, data, options?)` | `/api/database/insert` | POST |
33
- | `update(table, data, filters, options?)` | `/api/database/update` | POST |
34
- | `delete(table, filters, options?)` | `/api/database/delete` | POST |
35
- | `raw(sql, params?, options?)` | `/api/database/raw` | POST |
36
- | `bulkInsert(table, rows, options?)` | `/api/database/raw` | POST |
37
- | `syncSchema()` | `/api/provision/sync` | POST |
38
-
39
- **Root shortcuts:** `dominus.listTables()`, `dominus.queryTable()`, `dominus.insertRow()`, `dominus.updateRows()`, `dominus.deleteRows()`, `dominus.listColumns()`
40
-
41
- ### Provisioning: syncSchema()
42
-
43
- Idempotent schema provisioning using the **3-role model**:
44
-
45
- | Role | Database | Schemas |
46
- |------|----------|---------|
47
- | `neondb_owner` | both | DDL provisioning (runs syncSchema) |
48
- | `dominus_user` | `dominus` | auth, logs, meta, object, rag, agent, observability, workflow, tenant_admin |
49
- | `open_user` | `dominus_open` | tenant_*, cat_* |
50
-
51
- Creates missing schemas, tables, indexes, and seeds default data. 2-minute timeout.
52
-
53
- Source: `src/namespaces/db.ts:327`
54
-
55
- ---
56
-
57
- ## 3. secure (Scribe)
58
-
59
- Audit-logged table access. All operations require `SecureAccessContext` with `reason` and `actor`.
60
-
61
- | Method | Endpoint | HTTP |
62
- |--------|----------|------|
63
- | `tables(schema?)` | `/api/scribe/data/{schema}/tables` | GET |
64
- | `columns(table, schema?)` | `/api/scribe/data/{schema}/{table}/columns` | GET |
65
- | `query(table, context, options?)` | `/api/scribe/data/{schema}/{table}/query` | POST |
66
- | `insert(table, data, context, schema?)` | `/api/scribe/data/{schema}/{table}/insert` | POST |
67
- | `update(table, data, filters, context, schema?)` | `/api/scribe/data/{schema}/{table}/update` | POST |
68
- | `delete(table, filters, context, schema?)` | `/api/scribe/data/{schema}/{table}/delete` | POST |
69
- | `bulkInsert(table, rows, context, schema?)` | `/api/scribe/data/{schema}/{table}/bulk-insert` | POST |
70
-
71
- ---
72
-
73
- ## 4. redis (Whisperer)
74
-
75
- Redis cache via Upstash REST API. TTL enforced: 60s-86400s.
76
-
77
- | Method | Endpoint | HTTP |
78
- |--------|----------|------|
79
- | `set(key, value, ttl?, category?)` | `/api/whisperer/set` | POST |
80
- | `get(key, options?)` | `/api/whisperer/get` | POST |
81
- | `delete(key, category?)` | `/api/whisperer/delete` | POST |
82
- | `list(options?)` | `/api/whisperer/list` | POST |
83
- | `mget(keys)` | `/api/whisperer/mget` | POST |
84
- | `setnx(key, value, ttl?, category?)` | `/api/whisperer/setnx` | POST |
85
- | `incr(key, delta?, ttl?, category?)` | `/api/whisperer/incr` | POST |
86
- | `hset(key, field, value, ttl?, category?)` | `/api/whisperer/hset` | POST |
87
- | `hget(key, field, category?)` | `/api/whisperer/hget` | POST |
88
- | `hgetall(key, category?)` | `/api/whisperer/hgetall` | POST |
89
- | `hdel(key, field, category?)` | `/api/whisperer/hdel` | POST |
90
- | `type(key, category?)` | `/api/whisperer/type` | POST |
91
- | `smembers(key, category?)` | `/api/whisperer/smembers` | POST |
92
- | `lrange(key, options?)` | `/api/whisperer/lrange` | POST |
93
-
94
- ---
95
-
96
- ## 5. files (Archivist)
97
-
98
- File storage via Backblaze B2. Supports upload, download, browse, views, and folders.
99
-
100
- | Method | Endpoint | HTTP |
101
- |--------|----------|------|
102
- | `upload(data, filename, options?)` | `/api/archivist/upload` | POST |
103
- | `download(options)` | `/api/archivist/download` | POST |
104
- | `fetch(options)` | `/api/archivist/fetch` | POST |
105
- | `list(options?)` | `/api/archivist/list` | POST |
106
- | `delete(options)` | `/api/archivist/delete` | POST |
107
- | `move(fileId, options)` | `/api/archivist/move` | POST |
108
- | `updateMeta(fileId, options)` | `/api/archivist/update` | POST |
109
- | `browse(options)` | `/api/archivist/browse` | POST |
110
- | `getStorageStats()` | `/api/archivist/stats` | POST |
111
- | `listCategories()` | `/api/archivist/categories` | POST |
112
- | `listViews(options?)` | `/api/archivist/views` | POST |
113
- | `listCategoriesInView(view)` | `/api/archivist/view-categories` | POST |
114
- | `createFolder(options)` | `/api/archivist/folder` | POST |
115
- | `deleteFolder(options)` | `/api/archivist/folder` | DELETE |
116
- | `factoryReset(options?)` | `/api/admin/factory-reset-storage` | POST |
117
-
118
- ---
119
-
120
- ## 6. auth (Guardian)
121
-
122
- User, role, scope, client, tenant, page management. Full CRUD. Source: `src/namespaces/auth.ts`
123
-
124
- **Users:** `createUser`, `getUser`, `updateUser`, `deleteUser`, `listUsers`, `inviteUser`
125
- - Endpoints: `/api/guardian/users`, `/api/guardian/users/{id}`
126
-
127
- **Roles:** `createRole`, `getRole`, `updateRole`, `deleteRole`, `listRoles`
128
- - Endpoints: `/api/guardian/roles`, `/api/guardian/roles/{id}`
129
-
130
- **Scopes:** `createScope`, `getScope`, `updateScope`, `deleteScope`, `listScopes`
131
- - Endpoints: `/api/guardian/scopes`, `/api/guardian/scopes/{id}`
132
-
133
- **Clients:** `createClient`, `getClient`, `updateClient`, `deleteClient`, `listClients`
134
- - Endpoints: `/api/guardian/clients`, `/api/guardian/clients/{id}`
135
-
136
- **Tenants:** `createTenant`, `getTenant`, `updateTenant`, `deleteTenant`, `listTenants`
137
- - Endpoints: `/api/guardian/tenants`, `/api/guardian/tenants/{id}`
138
-
139
- **Tenant Categories:** `createTenantCategory`, `listTenantCategories`, `getTenantCategory`, `deleteTenantCategory`
140
- - Endpoints: `/api/guardian/tenant-categories`, `/api/guardian/tenant-categories/{id}`
141
-
142
- **Pages:** `createPage`, `getPage`, `updatePage`, `deletePage`, `listPages`
143
- - Endpoints: `/api/guardian/pages`, `/api/guardian/pages/{id}`
144
-
145
- **Navigation:** `createNavItem`, `updateNavItem`, `deleteNavItem`, `listNavItems`, `reorderNavItems`
146
- - Endpoints: `/api/guardian/navigation`, `/api/guardian/navigation/{id}`, `/api/guardian/navigation/reorder`
147
-
148
- **Secure Tables:** `createSecureTable`, `listSecureTables`, `getSecureTable`, `deleteSecureTable`
149
- - Endpoints: `/api/guardian/secure-tables`, `/api/guardian/secure-tables/{id}`
150
-
151
- **Role/Scope Assignments:** `assignRoleToUser`, `removeRoleFromUser`, `assignScopeToRole`, `removeScopeFromRole`
152
- - Endpoints: `/api/guardian/users/{id}/roles/{roleId}`, `/api/guardian/roles/{id}/scopes/{scopeId}`
153
-
154
- ---
155
-
156
- ## 7. portal (Portal)
157
-
158
- User-facing authentication, sessions, profile, navigation, registration.
159
-
160
- | Method | Endpoint | HTTP |
161
- |--------|----------|------|
162
- | `login(username, password, tenantId?)` | `/api/portal/auth/login` | POST |
163
- | `loginClient(psk, tenantId?)` | `/api/portal/auth/login-client` | POST |
164
- | `logout(userToken?)` | `/api/portal/auth/logout` | POST |
165
- | `refresh(userToken?)` | `/api/portal/auth/refresh` | POST |
166
- | `me(userToken?)` | `/api/portal/auth/me` | GET |
167
- | `switchTenant(tenantId, userToken?)` | `/api/portal/auth/switch-tenant` | POST |
168
- | `changePassword(current, new, userToken?)` | `/api/portal/security/change-password` | POST |
169
- | `requestPasswordReset(email)` | `/api/portal/security/request-reset` | POST |
170
- | `confirmPasswordReset(token, newPassword)` | `/api/portal/security/confirm-reset` | POST |
171
- | `listSessions(userToken?)` | `/api/portal/security/sessions` | GET |
172
- | `revokeSession(sessionId, userToken?)` | `/api/portal/security/sessions/{id}` | DELETE |
173
- | `revokeAllSessions(userToken?)` | `/api/portal/security/sessions/revoke-all` | POST |
174
- | `getProfile(userToken?)` | `/api/portal/profile` | GET |
175
- | `updateProfile(params, userToken?)` | `/api/portal/profile` | PUT |
176
- | `getPreferences(userToken?)` | `/api/portal/profile/preferences` | GET |
177
- | `updatePreferences(params, userToken?)` | `/api/portal/profile/preferences` | PUT |
178
- | `getNavigation(userToken?, options?)` | `/api/portal/nav` | GET |
179
- | `checkPageAccess(pagePath, userToken?)` | `/api/portal/nav/check-access` | POST |
180
- | `register(username, email, password, tenantId)` | `/api/portal/register` | POST |
181
- | `verifyEmail(token)` | `/api/portal/register/verify` | POST |
182
- | `resendVerification(email)` | `/api/portal/register/resend-verification` | POST |
183
- | `acceptInvitation(token, password)` | `/api/portal/register/accept-invitation` | POST |
184
-
185
- ---
186
-
187
- ## 8. ddl (Smith)
188
-
189
- Schema DDL, migrations, provisioning, and Schema Builder.
190
-
191
- ### Direct DDL
192
- | Method | Endpoint | HTTP |
193
- |--------|----------|------|
194
- | `createTable(name, columns, schema?)` | `/api/smith/schema/create-table` | POST |
195
- | `dropTable(name, schema?)` | `/api/smith/schema/drop-table` | POST |
196
- | `addColumn(table, column, schema?)` | `/api/smith/schema/add-column` | POST |
197
- | `dropColumn(table, column, schema?)` | `/api/smith/schema/drop-column` | POST |
198
- | `alterColumn(table, column, changes, schema?)` | `/api/smith/schema/alter-column` | POST |
199
- | `createIndex(table, name, columns, options?)` | `/api/smith/schema/create-index` | POST |
200
- | `dropIndex(name, schema?)` | `/api/smith/schema/drop-index` | POST |
201
-
202
- ### Category DDL (atomic multi-schema)
203
- | Method | Endpoint |
204
- |--------|----------|
205
- | `categoryCreateTable(slug, name, columns)` | `/api/smith/category/create-table` |
206
- | `categoryAddColumn(slug, name, column)` | `/api/smith/category/add-column` |
207
-
208
- ### Migrations
209
- | Method | Endpoint | HTTP |
210
- |--------|----------|------|
211
- | `listMigrations(schema)` | `/api/smith/migrations/list/{schema}` | GET |
212
- | `listCategoryMigrations(slug)` | `/api/smith/migrations/category/{slug}/list` | GET |
213
- | `applyMigration(schema, id)` | `/api/smith/migrations/apply` | POST |
214
- | `rollbackMigration(schema, id)` | `/api/smith/migrations/rollback` | POST |
215
-
216
- ### Provisioning
217
- | Method | Endpoint |
218
- |--------|----------|
219
- | `provisionTenantSchema(slug, categorySlug?)` | `/api/smith/provision/tenant-schema` |
220
- | `provisionTenantFromCategory(slug, categorySlug)` | `/api/smith/provision/tenant-from-category` |
221
-
222
- ### Schema Builder
223
- | Method | Endpoint | HTTP |
224
- |--------|----------|------|
225
- | `getCategoryStructure(slug)` | `/api/database/builder/category/{slug}/structure` | GET |
226
- | `getCategoryMigrationHistory(slug)` | `/api/database/builder/category/{slug}/migrations` | GET |
227
- | `previewMigration(slug, op, params, name)` | `/api/database/builder/category/{slug}/preview-migration` | POST |
228
- | `applyBuilderMigration(slug, op, params, name)` | `/api/database/builder/category/{slug}/apply-migration` | POST |
229
- | `getMigrationFile(slug, versionId)` | `/api/database/builder/category/{slug}/migrations/{id}` | GET |
230
- | `getTenantSyncStatus(slug)` | `/api/database/builder/category/{slug}/sync-status` | GET |
231
- | `syncTenantsToLatest(slug)` | `/api/database/builder/category/{slug}/sync-tenants` | POST |
232
- | `resetCategorySchema(slug)` | `/api/database/builder/category/{slug}/reset` | DELETE |
233
- | `resetTenantSchema(slug, tenant)` | `/api/database/builder/category/{slug}/tenants/{t}/reset` | DELETE |
234
- | `deleteMigration(slug, versionId)` | `/api/database/builder/category/{slug}/migrations/{id}` | DELETE |
235
-
236
- **Root shortcuts:** `dominus.addTable()`, `dominus.deleteTable()`, `dominus.addColumn()`, `dominus.deleteColumn()`
237
-
238
- ---
239
-
240
- ## 9. open (Scribe Open)
241
-
242
- Direct database access for advanced use cases.
243
-
244
- | Method | Endpoint | HTTP |
245
- |--------|----------|------|
246
- | `dsn()` | `/api/scribe/open/dsn` | GET |
247
- | `execute(sql, params?)` | `/api/scribe/open/execute` | POST |
248
-
249
- ---
250
-
251
- ## 10. logs (Herald)
252
-
253
- Structured logging via Logs Worker. `useGateway: true`.
254
-
255
- | Method | Endpoint | HTTP |
256
- |--------|----------|------|
257
- | `debug(msg, context?, category?)` | `/api/logs/ingest` | POST |
258
- | `info(msg, context?, category?)` | `/api/logs/ingest` | POST |
259
- | `notice(msg, context?, category?)` | `/api/logs/ingest` | POST |
260
- | `warn(msg, context?, category?)` | `/api/logs/ingest` | POST |
261
- | `error(msg, context?, options?)` | `/api/logs/ingest` | POST |
262
- | `critical(msg, context?, options?)` | `/api/logs/ingest` | POST |
263
- | `tail(options?)` | `/api/logs/tail` | GET |
264
- | `query(options?)` | `/api/logs/tail` | GET |
265
- | `batch(events)` | `/api/logs/ingest` | POST |
266
-
267
- All log methods auto-capture callsite (file, function) from the stack. Batch max: 100 events.
268
-
269
- ---
270
-
271
- ## 11. health
272
-
273
- Service health checks. No authentication required for `check()`.
274
-
275
- | Method | Endpoint | HTTP |
276
- |--------|----------|------|
277
- | `check()` | `/api/health` | GET (direct fetch, no base64) |
278
- | `ping()` | `/api/health/ping` | GET |
279
- | `warmup()` | `/api/health/warmup` | GET |
280
-
281
- ---
282
-
283
- ## 12. courier (Courier)
284
-
285
- Email delivery via Postmark templates.
286
-
287
- | Method | Endpoint | HTTP |
288
- |--------|----------|------|
289
- | `send(templateAlias, to, from, model, options?)` | `/api/courier/send` | POST |
290
- | `sendWelcome(to, from, params)` | `/api/courier/send` | POST |
291
- | `sendPasswordReset(to, from, params)` | `/api/courier/send` | POST |
292
- | `sendEmailVerification(to, from, params)` | `/api/courier/send` | POST |
293
- | `sendInvitation(to, from, params)` | `/api/courier/send` | POST |
294
-
295
- ---
296
-
297
- ## 13. ai (Agent Runtime)
298
-
299
- LLM agent execution, completions, RAG, artifacts, speech, workflows. `useGateway: true`.
300
-
301
- **Agent execution:** `runAgent(params)`, `streamAgent(params)`, `runAgentAsync(params)`
302
- **LLM completions:** `complete(params)`, `completeStream(params)`
303
- **Speech:** `stt(audio, options?)`, `tts(text, options?)`
304
- **Setup:** `setup(options?)`
305
-
306
- **Sub-namespaces:**
307
- - `ai.rag.*` -- RAG corpus management (ensure, upsert, search, list, ingest, getStats)
308
- - `ai.artifacts.*` -- Artifact CRUD (create, fetch, list, delete)
309
- - `ai.results.*` -- Async task polling (poll)
310
- - `ai.workflow.*` -- Workflow execution (execute, cancel, list)
311
- - `ai.tools.*` -- Tool registry (list, enable, disable)
312
-
313
- ---
314
-
315
- ## 14. workflow (Workflow Manager)
316
-
317
- Workflow CRUD, categories/pipelines, templates, tools, execution. `useGateway: true`.
318
-
319
- ### Workflows
320
- | Method | Endpoint | HTTP |
321
- |--------|----------|------|
322
- | `save(options)` | `/api/workflow/workflows` | POST |
323
- | `get(id, options?)` | `/api/workflow/workflows/{id}` | GET |
324
- | `list(options?)` | `/api/workflow/workflows` | GET |
325
- | `delete(id)` | `/api/workflow/workflows/{id}` | DELETE |
326
-
327
- ### Categories
328
- | Method | Endpoint | HTTP |
329
- |--------|----------|------|
330
- | `createCategory(options)` | `/api/workflow/categories` | POST |
331
- | `getCategory(id, options?)` | `/api/workflow/categories/{id}` | GET |
332
- | `listCategories(options?)` | `/api/workflow/categories` | GET |
333
- | `deleteCategory(id)` | `/api/workflow/categories/{id}` | DELETE |
334
- | `addToCategory(catId, wfId, pos?)` | `/api/workflow/categories/{id}/workflows` | POST |
335
- | `removeFromCategory(catId, wfId)` | `/api/workflow/categories/{id}/workflows/{wfId}` | DELETE |
336
- | `reorderCategory(catId, order)` | `/api/workflow/categories/{id}/workflows/order` | PUT |
337
-
338
- ### Templates
339
- | Method | Endpoint | HTTP |
340
- |--------|----------|------|
341
- | `listTemplates()` | `/api/workflow/templates` | GET |
342
- | `getTemplate(id, options?)` | `/api/workflow/templates/{id}` | GET |
343
- | `copyTemplate(id, options?)` | `/api/workflow/templates/{id}/copy` | POST |
344
-
345
- ### Execution
346
- | Method | Endpoint | HTTP |
347
- |--------|----------|------|
348
- | `execute(wfId, context?)` | `/api/workflow/execute/workflow` | POST |
349
- | `executeAsync(wfId, options?)` | `/api/workflow/execute/workflow` | POST |
350
- | `executeCategory(catId, options?)` | `/api/workflow/execute/category` | POST |
351
-
352
- ### Tools
353
- | Method | Endpoint | HTTP |
354
- |--------|----------|------|
355
- | `listTools(options?)` | `/api/workflow/tools` | GET |
356
- | `getTool(id)` | `/api/workflow/tools/{id}` | GET |
357
- | `registerTool(options)` | `/api/workflow/tools` | POST |
358
- | `updateTool(id, options)` | `/api/workflow/tools/{id}` | PUT |
359
- | `deleteTool(id)` | `/api/workflow/tools/{id}` | DELETE |
360
- | `enableTool(id)` | `/api/workflow/tools/{id}/enable` | POST |
361
- | `disableTool(id)` | `/api/workflow/tools/{id}/disable` | POST |
362
-
363
- ### Admin
364
- | Method | Endpoint | HTTP |
365
- |--------|----------|------|
366
- | `seed(options?)` | `/api/workflow/admin/seed` | POST |
367
- | `factoryReset(options)` | `/api/workflow/admin/factory-reset` | POST |
368
-
369
- ---
370
-
371
- ## 15. stt / oracle (Oracle)
372
-
373
- Streaming speech-to-text with WebSocket and VAD. Browser-side only.
374
-
375
- ```typescript
376
- const session = dominus.stt.createSession(userJwt);
377
- session.onUtterance = (text) => handleText(text);
378
- session.onVADStateChange = (state) => updateUI(state);
379
- await session.start();
380
- // ... user speaks ...
381
- await session.stop();
382
- ```
383
-
384
- VAD states: `IDLE` -> `ARMED` -> `SPEAKING` -> `TRAILING`
385
-
386
- ---
387
-
388
- ## 16. admin
389
-
390
- Infrastructure operations with elevated privileges. Uses `neondb_owner` credentials.
391
-
392
- | Method | Endpoint | HTTP | Notes |
393
- |--------|----------|------|-------|
394
- | `reseedAdminCategory()` | `/api/admin/reseed-admin-category` | POST | Idempotent, seeds baseline data |
395
- | `resetAdminCategory()` | `/api/admin/reset-admin-category` | DELETE | DESTRUCTIVE: drops tenant_admin |
396
- | `exportTokens()` | `/api/admin/tokens/export` | GET | `useGateway: true` |
397
- | `seedKV()` | `/api/admin/kv/seed` | POST | `useGateway: true` |
398
-
399
- ---
400
-
401
- ## 17. sync (Sync Worker)
402
-
403
- KV cache synchronization. `useGateway: true`. Requires admin system level.
404
-
405
- | Method | Endpoint | HTTP |
406
- |--------|----------|------|
407
- | `triggerSync()` | `/api/sync/` | POST |
408
- | `getHealth()` | `/api/sync/health` | GET |
409
-
410
- ---
411
-
412
- ## 18. artifacts (Artifact Worker)
413
-
414
- Temporary artifact storage (Redis < 1MB, B2 >= 1MB). `useGateway: true`.
415
-
416
- | Method | Endpoint | HTTP |
417
- |--------|----------|------|
418
- | `list(options?)` | `/api/artifact/list` | POST |
419
- | `getHealth()` | `/api/artifact/health` | GET |
420
- | `store(options)` | `/api/artifact/store` | POST |
421
- | `retrieve(key)` | `/api/artifact/retrieve` | POST |
422
- | `delete(key)` | `/api/artifact/delete` | POST |
423
- | `cleanup(options?)` | `/api/artifact/cleanup` | POST |
424
-
425
- ---
426
-
427
- ## 19. jobs (Job Worker) + processor (Job Processor)
428
-
429
- ### jobs -- `useGateway: true`
430
- | Method | Endpoint | HTTP |
431
- |--------|----------|------|
432
- | `enqueue(jobType, payload)` | `/api/job/enqueue` | POST |
433
- | `getStatus(jobId)` | `/api/job/status` | POST |
434
- | `getResult(jobId, timeoutMs?)` | `/api/job/result` | POST |
435
- | `listDeadLetterJobs(jobType?)` | `/api/job/dead-letter` | POST |
436
- | `retryJob(jobId)` | `/api/job/dead-letter` | POST |
437
- | `discardJob(jobId)` | `/api/job/dead-letter` | POST |
438
- | `list(options?)` | `/api/job/list` | POST |
439
- | `getHealth()` | `/api/job/health` | GET |
440
-
441
- Job types: `db_query`, `db_ddl`, `db_migration`, `file_upload`, `workflow_exec`
442
-
443
- ### processor -- `useGateway: true`
444
- | Method | Endpoint | HTTP |
445
- |--------|----------|------|
446
- | `getHealth()` | `/api/processor/health` | GET |
447
- | `processAll(jobType?)` | `/api/processor/process` | POST |
448
- | `processOne(jobType?)` | `/api/processor/process-one` | POST |
449
-
450
- ---
451
-
452
- ## Summary
453
-
454
- | # | Namespace | Backend Service | Endpoint Prefix | Gateway |
455
- |---|-----------|----------------|-----------------|---------|
456
- | 1 | secrets | Warden | `/api/warden/` | default |
457
- | 2 | db | Scribe (DB Worker) | `/api/database/`, `/api/provision/` | default |
458
- | 3 | secure | Scribe | `/api/scribe/data/` | default |
459
- | 4 | redis | Whisperer | `/api/whisperer/` | default |
460
- | 5 | files | Archivist (B2 Worker) | `/api/archivist/` | default |
461
- | 6 | auth | Guardian | `/api/guardian/` | default |
462
- | 7 | portal | Portal | `/api/portal/` | default |
463
- | 8 | ddl | Smith | `/api/smith/`, `/api/database/builder/` | default |
464
- | 9 | open | Scribe Open | `/api/scribe/open/` | default |
465
- | 10 | logs | Herald (Logs Worker) | `/api/logs/` | explicit |
466
- | 11 | health | Gateway | `/api/health/` | default |
467
- | 12 | courier | Courier | `/api/courier/` | default |
468
- | 13 | ai | Agent Runtime | `/api/agent/` | explicit |
469
- | 14 | workflow | Workflow Manager | `/api/workflow/` | explicit |
470
- | 15 | stt | Oracle | WebSocket | n/a |
471
- | 16 | admin | Admin | `/api/admin/` | mixed |
472
- | 17 | sync | Sync Worker | `/api/sync/` | explicit |
473
- | 18 | artifacts | Artifact Worker | `/api/artifact/` | explicit |
474
- | 19 | jobs+processor | Job Worker + Processor | `/api/job/`, `/api/processor/` | explicit |
475
-
476
- **"explicit"** = passes `useGateway: true` in request options.
477
- **"default"** = uses `BASE_URL` (which defaults to gateway).
478
-
479
- Total: **19 namespaces**, **200+ methods** covering data, auth, AI, infrastructure, and admin operations.