@weave-kit/engine 2.0.0 → 2.1.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.
Files changed (83) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +3 -3
  3. package/dist/adapters/events/index.js +2 -2
  4. package/dist/adapters/events/index.js.map +1 -1
  5. package/dist/adapters/mcp/http.d.ts +7 -0
  6. package/dist/adapters/mcp/http.d.ts.map +1 -1
  7. package/dist/adapters/mcp/http.js +56 -20
  8. package/dist/adapters/mcp/http.js.map +1 -1
  9. package/dist/adapters/mcp/index.d.ts +6 -0
  10. package/dist/adapters/mcp/index.d.ts.map +1 -1
  11. package/dist/adapters/mcp/index.js +1 -0
  12. package/dist/adapters/mcp/index.js.map +1 -1
  13. package/dist/adapters/rest/audit.js +2 -2
  14. package/dist/adapters/rest/audit.js.map +1 -1
  15. package/dist/cli/commands/deploy.js +1 -1
  16. package/dist/cli/commands/deploy.js.map +1 -1
  17. package/dist/core/i18n/ar.js +1 -1
  18. package/dist/core/i18n/ar.js.map +1 -1
  19. package/dist/core/i18n/de.js +1 -1
  20. package/dist/core/i18n/de.js.map +1 -1
  21. package/dist/core/i18n/es.js +1 -1
  22. package/dist/core/i18n/es.js.map +1 -1
  23. package/dist/core/i18n/fr.js +1 -1
  24. package/dist/core/i18n/fr.js.map +1 -1
  25. package/dist/core/i18n/hi.js +1 -1
  26. package/dist/core/i18n/hi.js.map +1 -1
  27. package/dist/core/i18n/id.js +1 -1
  28. package/dist/core/i18n/ja.js +1 -1
  29. package/dist/core/i18n/ko.js +1 -1
  30. package/dist/core/i18n/ko.js.map +1 -1
  31. package/dist/core/i18n/pt.js +1 -1
  32. package/dist/core/i18n/pt.js.map +1 -1
  33. package/dist/core/i18n/ru.js +1 -1
  34. package/dist/core/i18n/ru.js.map +1 -1
  35. package/dist/core/i18n/vi.js +1 -1
  36. package/dist/core/i18n/vi.js.map +1 -1
  37. package/dist/core/i18n/zh-hant.js +1 -1
  38. package/dist/core/i18n/zh.js +1 -1
  39. package/dist/core/i18n/zh.js.map +1 -1
  40. package/dist/core/limiter/index.d.ts +1 -1
  41. package/dist/core/limiter/index.d.ts.map +1 -1
  42. package/dist/core/limiter/index.js +1 -1
  43. package/dist/core/limiter/index.js.map +1 -1
  44. package/dist/core/limiter/quota.d.ts +1 -3
  45. package/dist/core/limiter/quota.d.ts.map +1 -1
  46. package/dist/core/limiter/quota.js +1 -3
  47. package/dist/core/limiter/quota.js.map +1 -1
  48. package/dist/core/rbac/rls.d.ts +1 -1
  49. package/dist/core/rbac/rls.js +1 -1
  50. package/dist/core/rbac/rowScope.d.ts.map +1 -1
  51. package/dist/core/rbac/rowScope.js +2 -3
  52. package/dist/core/rbac/rowScope.js.map +1 -1
  53. package/dist/runtime/config-types.d.ts +434 -0
  54. package/dist/runtime/config-types.d.ts.map +1 -0
  55. package/dist/runtime/config-types.js +2 -0
  56. package/dist/runtime/config-types.js.map +1 -0
  57. package/dist/runtime/data-access/query-helpers.d.ts +74 -0
  58. package/dist/runtime/data-access/query-helpers.d.ts.map +1 -0
  59. package/dist/runtime/data-access/query-helpers.js +238 -0
  60. package/dist/runtime/data-access/query-helpers.js.map +1 -0
  61. package/dist/runtime/data-access/query.d.ts.map +1 -1
  62. package/dist/runtime/data-access/query.js +4 -232
  63. package/dist/runtime/data-access/query.js.map +1 -1
  64. package/dist/runtime/engine.d.ts +4 -452
  65. package/dist/runtime/engine.d.ts.map +1 -1
  66. package/dist/runtime/engine.js +22 -195
  67. package/dist/runtime/engine.js.map +1 -1
  68. package/dist/runtime/guards.d.ts +31 -0
  69. package/dist/runtime/guards.d.ts.map +1 -0
  70. package/dist/runtime/guards.js +70 -0
  71. package/dist/runtime/guards.js.map +1 -0
  72. package/dist/runtime/register-http-routes.d.ts +40 -0
  73. package/dist/runtime/register-http-routes.d.ts.map +1 -0
  74. package/dist/runtime/register-http-routes.js +138 -0
  75. package/dist/runtime/register-http-routes.js.map +1 -0
  76. package/dist/subsystems/audit/store.js +3 -3
  77. package/dist/subsystems/audit/store.js.map +1 -1
  78. package/dist/subsystems/script/bridge.d.ts.map +1 -1
  79. package/dist/subsystems/script/bridge.js +1 -2
  80. package/dist/subsystems/script/bridge.js.map +1 -1
  81. package/dist/version.d.ts +1 -1
  82. package/dist/version.js +1 -1
  83. package/package.json +1 -1
@@ -1,87 +1,23 @@
1
1
  import Fastify from 'fastify';
2
- import cors from '@fastify/cors';
3
2
  import { join } from 'node:path';
4
3
  import { createHash } from 'node:crypto';
5
- import { DEFAULT_LOCALE, NOOP_AUDIT_SINK, NOOP_METRICS_SINK, NOOP_TRACE_SINK, METRIC_NAMES, ObjectRegistry, SchemaError, SUPPORTED_LOCALES, AUDIT_MODES, createPool, createSchemaScope, createSlidingWindow, parseTraceparent, inspectSchema, isSafeRlsRole, planObjectRls, searchPathOptions, OBJECT_RLS_ROLE_DEFAULT, } from '../core/index.js';
4
+ import { NOOP_AUDIT_SINK, NOOP_METRICS_SINK, NOOP_TRACE_SINK, METRIC_NAMES, ObjectRegistry, SchemaError, AUDIT_MODES, createPool, createSchemaScope, parseTraceparent, searchPathOptions, } from '../core/index.js';
6
5
  import { createDataAccess, withRbac } from './data-access/index.js';
7
6
  import { createToolExecutor, loadToolsDir } from './tools/index.js';
8
7
  import { createApprovals } from './tools/index.js';
9
8
  import { resolvePolicies } from './tools/policies.js';
10
- import { buildAuthenticator, createDirectoryAuthenticator, createOidcVerifier, enforceSyncedIdentity, withDefaultScope, wwwAuthenticateChallenge } from '../adapters/auth/index.js';
11
- import { PgIdentityDirectory, PgIdentityStore, IdentityAdmin, resolveIdentitySource, runIdentitySync } from './identity/index.js';
12
- import { registerAuditRoutes, registerApprovalsRoutes, registerCapabilitiesRoutes, registerMetadataRoutes, registerObjectRoutes, registerPermissionsRoutes, registerProxyRoutes, registerIngressRoutes, registerSchemaRoutes, registerGuardrailsRoutes, registerIdentitiesRoutes, registerIdentitySyncRoutes, registerWorkflowRoutes, registerWorkflowSourceRoutes, setErrorHandlers, } from '../adapters/rest/index.js';
13
- import { registerScriptRoutes } from '../adapters/rest/scripts.js';
14
- import { registerIdentityAdminRoutes } from '../adapters/rest/identityAdmin.js';
9
+ import { buildAuthenticator, createDirectoryAuthenticator, createOidcVerifier, enforceSyncedIdentity, withDefaultScope } from '../adapters/auth/index.js';
10
+ import { PgIdentityDirectory, PgIdentityStore, resolveIdentitySource, runIdentitySync } from './identity/index.js';
15
11
  import { registerEventsRoutes } from '../adapters/events/index.js';
16
12
  import { registerOpsRoutes } from '../adapters/ops/index.js';
13
+ import { registerHttpRoutes } from './register-http-routes.js';
17
14
  import { registerMcp } from '../adapters/mcp/index.js';
18
15
  import { registerGraphQL } from '../adapters/graphql/index.js';
19
16
  import { createAlerts } from '../infrastructure/index.js';
20
17
  import { resolveQueryBudget } from './data-access/index.js';
21
18
  import { version } from '../version.js';
22
- export function resolveLocale(configLocale) {
23
- const resolved = configLocale ?? process.env.WEAVEKIT_LOCALE ?? DEFAULT_LOCALE;
24
- const supported = new Set(SUPPORTED_LOCALES);
25
- return supported.has(resolved) ? resolved : DEFAULT_LOCALE;
26
- }
27
- /**
28
- * Whether the runtime database account must be least-privileged (no schema
29
- * `CREATE`). Resolution: explicit `config.runtime.requireRestrictedAccount` →
30
- * env `WEAVEKIT_REQUIRE_RESTRICTED_ACCOUNT` → default `true`.
31
- */
32
- export function resolveRequireRestrictedAccount(config) {
33
- const configured = config.runtime?.requireRestrictedAccount;
34
- if (configured !== undefined)
35
- return configured;
36
- const env = process.env.WEAVEKIT_REQUIRE_RESTRICTED_ACCOUNT;
37
- if (env !== undefined)
38
- return env !== 'false' && env !== '0';
39
- return true;
40
- }
41
- /** the object-path RLS role when `rls.enforce` is on, else undefined */
42
- export function resolveObjectRlsRole(config) {
43
- return config.rls?.enforce === true ? (config.rls.role ?? OBJECT_RLS_ROLE_DEFAULT) : undefined;
44
- }
45
- /**
46
- * Fail-closed guard for `rls.enforce`: the role must exist and be grantable to
47
- * the runtime account, and every object table must carry the current policies
48
- * and privileges (i.e. `weave migrate` ran with enforcement on).
49
- */
50
- export async function assertObjectRlsProvisioned(pool, registry, role, locale, scope) {
51
- if (!isSafeRlsRole(role))
52
- throw new SchemaError('engine.rls.notProvisioned', { detail: `invalid role "${role}"` }, locale);
53
- const { rows } = await pool.query(`SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = $1) AS present,
54
- CASE WHEN EXISTS (SELECT 1 FROM pg_roles WHERE rolname = $1)
55
- THEN pg_has_role(current_user, $1, 'MEMBER') ELSE false END AS member`, [role]);
56
- if (rows[0]?.member !== true) {
57
- const detail = rows[0]?.present === true ? `role "${role}" is not granted to the runtime account` : `role "${role}" is missing`;
58
- throw new SchemaError('engine.rls.notProvisioned', { detail }, locale);
59
- }
60
- const objectActual = await inspectSchema(pool);
61
- const actual = scope?.systemSchema === undefined
62
- ? objectActual
63
- : new Map([...objectActual, ...(await inspectSchema(pool, { schema: scope.systemSchema }))]);
64
- const plan = planObjectRls(registry, actual, role, { scope });
65
- if (plan.statements.length > 0) {
66
- const tables = [...new Set(plan.statements.map((s) => /"([^"]+)"/.exec(s)?.[1]).filter((t) => t !== undefined))];
67
- throw new SchemaError('engine.rls.notProvisioned', { detail: `missing policies/privileges on ${tables.join(', ')}` }, locale);
68
- }
69
- }
70
- /**
71
- * Fail-closed guard: refuse to start when the runtime account can create
72
- * objects in the current schema. WeaveKit runs DDL only via `weave migrate`
73
- * (with `migrationDatabaseUrl`); a runtime account with `CREATE` defeats the
74
- * least-privilege model.
75
- */
76
- export async function assertRestrictedRuntimeAccount(pool, config, locale) {
77
- if (!resolveRequireRestrictedAccount(config))
78
- return;
79
- const { rows } = await pool.query(`SELECT current_user AS user, has_schema_privilege(current_user, current_schema(), 'CREATE') AS can_create`);
80
- const row = rows[0];
81
- if (row?.can_create === true) {
82
- throw new SchemaError('engine.runtimeAccount.ddlAllowed', { user: row.user }, locale);
83
- }
84
- }
19
+ import { resolveLocale, resolveObjectRlsRole, assertObjectRlsProvisioned, assertRestrictedRuntimeAccount, } from './guards.js';
20
+ export { resolveLocale, resolveRequireRestrictedAccount, resolveObjectRlsRole, assertObjectRlsProvisioned, assertRestrictedRuntimeAccount, } from './guards.js';
85
21
  /**
86
22
  * Assemble a running engine from an already-built registry (no schema loading).
87
23
  * This is the low-level assembly used by `createEngine` and by tests/dev that
@@ -314,7 +250,6 @@ export async function buildEngineFromRegistry(registry, config) {
314
250
  const rest = config.adapters?.rest;
315
251
  const mcpCfg = config.adapters?.mcp;
316
252
  const graphqlCfg = config.adapters?.graphql;
317
- let proxyHandle;
318
253
  const logLevel = process.env.WEAVEKIT_LOG_LEVEL ?? 'info';
319
254
  // forceCloseConnections: on close, terminate lingering keep-alive/long-lived
320
255
  // connections (e.g. SSE /api/events) instead of letting `server.close()` wait
@@ -344,130 +279,22 @@ export async function buildEngineFromRegistry(registry, config) {
344
279
  });
345
280
  }
346
281
  });
347
- if (rest?.enabled ?? true) {
348
- setErrorHandlers(app, locale, config.auth?.oidc === undefined
349
- ? {}
350
- : { wwwAuthenticate: (request) => wwwAuthenticateChallenge(`${request.protocol}://${request.host}`) });
351
- const restOptions = { prefix: rest?.prefix };
352
- if (rest?.rateLimit !== undefined) {
353
- restOptions.rateLimiter = createSlidingWindow(rest.rateLimit);
354
- }
355
- restOptions.adminRoles = rest?.adminRoles;
356
- restOptions.principalFor = rest?.principalFor;
357
- if (rest?.cors !== undefined) {
358
- // @fastify/cors defaults to GET,HEAD,POST — the engine's REST also uses
359
- // PATCH/DELETE, so default the allowed methods to the engine surface when
360
- // the caller didn't pin them (otherwise cross-origin PATCH preflights fail)
361
- await app.register(cors, {
362
- ...rest.cors,
363
- methods: rest.cors.methods ?? ['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
364
- });
365
- }
366
- registerObjectRoutes(app, {
367
- registry,
368
- pool,
369
- dataAccess,
370
- authenticator,
371
- locale,
372
- audit,
373
- }, restOptions);
374
- registerScriptRoutes(app, {
375
- registry,
376
- authenticator,
377
- locale,
378
- projectDir: config.schemaDir,
379
- commitIdentity: config.commit?.identity,
380
- }, restOptions);
381
- registerSchemaRoutes(app, {
382
- registry,
383
- authenticator,
384
- locale,
385
- projectDir: config.schemaDir,
386
- commitIdentity: config.commit?.identity,
387
- }, restOptions);
388
- // guardrail policy source (list/read/write, admin) — only when the
389
- // `tools.guardrails.policies` config is a directory path.
390
- const guardrailsPolicies = config.tools?.guardrails?.policies;
391
- registerGuardrailsRoutes(app, {
392
- authenticator,
393
- locale,
394
- projectDir: config.schemaDir,
395
- policiesDir: typeof guardrailsPolicies === 'string' ? guardrailsPolicies : undefined,
396
- commitIdentity: config.commit?.identity,
397
- }, restOptions);
398
- // identity directory (admin read) — only the static `mcp.identities` map
399
- // has an introspectable surface; a function resolver returns `[]`.
400
- registerIdentitiesRoutes(app, {
401
- authenticator,
402
- locale,
403
- identities: typeof mcpCfg?.identities === 'object' ? mcpCfg.identities : undefined,
404
- }, restOptions);
405
- // greenfield identity administration (admin-gated): list/create/enable users
406
- registerIdentityAdminRoutes(app, { authenticator, locale, admin: new IdentityAdmin(identityStore) }, restOptions);
407
- // identity sync trigger (admin-gated): manually provision the configured source
408
- if (identityCfg?.source !== undefined) {
409
- registerIdentitySyncRoutes(app, {
410
- authenticator,
411
- locale,
412
- store: identityStore,
413
- source: resolveIdentitySource(identityCfg.source, pool),
414
- ...(identityCfg.sync?.deactivateMissing === undefined ? {} : { deactivateMissingDefault: identityCfg.sync.deactivateMissing }),
415
- }, restOptions);
416
- }
417
- // capabilities (feature/entitlement) read-only: baseline + host-injected provider
418
- registerCapabilitiesRoutes(app, { authenticator, locale, ...(config.capabilities?.provider === undefined ? {} : { capabilities: config.capabilities.provider }) }, restOptions);
419
- // frontend metadata contract (framework-agnostic, all frontend adapters consume these)
420
- registerMetadataRoutes(app, { registry, pool, dataAccess, authenticator, locale }, restOptions);
421
- registerPermissionsRoutes(app, { registry, pool, dataAccess, authenticator, locale }, restOptions);
422
- registerAuditRoutes(app, { registry, pool, dataAccess, authenticator, locale, audit }, restOptions);
423
- // approval queue routes (depth-1 read + local write): present when the
424
- // tool executor is enabled (toolsDir set) — `tools.executor.approvals`.
425
- registerApprovalsRoutes(app, { registry, pool, dataAccess, authenticator, locale, approvals }, restOptions);
426
- // workflow transitions — available for any object declaring objects/<name>/workflow.json
427
- registerWorkflowRoutes(app, { registry, pool, dataAccess, authenticator, locale }, restOptions);
428
- // workflow definition source (admin GET/PUT spec) — only when a project dir is configured
429
- registerWorkflowSourceRoutes(app, { registry, authenticator, locale, projectDir: config.schemaDir, commitIdentity: config.commit?.identity }, restOptions);
430
- // Generic outbound proxy (P-4). Wired only when `config.proxy.resolver` is
431
- // provided (absent = createProxyForwarder is not imported = zero overhead).
432
- // The resolver carries the app semantics incl. which connection a subject
433
- // may reach; the engine only supplies the gateway (forwarder + routes).
434
- if (config.proxy?.resolver !== undefined) {
435
- const { createProxyForwarder } = await import('./proxy/index.js');
436
- // A host may inject a custom forwarder (e.g. a tunnel-aware one that routes
437
- // `transport: 'tunnel'` targets over a live connector). Builder form receives
438
- // the runtime deps so it can read its own metadata. Default = plain fetch forwarder.
439
- const forwarder = typeof config.proxy.forwarder === 'function'
440
- ? config.proxy.forwarder({ dataAccess, pool, registry, authenticator, locale })
441
- : config.proxy.forwarder ??
442
- createProxyForwarder({
443
- locale,
444
- ...(config.proxy.fetchImpl !== undefined ? { fetchImpl: config.proxy.fetchImpl } : {}),
445
- });
446
- const resolver = typeof config.proxy.resolver === 'function'
447
- ? config.proxy.resolver({ dataAccess, pool, registry, authenticator, locale })
448
- : config.proxy.resolver;
449
- registerProxyRoutes(app, {
450
- authenticator,
451
- locale,
452
- resolver,
453
- forwarder,
454
- audit: auditSink,
455
- }, restOptions);
456
- proxyHandle = { forwarder, resolver };
457
- }
458
- // Inbound external events (first-class ingress seam). Enabled only when
459
- // `config.ingress` is set (absent = no parser/routes = zero overhead); the
460
- // app's verifier is the auth gate (fail-closed), the engine audits receipts.
461
- if (config.ingress !== undefined) {
462
- registerIngressRoutes(app, {
463
- audit: auditSink,
464
- locale,
465
- ...(config.ingress.rateLimit !== undefined
466
- ? { rateLimiter: createSlidingWindow(config.ingress.rateLimit) }
467
- : {}),
468
- }, config.ingress);
469
- }
470
- }
282
+ const httpRoutes = await registerHttpRoutes({
283
+ app,
284
+ locale,
285
+ config,
286
+ registry,
287
+ pool,
288
+ dataAccess,
289
+ authenticator,
290
+ audit,
291
+ auditSink,
292
+ mcpCfg,
293
+ identityCfg,
294
+ identityStore,
295
+ approvals,
296
+ });
297
+ const proxyHandle = httpRoutes.proxy;
471
298
  // live channel: SSE endpoint (Bearer auth, subject-filtered, replay)
472
299
  if (eventBus !== undefined && eventPublisher !== undefined) {
473
300
  registerEventsRoutes(app, {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/runtime/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/runtime/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Pool } from 'pg';
2
+ import { type Locale, type ObjectRegistry, type SchemaScope } from '../core/index.js';
3
+ import type { EngineConfig } from './config-types.js';
4
+ /**
5
+ * Engine start-up resolution + fail-closed guards — extracted from `engine.ts`
6
+ * (2.1 maintainability). Pure resolution helpers and the least-privilege / RLS
7
+ * provisioning checks the assembly runs before serving.
8
+ */
9
+ export declare function resolveLocale(configLocale: Locale | undefined): Locale;
10
+ /**
11
+ * Whether the runtime database account must be least-privileged (no schema
12
+ * `CREATE`). Resolution: explicit `config.runtime.requireRestrictedAccount` →
13
+ * env `WEAVEKIT_REQUIRE_RESTRICTED_ACCOUNT` → default `true`.
14
+ */
15
+ export declare function resolveRequireRestrictedAccount(config: EngineConfig): boolean;
16
+ /** the object-path RLS role when `rls.enforce` is on, else undefined */
17
+ export declare function resolveObjectRlsRole(config: Pick<EngineConfig, 'rls'>): string | undefined;
18
+ /**
19
+ * Fail-closed guard for `rls.enforce`: the role must exist and be grantable to
20
+ * the runtime account, and every object table must carry the current policies
21
+ * and privileges (i.e. `weave migrate` ran with enforcement on).
22
+ */
23
+ export declare function assertObjectRlsProvisioned(pool: Pool, registry: ObjectRegistry, role: string, locale: Locale, scope?: SchemaScope): Promise<void>;
24
+ /**
25
+ * Fail-closed guard: refuse to start when the runtime account can create
26
+ * objects in the current schema. WeaveKit runs DDL only via `weave migrate`
27
+ * (with `migrationDatabaseUrl`); a runtime account with `CREATE` defeats the
28
+ * least-privilege model.
29
+ */
30
+ export declare function assertRestrictedRuntimeAccount(pool: Pool, config: EngineConfig, locale: Locale): Promise<void>;
31
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/runtime/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAQL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;GAIG;AAEH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAItE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAM7E;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,SAAS,CAE1F;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -0,0 +1,70 @@
1
+ import { DEFAULT_LOCALE, SUPPORTED_LOCALES, SchemaError, inspectSchema, isSafeRlsRole, planObjectRls, OBJECT_RLS_ROLE_DEFAULT, } from '../core/index.js';
2
+ /**
3
+ * Engine start-up resolution + fail-closed guards — extracted from `engine.ts`
4
+ * (2.1 maintainability). Pure resolution helpers and the least-privilege / RLS
5
+ * provisioning checks the assembly runs before serving.
6
+ */
7
+ export function resolveLocale(configLocale) {
8
+ const resolved = configLocale ?? process.env.WEAVEKIT_LOCALE ?? DEFAULT_LOCALE;
9
+ const supported = new Set(SUPPORTED_LOCALES);
10
+ return supported.has(resolved) ? resolved : DEFAULT_LOCALE;
11
+ }
12
+ /**
13
+ * Whether the runtime database account must be least-privileged (no schema
14
+ * `CREATE`). Resolution: explicit `config.runtime.requireRestrictedAccount` →
15
+ * env `WEAVEKIT_REQUIRE_RESTRICTED_ACCOUNT` → default `true`.
16
+ */
17
+ export function resolveRequireRestrictedAccount(config) {
18
+ const configured = config.runtime?.requireRestrictedAccount;
19
+ if (configured !== undefined)
20
+ return configured;
21
+ const env = process.env.WEAVEKIT_REQUIRE_RESTRICTED_ACCOUNT;
22
+ if (env !== undefined)
23
+ return env !== 'false' && env !== '0';
24
+ return true;
25
+ }
26
+ /** the object-path RLS role when `rls.enforce` is on, else undefined */
27
+ export function resolveObjectRlsRole(config) {
28
+ return config.rls?.enforce === true ? (config.rls.role ?? OBJECT_RLS_ROLE_DEFAULT) : undefined;
29
+ }
30
+ /**
31
+ * Fail-closed guard for `rls.enforce`: the role must exist and be grantable to
32
+ * the runtime account, and every object table must carry the current policies
33
+ * and privileges (i.e. `weave migrate` ran with enforcement on).
34
+ */
35
+ export async function assertObjectRlsProvisioned(pool, registry, role, locale, scope) {
36
+ if (!isSafeRlsRole(role))
37
+ throw new SchemaError('engine.rls.notProvisioned', { detail: `invalid role "${role}"` }, locale);
38
+ const { rows } = await pool.query(`SELECT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = $1) AS present,
39
+ CASE WHEN EXISTS (SELECT 1 FROM pg_roles WHERE rolname = $1)
40
+ THEN pg_has_role(current_user, $1, 'MEMBER') ELSE false END AS member`, [role]);
41
+ if (rows[0]?.member !== true) {
42
+ const detail = rows[0]?.present === true ? `role "${role}" is not granted to the runtime account` : `role "${role}" is missing`;
43
+ throw new SchemaError('engine.rls.notProvisioned', { detail }, locale);
44
+ }
45
+ const objectActual = await inspectSchema(pool);
46
+ const actual = scope?.systemSchema === undefined
47
+ ? objectActual
48
+ : new Map([...objectActual, ...(await inspectSchema(pool, { schema: scope.systemSchema }))]);
49
+ const plan = planObjectRls(registry, actual, role, { scope });
50
+ if (plan.statements.length > 0) {
51
+ const tables = [...new Set(plan.statements.map((s) => /"([^"]+)"/.exec(s)?.[1]).filter((t) => t !== undefined))];
52
+ throw new SchemaError('engine.rls.notProvisioned', { detail: `missing policies/privileges on ${tables.join(', ')}` }, locale);
53
+ }
54
+ }
55
+ /**
56
+ * Fail-closed guard: refuse to start when the runtime account can create
57
+ * objects in the current schema. WeaveKit runs DDL only via `weave migrate`
58
+ * (with `migrationDatabaseUrl`); a runtime account with `CREATE` defeats the
59
+ * least-privilege model.
60
+ */
61
+ export async function assertRestrictedRuntimeAccount(pool, config, locale) {
62
+ if (!resolveRequireRestrictedAccount(config))
63
+ return;
64
+ const { rows } = await pool.query(`SELECT current_user AS user, has_schema_privilege(current_user, current_schema(), 'CREATE') AS can_create`);
65
+ const row = rows[0];
66
+ if (row?.can_create === true) {
67
+ throw new SchemaError('engine.runtimeAccount.ddlAllowed', { user: row.user }, locale);
68
+ }
69
+ }
70
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/runtime/guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { FastifyInstance } from 'fastify';
2
+ import type { Pool } from 'pg';
3
+ import { type AuditSink, type Locale, type ObjectRegistry, type ProxyTargetResolver } from '../core/index.js';
4
+ import type { IdentityStore } from '../core/provider/identity/index.js';
5
+ import type { ObjectDataAccess } from './data-access/index.js';
6
+ import type { EngineConfig, EngineIdentityConfig } from './config-types.js';
7
+ import type { ProxyForwarder } from './proxy/index.js';
8
+ import type { Authenticator } from '../adapters/auth/index.js';
9
+ import type { EngineMcpConfig } from '../adapters/mcp/index.js';
10
+ import type { ApprovalsQueue } from './tools/index.js';
11
+ import type { AuditEngine } from '../subsystems/audit/index.js';
12
+ /**
13
+ * Register the HTTP (REST + admin) routes on the app — extracted from
14
+ * `engine.ts` (2.1 maintainability). The assembly resolves the runtime deps and
15
+ * hands them here; this module only wires routes. Returns the proxy handle when
16
+ * `config.proxy.resolver` is set.
17
+ */
18
+ export interface HttpRouteDeps {
19
+ app: FastifyInstance;
20
+ locale: Locale;
21
+ config: EngineConfig;
22
+ registry: ObjectRegistry;
23
+ pool: Pool;
24
+ dataAccess: ObjectDataAccess;
25
+ authenticator: Authenticator;
26
+ audit?: AuditEngine;
27
+ auditSink: AuditSink;
28
+ mcpCfg?: EngineMcpConfig;
29
+ identityCfg?: EngineIdentityConfig;
30
+ identityStore: IdentityStore;
31
+ approvals?: ApprovalsQueue;
32
+ }
33
+ export interface HttpRoutes {
34
+ proxy?: {
35
+ forwarder: ProxyForwarder;
36
+ resolver: ProxyTargetResolver;
37
+ };
38
+ }
39
+ export declare function registerHttpRoutes(deps: HttpRouteDeps): Promise<HttpRoutes>;
40
+ //# sourceMappingURL=register-http-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-http-routes.d.ts","sourceRoot":"","sources":["../../src/runtime/register-http-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAuBhE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,gBAAgB,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE;QAAE,SAAS,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,mBAAmB,CAAA;KAAE,CAAC;CACtE;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAqMjF"}