@sixb/core 0.1.7 → 0.1.8
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/dist/actions/delegated-admission.d.ts +24 -0
- package/dist/actions/delegated-admission.d.ts.map +1 -0
- package/dist/actions/descriptor.d.ts +29 -0
- package/dist/actions/descriptor.d.ts.map +1 -0
- package/dist/actions/execution.d.ts +5 -5
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.js +36 -30
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +20 -0
- package/dist/actions/run-authorization.d.ts.map +1 -0
- package/dist/actions/run-dispatch.d.ts +3 -1
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/worker.js +3 -3
- package/dist/actions/worker.js.map +1 -1
- package/dist/agents/adapters.d.ts +5 -122
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +1 -1
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context-resolution.d.ts.map +1 -1
- package/dist/agents/context.js +1 -1
- package/dist/agents/errors.d.ts +0 -9
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/execution.d.ts.map +1 -1
- package/dist/agents/identity.d.ts +3 -0
- package/dist/agents/identity.d.ts.map +1 -0
- package/dist/agents/index.d.ts +3 -3
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +43 -43
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +4 -5
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/model-loop.d.ts +2 -0
- package/dist/agents/model-loop.d.ts.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/tool-definition.d.ts +0 -1
- package/dist/agents/tool-definition.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +0 -4
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/ai-usage/execution.d.ts.map +1 -1
- package/dist/auth/index.js +8 -5
- package/dist/auth/index.js.map +1 -1
- package/dist/authorization/decision.d.ts +10 -2
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +2 -1
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +7 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/bootstrap/discovery.d.ts +7 -1
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.js +46 -39
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/chunk-19jp6g9d.js +131 -0
- package/dist/chunk-19jp6g9d.js.map +11 -0
- package/dist/{chunk-x0qhkqje.js → chunk-2dw777qw.js} +50 -5
- package/dist/{chunk-x0qhkqje.js.map → chunk-2dw777qw.js.map} +4 -3
- package/dist/chunk-359jm1jw.js +147 -0
- package/dist/chunk-359jm1jw.js.map +10 -0
- package/dist/{chunk-2b5qtban.js → chunk-3xep5cjx.js} +56 -21
- package/dist/chunk-3xep5cjx.js.map +15 -0
- package/dist/{chunk-qjycjdj6.js → chunk-3z1qec12.js} +6 -8
- package/dist/{chunk-qjycjdj6.js.map → chunk-3z1qec12.js.map} +2 -2
- package/dist/{chunk-5jcdmjam.js → chunk-4jjp5k14.js} +1 -1
- package/dist/{chunk-n2arzn6e.js → chunk-4qfkag59.js} +44 -221
- package/dist/chunk-4qfkag59.js.map +20 -0
- package/dist/{chunk-rre42skh.js → chunk-4sm0aznx.js} +515 -80
- package/dist/{chunk-rre42skh.js.map → chunk-4sm0aznx.js.map} +11 -7
- package/dist/chunk-4yqmp43v.js +159 -0
- package/dist/chunk-4yqmp43v.js.map +11 -0
- package/dist/{chunk-atmkaf60.js → chunk-5e3pq99w.js} +2 -6
- package/dist/{chunk-atmkaf60.js.map → chunk-5e3pq99w.js.map} +3 -3
- package/dist/{chunk-agsvg9ar.js → chunk-5ntny1qx.js} +1 -1
- package/dist/{chunk-z2sery1b.js → chunk-9nbmsvn5.js} +60 -20
- package/dist/chunk-9nbmsvn5.js.map +11 -0
- package/dist/{chunk-e4rvtvpw.js → chunk-aa2pen2v.js} +250 -78
- package/dist/chunk-aa2pen2v.js.map +34 -0
- package/dist/{chunk-64sr682n.js → chunk-ajnan18g.js} +11 -8
- package/dist/chunk-ajnan18g.js.map +12 -0
- package/dist/{chunk-9aehf39w.js → chunk-f26bck4t.js} +4 -4
- package/dist/{chunk-7ds9620f.js → chunk-fvt9rjsa.js} +23 -7
- package/dist/chunk-fvt9rjsa.js.map +10 -0
- package/dist/{chunk-kt81c11h.js → chunk-gbejpkex.js} +5 -5
- package/dist/{chunk-kt81c11h.js.map → chunk-gbejpkex.js.map} +1 -1
- package/dist/{chunk-vjjv9mrb.js → chunk-gzasd5b6.js} +5 -5
- package/dist/{chunk-vjjv9mrb.js.map → chunk-gzasd5b6.js.map} +3 -3
- package/dist/{chunk-d63tybny.js → chunk-h0k55pc7.js} +4 -4
- package/dist/{chunk-d63tybny.js.map → chunk-h0k55pc7.js.map} +1 -1
- package/dist/chunk-h5vqbfmd.js +1537 -0
- package/dist/chunk-h5vqbfmd.js.map +19 -0
- package/dist/{chunk-3kv70xwp.js → chunk-j1sbhm7p.js} +18 -2
- package/dist/chunk-j1sbhm7p.js.map +10 -0
- package/dist/{chunk-hdz94br2.js → chunk-k522z7v6.js} +10 -5
- package/dist/chunk-k522z7v6.js.map +10 -0
- package/dist/{chunk-wjgm6jjt.js → chunk-mth82m8t.js} +128 -94
- package/dist/chunk-mth82m8t.js.map +14 -0
- package/dist/{chunk-qv38twt8.js → chunk-mwsxn98e.js} +46 -25
- package/dist/{chunk-qv38twt8.js.map → chunk-mwsxn98e.js.map} +6 -6
- package/dist/chunk-n4khvw9n.js +111 -0
- package/dist/chunk-n4khvw9n.js.map +11 -0
- package/dist/{chunk-qjzp9xyb.js → chunk-nn0tekr1.js} +6 -8
- package/dist/chunk-nn0tekr1.js.map +12 -0
- package/dist/chunk-nx7k8tpr.js +436 -0
- package/dist/chunk-nx7k8tpr.js.map +12 -0
- package/dist/{chunk-08twe8m6.js → chunk-p1rzczbt.js} +1 -1
- package/dist/{chunk-37wk412q.js → chunk-p1x242ad.js} +587 -70
- package/dist/chunk-p1x242ad.js.map +25 -0
- package/dist/{chunk-tn7xcs2n.js → chunk-pc7ys28c.js} +68 -5
- package/dist/chunk-pc7ys28c.js.map +14 -0
- package/dist/{chunk-3fqt22c4.js → chunk-q0k9nc5a.js} +280 -88
- package/dist/chunk-q0k9nc5a.js.map +14 -0
- package/dist/chunk-r8jrnexe.js +403 -0
- package/dist/chunk-r8jrnexe.js.map +10 -0
- package/dist/{chunk-gbrpsx4m.js → chunk-rafagrwr.js} +30 -2
- package/dist/chunk-rafagrwr.js.map +11 -0
- package/dist/{chunk-xdpwpkha.js → chunk-rv2hkwwa.js} +1 -1
- package/dist/{chunk-6ed5bwnd.js → chunk-sbzzr4kx.js} +1203 -691
- package/dist/{chunk-6ed5bwnd.js.map → chunk-sbzzr4kx.js.map} +15 -9
- package/dist/{chunk-d2ndstdf.js → chunk-v1xppd0y.js} +13 -11
- package/dist/{chunk-d2ndstdf.js.map → chunk-v1xppd0y.js.map} +2 -2
- package/dist/chunk-v4en4jc2.js +252 -0
- package/dist/chunk-v4en4jc2.js.map +10 -0
- package/dist/{chunk-1kamz6j0.js → chunk-w1tvjszy.js} +1 -1
- package/dist/{chunk-rp1mvzb4.js → chunk-w9tg6yyb.js} +11 -6
- package/dist/{chunk-rp1mvzb4.js.map → chunk-w9tg6yyb.js.map} +3 -3
- package/dist/{chunk-4nxeacx7.js → chunk-wdage1eb.js} +1 -1
- package/dist/{chunk-ha58tjtt.js → chunk-wtf06et8.js} +9 -5
- package/dist/{chunk-ha58tjtt.js.map → chunk-wtf06et8.js.map} +3 -3
- package/dist/{chunk-h0knpbz5.js → chunk-xajtptbw.js} +782 -211
- package/dist/chunk-xajtptbw.js.map +40 -0
- package/dist/{chunk-xc7hq65b.js → chunk-yp8ee62z.js} +49 -2
- package/dist/chunk-yp8ee62z.js.map +11 -0
- package/dist/chunk-z4ccwbkz.js +139 -0
- package/dist/chunk-z4ccwbkz.js.map +10 -0
- package/dist/datasets/builders.d.ts +11 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/changes.d.ts +14 -4
- package/dist/datasets/changes.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +15 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -0
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/sequence.d.ts +7 -0
- package/dist/datasets/sequence.d.ts.map +1 -0
- package/dist/datasets/types.d.ts +1 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/validation.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +37 -0
- package/dist/datasets/write.d.ts.map +1 -0
- package/dist/datasets/write.js +17 -0
- package/dist/datasets/write.js.map +9 -0
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/types/datasets.d.ts +2 -6
- package/dist/events/types/datasets.d.ts.map +1 -1
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +39 -32
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts +58 -20
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +69 -0
- package/dist/execution/authorized-object-reader.d.ts.map +1 -0
- package/dist/execution/durable.d.ts.map +1 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/primitive.js +39 -32
- package/dist/execution/primitive.js.map +2 -2
- package/dist/execution/request.d.ts +11 -0
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +76 -40
- package/dist/execution/request.js.map +3 -3
- package/dist/execution/scopes.d.ts +16 -0
- package/dist/execution/scopes.d.ts.map +1 -1
- package/dist/execution/types.d.ts +9 -0
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/http/api-routes.d.ts +2 -0
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +92 -78
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/definition-updates.d.ts.map +1 -1
- package/dist/lake-storage/errors.d.ts +5 -1
- package/dist/lake-storage/errors.d.ts.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -1
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +24 -7
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/merge-validation.d.ts.map +1 -1
- package/dist/lake-storage/merge.d.ts +13 -2
- package/dist/lake-storage/merge.d.ts.map +1 -1
- package/dist/lake-storage/source-ordering.d.ts +19 -0
- package/dist/lake-storage/source-ordering.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +2 -1
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +10 -5
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +4 -0
- package/dist/lake-storage/version-inputs.d.ts.map +1 -0
- package/dist/materializer/index.js +25 -22
- package/dist/materializer/index.js.map +1 -1
- package/dist/objects/authorized-ontology-view.d.ts +25 -0
- package/dist/objects/authorized-ontology-view.d.ts.map +1 -0
- package/dist/objects/execution.d.ts +1 -1
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +29 -26
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +2 -7
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/query/executor.d.ts +4 -2
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +24 -21
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/links.d.ts +22 -1
- package/dist/objects/query/links.d.ts.map +1 -1
- package/dist/objects/query/selected-read-admission.d.ts +27 -0
- package/dist/objects/query/selected-read-admission.d.ts.map +1 -0
- package/dist/objects/query/validate.d.ts +60 -2
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/runtime-query-executor.d.ts +2 -7
- package/dist/objects/sdk/runtime-query-executor.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/service/list-service.d.ts +2 -3
- package/dist/objects/service/list-service.d.ts.map +1 -1
- package/dist/objects/telemetry/history.d.ts +8 -6
- package/dist/objects/telemetry/history.d.ts.map +1 -1
- package/dist/objects/telemetry/index.d.ts +2 -2
- package/dist/objects/telemetry/index.d.ts.map +1 -1
- package/dist/objects/telemetry/workload.d.ts +11 -0
- package/dist/objects/telemetry/workload.d.ts.map +1 -0
- package/dist/ontology/index.d.ts +2 -1
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +13 -12
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +2 -1
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +0 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +5 -10
- package/dist/ontology/internal.js.map +3 -3
- package/dist/ontology/json-schema.d.ts +10 -6
- package/dist/ontology/json-schema.d.ts.map +1 -1
- package/dist/ontology/link-path-selection.d.ts +35 -0
- package/dist/ontology/link-path-selection.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +2 -0
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +2 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/pipelines/execution.d.ts.map +1 -1
- package/dist/pipelines/index.js +27 -24
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/request.d.ts.map +1 -1
- package/dist/projections/execution.d.ts.map +1 -1
- package/dist/projections/internal.js +25 -22
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/run-dispatch.d.ts.map +1 -1
- package/dist/rules/execution.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +4 -1
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +2 -0
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +2 -0
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +1 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts +2 -0
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +4 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +3 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schedules/execution.d.ts +2 -1
- package/dist/schedules/execution.d.ts.map +1 -1
- package/dist/security/every.d.ts +4 -1
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +7 -2
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/registry.d.ts +1 -0
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +7 -1
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +2 -0
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/access-plan.d.ts +22 -0
- package/dist/shares/access-plan.d.ts.map +1 -0
- package/dist/shares/builders.d.ts +14 -0
- package/dist/shares/builders.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts +14 -0
- package/dist/shares/compiler.d.ts.map +1 -0
- package/dist/shares/errors.d.ts +4 -0
- package/dist/shares/errors.d.ts.map +1 -0
- package/dist/shares/execution.d.ts +57 -0
- package/dist/shares/execution.d.ts.map +1 -0
- package/dist/shares/index.d.ts +10 -0
- package/dist/shares/index.d.ts.map +1 -0
- package/dist/shares/internal.d.ts +3 -0
- package/dist/shares/internal.d.ts.map +1 -0
- package/dist/shares/internal.js +239 -0
- package/dist/shares/internal.js.map +10 -0
- package/dist/shares/intersection.d.ts +9 -0
- package/dist/shares/intersection.d.ts.map +1 -0
- package/dist/shares/session-protocol.d.ts +41 -0
- package/dist/shares/session-protocol.d.ts.map +1 -0
- package/dist/shares/types.d.ts +51 -0
- package/dist/shares/types.d.ts.map +1 -0
- package/dist/shares/validation.d.ts +11 -0
- package/dist/shares/validation.d.ts.map +1 -0
- package/dist/storage/action-runs/provider.js +2 -2
- package/dist/storage/agents/provider.js +2 -2
- package/dist/storage/executions/in-memory.d.ts +3 -0
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +4 -1
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +23 -3
- package/dist/storage/executions/provider.js.map +3 -3
- package/dist/storage/executions/run-link.d.ts +7 -0
- package/dist/storage/executions/run-link.d.ts.map +1 -1
- package/dist/storage/executions/validation.d.ts +6 -0
- package/dist/storage/executions/validation.d.ts.map +1 -1
- package/dist/storage/in-memory/index.d.ts +8 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +8 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +65 -36
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +25 -0
- package/dist/storage/objects/execution-limits.d.ts.map +1 -0
- package/dist/storage/objects/guard.d.ts +16 -0
- package/dist/storage/objects/guard.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/index.d.ts +3 -0
- package/dist/storage/objects/in-memory/index.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/keys.d.ts +10 -0
- package/dist/storage/objects/in-memory/keys.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/query.d.ts +31 -0
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts +18 -0
- package/dist/storage/objects/in-memory/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/read-source.d.ts +10 -0
- package/dist/storage/objects/in-memory/read-source.d.ts.map +1 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts +9 -0
- package/dist/storage/objects/in-memory/selected-reader.d.ts.map +1 -0
- package/dist/storage/objects/{in-memory.d.ts → in-memory/storage.d.ts} +13 -10
- package/dist/storage/objects/in-memory/storage.d.ts.map +1 -0
- package/dist/storage/objects/index.d.ts +4 -1
- package/dist/storage/objects/index.d.ts.map +1 -1
- package/dist/storage/objects/keys.d.ts +1 -1
- package/dist/storage/objects/keys.d.ts.map +1 -1
- package/dist/storage/objects/read-scope.d.ts +25 -0
- package/dist/storage/objects/read-scope.d.ts.map +1 -0
- package/dist/storage/objects/types.d.ts +114 -22
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/operation-scope.d.ts +3 -0
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +4 -2
- package/dist/storage/operation-scope.js.map +1 -1
- package/dist/storage/pipeline-runs/provider.js +2 -2
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/share-grants/errors.d.ts +8 -0
- package/dist/storage/share-grants/errors.d.ts.map +1 -0
- package/dist/storage/share-grants/in-memory.d.ts +11 -0
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -0
- package/dist/storage/share-grants/index.d.ts +5 -0
- package/dist/storage/share-grants/index.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.d.ts +4 -0
- package/dist/storage/share-grants/provider.d.ts.map +1 -0
- package/dist/storage/share-grants/provider.js +24 -0
- package/dist/storage/share-grants/provider.js.map +9 -0
- package/dist/storage/share-grants/record.d.ts +11 -0
- package/dist/storage/share-grants/record.d.ts.map +1 -0
- package/dist/storage/share-grants/types.d.ts +97 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -0
- package/dist/storage/share-sessions/errors.d.ts +8 -0
- package/dist/storage/share-sessions/errors.d.ts.map +1 -0
- package/dist/storage/share-sessions/in-memory.d.ts +14 -0
- package/dist/storage/share-sessions/in-memory.d.ts.map +1 -0
- package/dist/storage/share-sessions/index.d.ts +5 -0
- package/dist/storage/share-sessions/index.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.d.ts +3 -0
- package/dist/storage/share-sessions/provider.d.ts.map +1 -0
- package/dist/storage/share-sessions/provider.js +20 -0
- package/dist/storage/share-sessions/provider.js.map +9 -0
- package/dist/storage/share-sessions/record.d.ts +8 -0
- package/dist/storage/share-sessions/record.d.ts.map +1 -0
- package/dist/storage/share-sessions/types.d.ts +50 -0
- package/dist/storage/share-sessions/types.d.ts.map +1 -0
- package/dist/storage/sync-runs/provider.js +2 -2
- package/dist/storage/transaction.d.ts +2 -1
- package/dist/storage/transaction.d.ts.map +1 -1
- package/dist/storage/types.d.ts +8 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/webhook-runs/provider.js +2 -2
- package/dist/storage/workflow-runs/provider.js +10 -7
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/execution.d.ts.map +1 -1
- package/dist/syncs/index.js +27 -24
- package/dist/syncs/index.js.map +1 -1
- package/dist/syncs/request.d.ts.map +1 -1
- package/dist/testing/dataset-sequence-contract.d.ts +4 -0
- package/dist/testing/dataset-sequence-contract.d.ts.map +1 -0
- package/dist/testing/effective-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts +4 -0
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2555 -908
- package/dist/testing/index.js.map +11 -7
- package/dist/testing/lake-merge-storage-contract.d.ts +1 -0
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-read-scope-contract.d.ts +22 -0
- package/dist/testing/object-read-scope-contract.d.ts.map +1 -0
- package/dist/testing/share-grant-storage-contract.d.ts +10 -0
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -0
- package/dist/testing/share-session-storage-contract.d.ts +9 -0
- package/dist/testing/share-session-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +24 -21
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workflows/execution.d.ts.map +1 -1
- package/dist/workflows/index.js +42 -35
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/package.json +25 -1
- package/src/actions/delegated-admission.ts +72 -0
- package/src/actions/descriptor.ts +58 -0
- package/src/actions/execution.ts +99 -24
- package/src/actions/request.ts +136 -19
- package/src/actions/run-authorization.ts +53 -0
- package/src/actions/run-dispatch.ts +8 -1
- package/src/agents/adapters.ts +30 -420
- package/src/agents/authority.ts +3 -4
- package/src/agents/context-resolution.ts +1 -4
- package/src/agents/errors.ts +0 -10
- package/src/agents/execution.ts +13 -5
- package/src/agents/identity.ts +4 -0
- package/src/agents/index.ts +1 -20
- package/src/agents/message.ts +4 -5
- package/src/agents/model-loop.ts +54 -6
- package/src/agents/request.ts +16 -3
- package/src/agents/tool-definition.ts +0 -19
- package/src/agents/validation.ts +6 -65
- package/src/ai-usage/execution.ts +4 -11
- package/src/authorization/decision.ts +29 -14
- package/src/authorization/grant-kinds.ts +10 -0
- package/src/authorization/index.ts +1 -0
- package/src/bootstrap/discovery.ts +3 -0
- package/src/bootstrap/ontology-type-manifest.ts +12 -6
- package/src/datasets/builders.ts +23 -2
- package/src/datasets/changes.ts +16 -4
- package/src/datasets/execution.ts +76 -5
- package/src/datasets/index.ts +1 -0
- package/src/datasets/sequence.ts +77 -0
- package/src/datasets/types.ts +1 -0
- package/src/datasets/validation.ts +26 -0
- package/src/datasets/write.ts +240 -0
- package/src/events/execution.ts +57 -7
- package/src/events/types/datasets.ts +2 -6
- package/src/execution/agent.ts +1 -4
- package/src/execution/authorization.ts +470 -90
- package/src/execution/authorized-object-reader.ts +695 -0
- package/src/execution/durable.ts +10 -2
- package/src/execution/index.ts +1 -0
- package/src/execution/request.ts +63 -13
- package/src/execution/scopes.ts +36 -6
- package/src/execution/types.ts +8 -0
- package/src/http/api-routes.ts +45 -0
- package/src/index.ts +36 -15
- package/src/lake-storage/definition-updates.ts +9 -0
- package/src/lake-storage/errors.ts +6 -1
- package/src/lake-storage/in-memory.ts +53 -17
- package/src/lake-storage/index.ts +10 -1
- package/src/lake-storage/merge-validation.ts +12 -2
- package/src/lake-storage/merge.ts +40 -2
- package/src/lake-storage/source-ordering.ts +95 -0
- package/src/lake-storage/sql-transforms.ts +2 -1
- package/src/lake-storage/types.ts +10 -5
- package/src/lake-storage/version-inputs.ts +14 -0
- package/src/objects/authorized-ontology-view.ts +512 -0
- package/src/objects/execution.ts +98 -143
- package/src/objects/link/authorization.ts +3 -2
- package/src/objects/query/executor.ts +45 -34
- package/src/objects/query/links.ts +84 -25
- package/src/objects/query/selected-read-admission.ts +310 -0
- package/src/objects/query/validate.ts +353 -36
- package/src/objects/sdk/object-handle.ts +2 -8
- package/src/objects/sdk/object-set.ts +10 -11
- package/src/objects/sdk/runtime-query-executor.ts +8 -28
- package/src/objects/sdk/telemetry-channel.ts +11 -7
- package/src/objects/service/list-service.ts +15 -29
- package/src/objects/telemetry/history.ts +297 -17
- package/src/objects/telemetry/index.ts +2 -2
- package/src/objects/telemetry/workload.ts +79 -0
- package/src/ontology/index.ts +7 -1
- package/src/ontology/inference/index.ts +4 -1
- package/src/ontology/internal.ts +0 -1
- package/src/ontology/json-schema.ts +13 -12
- package/src/ontology/link-path-selection.ts +193 -0
- package/src/ontology/refs.ts +19 -0
- package/src/ontology/tokens.ts +15 -8
- package/src/pipelines/execution.ts +30 -7
- package/src/pipelines/request.ts +5 -0
- package/src/projections/execution.ts +72 -11
- package/src/projections/run-dispatch.ts +6 -12
- package/src/rules/execution.ts +20 -8
- package/src/runtime/create.ts +5 -1
- package/src/runtime/definitions.ts +2 -0
- package/src/runtime/host.ts +25 -6
- package/src/runtime/internal.ts +1 -0
- package/src/runtime/resolve-definitions.ts +9 -0
- package/src/runtime/sixb.ts +23 -2
- package/src/runtime/types.ts +3 -0
- package/src/schedules/execution.ts +24 -2
- package/src/security/every.ts +4 -0
- package/src/security/grants.ts +45 -3
- package/src/security/index.ts +1 -0
- package/src/security/registry.ts +3 -0
- package/src/security/types.ts +8 -0
- package/src/security/validation.ts +3 -0
- package/src/shares/access-plan.ts +225 -0
- package/src/shares/builders.ts +381 -0
- package/src/shares/compiler.ts +359 -0
- package/src/shares/errors.ts +3 -0
- package/src/shares/execution.ts +394 -0
- package/src/shares/index.ts +28 -0
- package/src/shares/internal.ts +9 -0
- package/src/shares/intersection.ts +178 -0
- package/src/shares/session-protocol.ts +258 -0
- package/src/shares/types.ts +76 -0
- package/src/shares/validation.ts +40 -0
- package/src/storage/executions/in-memory.ts +9 -1
- package/src/storage/executions/provider.ts +30 -1
- package/src/storage/executions/run-link.ts +29 -0
- package/src/storage/executions/validation.ts +46 -1
- package/src/storage/in-memory/index.ts +21 -2
- package/src/storage/index.ts +51 -0
- package/src/storage/objects/execution-limits.ts +283 -0
- package/src/storage/objects/guard.ts +55 -0
- package/src/storage/objects/in-memory/index.ts +2 -0
- package/src/storage/objects/in-memory/keys.ts +46 -0
- package/src/storage/objects/in-memory/query.ts +754 -0
- package/src/storage/objects/in-memory/read-scope.ts +211 -0
- package/src/storage/objects/in-memory/read-source.ts +10 -0
- package/src/storage/objects/in-memory/selected-reader.ts +252 -0
- package/src/storage/objects/in-memory/storage.ts +589 -0
- package/src/storage/objects/index.ts +21 -0
- package/src/storage/objects/keys.ts +1 -1
- package/src/storage/objects/read-scope.ts +672 -0
- package/src/storage/objects/types.ts +123 -19
- package/src/storage/operation-scope.ts +16 -0
- package/src/storage/share-grants/errors.ts +14 -0
- package/src/storage/share-grants/in-memory.ts +107 -0
- package/src/storage/share-grants/index.ts +14 -0
- package/src/storage/share-grants/provider.ts +11 -0
- package/src/storage/share-grants/record.ts +347 -0
- package/src/storage/share-grants/types.ts +112 -0
- package/src/storage/share-sessions/errors.ts +14 -0
- package/src/storage/share-sessions/in-memory.ts +105 -0
- package/src/storage/share-sessions/index.ts +11 -0
- package/src/storage/share-sessions/provider.ts +9 -0
- package/src/storage/share-sessions/record.ts +176 -0
- package/src/storage/share-sessions/types.ts +57 -0
- package/src/storage/transaction.ts +14 -2
- package/src/storage/types.ts +27 -0
- package/src/syncs/execution.ts +25 -5
- package/src/syncs/request.ts +5 -0
- package/src/testing/dataset-sequence-contract.ts +373 -0
- package/src/testing/effective-storage-contract.ts +34 -0
- package/src/testing/execution-storage-contract.ts +79 -0
- package/src/testing/index.ts +16 -0
- package/src/testing/lake-merge-storage-contract.ts +3 -0
- package/src/testing/lake-storage-contract.ts +58 -0
- package/src/testing/object-read-scope-contract.ts +939 -0
- package/src/testing/share-grant-storage-contract.ts +325 -0
- package/src/testing/share-session-storage-contract.ts +235 -0
- package/src/workflows/execution.ts +53 -14
- package/src/workflows/request.ts +5 -0
- package/dist/chunk-2b5qtban.js.map +0 -14
- package/dist/chunk-37wk412q.js.map +0 -23
- package/dist/chunk-3fqt22c4.js.map +0 -14
- package/dist/chunk-3kv70xwp.js.map +0 -10
- package/dist/chunk-64sr682n.js.map +0 -12
- package/dist/chunk-7ds9620f.js.map +0 -10
- package/dist/chunk-dqn23610.js +0 -72
- package/dist/chunk-dqn23610.js.map +0 -11
- package/dist/chunk-e4rvtvpw.js.map +0 -34
- package/dist/chunk-gbrpsx4m.js.map +0 -11
- package/dist/chunk-h0knpbz5.js.map +0 -38
- package/dist/chunk-hdz94br2.js.map +0 -10
- package/dist/chunk-n2arzn6e.js.map +0 -20
- package/dist/chunk-qjzp9xyb.js.map +0 -12
- package/dist/chunk-tn7xcs2n.js.map +0 -13
- package/dist/chunk-wjgm6jjt.js.map +0 -13
- package/dist/chunk-xc7hq65b.js.map +0 -10
- package/dist/chunk-y35ma3mj.js +0 -551
- package/dist/chunk-y35ma3mj.js.map +0 -15
- package/dist/chunk-z2sery1b.js.map +0 -11
- package/dist/storage/objects/in-memory.d.ts.map +0 -1
- package/src/storage/objects/in-memory.ts +0 -1241
- /package/dist/{chunk-5jcdmjam.js.map → chunk-4jjp5k14.js.map} +0 -0
- /package/dist/{chunk-agsvg9ar.js.map → chunk-5ntny1qx.js.map} +0 -0
- /package/dist/{chunk-9aehf39w.js.map → chunk-f26bck4t.js.map} +0 -0
- /package/dist/{chunk-08twe8m6.js.map → chunk-p1rzczbt.js.map} +0 -0
- /package/dist/{chunk-xdpwpkha.js.map → chunk-rv2hkwwa.js.map} +0 -0
- /package/dist/{chunk-1kamz6j0.js.map → chunk-w1tvjszy.js.map} +0 -0
- /package/dist/{chunk-4nxeacx7.js.map → chunk-wdage1eb.js.map} +0 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { ShareSessionStorageError } from "./errors"
|
|
2
|
+
import type {
|
|
3
|
+
CreateShareSessionInput,
|
|
4
|
+
GetShareSessionByIdInput,
|
|
5
|
+
RenewShareSessionIfValidInput,
|
|
6
|
+
RevokeShareSessionInput,
|
|
7
|
+
ShareSessionRecord,
|
|
8
|
+
} from "./types"
|
|
9
|
+
|
|
10
|
+
const SHA256_HEX = /^[0-9a-f]{64}$/
|
|
11
|
+
|
|
12
|
+
export function normalizeShareSessionCreate(input: CreateShareSessionInput): ShareSessionRecord {
|
|
13
|
+
if (!isRecord(input)) throw invalidInput("Share session create input must be an object.")
|
|
14
|
+
const createdAt = inputDate(input.createdAt, "Share session creation time")
|
|
15
|
+
const expiresAt = inputDate(input.expiresAt, "Share session inactivity expiry")
|
|
16
|
+
const absoluteExpiresAt = inputDate(input.absoluteExpiresAt, "Share session absolute expiry")
|
|
17
|
+
if (expiresAt.getTime() <= createdAt.getTime()) {
|
|
18
|
+
throw invalidInput("Share session inactivity expiry must be later than creation time.")
|
|
19
|
+
}
|
|
20
|
+
if (absoluteExpiresAt.getTime() <= createdAt.getTime()) {
|
|
21
|
+
throw invalidInput("Share session absolute expiry must be later than creation time.")
|
|
22
|
+
}
|
|
23
|
+
if (expiresAt.getTime() > absoluteExpiresAt.getTime()) {
|
|
24
|
+
throw invalidInput("Share session inactivity expiry must not exceed its absolute expiry.")
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
id: identifier(input.id, "Share session id"),
|
|
29
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
30
|
+
grantId: identifier(input.grantId, "Share grant id"),
|
|
31
|
+
tokenHash: sha256(input.tokenHash, "Share session token hash"),
|
|
32
|
+
createdAt,
|
|
33
|
+
expiresAt,
|
|
34
|
+
absoluteExpiresAt,
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function parseShareSessionRecord(input: unknown): ShareSessionRecord {
|
|
39
|
+
if (!isRecord(input)) throw invalidRecord("Share session row must be an object.")
|
|
40
|
+
try {
|
|
41
|
+
const createdAt = storedDate(input.createdAt, "Share session creation time")
|
|
42
|
+
const expiresAt = storedDate(input.expiresAt, "Share session inactivity expiry")
|
|
43
|
+
const absoluteExpiresAt = storedDate(input.absoluteExpiresAt, "Share session absolute expiry")
|
|
44
|
+
if (expiresAt.getTime() <= createdAt.getTime()) {
|
|
45
|
+
throw invalidRecord("Share session inactivity expiry must be later than creation time.")
|
|
46
|
+
}
|
|
47
|
+
if (absoluteExpiresAt.getTime() <= createdAt.getTime()) {
|
|
48
|
+
throw invalidRecord("Share session absolute expiry must be later than creation time.")
|
|
49
|
+
}
|
|
50
|
+
if (expiresAt.getTime() > absoluteExpiresAt.getTime()) {
|
|
51
|
+
throw invalidRecord("Share session inactivity expiry exceeds its absolute expiry.")
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const revokedAtValue = input.revokedAt
|
|
55
|
+
if (revokedAtValue === null) {
|
|
56
|
+
throw invalidRecord("Share session revocation time must be omitted rather than null.")
|
|
57
|
+
}
|
|
58
|
+
const revokedAt =
|
|
59
|
+
revokedAtValue === undefined
|
|
60
|
+
? undefined
|
|
61
|
+
: storedDate(revokedAtValue, "Share session revocation time")
|
|
62
|
+
if (revokedAt && revokedAt.getTime() < createdAt.getTime()) {
|
|
63
|
+
throw invalidRecord("Share session revocation time must not precede creation time.")
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return {
|
|
67
|
+
id: identifier(input.id, "Share session id"),
|
|
68
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
69
|
+
grantId: identifier(input.grantId, "Share grant id"),
|
|
70
|
+
tokenHash: sha256(input.tokenHash, "Share session token hash"),
|
|
71
|
+
createdAt,
|
|
72
|
+
expiresAt,
|
|
73
|
+
absoluteExpiresAt,
|
|
74
|
+
...(revokedAt === undefined ? {} : { revokedAt }),
|
|
75
|
+
}
|
|
76
|
+
} catch (error) {
|
|
77
|
+
if (error instanceof ShareSessionStorageError) {
|
|
78
|
+
if (error.code === "invalid_record") throw error
|
|
79
|
+
throw invalidRecord(error.message.replace(/^\[Sixb\] /, ""), error)
|
|
80
|
+
}
|
|
81
|
+
throw error
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function normalizeGetShareSessionByIdInput(
|
|
86
|
+
input: GetShareSessionByIdInput
|
|
87
|
+
): GetShareSessionByIdInput {
|
|
88
|
+
if (!isRecord(input)) throw invalidInput("Share session lookup input must be an object.")
|
|
89
|
+
return {
|
|
90
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
91
|
+
id: identifier(input.id, "Share session id"),
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export function normalizeRenewShareSessionIfValidInput(
|
|
96
|
+
input: RenewShareSessionIfValidInput
|
|
97
|
+
): RenewShareSessionIfValidInput {
|
|
98
|
+
if (!isRecord(input)) throw invalidInput("Share session renewal input must be an object.")
|
|
99
|
+
const now = inputDate(input.now, "Share session renewal time")
|
|
100
|
+
const expiresAt = inputDate(input.expiresAt, "Requested Share session expiry")
|
|
101
|
+
if (expiresAt.getTime() <= now.getTime()) {
|
|
102
|
+
throw invalidInput("Requested Share session expiry must be later than renewal time.")
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
106
|
+
id: identifier(input.id, "Share session id"),
|
|
107
|
+
grantId: identifier(input.grantId, "Share grant id"),
|
|
108
|
+
tokenHash: sha256(input.tokenHash, "Share session token hash"),
|
|
109
|
+
now,
|
|
110
|
+
expiresAt,
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function normalizeRevokeShareSessionInput(
|
|
115
|
+
input: RevokeShareSessionInput,
|
|
116
|
+
createdAt?: Date
|
|
117
|
+
): RevokeShareSessionInput {
|
|
118
|
+
if (!isRecord(input)) throw invalidInput("Share session revocation input must be an object.")
|
|
119
|
+
const normalized = {
|
|
120
|
+
projectId: identifier(input.projectId, "Project id"),
|
|
121
|
+
id: identifier(input.id, "Share session id"),
|
|
122
|
+
revokedAt: inputDate(input.revokedAt, "Share session revocation time"),
|
|
123
|
+
}
|
|
124
|
+
if (createdAt && normalized.revokedAt.getTime() < createdAt.getTime()) {
|
|
125
|
+
throw invalidInput("Share session revocation time must not precede creation time.")
|
|
126
|
+
}
|
|
127
|
+
return normalized
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function cloneShareSessionRecord(input: ShareSessionRecord): ShareSessionRecord {
|
|
131
|
+
return structuredClone(input)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function identifier(value: unknown, label: string): string {
|
|
135
|
+
if (typeof value !== "string" || value.trim().length === 0 || value.includes("\0")) {
|
|
136
|
+
throw invalidInput(`${label} must be a non-empty string without NUL bytes.`)
|
|
137
|
+
}
|
|
138
|
+
return value
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function sha256(value: unknown, label: string): string {
|
|
142
|
+
if (typeof value !== "string" || !SHA256_HEX.test(value)) {
|
|
143
|
+
throw invalidInput(`${label} must be a lowercase SHA-256 hex digest.`)
|
|
144
|
+
}
|
|
145
|
+
return value
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function inputDate(value: unknown, label: string): Date {
|
|
149
|
+
if (!(value instanceof Date) || !Number.isFinite(value.getTime())) {
|
|
150
|
+
throw invalidInput(`${label} must be a valid Date.`)
|
|
151
|
+
}
|
|
152
|
+
return new Date(value)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function storedDate(value: unknown, label: string): Date {
|
|
156
|
+
const parsed =
|
|
157
|
+
value instanceof Date
|
|
158
|
+
? new Date(value)
|
|
159
|
+
: typeof value === "string"
|
|
160
|
+
? new Date(value)
|
|
161
|
+
: new Date(Number.NaN)
|
|
162
|
+
if (!Number.isFinite(parsed.getTime())) throw invalidRecord(`${label} is invalid.`)
|
|
163
|
+
return parsed
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
167
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function invalidInput(message: string, cause?: unknown): ShareSessionStorageError {
|
|
171
|
+
return new ShareSessionStorageError("invalid_input", `[Sixb] ${message}`, { cause })
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function invalidRecord(message: string, cause?: unknown): ShareSessionStorageError {
|
|
175
|
+
return new ShareSessionStorageError("invalid_record", `[Sixb] ${message}`, { cause })
|
|
176
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** Durable server-side session created after a Share link secret is exchanged. */
|
|
2
|
+
export interface ShareSessionRecord {
|
|
3
|
+
readonly id: string
|
|
4
|
+
readonly projectId: string
|
|
5
|
+
readonly grantId: string
|
|
6
|
+
/** SHA-256 of the bearer session secret. The plaintext secret is never durable. */
|
|
7
|
+
readonly tokenHash: string
|
|
8
|
+
readonly createdAt: Date
|
|
9
|
+
/** Sliding inactivity deadline. */
|
|
10
|
+
readonly expiresAt: Date
|
|
11
|
+
/** Immutable upper bound, normally inherited from the Share grant expiry. */
|
|
12
|
+
readonly absoluteExpiresAt: Date
|
|
13
|
+
readonly revokedAt?: Date
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type CreateShareSessionInput = Omit<ShareSessionRecord, "revokedAt">
|
|
17
|
+
|
|
18
|
+
export interface GetShareSessionByIdInput {
|
|
19
|
+
readonly projectId: string
|
|
20
|
+
readonly id: string
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface RenewShareSessionIfValidInput {
|
|
24
|
+
readonly projectId: string
|
|
25
|
+
readonly id: string
|
|
26
|
+
readonly grantId: string
|
|
27
|
+
readonly tokenHash: string
|
|
28
|
+
/** Explicit clock keeps expiry semantics deterministic across providers. */
|
|
29
|
+
readonly now: Date
|
|
30
|
+
/** Requested sliding inactivity deadline. Storage clamps it to the absolute deadline. */
|
|
31
|
+
readonly expiresAt: Date
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface RevokeShareSessionInput {
|
|
35
|
+
readonly projectId: string
|
|
36
|
+
readonly id: string
|
|
37
|
+
readonly revokedAt: Date
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Persistence contract for short-lived Share access sessions. */
|
|
41
|
+
export interface ShareSessionStorage {
|
|
42
|
+
/** `(projectId, id)` and `(projectId, tokenHash)` must both be unique. */
|
|
43
|
+
create(input: CreateShareSessionInput): Promise<ShareSessionRecord>
|
|
44
|
+
|
|
45
|
+
/** Load one project-scoped session, including expired or revoked sessions, or return null. */
|
|
46
|
+
getById(input: GetShareSessionByIdInput): Promise<ShareSessionRecord | null>
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Atomically authenticate and renew an active session. Mismatched, expired, or revoked sessions
|
|
50
|
+
* return null. A renewal never shortens the current deadline and never exceeds
|
|
51
|
+
* `absoluteExpiresAt`.
|
|
52
|
+
*/
|
|
53
|
+
renewIfValid(input: RenewShareSessionIfValidInput): Promise<ShareSessionRecord | null>
|
|
54
|
+
|
|
55
|
+
/** Preserve and return the first revocation; a missing session returns null. */
|
|
56
|
+
revoke(input: RevokeShareSessionInput): Promise<ShareSessionRecord | null>
|
|
57
|
+
}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { StorageTransactionError } from "./errors"
|
|
2
|
+
import { createObjectOperationScope } from "./operation-scope"
|
|
3
|
+
import type { Storage } from "./types"
|
|
2
4
|
|
|
3
5
|
type ObjectLike = Record<PropertyKey, unknown>
|
|
4
6
|
|
|
5
|
-
export function createTransactionStorageProxy<T extends
|
|
7
|
+
export function createTransactionStorageProxy<T extends Storage>(
|
|
6
8
|
target: T,
|
|
7
9
|
isActive: () => boolean
|
|
8
10
|
): T {
|
|
9
11
|
const proxies = new WeakMap<object, object>()
|
|
12
|
+
const objectStorage = createObjectOperationScope(target.objects, {
|
|
13
|
+
assertAvailable: () => assertTransactionActive(isActive),
|
|
14
|
+
run: async <TResult>(operation: () => Promise<TResult> | TResult): Promise<TResult> => {
|
|
15
|
+
assertTransactionActive(isActive)
|
|
16
|
+
return operation()
|
|
17
|
+
},
|
|
18
|
+
})
|
|
10
19
|
|
|
11
20
|
const wrap = <TValue extends object>(value: TValue): TValue => {
|
|
12
21
|
const existing = proxies.get(value)
|
|
@@ -19,7 +28,10 @@ export function createTransactionStorageProxy<T extends object>(
|
|
|
19
28
|
// from `tx` are wrapped (a handful), not the row/link data graph, and never per-record.
|
|
20
29
|
get(current, property, receiver) {
|
|
21
30
|
assertTransactionActive(isActive)
|
|
22
|
-
const result =
|
|
31
|
+
const result =
|
|
32
|
+
current === target && property === "objects"
|
|
33
|
+
? objectStorage
|
|
34
|
+
: Reflect.get(current, property, receiver)
|
|
23
35
|
if (typeof result === "function") {
|
|
24
36
|
return (...args: unknown[]) => {
|
|
25
37
|
assertTransactionActive(isActive)
|
package/src/storage/types.ts
CHANGED
|
@@ -12,6 +12,8 @@ import type { OntologyStorage } from "./ontology"
|
|
|
12
12
|
import type { PipelineRunStorage } from "./pipeline-runs"
|
|
13
13
|
import type { ProjectionRunStorage } from "./projection-runs"
|
|
14
14
|
import type { RulesStorage } from "./rules"
|
|
15
|
+
import type { ShareGrantStorage } from "./share-grants"
|
|
16
|
+
import type { ShareSessionStorage } from "./share-sessions"
|
|
15
17
|
import type { SyncRunStorage } from "./sync-runs"
|
|
16
18
|
import type { TimeseriesStorage } from "./timeseries/types"
|
|
17
19
|
import type { WebhookRunStorage } from "./webhook-runs"
|
|
@@ -231,6 +233,29 @@ export type {
|
|
|
231
233
|
RuleStateRecord,
|
|
232
234
|
RulesStorage,
|
|
233
235
|
} from "./rules"
|
|
236
|
+
export type {
|
|
237
|
+
CreateShareGrantInput,
|
|
238
|
+
GetShareGrantByIdInput,
|
|
239
|
+
ListShareGrantsInput,
|
|
240
|
+
ListShareGrantsResult,
|
|
241
|
+
RevokeShareGrantInput,
|
|
242
|
+
ShareAuthoritySnapshot,
|
|
243
|
+
ShareAuthoritySnapshotV1,
|
|
244
|
+
ShareGrantRecord,
|
|
245
|
+
ShareGrantStorage,
|
|
246
|
+
ShareGrantStorageErrorCode,
|
|
247
|
+
} from "./share-grants"
|
|
248
|
+
export { ShareGrantStorageError } from "./share-grants"
|
|
249
|
+
export type {
|
|
250
|
+
CreateShareSessionInput,
|
|
251
|
+
GetShareSessionByIdInput,
|
|
252
|
+
RenewShareSessionIfValidInput,
|
|
253
|
+
RevokeShareSessionInput,
|
|
254
|
+
ShareSessionRecord,
|
|
255
|
+
ShareSessionStorage,
|
|
256
|
+
ShareSessionStorageErrorCode,
|
|
257
|
+
} from "./share-sessions"
|
|
258
|
+
export { ShareSessionStorageError } from "./share-sessions"
|
|
234
259
|
export type {
|
|
235
260
|
FinishSyncRunInput,
|
|
236
261
|
ListSyncRunsInput,
|
|
@@ -340,6 +365,8 @@ export interface Storage {
|
|
|
340
365
|
workflowInterventions?: WorkflowInterventionStorage
|
|
341
366
|
webhookRuns?: WebhookRunStorage
|
|
342
367
|
rules?: RulesStorage
|
|
368
|
+
shareGrants?: ShareGrantStorage
|
|
369
|
+
shareSessions?: ShareSessionStorage
|
|
343
370
|
fileUploadSessions?: FileUploadSessionStore
|
|
344
371
|
connectorConnections?: ConnectorConnectionStorage
|
|
345
372
|
|
package/src/syncs/execution.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assertAuthorized, isRuntimeAllowed } from "../authorization"
|
|
2
2
|
import type { ExecutionContext } from "../execution"
|
|
3
|
+
import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
|
|
3
4
|
import type { SixbRuntimeContext } from "../runtime/types"
|
|
4
5
|
import type {
|
|
5
6
|
ListLatestSyncRunsResult,
|
|
@@ -29,26 +30,39 @@ export function createSyncsRuntime(
|
|
|
29
30
|
execution: ExecutionContext,
|
|
30
31
|
source: Pick<SyncsRuntime, "list" | "getById">
|
|
31
32
|
): SyncsRuntime {
|
|
32
|
-
const
|
|
33
|
+
const authority = resolveRuntimeAuthorizationForProject(runtime)
|
|
34
|
+
const allowed = (syncId: string) => isRuntimeAllowed(runtime, { kind: "sync.run", syncId })
|
|
33
35
|
const visibleIds = () =>
|
|
34
36
|
source
|
|
35
37
|
.list()
|
|
36
38
|
.filter((sync) => allowed(sync.id))
|
|
37
39
|
.map((sync) => sync.id)
|
|
40
|
+
const historyFilterIds = () =>
|
|
41
|
+
authority.type === "unrestricted"
|
|
42
|
+
? undefined
|
|
43
|
+
: authority.type === "principal"
|
|
44
|
+
? visibleIds()
|
|
45
|
+
: []
|
|
38
46
|
|
|
39
47
|
return {
|
|
40
|
-
list: () =>
|
|
48
|
+
list: () =>
|
|
49
|
+
authority.type === "denied" || authority.type === "delegated"
|
|
50
|
+
? []
|
|
51
|
+
: source.list().filter((sync) => allowed(sync.id)),
|
|
41
52
|
getById: (syncId) => {
|
|
53
|
+
if (authority.type === "denied" || authority.type === "delegated") return null
|
|
42
54
|
const sync = source.getById(syncId)
|
|
43
55
|
return sync && allowed(syncId) ? sync : null
|
|
44
56
|
},
|
|
45
57
|
request: async (input) => {
|
|
58
|
+
assertAuthorized(runtime, { kind: "sync.run", syncId: input.syncId })
|
|
46
59
|
const sync = source.getById(input.syncId)
|
|
47
60
|
if (!sync) throw new SyncValidationError(`[Sixb] Unknown sync '${input.syncId}'`)
|
|
48
61
|
return requestSyncRun(runtime, execution, sync, input)
|
|
49
62
|
},
|
|
50
63
|
runs: {
|
|
51
64
|
getById: async (runId) => {
|
|
65
|
+
if (authority.type === "denied" || authority.type === "delegated") return null
|
|
52
66
|
const run =
|
|
53
67
|
(await runtime.storage.syncRuns?.getById({
|
|
54
68
|
projectId: runtime.projectId,
|
|
@@ -57,15 +71,21 @@ export function createSyncsRuntime(
|
|
|
57
71
|
return run && allowed(run.syncId) ? run : null
|
|
58
72
|
},
|
|
59
73
|
list: (input = {}) => {
|
|
74
|
+
if (authority.type === "denied" || authority.type === "delegated") {
|
|
75
|
+
return Promise.resolve({ runs: [], hasMore: false, total: 0 })
|
|
76
|
+
}
|
|
60
77
|
const storage = runtime.storage.syncRuns
|
|
61
78
|
if (!storage) return Promise.resolve({ runs: [], hasMore: false, total: 0 })
|
|
62
79
|
return storage.list({
|
|
63
|
-
projectId: runtime.projectId,
|
|
64
80
|
...input,
|
|
65
|
-
syncIds:
|
|
81
|
+
syncIds: historyFilterIds(),
|
|
82
|
+
projectId: runtime.projectId,
|
|
66
83
|
})
|
|
67
84
|
},
|
|
68
85
|
listLatest: (syncIds) => {
|
|
86
|
+
if (authority.type === "denied" || authority.type === "delegated") {
|
|
87
|
+
return Promise.resolve({ runs: [] })
|
|
88
|
+
}
|
|
69
89
|
const storage = runtime.storage.syncRuns
|
|
70
90
|
if (!storage || syncIds.length === 0) return Promise.resolve({ runs: [] })
|
|
71
91
|
const allowedIds = syncIds.filter(allowed)
|
package/src/syncs/request.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assertAuthorized } from "../authorization"
|
|
2
|
+
import { resolveExecutionScopeAuthorization } from "../execution/authorization"
|
|
2
3
|
import {
|
|
3
4
|
createPrimitiveExecutionRecord,
|
|
4
5
|
ensureExecutionRecord,
|
|
@@ -45,6 +46,10 @@ export async function requestSyncRun(
|
|
|
45
46
|
sync: SyncDefinition,
|
|
46
47
|
options: SyncRunRequestOptions = {}
|
|
47
48
|
): Promise<SyncRunRequestResult> {
|
|
49
|
+
resolveExecutionScopeAuthorization(runtime.projectId, {
|
|
50
|
+
execution,
|
|
51
|
+
authorization: runtime.runtimeAuthorization,
|
|
52
|
+
})
|
|
48
53
|
assertAuthorized(runtime, { kind: "sync.run", syncId: sync.id })
|
|
49
54
|
if (!runtime.storage.syncRuns) {
|
|
50
55
|
throw new SyncValidationError("[Sixb] Sync run storage is not configured.")
|