@weave-kit/engine 1.8.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.
- package/CHANGELOG.md +44 -0
- package/README.md +3 -3
- package/dist/adapters/auth/index.d.ts +1 -1
- package/dist/adapters/auth/index.d.ts.map +1 -1
- package/dist/adapters/auth/index.js +1 -1
- package/dist/adapters/auth/index.js.map +1 -1
- package/dist/adapters/auth/oidc.d.ts +2 -2
- package/dist/adapters/auth/oidc.d.ts.map +1 -1
- package/dist/adapters/auth/oidc.js +4 -4
- package/dist/adapters/auth/oidc.js.map +1 -1
- package/dist/adapters/auth/subject.d.ts +3 -9
- package/dist/adapters/auth/subject.d.ts.map +1 -1
- package/dist/adapters/auth/subject.js +4 -19
- package/dist/adapters/auth/subject.js.map +1 -1
- package/dist/adapters/events/index.js +2 -2
- package/dist/adapters/events/index.js.map +1 -1
- package/dist/adapters/mcp/http.d.ts +7 -0
- package/dist/adapters/mcp/http.d.ts.map +1 -1
- package/dist/adapters/mcp/http.js +57 -21
- package/dist/adapters/mcp/http.js.map +1 -1
- package/dist/adapters/mcp/index.d.ts +6 -0
- package/dist/adapters/mcp/index.d.ts.map +1 -1
- package/dist/adapters/mcp/index.js +1 -0
- package/dist/adapters/mcp/index.js.map +1 -1
- package/dist/adapters/mcp/tools.js +1 -1
- package/dist/adapters/mcp/tools.js.map +1 -1
- package/dist/adapters/rest/audit.js +3 -3
- package/dist/adapters/rest/audit.js.map +1 -1
- package/dist/adapters/rest/index.d.ts +0 -1
- package/dist/adapters/rest/index.d.ts.map +1 -1
- package/dist/adapters/rest/index.js +0 -1
- package/dist/adapters/rest/index.js.map +1 -1
- package/dist/cli/commands/deploy.js +4 -4
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +0 -13
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +0 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +0 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/object-create.d.ts.map +1 -1
- package/dist/cli/commands/object-create.js +1 -127
- package/dist/cli/commands/object-create.js.map +1 -1
- package/dist/cli/index.js +0 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/project-types/manifest.d.ts +3 -7
- package/dist/cli/project-types/manifest.d.ts.map +1 -1
- package/dist/cli/project-types/manifest.js +0 -14
- package/dist/cli/project-types/manifest.js.map +1 -1
- package/dist/cli/types/values.d.ts +0 -2
- package/dist/cli/types/values.d.ts.map +1 -1
- package/dist/cli/types/values.js +0 -2
- package/dist/cli/types/values.js.map +1 -1
- package/dist/core/api/types.d.ts +3 -40
- package/dist/core/api/types.d.ts.map +1 -1
- package/dist/core/api/types.js +0 -5
- package/dist/core/api/types.js.map +1 -1
- package/dist/core/audit/types.d.ts +7 -124
- package/dist/core/audit/types.d.ts.map +1 -1
- package/dist/core/audit/types.js +4 -44
- package/dist/core/audit/types.js.map +1 -1
- package/dist/core/i18n/ar.js +1 -1
- package/dist/core/i18n/ar.js.map +1 -1
- package/dist/core/i18n/de.js +1 -1
- package/dist/core/i18n/de.js.map +1 -1
- package/dist/core/i18n/en.d.ts +1 -1
- package/dist/core/i18n/en.js +1 -1
- package/dist/core/i18n/en.js.map +1 -1
- package/dist/core/i18n/es.js +1 -1
- package/dist/core/i18n/es.js.map +1 -1
- package/dist/core/i18n/fr.js +1 -1
- package/dist/core/i18n/fr.js.map +1 -1
- package/dist/core/i18n/hi.js +1 -1
- package/dist/core/i18n/hi.js.map +1 -1
- package/dist/core/i18n/id.js +1 -1
- package/dist/core/i18n/id.js.map +1 -1
- package/dist/core/i18n/ja.js +1 -1
- package/dist/core/i18n/ja.js.map +1 -1
- package/dist/core/i18n/ko.js +1 -1
- package/dist/core/i18n/ko.js.map +1 -1
- package/dist/core/i18n/pt.js +1 -1
- package/dist/core/i18n/pt.js.map +1 -1
- package/dist/core/i18n/ru.js +1 -1
- package/dist/core/i18n/ru.js.map +1 -1
- package/dist/core/i18n/vi.js +1 -1
- package/dist/core/i18n/vi.js.map +1 -1
- package/dist/core/i18n/zh-hant.js +1 -1
- package/dist/core/i18n/zh-hant.js.map +1 -1
- package/dist/core/i18n/zh.js +1 -1
- package/dist/core/i18n/zh.js.map +1 -1
- package/dist/core/limiter/index.d.ts +1 -1
- package/dist/core/limiter/index.d.ts.map +1 -1
- package/dist/core/limiter/index.js +1 -1
- package/dist/core/limiter/index.js.map +1 -1
- package/dist/core/limiter/quota.d.ts +1 -3
- package/dist/core/limiter/quota.d.ts.map +1 -1
- package/dist/core/limiter/quota.js +1 -3
- package/dist/core/limiter/quota.js.map +1 -1
- package/dist/core/object/describe.d.ts +2 -124
- package/dist/core/object/describe.d.ts.map +1 -1
- package/dist/core/object/describe.js.map +1 -1
- package/dist/core/object/system-objects.js +2 -2
- package/dist/core/object/system-objects.js.map +1 -1
- package/dist/core/object/validate/field.d.ts.map +1 -1
- package/dist/core/object/validate/field.js +2 -4
- package/dist/core/object/validate/field.js.map +1 -1
- package/dist/core/provider/identity/types.d.ts +2 -5
- package/dist/core/provider/identity/types.d.ts.map +1 -1
- package/dist/core/rbac/index.d.ts +1 -1
- package/dist/core/rbac/index.d.ts.map +1 -1
- package/dist/core/rbac/index.js +1 -1
- package/dist/core/rbac/index.js.map +1 -1
- package/dist/core/rbac/rls.d.ts +1 -1
- package/dist/core/rbac/rls.d.ts.map +1 -1
- package/dist/core/rbac/rls.js +7 -10
- package/dist/core/rbac/rls.js.map +1 -1
- package/dist/core/rbac/rowScope.d.ts.map +1 -1
- package/dist/core/rbac/rowScope.js +2 -3
- package/dist/core/rbac/rowScope.js.map +1 -1
- package/dist/core/rbac/scopeMarker.d.ts +2 -5
- package/dist/core/rbac/scopeMarker.d.ts.map +1 -1
- package/dist/core/rbac/scopeMarker.js +3 -18
- package/dist/core/rbac/scopeMarker.js.map +1 -1
- package/dist/core/script/types.d.ts +1 -3
- package/dist/core/script/types.d.ts.map +1 -1
- package/dist/core/script/types.js.map +1 -1
- package/dist/core/script/values.d.ts +3 -7
- package/dist/core/script/values.d.ts.map +1 -1
- package/dist/core/script/values.js +2 -6
- package/dist/core/script/values.js.map +1 -1
- package/dist/core/storage/impact.d.ts +2 -2
- package/dist/core/storage/impact.d.ts.map +1 -1
- package/dist/core/storage/impact.js +6 -6
- package/dist/core/storage/impact.js.map +1 -1
- package/dist/core/storage/system-tables.js +2 -2
- package/dist/core/storage/system-tables.js.map +1 -1
- package/dist/core/tools/types.d.ts +2 -28
- package/dist/core/tools/types.d.ts.map +1 -1
- package/dist/core/tools/values.d.ts +2 -6
- package/dist/core/tools/values.d.ts.map +1 -1
- package/dist/core/tools/values.js +2 -5
- package/dist/core/tools/values.js.map +1 -1
- package/dist/core/types/field-type.d.ts +3 -10
- package/dist/core/types/field-type.d.ts.map +1 -1
- package/dist/core/types/field-type.js +2 -9
- package/dist/core/types/field-type.js.map +1 -1
- package/dist/core/types/fields.d.ts +1 -3
- package/dist/core/types/fields.d.ts.map +1 -1
- package/dist/core/types/principal.d.ts +3 -6
- package/dist/core/types/principal.d.ts.map +1 -1
- package/dist/core/types/principal.js +5 -11
- package/dist/core/types/principal.js.map +1 -1
- package/dist/core/types/values.d.ts +4 -194
- package/dist/core/types/values.d.ts.map +1 -1
- package/dist/core/types/values.js +3 -144
- package/dist/core/types/values.js.map +1 -1
- package/dist/core/types/workflow.d.ts +6 -78
- package/dist/core/types/workflow.d.ts.map +1 -1
- package/dist/core/types/workflow.js +5 -27
- package/dist/core/types/workflow.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/config-types.d.ts +434 -0
- package/dist/runtime/config-types.d.ts.map +1 -0
- package/dist/runtime/config-types.js +2 -0
- package/dist/runtime/config-types.js.map +1 -0
- package/dist/runtime/data-access/index.d.ts +1 -1
- package/dist/runtime/data-access/index.d.ts.map +1 -1
- package/dist/runtime/data-access/index.js +1 -1
- package/dist/runtime/data-access/index.js.map +1 -1
- package/dist/runtime/data-access/query-helpers.d.ts +74 -0
- package/dist/runtime/data-access/query-helpers.d.ts.map +1 -0
- package/dist/runtime/data-access/query-helpers.js +238 -0
- package/dist/runtime/data-access/query-helpers.js.map +1 -0
- package/dist/runtime/data-access/query.d.ts.map +1 -1
- package/dist/runtime/data-access/query.js +16 -244
- package/dist/runtime/data-access/query.js.map +1 -1
- package/dist/runtime/data-access/rbac.js +1 -1
- package/dist/runtime/data-access/rbac.js.map +1 -1
- package/dist/runtime/data-access/rls-session.d.ts +1 -2
- package/dist/runtime/data-access/rls-session.d.ts.map +1 -1
- package/dist/runtime/data-access/rls-session.js +2 -3
- package/dist/runtime/data-access/rls-session.js.map +1 -1
- package/dist/runtime/data-access/sql-executor.d.ts +1 -2
- package/dist/runtime/data-access/sql-executor.d.ts.map +1 -1
- package/dist/runtime/data-access/sql-executor.js.map +1 -1
- package/dist/runtime/data-access/types.d.ts +5 -63
- package/dist/runtime/data-access/types.d.ts.map +1 -1
- package/dist/runtime/data-access/types.js +3 -7
- package/dist/runtime/data-access/types.js.map +1 -1
- package/dist/runtime/data-access/values.d.ts +4 -46
- package/dist/runtime/data-access/values.d.ts.map +1 -1
- package/dist/runtime/data-access/values.js +3 -42
- package/dist/runtime/data-access/values.js.map +1 -1
- package/dist/runtime/engine.d.ts +4 -462
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +23 -207
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/git/index.d.ts +0 -4
- package/dist/runtime/git/index.d.ts.map +1 -1
- package/dist/runtime/git/index.js +0 -2
- package/dist/runtime/git/index.js.map +1 -1
- package/dist/runtime/guards.d.ts +31 -0
- package/dist/runtime/guards.d.ts.map +1 -0
- package/dist/runtime/guards.js +70 -0
- package/dist/runtime/guards.js.map +1 -0
- package/dist/runtime/register-http-routes.d.ts +40 -0
- package/dist/runtime/register-http-routes.d.ts.map +1 -0
- package/dist/runtime/register-http-routes.js +138 -0
- package/dist/runtime/register-http-routes.js.map +1 -0
- package/dist/runtime/tools/executor.js +2 -2
- package/dist/runtime/tools/executor.js.map +1 -1
- package/dist/subsystems/audit/store.d.ts.map +1 -1
- package/dist/subsystems/audit/store.js +9 -10
- package/dist/subsystems/audit/store.js.map +1 -1
- package/dist/subsystems/script/backend/types.d.ts +0 -1
- package/dist/subsystems/script/backend/types.d.ts.map +1 -1
- package/dist/subsystems/script/bridge.d.ts.map +1 -1
- package/dist/subsystems/script/bridge.js +1 -2
- package/dist/subsystems/script/bridge.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +2 -2
- package/package.json +2 -1
package/dist/runtime/engine.js
CHANGED
|
@@ -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 {
|
|
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,
|
|
11
|
-
import { PgIdentityDirectory, PgIdentityStore,
|
|
12
|
-
import { registerAuditRoutes, registerApprovalsRoutes, registerCapabilitiesRoutes, registerMetadataRoutes, registerObjectRoutes, registerPagesRoutes, 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
|
-
|
|
23
|
-
|
|
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
|
|
@@ -272,11 +208,7 @@ export async function buildEngineFromRegistry(registry, config) {
|
|
|
272
208
|
if (identityCfg?.required === true) {
|
|
273
209
|
authenticator = enforceSyncedIdentity(authenticator, identityDirectory, locale);
|
|
274
210
|
}
|
|
275
|
-
//
|
|
276
|
-
if (config.tenants?.enabled === true && config.tenants.defaultTenant !== undefined) {
|
|
277
|
-
authenticator = withDefaultTenant(authenticator, config.tenants.defaultTenant);
|
|
278
|
-
}
|
|
279
|
-
// generic row-scope: stamp the configured default scope on subjects that lack one
|
|
211
|
+
// row-scope: stamp the configured default scope on subjects that lack one
|
|
280
212
|
if (config.scope?.enabled === true && config.scope.defaultScope !== undefined) {
|
|
281
213
|
authenticator = withDefaultScope(authenticator, config.scope.defaultScope);
|
|
282
214
|
}
|
|
@@ -318,7 +250,6 @@ export async function buildEngineFromRegistry(registry, config) {
|
|
|
318
250
|
const rest = config.adapters?.rest;
|
|
319
251
|
const mcpCfg = config.adapters?.mcp;
|
|
320
252
|
const graphqlCfg = config.adapters?.graphql;
|
|
321
|
-
let proxyHandle;
|
|
322
253
|
const logLevel = process.env.WEAVEKIT_LOG_LEVEL ?? 'info';
|
|
323
254
|
// forceCloseConnections: on close, terminate lingering keep-alive/long-lived
|
|
324
255
|
// connections (e.g. SSE /api/events) instead of letting `server.close()` wait
|
|
@@ -348,137 +279,22 @@ export async function buildEngineFromRegistry(registry, config) {
|
|
|
348
279
|
});
|
|
349
280
|
}
|
|
350
281
|
});
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
methods: rest.cors.methods ?? ['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
registerObjectRoutes(app, {
|
|
371
|
-
registry,
|
|
372
|
-
pool,
|
|
373
|
-
dataAccess,
|
|
374
|
-
authenticator,
|
|
375
|
-
locale,
|
|
376
|
-
audit,
|
|
377
|
-
}, restOptions);
|
|
378
|
-
registerScriptRoutes(app, {
|
|
379
|
-
registry,
|
|
380
|
-
authenticator,
|
|
381
|
-
locale,
|
|
382
|
-
projectDir: config.schemaDir,
|
|
383
|
-
commitIdentity: config.commit?.identity,
|
|
384
|
-
}, restOptions);
|
|
385
|
-
registerPagesRoutes(app, {
|
|
386
|
-
registry,
|
|
387
|
-
authenticator,
|
|
388
|
-
locale,
|
|
389
|
-
projectDir: config.schemaDir,
|
|
390
|
-
commitIdentity: config.commit?.identity,
|
|
391
|
-
}, restOptions);
|
|
392
|
-
registerSchemaRoutes(app, {
|
|
393
|
-
registry,
|
|
394
|
-
authenticator,
|
|
395
|
-
locale,
|
|
396
|
-
projectDir: config.schemaDir,
|
|
397
|
-
commitIdentity: config.commit?.identity,
|
|
398
|
-
}, restOptions);
|
|
399
|
-
// guardrail policy source (list/read/write, admin) — only when the
|
|
400
|
-
// `tools.guardrails.policies` config is a directory path.
|
|
401
|
-
const guardrailsPolicies = config.tools?.guardrails?.policies;
|
|
402
|
-
registerGuardrailsRoutes(app, {
|
|
403
|
-
authenticator,
|
|
404
|
-
locale,
|
|
405
|
-
projectDir: config.schemaDir,
|
|
406
|
-
policiesDir: typeof guardrailsPolicies === 'string' ? guardrailsPolicies : undefined,
|
|
407
|
-
commitIdentity: config.commit?.identity,
|
|
408
|
-
}, restOptions);
|
|
409
|
-
// identity directory (admin read) — only the static `mcp.identities` map
|
|
410
|
-
// has an introspectable surface; a function resolver returns `[]`.
|
|
411
|
-
registerIdentitiesRoutes(app, {
|
|
412
|
-
authenticator,
|
|
413
|
-
locale,
|
|
414
|
-
identities: typeof mcpCfg?.identities === 'object' ? mcpCfg.identities : undefined,
|
|
415
|
-
}, restOptions);
|
|
416
|
-
// greenfield identity administration (admin-gated): list/create/enable users
|
|
417
|
-
registerIdentityAdminRoutes(app, { authenticator, locale, admin: new IdentityAdmin(identityStore) }, restOptions);
|
|
418
|
-
// identity sync trigger (admin-gated): manually provision the configured source
|
|
419
|
-
if (identityCfg?.source !== undefined) {
|
|
420
|
-
registerIdentitySyncRoutes(app, {
|
|
421
|
-
authenticator,
|
|
422
|
-
locale,
|
|
423
|
-
store: identityStore,
|
|
424
|
-
source: resolveIdentitySource(identityCfg.source, pool),
|
|
425
|
-
...(identityCfg.sync?.deactivateMissing === undefined ? {} : { deactivateMissingDefault: identityCfg.sync.deactivateMissing }),
|
|
426
|
-
}, restOptions);
|
|
427
|
-
}
|
|
428
|
-
// capabilities (feature/entitlement) read-only: baseline + host-injected provider
|
|
429
|
-
registerCapabilitiesRoutes(app, { authenticator, locale, ...(config.capabilities?.provider === undefined ? {} : { capabilities: config.capabilities.provider }) }, restOptions);
|
|
430
|
-
// frontend metadata contract (framework-agnostic, all frontend adapters consume these)
|
|
431
|
-
registerMetadataRoutes(app, { registry, pool, dataAccess, authenticator, locale }, restOptions);
|
|
432
|
-
registerPermissionsRoutes(app, { registry, pool, dataAccess, authenticator, locale }, restOptions);
|
|
433
|
-
registerAuditRoutes(app, { registry, pool, dataAccess, authenticator, locale, audit }, restOptions);
|
|
434
|
-
// approval queue routes (depth-1 read + local write): present when the
|
|
435
|
-
// tool executor is enabled (toolsDir set) — `tools.executor.approvals`.
|
|
436
|
-
registerApprovalsRoutes(app, { registry, pool, dataAccess, authenticator, locale, approvals }, restOptions);
|
|
437
|
-
// workflow transitions — available for any object declaring objects/<name>/workflow.json
|
|
438
|
-
registerWorkflowRoutes(app, { registry, pool, dataAccess, authenticator, locale }, restOptions);
|
|
439
|
-
// workflow definition source (admin GET/PUT spec) — only when a project dir is configured
|
|
440
|
-
registerWorkflowSourceRoutes(app, { registry, authenticator, locale, projectDir: config.schemaDir, commitIdentity: config.commit?.identity }, restOptions);
|
|
441
|
-
// Generic outbound proxy (P-4). Wired only when `config.proxy.resolver` is
|
|
442
|
-
// provided (absent = createProxyForwarder is not imported = zero overhead).
|
|
443
|
-
// The resolver carries the app semantics incl. which connection a subject
|
|
444
|
-
// may reach; the engine only supplies the gateway (forwarder + routes).
|
|
445
|
-
if (config.proxy?.resolver !== undefined) {
|
|
446
|
-
const { createProxyForwarder } = await import('./proxy/index.js');
|
|
447
|
-
// A host may inject a custom forwarder (e.g. a tunnel-aware one that routes
|
|
448
|
-
// `transport: 'tunnel'` targets over a live connector). Builder form receives
|
|
449
|
-
// the runtime deps so it can read its own metadata. Default = plain fetch forwarder.
|
|
450
|
-
const forwarder = typeof config.proxy.forwarder === 'function'
|
|
451
|
-
? config.proxy.forwarder({ dataAccess, pool, registry, authenticator, locale })
|
|
452
|
-
: config.proxy.forwarder ??
|
|
453
|
-
createProxyForwarder({
|
|
454
|
-
locale,
|
|
455
|
-
...(config.proxy.fetchImpl !== undefined ? { fetchImpl: config.proxy.fetchImpl } : {}),
|
|
456
|
-
});
|
|
457
|
-
const resolver = typeof config.proxy.resolver === 'function'
|
|
458
|
-
? config.proxy.resolver({ dataAccess, pool, registry, authenticator, locale })
|
|
459
|
-
: config.proxy.resolver;
|
|
460
|
-
registerProxyRoutes(app, {
|
|
461
|
-
authenticator,
|
|
462
|
-
locale,
|
|
463
|
-
resolver,
|
|
464
|
-
forwarder,
|
|
465
|
-
audit: auditSink,
|
|
466
|
-
}, restOptions);
|
|
467
|
-
proxyHandle = { forwarder, resolver };
|
|
468
|
-
}
|
|
469
|
-
// Inbound external events (first-class ingress seam). Enabled only when
|
|
470
|
-
// `config.ingress` is set (absent = no parser/routes = zero overhead); the
|
|
471
|
-
// app's verifier is the auth gate (fail-closed), the engine audits receipts.
|
|
472
|
-
if (config.ingress !== undefined) {
|
|
473
|
-
registerIngressRoutes(app, {
|
|
474
|
-
audit: auditSink,
|
|
475
|
-
locale,
|
|
476
|
-
...(config.ingress.rateLimit !== undefined
|
|
477
|
-
? { rateLimiter: createSlidingWindow(config.ingress.rateLimit) }
|
|
478
|
-
: {}),
|
|
479
|
-
}, config.ingress);
|
|
480
|
-
}
|
|
481
|
-
}
|
|
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;
|
|
482
298
|
// live channel: SSE endpoint (Bearer auth, subject-filtered, replay)
|
|
483
299
|
if (eventBus !== undefined && eventPublisher !== undefined) {
|
|
484
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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"}
|
|
@@ -11,14 +11,10 @@ export type { SourceFileCandidate, SourceTransactionOptions, SourceTransactionRe
|
|
|
11
11
|
export { sourceVersion, readSource, writeSourceAtomically } from './sourceFile.js';
|
|
12
12
|
export { listGuardrailPolicies, readGuardrailPolicy, writeGuardrailPolicy, listGuardrailHistory, } from './guardrailSource.js';
|
|
13
13
|
export type { GuardrailPolicySummary, GuardrailPolicyDocument, GuardrailPolicyCommit, GuardrailPolicyHistory, WriteGuardrailPolicyOptions, WriteGuardrailPolicyResult, } from './guardrailSource.js';
|
|
14
|
-
export { readLayoutSource, writeLayoutSource, validateLayoutCandidate, layoutPathOf, throwLayoutIssues, listableFieldsOf, } from './layoutSource.js';
|
|
15
|
-
export type { LayoutSourceDocument, WriteLayoutSourceOptions, WriteLayoutSourceResult } from './layoutSource.js';
|
|
16
14
|
export { readSchemaSource, writeSchemaSource, validateSchemaCandidate, schemaPathOf } from './schemaSource.js';
|
|
17
15
|
export type { SchemaSourceDocument, WriteSchemaSourceOptions, WriteSchemaSourceResult } from './schemaSource.js';
|
|
18
16
|
export { readWorkflowSource, writeWorkflowSource, validateWorkflowCandidate, workflowPathOf } from './workflowSource.js';
|
|
19
17
|
export type { WorkflowSourceDocument, WriteWorkflowSourceOptions, WriteWorkflowSourceResult } from './workflowSource.js';
|
|
20
|
-
export { listPages, createCustomPage, deleteCustomPage, renameCustomPage, findCustomPageRefs, emptyCustomLayout, } from './pageCatalog.js';
|
|
21
|
-
export type { PageSummary, CreateCustomPageOptions, DeleteCustomPageOptions, RenameCustomPageOptions } from './pageCatalog.js';
|
|
22
18
|
export { buildCommitMessage, diffMetadata, gitCommitAuthor, recordSchemaChanges, recordWorkflowMigration } from './schemaChange.js';
|
|
23
19
|
export type { SchemaAuditCommit, SchemaChange, WorkflowMigrationAuditEntry } from './schemaChange.js';
|
|
24
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/G,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzH,YAAY,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACzH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACpI,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -5,9 +5,7 @@ export { autoCommit, commitPath, commitPaths } from './autoCommit.js';
|
|
|
5
5
|
export { runSourceTransaction, runSerialized, deleteSourceFile } from './sourceTransaction.js';
|
|
6
6
|
export { sourceVersion, readSource, writeSourceAtomically } from './sourceFile.js';
|
|
7
7
|
export { listGuardrailPolicies, readGuardrailPolicy, writeGuardrailPolicy, listGuardrailHistory, } from './guardrailSource.js';
|
|
8
|
-
export { readLayoutSource, writeLayoutSource, validateLayoutCandidate, layoutPathOf, throwLayoutIssues, listableFieldsOf, } from './layoutSource.js';
|
|
9
8
|
export { readSchemaSource, writeSchemaSource, validateSchemaCandidate, schemaPathOf } from './schemaSource.js';
|
|
10
9
|
export { readWorkflowSource, writeWorkflowSource, validateWorkflowCandidate, workflowPathOf } from './workflowSource.js';
|
|
11
|
-
export { listPages, createCustomPage, deleteCustomPage, renameCustomPage, findCustomPageRefs, emptyCustomLayout, } from './pageCatalog.js';
|
|
12
10
|
export { buildCommitMessage, diffMetadata, gitCommitAuthor, recordSchemaChanges, recordWorkflowMigration } from './schemaChange.js';
|
|
13
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO/F,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO/F,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE/G,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -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"}
|