@weave-kit/engine 0.5.0 → 0.7.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 +76 -0
- package/README.md +7 -7
- package/dist/adapters/auth/index.d.ts +4 -2
- package/dist/adapters/auth/index.d.ts.map +1 -1
- package/dist/adapters/auth/index.js +1 -0
- package/dist/adapters/auth/index.js.map +1 -1
- package/dist/adapters/auth/source.d.ts +4 -4
- package/dist/adapters/auth/source.d.ts.map +1 -1
- package/dist/adapters/auth/subject.d.ts +22 -0
- package/dist/adapters/auth/subject.d.ts.map +1 -0
- package/dist/adapters/auth/subject.js +42 -0
- package/dist/adapters/auth/subject.js.map +1 -0
- package/dist/adapters/auth/verify.d.ts +12 -0
- package/dist/adapters/auth/verify.d.ts.map +1 -0
- package/dist/adapters/auth/verify.js +2 -0
- package/dist/adapters/auth/verify.js.map +1 -0
- package/dist/adapters/events/index.d.ts +2 -1
- package/dist/adapters/events/index.d.ts.map +1 -1
- package/dist/adapters/events/index.js +2 -1
- package/dist/adapters/events/index.js.map +1 -1
- package/dist/adapters/mcp/generate.d.ts +3 -3
- package/dist/adapters/mcp/generate.d.ts.map +1 -1
- package/dist/adapters/mcp/generate.js +34 -11
- package/dist/adapters/mcp/generate.js.map +1 -1
- package/dist/adapters/mcp/guardrails.d.ts +1 -1
- package/dist/adapters/mcp/http.d.ts +3 -1
- package/dist/adapters/mcp/http.d.ts.map +1 -1
- package/dist/adapters/mcp/http.js +2 -2
- package/dist/adapters/mcp/http.js.map +1 -1
- package/dist/adapters/mcp/index.d.ts +13 -4
- package/dist/adapters/mcp/index.d.ts.map +1 -1
- package/dist/adapters/mcp/index.js +12 -8
- package/dist/adapters/mcp/index.js.map +1 -1
- package/dist/adapters/mcp/session.d.ts +5 -5
- package/dist/adapters/mcp/session.d.ts.map +1 -1
- package/dist/adapters/mcp/tools.d.ts +6 -0
- package/dist/adapters/mcp/tools.d.ts.map +1 -1
- package/dist/adapters/mcp/tools.js +38 -14
- package/dist/adapters/mcp/tools.js.map +1 -1
- package/dist/adapters/mcp/types.d.ts +3 -1
- package/dist/adapters/mcp/types.d.ts.map +1 -1
- package/dist/adapters/mcp/types.js +1 -1
- package/dist/adapters/mcp/types.js.map +1 -1
- package/dist/adapters/openapi/document.d.ts.map +1 -1
- package/dist/adapters/openapi/document.js +72 -2
- package/dist/adapters/openapi/document.js.map +1 -1
- package/dist/adapters/openapi/schema.d.ts.map +1 -1
- package/dist/adapters/openapi/schema.js +40 -4
- package/dist/adapters/openapi/schema.js.map +1 -1
- package/dist/adapters/openapi/types.d.ts +1 -0
- package/dist/adapters/openapi/types.d.ts.map +1 -1
- package/dist/adapters/openapi/types.js +2 -0
- package/dist/adapters/openapi/types.js.map +1 -1
- package/dist/adapters/rest/approvals.d.ts +2 -2
- package/dist/adapters/rest/approvals.js +2 -2
- package/dist/adapters/rest/audit.d.ts +2 -2
- package/dist/adapters/rest/audit.js +2 -2
- package/dist/adapters/rest/common.d.ts +3 -3
- package/dist/adapters/rest/common.d.ts.map +1 -1
- package/dist/adapters/rest/common.js +1 -1
- package/dist/adapters/rest/guardrails.d.ts +1 -1
- package/dist/adapters/rest/guardrails.js +1 -1
- package/dist/adapters/rest/identities.d.ts +4 -4
- package/dist/adapters/rest/identities.d.ts.map +1 -1
- package/dist/adapters/rest/identities.js +3 -3
- package/dist/adapters/rest/identities.js.map +1 -1
- package/dist/adapters/rest/identityAdmin.d.ts +18 -0
- package/dist/adapters/rest/identityAdmin.d.ts.map +1 -0
- package/dist/adapters/rest/identityAdmin.js +58 -0
- package/dist/adapters/rest/identityAdmin.js.map +1 -0
- package/dist/adapters/rest/index.d.ts +4 -0
- package/dist/adapters/rest/index.d.ts.map +1 -1
- package/dist/adapters/rest/index.js +3 -0
- package/dist/adapters/rest/index.js.map +1 -1
- package/dist/adapters/rest/metadata.d.ts +1 -1
- package/dist/adapters/rest/metadata.js +1 -1
- package/dist/adapters/rest/pages.d.ts +1 -1
- package/dist/adapters/rest/pages.d.ts.map +1 -1
- package/dist/adapters/rest/permissions.d.ts +1 -1
- package/dist/adapters/rest/permissions.js +1 -1
- package/dist/adapters/rest/plugin.d.ts +2 -2
- package/dist/adapters/rest/plugin.d.ts.map +1 -1
- package/dist/adapters/rest/schemas.d.ts +1 -1
- package/dist/adapters/rest/schemas.d.ts.map +1 -1
- package/dist/adapters/rest/workflow.d.ts +15 -0
- package/dist/adapters/rest/workflow.d.ts.map +1 -0
- package/dist/adapters/rest/workflow.js +89 -0
- package/dist/adapters/rest/workflow.js.map +1 -0
- package/dist/adapters/rest/workflowSource.d.ts +15 -0
- package/dist/adapters/rest/workflowSource.d.ts.map +1 -0
- package/dist/adapters/rest/workflowSource.js +63 -0
- package/dist/adapters/rest/workflowSource.js.map +1 -0
- package/dist/cli/commands/build.js +1 -1
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/connect.d.ts +1 -1
- package/dist/cli/commands/default-view.d.ts +2 -2
- package/dist/cli/commands/default-view.js +2 -2
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +18 -9
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/identity.d.ts +15 -0
- package/dist/cli/commands/identity.d.ts.map +1 -0
- package/dist/cli/commands/identity.js +115 -0
- package/dist/cli/commands/identity.js.map +1 -0
- package/dist/cli/commands/introspect.d.ts.map +1 -1
- package/dist/cli/commands/introspect.js +23 -0
- package/dist/cli/commands/introspect.js.map +1 -1
- package/dist/cli/commands/mcp-config.js +1 -1
- package/dist/cli/commands/mcp-config.js.map +1 -1
- package/dist/cli/commands/migrate.js +2 -2
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/module.d.ts +2 -2
- package/dist/cli/commands/module.d.ts.map +1 -1
- package/dist/cli/commands/module.js +2 -2
- package/dist/cli/commands/module.js.map +1 -1
- package/dist/cli/commands/object-create.d.ts.map +1 -1
- package/dist/cli/commands/object-create.js +15 -15
- package/dist/cli/commands/object-create.js.map +1 -1
- package/dist/cli/commands/workflow-close.d.ts +9 -0
- package/dist/cli/commands/workflow-close.d.ts.map +1 -0
- package/dist/cli/commands/workflow-close.js +48 -0
- package/dist/cli/commands/workflow-close.js.map +1 -0
- package/dist/cli/commands/workflow-migrate.d.ts +11 -0
- package/dist/cli/commands/workflow-migrate.d.ts.map +1 -0
- package/dist/cli/commands/workflow-migrate.js +120 -0
- package/dist/cli/commands/workflow-migrate.js.map +1 -0
- package/dist/cli/commands/workflow-open.d.ts +10 -0
- package/dist/cli/commands/workflow-open.d.ts.map +1 -0
- package/dist/cli/commands/workflow-open.js +112 -0
- package/dist/cli/commands/workflow-open.js.map +1 -0
- package/dist/cli/commands/workflow-starter.d.ts +10 -0
- package/dist/cli/commands/workflow-starter.d.ts.map +1 -0
- package/dist/cli/commands/workflow-starter.js +29 -0
- package/dist/cli/commands/workflow-starter.js.map +1 -0
- package/dist/cli/commands/workflow-switch.d.ts +10 -0
- package/dist/cli/commands/workflow-switch.d.ts.map +1 -0
- package/dist/cli/commands/workflow-switch.js +60 -0
- package/dist/cli/commands/workflow-switch.js.map +1 -0
- package/dist/cli/commands/workflow-upgrade.d.ts +12 -0
- package/dist/cli/commands/workflow-upgrade.d.ts.map +1 -0
- package/dist/cli/commands/workflow-upgrade.js +116 -0
- package/dist/cli/commands/workflow-upgrade.js.map +1 -0
- package/dist/cli/index.js +72 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/project-types/manifest.d.ts +25 -0
- package/dist/cli/project-types/manifest.d.ts.map +1 -0
- package/dist/cli/project-types/manifest.js +40 -0
- package/dist/cli/project-types/manifest.js.map +1 -0
- package/dist/cli/ready-screen.js +1 -1
- package/dist/cli/ready-screen.js.map +1 -1
- package/dist/cli/scaffold.d.ts.map +1 -1
- package/dist/cli/scaffold.js +22 -34
- package/dist/cli/scaffold.js.map +1 -1
- package/dist/cli/types/commands.d.ts +46 -0
- package/dist/cli/types/commands.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +1 -1
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/types/values.d.ts +9 -0
- package/dist/cli/types/values.d.ts.map +1 -1
- package/dist/cli/types/values.js +9 -0
- package/dist/cli/types/values.js.map +1 -1
- package/dist/core/api/error.d.ts.map +1 -1
- package/dist/core/api/error.js +7 -4
- package/dist/core/api/error.js.map +1 -1
- package/dist/core/audit/types.d.ts +4 -2
- package/dist/core/audit/types.d.ts.map +1 -1
- package/dist/core/audit/types.js +2 -0
- package/dist/core/audit/types.js.map +1 -1
- package/dist/core/formula/validate.d.ts.map +1 -1
- package/dist/core/formula/validate.js +6 -0
- package/dist/core/formula/validate.js.map +1 -1
- package/dist/core/i18n/ar.d.ts.map +1 -1
- package/dist/core/i18n/ar.js +38 -4
- package/dist/core/i18n/ar.js.map +1 -1
- package/dist/core/i18n/de.d.ts.map +1 -1
- package/dist/core/i18n/de.js +38 -4
- package/dist/core/i18n/de.js.map +1 -1
- package/dist/core/i18n/en.d.ts +39 -5
- package/dist/core/i18n/en.d.ts.map +1 -1
- package/dist/core/i18n/en.js +39 -5
- package/dist/core/i18n/en.js.map +1 -1
- package/dist/core/i18n/es.d.ts.map +1 -1
- package/dist/core/i18n/es.js +38 -4
- package/dist/core/i18n/es.js.map +1 -1
- package/dist/core/i18n/fr.d.ts.map +1 -1
- package/dist/core/i18n/fr.js +38 -4
- package/dist/core/i18n/fr.js.map +1 -1
- package/dist/core/i18n/hi.d.ts.map +1 -1
- package/dist/core/i18n/hi.js +38 -4
- package/dist/core/i18n/hi.js.map +1 -1
- package/dist/core/i18n/id.d.ts.map +1 -1
- package/dist/core/i18n/id.js +38 -4
- package/dist/core/i18n/id.js.map +1 -1
- package/dist/core/i18n/ja.d.ts.map +1 -1
- package/dist/core/i18n/ja.js +38 -4
- package/dist/core/i18n/ja.js.map +1 -1
- package/dist/core/i18n/ko.d.ts.map +1 -1
- package/dist/core/i18n/ko.js +38 -4
- package/dist/core/i18n/ko.js.map +1 -1
- package/dist/core/i18n/pt.d.ts.map +1 -1
- package/dist/core/i18n/pt.js +38 -4
- package/dist/core/i18n/pt.js.map +1 -1
- package/dist/core/i18n/ru.d.ts.map +1 -1
- package/dist/core/i18n/ru.js +38 -4
- package/dist/core/i18n/ru.js.map +1 -1
- package/dist/core/i18n/vi.d.ts.map +1 -1
- package/dist/core/i18n/vi.js +38 -4
- package/dist/core/i18n/vi.js.map +1 -1
- package/dist/core/i18n/zh-hant.d.ts.map +1 -1
- package/dist/core/i18n/zh-hant.js +38 -4
- package/dist/core/i18n/zh-hant.js.map +1 -1
- package/dist/core/i18n/zh.d.ts.map +1 -1
- package/dist/core/i18n/zh.js +39 -5
- package/dist/core/i18n/zh.js.map +1 -1
- package/dist/core/object/describe.d.ts +34 -3
- package/dist/core/object/describe.d.ts.map +1 -1
- package/dist/core/object/describe.js +48 -8
- package/dist/core/object/describe.js.map +1 -1
- package/dist/core/object/gen-types.d.ts.map +1 -1
- package/dist/core/object/gen-types.js +12 -1
- package/dist/core/object/gen-types.js.map +1 -1
- package/dist/core/object/graph.d.ts.map +1 -1
- package/dist/core/object/graph.js +52 -22
- package/dist/core/object/graph.js.map +1 -1
- package/dist/core/object/index.d.ts +5 -1
- package/dist/core/object/index.d.ts.map +1 -1
- package/dist/core/object/index.js +5 -1
- package/dist/core/object/index.js.map +1 -1
- package/dist/core/object/migrations.d.ts.map +1 -1
- package/dist/core/object/migrations.js +39 -0
- package/dist/core/object/migrations.js.map +1 -1
- package/dist/core/object/parse.d.ts +7 -0
- package/dist/core/object/parse.d.ts.map +1 -1
- package/dist/core/object/parse.js +32 -1
- package/dist/core/object/parse.js.map +1 -1
- package/dist/core/object/record-key.d.ts +19 -0
- package/dist/core/object/record-key.d.ts.map +1 -0
- package/dist/core/object/record-key.js +100 -0
- package/dist/core/object/record-key.js.map +1 -0
- package/dist/core/object/schema-version.d.ts +1 -1
- package/dist/core/object/schema-version.js +1 -1
- package/dist/core/object/system-objects.d.ts +16 -0
- package/dist/core/object/system-objects.d.ts.map +1 -0
- package/dist/core/object/system-objects.js +72 -0
- package/dist/core/object/system-objects.js.map +1 -0
- package/dist/core/object/validate/field.d.ts.map +1 -1
- package/dist/core/object/validate/field.js +235 -35
- package/dist/core/object/validate/field.js.map +1 -1
- package/dist/core/object/validate/formulas.d.ts.map +1 -1
- package/dist/core/object/validate/formulas.js +6 -0
- package/dist/core/object/validate/formulas.js.map +1 -1
- package/dist/core/object/validate/object.d.ts +2 -0
- package/dist/core/object/validate/object.d.ts.map +1 -1
- package/dist/core/object/validate/object.js +51 -19
- package/dist/core/object/validate/object.js.map +1 -1
- package/dist/core/object/validate/permissions.d.ts.map +1 -1
- package/dist/core/object/validate/permissions.js +4 -0
- package/dist/core/object/validate/permissions.js.map +1 -1
- package/dist/core/object/validate/primitives.d.ts +0 -1
- package/dist/core/object/validate/primitives.d.ts.map +1 -1
- package/dist/core/object/validate/primitives.js +1 -2
- package/dist/core/object/validate/primitives.js.map +1 -1
- package/dist/core/object/validate/workflow.d.ts +10 -0
- package/dist/core/object/validate/workflow.d.ts.map +1 -0
- package/dist/core/object/validate/workflow.js +143 -0
- package/dist/core/object/validate/workflow.js.map +1 -0
- package/dist/core/object/workflow-hash.d.ts +10 -0
- package/dist/core/object/workflow-hash.d.ts.map +1 -0
- package/dist/core/object/workflow-hash.js +27 -0
- package/dist/core/object/workflow-hash.js.map +1 -0
- package/dist/core/object/workflow-migrations.d.ts +27 -0
- package/dist/core/object/workflow-migrations.d.ts.map +1 -0
- package/dist/core/object/workflow-migrations.js +125 -0
- package/dist/core/object/workflow-migrations.js.map +1 -0
- package/dist/core/provider/event/index.d.ts +1 -1
- package/dist/core/provider/event/index.d.ts.map +1 -1
- package/dist/core/provider/event/index.js.map +1 -1
- package/dist/core/provider/event/types.d.ts +17 -2
- package/dist/core/provider/event/types.d.ts.map +1 -1
- package/dist/core/provider/event/types.js +2 -1
- package/dist/core/provider/event/types.js.map +1 -1
- package/dist/core/provider/identity/directory.d.ts +90 -0
- package/dist/core/provider/identity/directory.d.ts.map +1 -0
- package/dist/core/provider/identity/directory.js +3 -0
- package/dist/core/provider/identity/directory.js.map +1 -0
- package/dist/core/provider/identity/index.d.ts +5 -1
- package/dist/core/provider/identity/index.d.ts.map +1 -1
- package/dist/core/provider/identity/index.js +2 -1
- package/dist/core/provider/identity/index.js.map +1 -1
- package/dist/core/provider/identity/source.d.ts +22 -0
- package/dist/core/provider/identity/source.d.ts.map +1 -0
- package/dist/core/provider/identity/source.js +3 -0
- package/dist/core/provider/identity/source.js.map +1 -0
- package/dist/core/provider/identity/types.d.ts +62 -7
- package/dist/core/provider/identity/types.d.ts.map +1 -1
- package/dist/core/provider/identity/types.js +13 -0
- package/dist/core/provider/identity/types.js.map +1 -1
- package/dist/core/proxy/types.d.ts +4 -4
- package/dist/core/proxy/types.d.ts.map +1 -1
- package/dist/core/rbac/authorize.d.ts +10 -9
- package/dist/core/rbac/authorize.d.ts.map +1 -1
- package/dist/core/rbac/authorize.js +23 -18
- package/dist/core/rbac/authorize.js.map +1 -1
- package/dist/core/rbac/details.d.ts +33 -0
- package/dist/core/rbac/details.d.ts.map +1 -0
- package/dist/core/rbac/details.js +74 -0
- package/dist/core/rbac/details.js.map +1 -0
- package/dist/core/rbac/fields.d.ts +2 -1
- package/dist/core/rbac/fields.d.ts.map +1 -1
- package/dist/core/rbac/fields.js +3 -2
- package/dist/core/rbac/fields.js.map +1 -1
- package/dist/core/rbac/index.d.ts +3 -2
- package/dist/core/rbac/index.d.ts.map +1 -1
- package/dist/core/rbac/index.js +2 -1
- package/dist/core/rbac/index.js.map +1 -1
- package/dist/core/rbac/resolve.d.ts +3 -1
- package/dist/core/rbac/resolve.d.ts.map +1 -1
- package/dist/core/rbac/resolve.js +17 -9
- package/dist/core/rbac/resolve.js.map +1 -1
- package/dist/core/rbac/rls.d.ts +6 -0
- package/dist/core/rbac/rls.d.ts.map +1 -1
- package/dist/core/rbac/rls.js +52 -7
- package/dist/core/rbac/rls.js.map +1 -1
- package/dist/core/rbac/rowScope.d.ts +13 -6
- package/dist/core/rbac/rowScope.d.ts.map +1 -1
- package/dist/core/rbac/rowScope.js +88 -16
- package/dist/core/rbac/rowScope.js.map +1 -1
- package/dist/core/rbac/types.d.ts +6 -7
- package/dist/core/rbac/types.d.ts.map +1 -1
- package/dist/core/script/types.d.ts +1 -1
- package/dist/core/script/types.d.ts.map +1 -1
- package/dist/core/storage/diff.d.ts +4 -2
- package/dist/core/storage/diff.d.ts.map +1 -1
- package/dist/core/storage/diff.js +20 -17
- package/dist/core/storage/diff.js.map +1 -1
- package/dist/core/storage/index.d.ts +7 -1
- package/dist/core/storage/index.d.ts.map +1 -1
- package/dist/core/storage/index.js +6 -1
- package/dist/core/storage/index.js.map +1 -1
- package/dist/core/storage/inspect.d.ts +12 -3
- package/dist/core/storage/inspect.d.ts.map +1 -1
- package/dist/core/storage/inspect.js +39 -22
- package/dist/core/storage/inspect.js.map +1 -1
- package/dist/core/storage/introspect.d.ts +9 -2
- package/dist/core/storage/introspect.d.ts.map +1 -1
- package/dist/core/storage/introspect.js +100 -43
- package/dist/core/storage/introspect.js.map +1 -1
- package/dist/core/storage/link-table.d.ts +47 -0
- package/dist/core/storage/link-table.d.ts.map +1 -0
- package/dist/core/storage/link-table.js +110 -0
- package/dist/core/storage/link-table.js.map +1 -0
- package/dist/core/storage/map.d.ts.map +1 -1
- package/dist/core/storage/map.js +135 -81
- package/dist/core/storage/map.js.map +1 -1
- package/dist/core/storage/meta.d.ts +6 -3
- package/dist/core/storage/meta.d.ts.map +1 -1
- package/dist/core/storage/meta.js +9 -5
- package/dist/core/storage/meta.js.map +1 -1
- package/dist/core/storage/migrate.d.ts.map +1 -1
- package/dist/core/storage/migrate.js +144 -11
- package/dist/core/storage/migrate.js.map +1 -1
- package/dist/core/storage/record-key-sql.d.ts +19 -0
- package/dist/core/storage/record-key-sql.d.ts.map +1 -0
- package/dist/core/storage/record-key-sql.js +43 -0
- package/dist/core/storage/record-key-sql.js.map +1 -0
- package/dist/core/storage/record-meta.d.ts +68 -0
- package/dist/core/storage/record-meta.d.ts.map +1 -0
- package/dist/core/storage/record-meta.js +108 -0
- package/dist/core/storage/record-meta.js.map +1 -0
- package/dist/core/storage/report.d.ts.map +1 -1
- package/dist/core/storage/report.js +17 -7
- package/dist/core/storage/report.js.map +1 -1
- package/dist/core/storage/sql-literals.d.ts +9 -0
- package/dist/core/storage/sql-literals.d.ts.map +1 -0
- package/dist/core/storage/sql-literals.js +13 -0
- package/dist/core/storage/sql-literals.js.map +1 -0
- package/dist/core/storage/system-tables.d.ts +44 -0
- package/dist/core/storage/system-tables.d.ts.map +1 -0
- package/dist/core/storage/system-tables.js +268 -0
- package/dist/core/storage/system-tables.js.map +1 -0
- package/dist/core/tools/policies.d.ts +2 -2
- package/dist/core/tools/policies.js +2 -2
- package/dist/core/tools/types.d.ts +6 -6
- package/dist/core/tools/types.d.ts.map +1 -1
- package/dist/core/tools/values.d.ts +5 -0
- package/dist/core/tools/values.d.ts.map +1 -1
- package/dist/core/tools/values.js +9 -1
- package/dist/core/tools/values.js.map +1 -1
- package/dist/core/types/currency.d.ts +9 -0
- package/dist/core/types/currency.d.ts.map +1 -0
- package/dist/core/types/currency.js +28 -0
- package/dist/core/types/currency.js.map +1 -0
- package/dist/core/types/field-type.d.ts +4 -1
- package/dist/core/types/field-type.d.ts.map +1 -1
- package/dist/core/types/fields.d.ts +105 -19
- package/dist/core/types/fields.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +8 -6
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +4 -3
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/object.d.ts +18 -1
- package/dist/core/types/object.d.ts.map +1 -1
- package/dist/core/types/permission.d.ts +5 -0
- package/dist/core/types/permission.d.ts.map +1 -1
- package/dist/core/types/primaryField.d.ts +6 -1
- package/dist/core/types/primaryField.d.ts.map +1 -1
- package/dist/core/types/primaryField.js +8 -1
- package/dist/core/types/primaryField.js.map +1 -1
- package/dist/core/types/registry.d.ts +6 -4
- package/dist/core/types/registry.d.ts.map +1 -1
- package/dist/core/types/registry.js +40 -30
- package/dist/core/types/registry.js.map +1 -1
- package/dist/core/types/values.d.ts +97 -27
- package/dist/core/types/values.d.ts.map +1 -1
- package/dist/core/types/values.js +64 -29
- package/dist/core/types/values.js.map +1 -1
- package/dist/core/types/workflow.d.ts +140 -0
- package/dist/core/types/workflow.d.ts.map +1 -0
- package/dist/core/types/workflow.js +49 -0
- package/dist/core/types/workflow.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/event/bus.d.ts.map +1 -1
- package/dist/infrastructure/event/bus.js +14 -0
- package/dist/infrastructure/event/bus.js.map +1 -1
- package/dist/infrastructure/identity.d.ts +2 -2
- package/dist/infrastructure/identity.d.ts.map +1 -1
- package/dist/infrastructure/identity.js.map +1 -1
- package/dist/layout-format.d.ts +6 -6
- package/dist/layout-format.js +4 -4
- package/dist/runtime/data-access/builder.d.ts +15 -5
- package/dist/runtime/data-access/builder.d.ts.map +1 -1
- package/dist/runtime/data-access/builder.js +222 -30
- package/dist/runtime/data-access/builder.js.map +1 -1
- package/dist/runtime/data-access/details.d.ts.map +1 -1
- package/dist/runtime/data-access/details.js +7 -2
- package/dist/runtime/data-access/details.js.map +1 -1
- package/dist/runtime/data-access/formula.d.ts +11 -3
- package/dist/runtime/data-access/formula.d.ts.map +1 -1
- package/dist/runtime/data-access/formula.js +82 -19
- package/dist/runtime/data-access/formula.js.map +1 -1
- 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/link.d.ts +7 -0
- package/dist/runtime/data-access/link.d.ts.map +1 -0
- package/dist/runtime/data-access/link.js +80 -0
- package/dist/runtime/data-access/link.js.map +1 -0
- package/dist/runtime/data-access/query.d.ts +48 -3
- package/dist/runtime/data-access/query.d.ts.map +1 -1
- package/dist/runtime/data-access/query.js +381 -45
- package/dist/runtime/data-access/query.js.map +1 -1
- package/dist/runtime/data-access/rbac.d.ts.map +1 -1
- package/dist/runtime/data-access/rbac.js +134 -16
- package/dist/runtime/data-access/rbac.js.map +1 -1
- package/dist/runtime/data-access/seqno.d.ts +0 -2
- package/dist/runtime/data-access/seqno.d.ts.map +1 -1
- package/dist/runtime/data-access/seqno.js +0 -9
- package/dist/runtime/data-access/seqno.js.map +1 -1
- package/dist/runtime/data-access/sql-executor.d.ts +13 -3
- package/dist/runtime/data-access/sql-executor.d.ts.map +1 -1
- package/dist/runtime/data-access/sql-executor.js +20 -14
- package/dist/runtime/data-access/sql-executor.js.map +1 -1
- package/dist/runtime/data-access/sql-gate.d.ts +4 -4
- package/dist/runtime/data-access/sql-gate.d.ts.map +1 -1
- package/dist/runtime/data-access/sql-gate.js +5 -5
- package/dist/runtime/data-access/sql-gate.js.map +1 -1
- package/dist/runtime/data-access/tx.d.ts +1 -1
- package/dist/runtime/data-access/tx.js +1 -1
- package/dist/runtime/data-access/types.d.ts +31 -3
- package/dist/runtime/data-access/types.d.ts.map +1 -1
- package/dist/runtime/data-access/validate.d.ts.map +1 -1
- package/dist/runtime/data-access/validate.js +79 -15
- package/dist/runtime/data-access/validate.js.map +1 -1
- package/dist/runtime/data-access/workflow.d.ts +146 -0
- package/dist/runtime/data-access/workflow.d.ts.map +1 -0
- package/dist/runtime/data-access/workflow.js +636 -0
- package/dist/runtime/data-access/workflow.js.map +1 -0
- package/dist/runtime/engine.d.ts +89 -14
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +123 -26
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/fieldtypes/loader.d.ts.map +1 -1
- package/dist/runtime/fieldtypes/loader.js +12 -1
- package/dist/runtime/fieldtypes/loader.js.map +1 -1
- package/dist/runtime/git/guardrailSource.d.ts +1 -1
- package/dist/runtime/git/index.d.ts +4 -2
- package/dist/runtime/git/index.d.ts.map +1 -1
- package/dist/runtime/git/index.js +2 -1
- package/dist/runtime/git/index.js.map +1 -1
- package/dist/runtime/git/layoutSource.d.ts +1 -1
- package/dist/runtime/git/loader.d.ts.map +1 -1
- package/dist/runtime/git/loader.js +18 -6
- package/dist/runtime/git/loader.js.map +1 -1
- package/dist/runtime/git/pageCatalog.d.ts +1 -1
- package/dist/runtime/git/schemaChange.d.ts +22 -0
- package/dist/runtime/git/schemaChange.d.ts.map +1 -1
- package/dist/runtime/git/schemaChange.js +28 -2
- package/dist/runtime/git/schemaChange.js.map +1 -1
- package/dist/runtime/git/schemaSource.d.ts +1 -1
- package/dist/runtime/git/sourceFile.d.ts +1 -1
- package/dist/runtime/git/sourceFile.js +1 -1
- package/dist/runtime/git/sourceTransaction.d.ts +1 -1
- package/dist/runtime/git/workflowSource.d.ts +40 -0
- package/dist/runtime/git/workflowSource.d.ts.map +1 -0
- package/dist/runtime/git/workflowSource.js +45 -0
- package/dist/runtime/git/workflowSource.js.map +1 -0
- package/dist/runtime/identity/admin.d.ts +18 -0
- package/dist/runtime/identity/admin.d.ts.map +1 -0
- package/dist/runtime/identity/admin.js +27 -0
- package/dist/runtime/identity/admin.js.map +1 -0
- package/dist/runtime/identity/directory.d.ts +12 -0
- package/dist/runtime/identity/directory.d.ts.map +1 -0
- package/dist/runtime/identity/directory.js +22 -0
- package/dist/runtime/identity/directory.js.map +1 -0
- package/dist/runtime/identity/index.d.ts +11 -0
- package/dist/runtime/identity/index.d.ts.map +1 -0
- package/dist/runtime/identity/index.js +8 -0
- package/dist/runtime/identity/index.js.map +1 -0
- package/dist/runtime/identity/resolve.d.ts +10 -0
- package/dist/runtime/identity/resolve.d.ts.map +1 -0
- package/dist/runtime/identity/resolve.js +16 -0
- package/dist/runtime/identity/resolve.js.map +1 -0
- package/dist/runtime/identity/sources/function.d.ts +10 -0
- package/dist/runtime/identity/sources/function.d.ts.map +1 -0
- package/dist/runtime/identity/sources/function.js +9 -0
- package/dist/runtime/identity/sources/function.js.map +1 -0
- package/dist/runtime/identity/sources/pg.d.ts +42 -0
- package/dist/runtime/identity/sources/pg.d.ts.map +1 -0
- package/dist/runtime/identity/sources/pg.js +121 -0
- package/dist/runtime/identity/sources/pg.js.map +1 -0
- package/dist/runtime/identity/store.d.ts +27 -0
- package/dist/runtime/identity/store.d.ts.map +1 -0
- package/dist/runtime/identity/store.js +139 -0
- package/dist/runtime/identity/store.js.map +1 -0
- package/dist/runtime/identity/sync.d.ts +34 -0
- package/dist/runtime/identity/sync.d.ts.map +1 -0
- package/dist/runtime/identity/sync.js +149 -0
- package/dist/runtime/identity/sync.js.map +1 -0
- package/dist/runtime/metadata/cache.d.ts +0 -2
- package/dist/runtime/metadata/cache.d.ts.map +1 -1
- package/dist/runtime/metadata/cache.js +0 -11
- package/dist/runtime/metadata/cache.js.map +1 -1
- package/dist/runtime/metadata/index.d.ts +1 -1
- package/dist/runtime/metadata/index.d.ts.map +1 -1
- package/dist/runtime/metadata/index.js +1 -1
- package/dist/runtime/metadata/index.js.map +1 -1
- package/dist/runtime/record-meta/index.d.ts +2 -0
- package/dist/runtime/record-meta/index.d.ts.map +1 -0
- package/dist/runtime/record-meta/index.js +2 -0
- package/dist/runtime/record-meta/index.js.map +1 -0
- package/dist/runtime/record-meta/store.d.ts +43 -0
- package/dist/runtime/record-meta/store.d.ts.map +1 -0
- package/dist/runtime/record-meta/store.js +88 -0
- package/dist/runtime/record-meta/store.js.map +1 -0
- package/dist/runtime/sql-analyzer/index.d.ts.map +1 -1
- package/dist/runtime/sql-analyzer/index.js +59 -0
- package/dist/runtime/sql-analyzer/index.js.map +1 -1
- package/dist/runtime/tools/executor.d.ts +11 -11
- package/dist/runtime/tools/executor.d.ts.map +1 -1
- package/dist/runtime/tools/executor.js +6 -6
- package/dist/runtime/tools/executor.js.map +1 -1
- package/dist/runtime/tools/index.d.ts +2 -0
- package/dist/runtime/tools/index.d.ts.map +1 -1
- package/dist/runtime/tools/index.js +1 -0
- package/dist/runtime/tools/index.js.map +1 -1
- package/dist/runtime/tools/policies.d.ts +22 -5
- package/dist/runtime/tools/policies.d.ts.map +1 -1
- package/dist/runtime/tools/policies.js +42 -12
- package/dist/runtime/tools/policies.js.map +1 -1
- package/dist/runtime/tunnel/connector.d.ts +1 -1
- package/dist/runtime/tunnel/forwarder.js +1 -1
- package/dist/runtime/tunnel/framing.d.ts +1 -1
- package/dist/runtime/tunnel/server.d.ts +1 -1
- package/dist/subsystems/approvals/index.d.ts +4 -4
- package/dist/subsystems/approvals/index.d.ts.map +1 -1
- package/dist/subsystems/approvals/index.js +5 -6
- package/dist/subsystems/approvals/index.js.map +1 -1
- package/dist/subsystems/approvals/store.d.ts +1 -3
- package/dist/subsystems/approvals/store.d.ts.map +1 -1
- package/dist/subsystems/approvals/store.js +1 -16
- package/dist/subsystems/approvals/store.js.map +1 -1
- package/dist/subsystems/audit/index.d.ts +1 -1
- package/dist/subsystems/audit/index.d.ts.map +1 -1
- package/dist/subsystems/audit/index.js +2 -3
- package/dist/subsystems/audit/index.js.map +1 -1
- package/dist/subsystems/audit/store.d.ts +0 -2
- package/dist/subsystems/audit/store.d.ts.map +1 -1
- package/dist/subsystems/audit/store.js +0 -21
- package/dist/subsystems/audit/store.js.map +1 -1
- package/dist/subsystems/quota/store.d.ts +9 -0
- package/dist/subsystems/quota/store.d.ts.map +1 -1
- package/dist/subsystems/quota/store.js +0 -8
- package/dist/subsystems/quota/store.js.map +1 -1
- package/dist/subsystems/script/backend/isolated-vm.js +4 -4
- package/dist/subsystems/script/backend/types.d.ts +2 -2
- package/dist/subsystems/script/backend/types.d.ts.map +1 -1
- package/dist/subsystems/script/bridge.d.ts +1 -1
- package/dist/subsystems/script/bridge.d.ts.map +1 -1
- package/dist/subsystems/script/bridge.js +6 -4
- package/dist/subsystems/script/bridge.js.map +1 -1
- package/dist/subsystems/script/dispatcher.d.ts.map +1 -1
- package/dist/subsystems/script/dispatcher.js +3 -1
- package/dist/subsystems/script/dispatcher.js.map +1 -1
- package/dist/subsystems/workflow/index.d.ts +4 -0
- package/dist/subsystems/workflow/index.d.ts.map +1 -0
- package/dist/subsystems/workflow/index.js +3 -0
- package/dist/subsystems/workflow/index.js.map +1 -0
- package/dist/subsystems/workflow/scheduler.d.ts +27 -0
- package/dist/subsystems/workflow/scheduler.d.ts.map +1 -0
- package/dist/subsystems/workflow/scheduler.js +109 -0
- package/dist/subsystems/workflow/scheduler.js.map +1 -0
- package/dist/subsystems/workflow/store.d.ts +10 -0
- package/dist/subsystems/workflow/store.d.ts.map +1 -0
- package/dist/subsystems/workflow/store.js +44 -0
- package/dist/subsystems/workflow/store.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +9 -5
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { DEFAULT_LOCALE } from '../i18n/index.js';
|
|
2
|
+
import { WORKFLOW_FORMAT_VERSION } from '../types/workflow.js';
|
|
3
|
+
import { SchemaError } from '../types/errors.js';
|
|
4
|
+
function isRecord(value) {
|
|
5
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
function asArray(value) {
|
|
8
|
+
return Array.isArray(value) ? value.filter(isRecord) : [];
|
|
9
|
+
}
|
|
10
|
+
function rolesOf(value) {
|
|
11
|
+
return Array.isArray(value) ? value.filter((r) => typeof r === 'string' && r.length > 0) : [];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Best-effort linearization of a v1 state machine (`states[]` + `transitions[]`)
|
|
15
|
+
* into a v2 single-line `nodes[]`. The implicit start node replaces the old
|
|
16
|
+
* `initial` state. Roles are gathered from the transitions touching each state;
|
|
17
|
+
* a state with no derivable roles falls back to `['*']` (fail-closed at runtime
|
|
18
|
+
* until the author edits it). There are no v1 users in the wild, so this path is
|
|
19
|
+
* exercised only by tests / deliberate upgrades.
|
|
20
|
+
*/
|
|
21
|
+
function linearizeV1(raw) {
|
|
22
|
+
const initial = typeof raw.initial === 'string' ? raw.initial : undefined;
|
|
23
|
+
const states = asArray(raw.states);
|
|
24
|
+
const transitions = asArray(raw.transitions);
|
|
25
|
+
const allRoles = [...new Set(transitions.flatMap((t) => rolesOf(t.roles)))];
|
|
26
|
+
const rolesFor = (name) => {
|
|
27
|
+
const into = transitions.find((t) => t.to === name && rolesOf(t.roles).length > 0);
|
|
28
|
+
if (into !== undefined)
|
|
29
|
+
return rolesOf(into.roles);
|
|
30
|
+
const out = transitions.find((t) => t.from === name && rolesOf(t.roles).length > 0);
|
|
31
|
+
if (out !== undefined)
|
|
32
|
+
return rolesOf(out.roles);
|
|
33
|
+
return allRoles.length > 0 ? allRoles : ['*'];
|
|
34
|
+
};
|
|
35
|
+
const order = states
|
|
36
|
+
.map((s) => s.name)
|
|
37
|
+
.filter((n) => typeof n === 'string' && n !== initial);
|
|
38
|
+
const position = new Map(order.map((n, idx) => [n, idx]));
|
|
39
|
+
return order.map((name) => {
|
|
40
|
+
const state = states.find((s) => s.name === name);
|
|
41
|
+
const labels = isRecord(state?.labels) ? state.labels : undefined;
|
|
42
|
+
const reject = transitions.find((t) => t.from === name && typeof t.action === 'string' && t.action.includes('reject'));
|
|
43
|
+
const onReject = reject !== undefined &&
|
|
44
|
+
typeof reject.to === 'string' &&
|
|
45
|
+
reject.to !== initial &&
|
|
46
|
+
position.has(reject.to) &&
|
|
47
|
+
position.get(reject.to) < position.get(name)
|
|
48
|
+
? reject.to
|
|
49
|
+
: undefined;
|
|
50
|
+
const timeout = isRecord(state?.onTimeout) && typeof state.onTimeout.after === 'string'
|
|
51
|
+
? {
|
|
52
|
+
after: state.onTimeout.after,
|
|
53
|
+
action: typeof state.onTimeout.action === 'string' && state.onTimeout.action.includes('reject')
|
|
54
|
+
? 'reject'
|
|
55
|
+
: 'approve',
|
|
56
|
+
}
|
|
57
|
+
: undefined;
|
|
58
|
+
return {
|
|
59
|
+
id: name,
|
|
60
|
+
...(labels === undefined ? {} : { name: labels }),
|
|
61
|
+
assign: { roles: rolesFor(name) },
|
|
62
|
+
...(onReject === undefined ? {} : { onReject }),
|
|
63
|
+
...(timeout === undefined ? {} : { onTimeout: timeout }),
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* On-disk `workflow.json` format migrations: `from`-version → a transform
|
|
69
|
+
* producing version+1. Mirror of `core/object/migrations.ts` for the sibling
|
|
70
|
+
* workflow file; append a step here whenever {@link WORKFLOW_FORMAT_VERSION} is
|
|
71
|
+
* bumped. Steps must be pure (no files/database).
|
|
72
|
+
*/
|
|
73
|
+
const WORKFLOW_MIGRATIONS = {
|
|
74
|
+
// v0 (unversioned) → v1: make the format version explicit.
|
|
75
|
+
0: (raw) => ({ ...raw, schemaVersion: 1 }),
|
|
76
|
+
// v1 (states/transitions) → v2 (single-line nodes chain).
|
|
77
|
+
1: (raw) => ({
|
|
78
|
+
schemaVersion: 2,
|
|
79
|
+
...(raw.version === undefined ? {} : { version: raw.version }),
|
|
80
|
+
nodes: linearizeV1(raw),
|
|
81
|
+
}),
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* The declared format version of a raw `workflow.json`. When `schemaVersion` is
|
|
85
|
+
* absent the shape decides: a `nodes[]` chain is the current format (v2), while
|
|
86
|
+
* a state machine (`states`/`transitions`) or anything else is legacy 0. This
|
|
87
|
+
* keeps a v2 file that omits `schemaVersion` from being misread as v1 (which
|
|
88
|
+
* would linearize its absent states into an empty chain).
|
|
89
|
+
*/
|
|
90
|
+
export function workflowFormatVersionOf(raw, locale = DEFAULT_LOCALE) {
|
|
91
|
+
const value = raw.schemaVersion;
|
|
92
|
+
if (value === undefined) {
|
|
93
|
+
return Array.isArray(raw.nodes) ? WORKFLOW_FORMAT_VERSION : 0;
|
|
94
|
+
}
|
|
95
|
+
if (typeof value !== 'number' || !Number.isInteger(value) || value < 0) {
|
|
96
|
+
throw new SchemaError('schema.version.unsupported', { version: String(value), supported: WORKFLOW_FORMAT_VERSION }, locale);
|
|
97
|
+
}
|
|
98
|
+
if (value > WORKFLOW_FORMAT_VERSION) {
|
|
99
|
+
throw new SchemaError('schema.version.unsupported', { version: value, supported: WORKFLOW_FORMAT_VERSION }, locale);
|
|
100
|
+
}
|
|
101
|
+
return value;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Bring a raw `workflow.json` up to the current on-disk format (pure). Used by
|
|
105
|
+
* the loader (read-time normalization of older files) and `weave workflow:upgrade`.
|
|
106
|
+
*/
|
|
107
|
+
export function migrateWorkflowObject(raw, locale = DEFAULT_LOCALE) {
|
|
108
|
+
let version = workflowFormatVersionOf(raw, locale);
|
|
109
|
+
const from = version;
|
|
110
|
+
let current = raw;
|
|
111
|
+
while (version < WORKFLOW_FORMAT_VERSION) {
|
|
112
|
+
const step = WORKFLOW_MIGRATIONS[version];
|
|
113
|
+
if (step === undefined) {
|
|
114
|
+
throw new SchemaError('schema.version.unsupported', { version, supported: WORKFLOW_FORMAT_VERSION }, locale);
|
|
115
|
+
}
|
|
116
|
+
current = step(current);
|
|
117
|
+
version += 1;
|
|
118
|
+
}
|
|
119
|
+
return { workflow: current, from, migrated: current !== raw };
|
|
120
|
+
}
|
|
121
|
+
/** true when `value` is a plain workflow object (guards JSON.parse output) */
|
|
122
|
+
export function isWorkflowObject(value) {
|
|
123
|
+
return isRecord(value);
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=workflow-migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-migrations.js","sourceRoot":"","sources":["../../../src/core/object/workflow-migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { EVENT_TYPES, type AuditEventPayload, type EngineEvent, type EventBus, type EventPayload, type EventPublisher, type EventType, type PublishInput, type RecordAction, type RecordChangePayload, type ReplayResult, type SchemaChangedPayload, } from './types.js';
|
|
1
|
+
export { EVENT_TYPES, type AuditEventPayload, type EngineEvent, type EventBus, type EventPayload, type EventPublisher, type EventType, type PublishInput, type RecordAction, type RecordChangePayload, type RecordTransitionedPayload, type ReplayResult, type SchemaChangedPayload, } from './types.js';
|
|
2
2
|
export type { InboundEvent, IngressConfig, IngressContext, IngressHandler, IngressRequest, IngressVerifier, } from './ingress.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/event/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/event/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/provider/event/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/provider/event/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAaZ,MAAM,YAAY,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AuditEvent } from '../../audit/index.js';
|
|
2
2
|
/**
|
|
3
|
-
* Engine live event contract
|
|
3
|
+
* Engine live event contract — pure interfaces, zero dependencies.
|
|
4
4
|
* Implementations live in `infrastructure/event`; the SSE adapter in
|
|
5
5
|
* `adapters/events`; data-access only depends on the narrow publisher that the
|
|
6
6
|
* assembly layer injects (keeps "disabled = not imported = zero overhead").
|
|
@@ -10,6 +10,7 @@ export declare const EVENT_TYPES: {
|
|
|
10
10
|
readonly RECORD_CREATED: "record.created";
|
|
11
11
|
readonly RECORD_UPDATED: "record.updated";
|
|
12
12
|
readonly RECORD_DELETED: "record.deleted";
|
|
13
|
+
readonly RECORD_TRANSITIONED: "record.transitioned";
|
|
13
14
|
readonly AUDIT_EVENT: "audit.event";
|
|
14
15
|
readonly SCHEMA_CHANGED: "schema.changed";
|
|
15
16
|
readonly SCHEMA_DRIFT: "schema.drift";
|
|
@@ -28,6 +29,18 @@ export interface RecordChangePayload {
|
|
|
28
29
|
object: string;
|
|
29
30
|
id: string;
|
|
30
31
|
}
|
|
32
|
+
/** workflow transition payload — the state change and the action that fired it */
|
|
33
|
+
export interface RecordTransitionedPayload {
|
|
34
|
+
object: string;
|
|
35
|
+
id: string;
|
|
36
|
+
from: string;
|
|
37
|
+
to: string;
|
|
38
|
+
action: string;
|
|
39
|
+
/** author-managed definition revision active at transition time */
|
|
40
|
+
workflowVersion?: number;
|
|
41
|
+
/** semantic hash of the definition active at transition time */
|
|
42
|
+
workflowHash?: string;
|
|
43
|
+
}
|
|
31
44
|
/** audit payload — the full AuditEvent, filtered per-subscriber before delivery */
|
|
32
45
|
export interface AuditEventPayload {
|
|
33
46
|
event: AuditEvent;
|
|
@@ -55,7 +68,7 @@ export interface LifecyclePayload {
|
|
|
55
68
|
kind: LifecycleKind;
|
|
56
69
|
}
|
|
57
70
|
/** type-specific payload */
|
|
58
|
-
export type EventPayload = RecordChangePayload | AuditEventPayload | SchemaChangedPayload | SchemaDriftPayload | LifecyclePayload;
|
|
71
|
+
export type EventPayload = RecordChangePayload | RecordTransitionedPayload | AuditEventPayload | SchemaChangedPayload | SchemaDriftPayload | LifecyclePayload;
|
|
59
72
|
/** one engine event with a monotonically increasing sequence (replay anchor) */
|
|
60
73
|
export interface EngineEvent {
|
|
61
74
|
seq: number;
|
|
@@ -76,6 +89,8 @@ export type ReplayResult = 'ok' | 'gap';
|
|
|
76
89
|
*/
|
|
77
90
|
export interface EventPublisher {
|
|
78
91
|
publishRecordChange(action: RecordAction, object: string, id: string): void;
|
|
92
|
+
/** compact workflow-transition event (from/to/action + definition identity); emitted alongside the record update */
|
|
93
|
+
publishRecordTransitioned(object: string, id: string, from: string, to: string, action: string, workflowVersion?: number, workflowHash?: string): void;
|
|
79
94
|
publishAudit(event: AuditEvent): void;
|
|
80
95
|
publishSchemaChanged(): void;
|
|
81
96
|
/** notify connected subscribers that a schema reload was rejected (drift) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/event/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;GAKG;AAEH,qEAAqE;AACrE,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/event/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Engine live event contract
|
|
2
|
+
* Engine live event contract — pure interfaces, zero dependencies.
|
|
3
3
|
* Implementations live in `infrastructure/event`; the SSE adapter in
|
|
4
4
|
* `adapters/events`; data-access only depends on the narrow publisher that the
|
|
5
5
|
* assembly layer injects (keeps "disabled = not imported = zero overhead").
|
|
@@ -9,6 +9,7 @@ export const EVENT_TYPES = {
|
|
|
9
9
|
RECORD_CREATED: 'record.created',
|
|
10
10
|
RECORD_UPDATED: 'record.updated',
|
|
11
11
|
RECORD_DELETED: 'record.deleted',
|
|
12
|
+
RECORD_TRANSITIONED: 'record.transitioned',
|
|
12
13
|
AUDIT_EVENT: 'audit.event',
|
|
13
14
|
SCHEMA_CHANGED: 'schema.changed',
|
|
14
15
|
SCHEMA_DRIFT: 'schema.drift',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/provider/event/types.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAGX,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,UAAU;CACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/provider/event/types.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,mBAAmB,EAAE,qBAAqB;IAC1C,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAGX,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,UAAU;CACZ,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { IdentitySubject } from './types.js';
|
|
2
|
+
/** contract version for `IdentityStore`/`IdentityDirectory` implementers */
|
|
3
|
+
export declare const IDENTITY_STORE_API = 1;
|
|
4
|
+
/** a stored user row (contract view; ids are internal uuids) */
|
|
5
|
+
export interface IdentityUserRow {
|
|
6
|
+
id: string;
|
|
7
|
+
externalSource: string | null;
|
|
8
|
+
externalId: string | null;
|
|
9
|
+
roles: string[];
|
|
10
|
+
departmentId: string | null;
|
|
11
|
+
directorId: string | null;
|
|
12
|
+
enabled: boolean | null;
|
|
13
|
+
}
|
|
14
|
+
/** a stored department row (contract view; ids are internal uuids) */
|
|
15
|
+
export interface IdentityDepartmentRow {
|
|
16
|
+
id: string;
|
|
17
|
+
externalSource: string | null;
|
|
18
|
+
externalId: string | null;
|
|
19
|
+
parentId: string | null;
|
|
20
|
+
managerId: string | null;
|
|
21
|
+
enabled: boolean | null;
|
|
22
|
+
}
|
|
23
|
+
/** upsert input for a user (the sync engine fills internal link ids) */
|
|
24
|
+
export interface IdentityUserInput {
|
|
25
|
+
externalSource: string;
|
|
26
|
+
externalId: string;
|
|
27
|
+
name?: string | null;
|
|
28
|
+
email?: string | null;
|
|
29
|
+
mobile?: string | null;
|
|
30
|
+
roles?: string[];
|
|
31
|
+
departmentId?: string | null;
|
|
32
|
+
directorId?: string | null;
|
|
33
|
+
enabled?: boolean | null;
|
|
34
|
+
}
|
|
35
|
+
/** upsert input for a department */
|
|
36
|
+
export interface IdentityDepartmentInput {
|
|
37
|
+
externalSource: string;
|
|
38
|
+
externalId: string;
|
|
39
|
+
name?: string | null;
|
|
40
|
+
code?: string | null;
|
|
41
|
+
parentId?: string | null;
|
|
42
|
+
managerId?: string | null;
|
|
43
|
+
enabled?: boolean | null;
|
|
44
|
+
}
|
|
45
|
+
/** greenfield user creation (an engine-owned user with no external source) */
|
|
46
|
+
export interface IdentityUserCreate {
|
|
47
|
+
name?: string | null;
|
|
48
|
+
email?: string | null;
|
|
49
|
+
mobile?: string | null;
|
|
50
|
+
roles?: string[];
|
|
51
|
+
departmentId?: string | null;
|
|
52
|
+
directorId?: string | null;
|
|
53
|
+
enabled?: boolean | null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Replaceable persistence for the local identity directory (default: PG over
|
|
57
|
+
* `weavekit_user`/`weavekit_department`). The engine-only `external_source` +
|
|
58
|
+
* `external_id` pair is the natural key an upsert matches on.
|
|
59
|
+
*/
|
|
60
|
+
export interface IdentityStore {
|
|
61
|
+
/** look a user up by internal id OR external id (`ref` is matched against both) */
|
|
62
|
+
findUser(ref: string): Promise<IdentityUserRow | null>;
|
|
63
|
+
findUserByExternal(source: string, externalId: string): Promise<IdentityUserRow | null>;
|
|
64
|
+
findDepartmentByExternal(source: string, externalId: string): Promise<IdentityDepartmentRow | null>;
|
|
65
|
+
/** external ids currently stored for a source (used to soft-disable the missing) */
|
|
66
|
+
listExternalIds(source: string): Promise<{
|
|
67
|
+
users: string[];
|
|
68
|
+
departments: string[];
|
|
69
|
+
}>;
|
|
70
|
+
upsertUser(input: IdentityUserInput): Promise<{
|
|
71
|
+
id: string;
|
|
72
|
+
}>;
|
|
73
|
+
upsertDepartment(input: IdentityDepartmentInput): Promise<{
|
|
74
|
+
id: string;
|
|
75
|
+
}>;
|
|
76
|
+
/** create an engine-owned (greenfield) user with no external source */
|
|
77
|
+
createUser(input: IdentityUserCreate): Promise<{
|
|
78
|
+
id: string;
|
|
79
|
+
}>;
|
|
80
|
+
/** list local users (admin surface) */
|
|
81
|
+
listUsers(): Promise<IdentityUserRow[]>;
|
|
82
|
+
setEnabled(kind: 'user' | 'department', id: string, enabled: boolean): Promise<void>;
|
|
83
|
+
getCursor(source: string): Promise<string | null>;
|
|
84
|
+
setCursor(source: string, cursor: string): Promise<void>;
|
|
85
|
+
}
|
|
86
|
+
/** resolve a reference / claims into the internal subject (null = unknown) */
|
|
87
|
+
export interface IdentityDirectory {
|
|
88
|
+
resolve(ref: string, claims?: Record<string, unknown>): Promise<IdentitySubject | null>;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=directory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/identity/directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../../../src/core/provider/identity/directory.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export type { IdentityResolver } from './types.js';
|
|
1
|
+
export type { IdentitySubject, VerifiedIdentity, IdentityUser, IdentityDepartment, IdentityPullResult, IdentityResolver, } from './types.js';
|
|
2
|
+
export type { IdentitySource } from './source.js';
|
|
3
|
+
export { IDENTITY_SOURCE_API } from './source.js';
|
|
4
|
+
export type { IdentityStore, IdentityDirectory, IdentityUserRow, IdentityDepartmentRow, IdentityUserInput, IdentityDepartmentInput, IdentityUserCreate, } from './directory.js';
|
|
5
|
+
export { IDENTITY_STORE_API } from './directory.js';
|
|
2
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/identity/index.ts"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/identity/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/provider/identity/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/provider/identity/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { IdentityPullResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Identity **provisioning** seam: a source pulls a normalized user/department
|
|
4
|
+
* snapshot that the sync engine upserts into the local directory. Sources are
|
|
5
|
+
* injected via config (no global registry) — the engine ships `pg` and
|
|
6
|
+
* `function`; enterprise implements SCIM/LDAP/HRIS against this same contract.
|
|
7
|
+
*/
|
|
8
|
+
export interface IdentitySource {
|
|
9
|
+
/** value stored as `weavekit_user/department.external_source` */
|
|
10
|
+
readonly name: string;
|
|
11
|
+
/** pull a snapshot (pass the previous cursor for incremental sources) */
|
|
12
|
+
pull(cursor?: string): Promise<IdentityPullResult>;
|
|
13
|
+
capabilities?: {
|
|
14
|
+
/** `pull(cursor)` returns only changes since the cursor */
|
|
15
|
+
incremental?: boolean;
|
|
16
|
+
/** the source knows deletions; the sync may soft-disable missing rows */
|
|
17
|
+
deactivates?: boolean;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** contract version for `IdentitySource` implementers (stable seam) */
|
|
21
|
+
export declare const IDENTITY_SOURCE_API = 1;
|
|
22
|
+
//# sourceMappingURL=source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/identity/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnD,YAAY,CAAC,EAAE;QACb,2DAA2D;QAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,yEAAyE;QACzE,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../src/core/provider/identity/source.ts"],"names":[],"mappings":"AAqBA,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC"}
|
|
@@ -1,11 +1,66 @@
|
|
|
1
|
-
import type { RbacSubject } from '../../rbac/index.js';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Identity contracts (provider layer, pure — no I/O, no protocol libraries).
|
|
3
|
+
*
|
|
4
|
+
* Three responsibilities are kept separate:
|
|
5
|
+
* - **AuthN** verifies a credential and yields a {@link VerifiedIdentity}
|
|
6
|
+
* - **Directory** resolves a reference/claims into the internal
|
|
7
|
+
* {@link IdentitySubject} RBAC/audit/workflow consume
|
|
8
|
+
* - **Provisioning** imports a normalized snapshot via {@link IdentitySource}
|
|
9
|
+
* (see `source.ts`) into the local directory (`directory.ts`)
|
|
6
10
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
11
|
+
* The engine owns the internal id space: every subject id is a `weavekit_user`
|
|
12
|
+
* uuid, regardless of which external source the person came from.
|
|
13
|
+
*/
|
|
14
|
+
/** the internal identity RBAC decisions run against (internal uuid id space) */
|
|
15
|
+
export interface IdentitySubject {
|
|
16
|
+
id: string;
|
|
17
|
+
roles: string[];
|
|
18
|
+
/** department whose subtree the subject may read (department scope) */
|
|
19
|
+
departmentId?: string;
|
|
20
|
+
}
|
|
21
|
+
/** an authenticated but not-yet-resolved identity (a verifier's output) */
|
|
22
|
+
export interface VerifiedIdentity {
|
|
23
|
+
/** external user reference (the credential subject / claim the verifier trusts) */
|
|
24
|
+
ref: string;
|
|
25
|
+
/** raw claims the verifier surfaced (e.g. OIDC claims) */
|
|
26
|
+
claims?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
/** one user as imported from an identity source (normalized, source-agnostic) */
|
|
29
|
+
export interface IdentityUser {
|
|
30
|
+
externalId: string;
|
|
31
|
+
name?: string;
|
|
32
|
+
email?: string;
|
|
33
|
+
mobile?: string;
|
|
34
|
+
roles?: string[];
|
|
35
|
+
/** external id of the department this user belongs to */
|
|
36
|
+
departmentExternalId?: string;
|
|
37
|
+
/** external id of the user's direct manager (reporting line) */
|
|
38
|
+
directorExternalId?: string;
|
|
39
|
+
enabled?: boolean;
|
|
40
|
+
attributes?: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
/** one department (org unit) as imported from an identity source */
|
|
43
|
+
export interface IdentityDepartment {
|
|
44
|
+
externalId: string;
|
|
45
|
+
name?: string;
|
|
46
|
+
code?: string;
|
|
47
|
+
/** external id of the parent department (org hierarchy) */
|
|
48
|
+
parentExternalId?: string;
|
|
49
|
+
/** external id of the department head */
|
|
50
|
+
managerExternalId?: string;
|
|
51
|
+
enabled?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/** one pull from an identity source */
|
|
54
|
+
export interface IdentityPullResult {
|
|
55
|
+
users: IdentityUser[];
|
|
56
|
+
departments: IdentityDepartment[];
|
|
57
|
+
/** incremental cursor for the next pull (source-defined watermark) */
|
|
58
|
+
cursor?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Resolve a user reference (e.g. the MCP `X-Weavekit-On-Behalf-Of` header) into
|
|
62
|
+
* the subject RBAC decisions run against. Implementations return null for
|
|
63
|
+
* unknown references (callers reject) — an empty directory rejects everything.
|
|
9
64
|
*/
|
|
10
|
-
export type IdentityResolver = (ref: string) =>
|
|
65
|
+
export type IdentityResolver = (ref: string) => IdentitySubject | null | Promise<IdentitySubject | null>;
|
|
11
66
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/identity/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/provider/identity/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC"}
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity contracts (provider layer, pure — no I/O, no protocol libraries).
|
|
3
|
+
*
|
|
4
|
+
* Three responsibilities are kept separate:
|
|
5
|
+
* - **AuthN** verifies a credential and yields a {@link VerifiedIdentity}
|
|
6
|
+
* - **Directory** resolves a reference/claims into the internal
|
|
7
|
+
* {@link IdentitySubject} RBAC/audit/workflow consume
|
|
8
|
+
* - **Provisioning** imports a normalized snapshot via {@link IdentitySource}
|
|
9
|
+
* (see `source.ts`) into the local directory (`directory.ts`)
|
|
10
|
+
*
|
|
11
|
+
* The engine owns the internal id space: every subject id is a `weavekit_user`
|
|
12
|
+
* uuid, regardless of which external source the person came from.
|
|
13
|
+
*/
|
|
1
14
|
export {};
|
|
2
15
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/provider/identity/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/provider/identity/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IdentitySubject } from '../rbac/types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Single source of truth for the engine generic proxy vocabulary. This module is
|
|
4
4
|
* pure types + static validation (`isAllowedProxyPath`); it carries no network
|
|
@@ -48,7 +48,7 @@ export interface ProxyTarget {
|
|
|
48
48
|
id: string;
|
|
49
49
|
/** customer-engine base URL (used for `direct`; opaque for `tunnel`/`cloud`). */
|
|
50
50
|
url: string;
|
|
51
|
-
/** how the target is reached: `direct` (url) | `tunnel` (HTTP/2 connector) | `cloud` (in-cloud app instance). Forwarder uses `url` today; transport-aware routing is
|
|
51
|
+
/** how the target is reached: `direct` (url) | `tunnel` (HTTP/2 connector) | `cloud` (in-cloud app instance). Forwarder uses `url` today; transport-aware routing is not implemented yet. */
|
|
52
52
|
transport?: string;
|
|
53
53
|
/** read/admin key (the application layer reads it from the connection). */
|
|
54
54
|
apiKey: string;
|
|
@@ -83,9 +83,9 @@ export interface ProxyResponse {
|
|
|
83
83
|
*/
|
|
84
84
|
export interface ProxyTargetResolver {
|
|
85
85
|
/** Resolve a target by instance; `null` when unregistered (→ 404). Whoever can access which connection is the app's call. */
|
|
86
|
-
resolve(instance: string, subject:
|
|
86
|
+
resolve(instance: string, subject: IdentitySubject): Promise<ProxyTarget | null>;
|
|
87
87
|
/** Optional: list targets the subject may reach (for `GET /api/proxy`). */
|
|
88
|
-
list?(subject:
|
|
88
|
+
list?(subject: IdentitySubject): Promise<ProxyTarget[]>;
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Pure gate: is `method`+`path` within an `allow` prefix? GET → `read`, every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/proxy/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/proxy/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;;;;;GASG;AAEH,oDAAoD;AACpD,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE3E,yEAAyE;AACzE,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,kIAAkI;IAClI,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,6HAA6H;IAC7H,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,+GAA+G;AAC/G,eAAO,MAAM,mBAAmB,EAAE,UAGjC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ,6LAA6L;IAC7L,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;2EAEuE;IACvE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,kGAAkG;AAClG,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oHAAoH;IACpH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,6HAA6H;IAC7H,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjF,2EAA2E;IAC3E,IAAI,CAAC,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CACzD;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAY3F"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { ObjectDefinition } from '../types/index.js';
|
|
2
2
|
import type { Locale } from '../i18n/index.js';
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
3
|
+
import { type ObjectLookup } from './details.js';
|
|
4
|
+
export declare function canCreate(def: ObjectDefinition, roles: readonly string[], lookup?: ObjectLookup): boolean;
|
|
5
|
+
export declare function canDelete(def: ObjectDefinition, roles: readonly string[], lookup?: ObjectLookup): boolean;
|
|
6
|
+
export declare function canUpdate(def: ObjectDefinition, roles: readonly string[], lookup?: ObjectLookup): boolean;
|
|
7
|
+
export declare function canUpdateField(def: ObjectDefinition, roles: readonly string[], field: string, lookup?: ObjectLookup): boolean;
|
|
7
8
|
/** allowed update fields; null = all fields, [] = none */
|
|
8
|
-
export declare function allowedUpdateFields(def: ObjectDefinition, roles: readonly string[]): string[] | null;
|
|
9
|
-
export declare function assertCanCreate(def: ObjectDefinition, roles: readonly string[], locale?: Locale): void;
|
|
10
|
-
export declare function assertCanUpdate(def: ObjectDefinition, roles: readonly string[], locale?: Locale): void;
|
|
11
|
-
export declare function assertCanDelete(def: ObjectDefinition, roles: readonly string[], locale?: Locale): void;
|
|
12
|
-
export declare function assertCanUpdateField(def: ObjectDefinition, roles: readonly string[], field: string, locale?: Locale): void;
|
|
9
|
+
export declare function allowedUpdateFields(def: ObjectDefinition, roles: readonly string[], lookup?: ObjectLookup): string[] | null;
|
|
10
|
+
export declare function assertCanCreate(def: ObjectDefinition, roles: readonly string[], locale?: Locale, lookup?: ObjectLookup): void;
|
|
11
|
+
export declare function assertCanUpdate(def: ObjectDefinition, roles: readonly string[], locale?: Locale, lookup?: ObjectLookup): void;
|
|
12
|
+
export declare function assertCanDelete(def: ObjectDefinition, roles: readonly string[], locale?: Locale, lookup?: ObjectLookup): void;
|
|
13
|
+
export declare function assertCanUpdateField(def: ObjectDefinition, roles: readonly string[], field: string, locale?: Locale, lookup?: ObjectLookup): void;
|
|
13
14
|
//# sourceMappingURL=authorize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../../src/core/rbac/authorize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../../src/core/rbac/authorize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAevE,wBAAgB,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAEzG;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAEzG;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAIzG;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAIT;AAED,0DAA0D;AAC1D,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,CAAC,EAAE,YAAY,GACpB,MAAM,EAAE,GAAG,IAAI,CAEjB;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAEN;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAEN;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAEN;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,GACpB,IAAI,CAIN"}
|