@sixb/core 0.1.12 → 0.1.13
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/index.d.ts +2 -2
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +28 -26
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +14 -16
- package/dist/actions/read-facade.d.ts.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-dispatch.d.ts +2 -0
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/types/context.d.ts +18 -31
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/types/params.d.ts +2 -1
- package/dist/actions/types/params.d.ts.map +1 -1
- package/dist/actions/worker.js +1 -1
- package/dist/agents/index.js +41 -39
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/assert-never.d.ts +6 -0
- package/dist/assert-never.d.ts.map +1 -0
- package/dist/auth/client-address.d.ts +3 -0
- package/dist/auth/client-address.d.ts.map +1 -0
- package/dist/auth/csrf.d.ts +5 -1
- package/dist/auth/csrf.d.ts.map +1 -1
- package/dist/auth/index.d.ts +3 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +14 -8
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +58 -41
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/session-cache.d.ts +10 -3
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/sessions.d.ts +12 -0
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/strategy.js +1 -1
- package/dist/auth/types.d.ts +8 -15
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +3 -3
- package/dist/bootstrap/index.d.ts +1 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +45 -43
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts +8 -0
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-q5gz3g2j.js → chunk-0321g649.js} +2 -16
- package/dist/{chunk-q5gz3g2j.js.map → chunk-0321g649.js.map} +2 -2
- package/dist/{chunk-e1f1sqba.js → chunk-04h4t2b5.js} +3 -3
- package/dist/{chunk-y3ev53cq.js → chunk-2fv8sajb.js} +2 -2
- package/dist/{chunk-3bnt2wna.js → chunk-2hbhn1ff.js} +1 -1
- package/dist/{chunk-eyjzgav0.js → chunk-3nx8vj5a.js} +6 -4
- package/dist/chunk-3nx8vj5a.js.map +12 -0
- package/dist/{chunk-5tetw4hn.js → chunk-4tnrzqqh.js} +1 -1
- package/dist/{chunk-g50nxqs5.js → chunk-63fp9x3q.js} +63 -20
- package/dist/chunk-63fp9x3q.js.map +20 -0
- package/dist/{chunk-qm535afa.js → chunk-693f3zn8.js} +66 -24
- package/dist/chunk-693f3zn8.js.map +15 -0
- package/dist/{chunk-7zgecwy1.js → chunk-6x0pqh32.js} +12 -1
- package/dist/{chunk-7zgecwy1.js.map → chunk-6x0pqh32.js.map} +3 -3
- package/dist/{chunk-6ma8dvzc.js → chunk-898y24dd.js} +49 -42
- package/dist/chunk-898y24dd.js.map +15 -0
- package/dist/{chunk-7qnvhtcd.js → chunk-91wthfwe.js} +17 -17
- package/dist/{chunk-7qnvhtcd.js.map → chunk-91wthfwe.js.map} +5 -5
- package/dist/chunk-96yw3pwd.js.map +2 -2
- package/dist/{chunk-2cxv584m.js → chunk-9pfw47qx.js} +309 -204
- package/dist/chunk-9pfw47qx.js.map +44 -0
- package/dist/{chunk-4k53sm9e.js → chunk-a0073121.js} +59 -59
- package/dist/{chunk-4k53sm9e.js.map → chunk-a0073121.js.map} +5 -5
- package/dist/{chunk-jjwhy3rs.js → chunk-a69fkrtr.js} +5 -5
- package/dist/{chunk-y1ahv8b7.js → chunk-bdhfn0ww.js} +1 -1
- package/dist/{chunk-4ph94nhd.js → chunk-bep5rrdq.js} +2 -2
- package/dist/{chunk-kept9cdd.js → chunk-bxx3ms5t.js} +1 -1
- package/dist/{chunk-xtfryrfb.js → chunk-cbn96bve.js} +2 -2
- package/dist/{chunk-nzsy3xrp.js → chunk-cvrbhvtr.js} +69 -44
- package/dist/{chunk-nzsy3xrp.js.map → chunk-cvrbhvtr.js.map} +7 -7
- package/dist/{chunk-vsg0g7h9.js → chunk-d8yes9yx.js} +304 -45
- package/dist/chunk-d8yes9yx.js.map +20 -0
- package/dist/{chunk-tg4g4zh0.js → chunk-darm7eeg.js} +9 -9
- package/dist/{chunk-tg4g4zh0.js.map → chunk-darm7eeg.js.map} +3 -3
- package/dist/{chunk-vpxss818.js → chunk-drz59ve0.js} +9 -8
- package/dist/chunk-drz59ve0.js.map +10 -0
- package/dist/{chunk-7c2g3sz9.js → chunk-dsfw1bdr.js} +5 -5
- package/dist/{chunk-7c2g3sz9.js.map → chunk-dsfw1bdr.js.map} +1 -1
- package/dist/{chunk-p6r1ex7t.js → chunk-ffwvdgk1.js} +5 -13
- package/dist/chunk-ffwvdgk1.js.map +10 -0
- package/dist/{chunk-r5zythxp.js → chunk-gbcrz0gr.js} +7 -7
- package/dist/{chunk-ybhz3j9g.js → chunk-gc226ten.js} +104 -148
- package/dist/{chunk-ybhz3j9g.js.map → chunk-gc226ten.js.map} +7 -8
- package/dist/{chunk-3ghw2t5q.js → chunk-gmt22nxx.js} +10 -16
- package/dist/chunk-gmt22nxx.js.map +10 -0
- package/dist/chunk-h89wz928.js +42 -0
- package/dist/chunk-h89wz928.js.map +10 -0
- package/dist/{chunk-hkw8rykk.js → chunk-ht4a7mjg.js} +74 -4
- package/dist/chunk-ht4a7mjg.js.map +15 -0
- package/dist/{chunk-t7dzd1tm.js → chunk-jhyc777j.js} +2 -2
- package/dist/{chunk-xn686q2e.js → chunk-jmwy25mf.js} +75 -57
- package/dist/{chunk-xn686q2e.js.map → chunk-jmwy25mf.js.map} +3 -3
- package/dist/{chunk-f06sf7rr.js → chunk-k4kkp58d.js} +18 -5
- package/dist/chunk-k4kkp58d.js.map +11 -0
- package/dist/{chunk-2h63nrde.js → chunk-ky7zpbtt.js} +5 -7
- package/dist/{chunk-2h63nrde.js.map → chunk-ky7zpbtt.js.map} +3 -4
- package/dist/chunk-m4ehq95f.js +9 -0
- package/dist/chunk-m4ehq95f.js.map +10 -0
- package/dist/{chunk-0mza4xb2.js → chunk-m8zkvep1.js} +2 -2
- package/dist/{chunk-b768c93y.js → chunk-mf6hwpzh.js} +83 -28
- package/dist/{chunk-b768c93y.js.map → chunk-mf6hwpzh.js.map} +5 -5
- package/dist/{chunk-yxb4c62x.js → chunk-mr60an99.js} +3 -2
- package/dist/{chunk-yxb4c62x.js.map → chunk-mr60an99.js.map} +3 -3
- package/dist/chunk-n33e8dz8.js +191 -0
- package/dist/chunk-n33e8dz8.js.map +11 -0
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-m7cx05vp.js → chunk-rqtdtm43.js} +126 -59
- package/dist/{chunk-m7cx05vp.js.map → chunk-rqtdtm43.js.map} +13 -12
- package/dist/{chunk-bbaa1fet.js → chunk-rzcjp5m2.js} +7 -3
- package/dist/chunk-rzcjp5m2.js.map +25 -0
- package/dist/{chunk-hzw7yv5g.js → chunk-rzkr70gr.js} +5 -1
- package/dist/{chunk-hzw7yv5g.js.map → chunk-rzkr70gr.js.map} +3 -3
- package/dist/{chunk-sfypc7mk.js → chunk-s24qbp32.js} +4 -4
- package/dist/{chunk-axndsymr.js → chunk-tw03bsmb.js} +2 -2
- package/dist/{chunk-axndsymr.js.map → chunk-tw03bsmb.js.map} +3 -3
- package/dist/{chunk-y0v18c2j.js → chunk-vef6qa14.js} +2 -2
- package/dist/{chunk-gzt6v1ja.js → chunk-vn3yh259.js} +1 -1
- package/dist/{chunk-bg2bs62d.js → chunk-w9bp61e7.js} +5 -5
- package/dist/{chunk-3h7ctayx.js → chunk-xgptywp0.js} +4 -3
- package/dist/chunk-xgptywp0.js.map +11 -0
- package/dist/{chunk-gswwr35f.js → chunk-y487ywrv.js} +4 -4
- package/dist/{chunk-bet1rb9h.js → chunk-y6vnvayj.js} +1 -1
- package/dist/{chunk-x9tmx3fc.js → chunk-ypj2wqtj.js} +3 -6
- package/dist/{chunk-x9tmx3fc.js.map → chunk-ypj2wqtj.js.map} +4 -4
- package/dist/{chunk-g2gezsg5.js → chunk-z9h698s8.js} +1 -1
- package/dist/{chunk-wjffn5m4.js → chunk-zdkcdshk.js} +3 -36
- package/dist/{chunk-wjffn5m4.js.map → chunk-zdkcdshk.js.map} +3 -4
- package/dist/{chunk-bfjv1adk.js → chunk-znw0zvy4.js} +1 -1
- package/dist/edits/types.d.ts +19 -19
- package/dist/edits/types.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +3 -3
- package/dist/errors/catalog.d.ts +4 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/envelope.d.ts +0 -12
- package/dist/events/envelope.d.ts.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +3 -3
- package/dist/events/service.d.ts +1 -2
- package/dist/events/service.d.ts.map +1 -1
- package/dist/events/toStoredEvent.d.ts +1 -2
- package/dist/events/toStoredEvent.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +2 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +1 -2
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +39 -37
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.d.ts +1 -2
- package/dist/execution/primitive.d.ts.map +1 -1
- package/dist/execution/primitive.js +38 -36
- package/dist/execution/primitive.js.map +3 -3
- package/dist/execution/request.d.ts +1 -2
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +39 -37
- package/dist/execution/request.js.map +3 -3
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -50
- package/dist/index.js.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts +11 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materialization/errors.d.ts +3 -1
- package/dist/materialization/errors.d.ts.map +1 -1
- package/dist/materialization/events.d.ts +27 -2
- package/dist/materialization/events.d.ts.map +1 -1
- package/dist/materializer/edits/commit.d.ts.map +1 -1
- package/dist/materializer/edits/operations.d.ts +2 -1
- package/dist/materializer/edits/operations.d.ts.map +1 -1
- package/dist/materializer/edits/plan.d.ts +2 -2
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/edits/user-refs.d.ts +30 -0
- package/dist/materializer/edits/user-refs.d.ts.map +1 -0
- package/dist/materializer/effective/build-events.d.ts +2 -2
- package/dist/materializer/effective/build-events.d.ts.map +1 -1
- package/dist/materializer/execution/scope.d.ts +11 -3
- package/dist/materializer/execution/scope.d.ts.map +1 -1
- package/dist/materializer/index.js +23 -21
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts +2 -0
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts +2 -2
- package/dist/materializer/telemetry/plan.d.ts.map +1 -1
- package/dist/models/execution/index.js +23 -21
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/objects/execution.d.ts +21 -27
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +28 -26
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +27 -25
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +8 -1
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/scalar-values.d.ts.map +1 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts +1 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -3
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-builder.d.ts +8 -10
- package/dist/objects/sdk/query-builder.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts +1 -2
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/sdk/where.d.ts +2 -3
- package/dist/objects/sdk/where.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +11 -10
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/index.d.ts +4 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +6 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +34 -22
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +1 -0
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +9 -7
- package/dist/ontology/internal.js.map +1 -1
- package/dist/ontology/primitives.d.ts +38 -0
- package/dist/ontology/primitives.d.ts.map +1 -0
- package/dist/ontology/query-capabilities.d.ts +38 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +23 -2
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/registered.d.ts +16 -0
- package/dist/ontology/registered.d.ts.map +1 -0
- package/dist/ontology/registry.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +35 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +18 -4
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/user-ref.d.ts +35 -0
- package/dist/ontology/user-ref.d.ts.map +1 -0
- package/dist/ontology/validation/definition.d.ts.map +1 -1
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/normalize.d.ts.map +1 -1
- package/dist/ontology/validation/properties.d.ts +6 -1
- package/dist/ontology/validation/properties.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +26 -24
- package/dist/pipelines/index.js.map +1 -1
- package/dist/predicates/types.d.ts +53 -3
- package/dist/predicates/types.d.ts.map +1 -1
- package/dist/projections/builders.d.ts +19 -1
- package/dist/projections/builders.d.ts.map +1 -1
- package/dist/projections/internal.js +23 -21
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/validation.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +1 -1
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +1 -1
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +5 -5
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.js +27 -25
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/sixb.d.ts +5 -5
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +171 -188
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +5 -5
- package/dist/sandboxes/sandbox.d.ts +4 -1
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/shared/params/types.d.ts +4 -3
- package/dist/shared/params/types.d.ts.map +1 -1
- package/dist/shared/params/user-refs.d.ts +19 -0
- package/dist/shared/params/user-refs.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -22
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/types.d.ts +1 -1
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/auth/in-memory/access-tokens.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +8 -1
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +1 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +62 -13
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/executions/provider.js +1 -1
- package/dist/storage/file-upload-sessions/in-memory.d.ts +9 -18
- package/dist/storage/file-upload-sessions/in-memory.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.d.ts +52 -0
- package/dist/storage/file-upload-sessions/provider.d.ts.map +1 -0
- package/dist/storage/file-upload-sessions/provider.js +24 -0
- package/dist/storage/file-upload-sessions/provider.js.map +9 -0
- package/dist/storage/file-upload-sessions/types.d.ts +19 -1
- package/dist/storage/file-upload-sessions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/utils.d.ts +8 -2
- package/dist/storage/file-upload-sessions/utils.d.ts.map +1 -1
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +29 -25
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +11 -9
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +6 -2
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/provider-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +14 -1
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +8 -2
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/index.d.ts +1 -1
- package/dist/storage/workflow-interventions/index.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/types.d.ts +5 -8
- package/dist/storage/workflow-interventions/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +8 -8
- package/dist/syncs/index.js +27 -25
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-execution.d.ts +4 -0
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution.d.ts +1 -2
- package/dist/testing/execution.d.ts.map +1 -1
- package/dist/testing/file-upload-session-storage-contract.d.ts +12 -0
- package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1951 -1242
- package/dist/testing/index.js.map +15 -13
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-query-contract.d.ts.map +1 -1
- package/dist/testing/ontology-contract-fixture.d.ts +8 -0
- package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/sandboxes-contract.d.ts.map +1 -1
- package/dist/testing/workflow-intervention-storage-contract.d.ts +8 -0
- package/dist/testing/workflow-intervention-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +24 -22
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/webhooks/types.d.ts +2 -2
- package/dist/webhooks/types.d.ts.map +1 -1
- package/dist/workers/index.js +1 -1
- package/dist/workflows/index.js +42 -40
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/run-dispatch.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +2 -2
- package/dist/workflows/types.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/actions/index.ts +0 -3
- package/src/actions/read-facade.ts +102 -62
- package/src/actions/request.ts +13 -0
- package/src/actions/run-dispatch.ts +3 -0
- package/src/actions/types/context.ts +17 -65
- package/src/actions/types/params.ts +2 -1
- package/src/agents/authority.ts +1 -1
- package/src/assert-never.ts +7 -0
- package/src/auth/client-address.ts +12 -0
- package/src/auth/csrf.ts +14 -5
- package/src/auth/index.ts +3 -2
- package/src/auth/runtime.ts +299 -277
- package/src/auth/session-cache.ts +18 -6
- package/src/auth/sessions.ts +30 -0
- package/src/auth/types.ts +7 -17
- package/src/bootstrap/index.ts +1 -0
- package/src/bootstrap/ontology-type-manifest.ts +112 -60
- package/src/edits/types.ts +47 -63
- package/src/errors/catalog.ts +4 -0
- package/src/events/envelope.ts +0 -13
- package/src/events/index.ts +1 -1
- package/src/events/service.ts +1 -11
- package/src/events/toStoredEvent.ts +1 -3
- package/src/events/types/index.ts +1 -1
- package/src/execution/agent.ts +1 -2
- package/src/execution/authorized-object-reader.ts +5 -7
- package/src/execution/primitive.ts +1 -2
- package/src/execution/request.ts +1 -2
- package/src/index.ts +8 -7
- package/src/maintenance/ontology-maintenance.ts +77 -1
- package/src/materialization/errors.ts +2 -0
- package/src/materialization/events.ts +27 -2
- package/src/materializer/README.md +2 -0
- package/src/materializer/edits/commit.ts +21 -12
- package/src/materializer/edits/operations.ts +32 -4
- package/src/materializer/edits/plan.ts +4 -5
- package/src/materializer/edits/user-refs.ts +115 -0
- package/src/materializer/effective/build-events.ts +4 -5
- package/src/materializer/execution/scope.ts +40 -7
- package/src/materializer/projections/replace.ts +2 -0
- package/src/materializer/projections/replacement-plan.ts +4 -0
- package/src/materializer/telemetry/append.ts +4 -12
- package/src/materializer/telemetry/plan.ts +4 -5
- package/src/objects/execution.ts +33 -62
- package/src/objects/query/executor.ts +12 -3
- package/src/objects/query/ir.ts +7 -0
- package/src/objects/query/planner.ts +1 -0
- package/src/objects/query/scalar-values.ts +19 -0
- package/src/objects/query/validate.ts +55 -44
- package/src/objects/sdk/object-handle.ts +8 -8
- package/src/objects/sdk/object-set.ts +8 -15
- package/src/objects/sdk/query-builder.ts +59 -71
- package/src/objects/sdk/telemetry-channel.ts +6 -7
- package/src/objects/sdk/where.ts +6 -13
- package/src/ontology/builders.ts +15 -11
- package/src/ontology/index.ts +4 -0
- package/src/ontology/inference/index.ts +56 -36
- package/src/ontology/internal.ts +1 -0
- package/src/ontology/json-schema.ts +12 -0
- package/src/ontology/primitives.ts +91 -0
- package/src/ontology/query-capabilities.ts +136 -0
- package/src/ontology/refs.ts +33 -6
- package/src/ontology/registered.ts +22 -0
- package/src/ontology/registry.ts +6 -3
- package/src/ontology/tokens.ts +41 -2
- package/src/ontology/types.ts +19 -3
- package/src/ontology/user-ref.ts +120 -0
- package/src/ontology/validation/definition.ts +2 -13
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/normalize.ts +39 -3
- package/src/ontology/validation/properties.ts +95 -19
- package/src/ontology/validation/query.ts +11 -42
- package/src/ontology/validation/schema.ts +16 -0
- package/src/predicates/types.ts +43 -33
- package/src/projections/builders.ts +24 -3
- package/src/projections/validation.ts +15 -1
- package/src/runtime/create.ts +2 -2
- package/src/runtime/host.ts +10 -12
- package/src/runtime/index.ts +3 -2
- package/src/runtime/sixb.ts +13 -23
- package/src/runtime/types.ts +277 -479
- package/src/sandboxes/sandbox.ts +4 -1
- package/src/shared/params/types.ts +4 -3
- package/src/shared/params/user-refs.ts +48 -0
- package/src/shares/compiler.ts +6 -16
- package/src/storage/action-runs/types.ts +1 -0
- package/src/storage/auth/in-memory/access-tokens.ts +5 -2
- package/src/storage/auth/in-memory/auth-storage.ts +5 -8
- package/src/storage/auth/in-memory/device-authorizations.ts +0 -2
- package/src/storage/auth/in-memory/sessions.ts +69 -1
- package/src/storage/auth/in-memory/shared.ts +13 -7
- package/src/storage/auth/index.ts +2 -1
- package/src/storage/auth/types.ts +57 -13
- package/src/storage/executions/validation.ts +1 -1
- package/src/storage/file-upload-sessions/in-memory.ts +64 -113
- package/src/storage/file-upload-sessions/index.ts +1 -0
- package/src/storage/file-upload-sessions/provider.ts +258 -0
- package/src/storage/file-upload-sessions/types.ts +20 -1
- package/src/storage/file-upload-sessions/utils.ts +25 -9
- package/src/storage/index.ts +3 -2
- package/src/storage/objects/in-memory/query.ts +13 -3
- package/src/storage/ontology/commits.ts +6 -2
- package/src/storage/ontology/in-memory/materializations.ts +6 -34
- package/src/storage/ontology/provider-header-validation.ts +57 -0
- package/src/storage/ontology/provider-work.ts +15 -3
- package/src/storage/ontology/provider.ts +59 -1
- package/src/storage/operation-scope.ts +1 -0
- package/src/storage/types.ts +0 -1
- package/src/storage/workflow-interventions/index.ts +0 -1
- package/src/storage/workflow-interventions/types.ts +5 -9
- package/src/testing/action-execution.ts +13 -3
- package/src/testing/auth-storage-contract.ts +149 -62
- package/src/testing/execution-storage-contract.ts +1 -2
- package/src/testing/execution.ts +4 -7
- package/src/testing/file-upload-session-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -0
- package/src/testing/materializer-storage-contract.ts +86 -4
- package/src/testing/object-query-contract.ts +121 -2
- package/src/testing/ontology-contract-fixture.ts +23 -3
- package/src/testing/ontology-storage-contract.ts +58 -0
- package/src/testing/sandboxes-contract.ts +27 -0
- package/src/testing/workflow-intervention-storage-contract.ts +203 -0
- package/src/webhooks/types.ts +2 -2
- package/src/workflows/run-dispatch.ts +12 -1
- package/src/workflows/snapshot.ts +16 -7
- package/src/workflows/types.ts +2 -2
- package/dist/chunk-2cxv584m.js.map +0 -43
- package/dist/chunk-3ghw2t5q.js.map +0 -10
- package/dist/chunk-3h7ctayx.js.map +0 -11
- package/dist/chunk-6ma8dvzc.js.map +0 -15
- package/dist/chunk-bbaa1fet.js.map +0 -25
- package/dist/chunk-eyjzgav0.js.map +0 -12
- package/dist/chunk-f06sf7rr.js.map +0 -11
- package/dist/chunk-g50nxqs5.js.map +0 -18
- package/dist/chunk-hkw8rykk.js.map +0 -15
- package/dist/chunk-p6r1ex7t.js.map +0 -10
- package/dist/chunk-qm535afa.js.map +0 -15
- package/dist/chunk-vpxss818.js.map +0 -10
- package/dist/chunk-vsg0g7h9.js.map +0 -17
- /package/dist/{chunk-e1f1sqba.js.map → chunk-04h4t2b5.js.map} +0 -0
- /package/dist/{chunk-y3ev53cq.js.map → chunk-2fv8sajb.js.map} +0 -0
- /package/dist/{chunk-3bnt2wna.js.map → chunk-2hbhn1ff.js.map} +0 -0
- /package/dist/{chunk-5tetw4hn.js.map → chunk-4tnrzqqh.js.map} +0 -0
- /package/dist/{chunk-jjwhy3rs.js.map → chunk-a69fkrtr.js.map} +0 -0
- /package/dist/{chunk-y1ahv8b7.js.map → chunk-bdhfn0ww.js.map} +0 -0
- /package/dist/{chunk-4ph94nhd.js.map → chunk-bep5rrdq.js.map} +0 -0
- /package/dist/{chunk-kept9cdd.js.map → chunk-bxx3ms5t.js.map} +0 -0
- /package/dist/{chunk-xtfryrfb.js.map → chunk-cbn96bve.js.map} +0 -0
- /package/dist/{chunk-r5zythxp.js.map → chunk-gbcrz0gr.js.map} +0 -0
- /package/dist/{chunk-t7dzd1tm.js.map → chunk-jhyc777j.js.map} +0 -0
- /package/dist/{chunk-0mza4xb2.js.map → chunk-m8zkvep1.js.map} +0 -0
- /package/dist/{chunk-sfypc7mk.js.map → chunk-s24qbp32.js.map} +0 -0
- /package/dist/{chunk-y0v18c2j.js.map → chunk-vef6qa14.js.map} +0 -0
- /package/dist/{chunk-gzt6v1ja.js.map → chunk-vn3yh259.js.map} +0 -0
- /package/dist/{chunk-bg2bs62d.js.map → chunk-w9bp61e7.js.map} +0 -0
- /package/dist/{chunk-gswwr35f.js.map → chunk-y487ywrv.js.map} +0 -0
- /package/dist/{chunk-bet1rb9h.js.map → chunk-y6vnvayj.js.map} +0 -0
- /package/dist/{chunk-g2gezsg5.js.map → chunk-z9h698s8.js.map} +0 -0
- /package/dist/{chunk-bfjv1adk.js.map → chunk-znw0zvy4.js.map} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AuthorizablePrincipal } from "../../execution/types"
|
|
2
|
+
import type { EventExecutor } from "../../materialization/events"
|
|
2
3
|
import type {
|
|
3
4
|
EditCommitResult,
|
|
4
5
|
OntologyMaterializationOrigin,
|
|
@@ -57,7 +58,10 @@ interface OntologyCommitFields {
|
|
|
57
58
|
readonly requestHash: string
|
|
58
59
|
readonly executionId: string
|
|
59
60
|
readonly origin: OntologyMaterializationOrigin
|
|
60
|
-
|
|
61
|
+
/** Principal on whose behalf the execution ran, copied from `ExecutionRecord.requestedBy`. */
|
|
62
|
+
readonly requestedBy?: AuthorizablePrincipal
|
|
63
|
+
/** Workload that wrote the commit, copied from its execution. */
|
|
64
|
+
readonly executor: EventExecutor
|
|
61
65
|
readonly ontologyRevision: string
|
|
62
66
|
readonly projectionRevision?: string
|
|
63
67
|
readonly ownershipHash?: string
|
|
@@ -64,6 +64,9 @@ import type {
|
|
|
64
64
|
import type { OntologyMaterializationEvent } from "../outbox"
|
|
65
65
|
import {
|
|
66
66
|
appendScopeSnapshot,
|
|
67
|
+
assertExpectedLinkRevision,
|
|
68
|
+
assertExpectedLinkScopeRevision,
|
|
69
|
+
assertExpectedObjectRevision,
|
|
67
70
|
assertMaterializationHeader,
|
|
68
71
|
finishScopeAccumulator,
|
|
69
72
|
type ProviderMaterializationTransactionLifecycle,
|
|
@@ -217,12 +220,7 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
|
|
|
217
220
|
expectedScopeRevisions.get(key) ??
|
|
218
221
|
this.computeEffectiveLinkScope(input.commit.projectId, expected.source, expected.linkId)
|
|
219
222
|
expectedScopeRevisions.set(key, current)
|
|
220
|
-
|
|
221
|
-
throw new MaterializationConflictError(
|
|
222
|
-
"effective-state",
|
|
223
|
-
`Expected link scope changed for ${expected.source.objectTypeId}:${expected.source.primaryId}.${expected.linkId}.`
|
|
224
|
-
)
|
|
225
|
-
}
|
|
223
|
+
assertExpectedLinkScopeRevision(current.fingerprint, expected)
|
|
226
224
|
}
|
|
227
225
|
for (const expected of input.expected.points) this.assertPoint(expected, input.commit.projectId)
|
|
228
226
|
|
|
@@ -1039,20 +1037,7 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
|
|
|
1039
1037
|
expected.ref.objectTypeId,
|
|
1040
1038
|
expected.ref.primaryId
|
|
1041
1039
|
)
|
|
1042
|
-
|
|
1043
|
-
if (row)
|
|
1044
|
-
throw new MaterializationConflictError(
|
|
1045
|
-
"effective-state",
|
|
1046
|
-
`Expected object ${objectRefKey(expected.ref)} to be absent.`
|
|
1047
|
-
)
|
|
1048
|
-
return
|
|
1049
|
-
}
|
|
1050
|
-
if (!row || row.version !== expected.version || row.lastCommitId !== expected.lastCommitId) {
|
|
1051
|
-
throw new MaterializationConflictError(
|
|
1052
|
-
"effective-state",
|
|
1053
|
-
`Expected object ${objectRefKey(expected.ref)} changed.`
|
|
1054
|
-
)
|
|
1055
|
-
}
|
|
1040
|
+
assertExpectedObjectRevision(row ?? null, expected)
|
|
1056
1041
|
}
|
|
1057
1042
|
|
|
1058
1043
|
private async assertLink(expected: ExpectedLinkRevision, projectId: string): Promise<void> {
|
|
@@ -1067,20 +1052,7 @@ export class InMemoryOntologyMaterializationStorage implements OntologyMateriali
|
|
|
1067
1052
|
targetTypeId: expected.ref.target.objectTypeId,
|
|
1068
1053
|
targetId: expected.ref.target.primaryId,
|
|
1069
1054
|
})
|
|
1070
|
-
|
|
1071
|
-
if (row)
|
|
1072
|
-
throw new MaterializationConflictError(
|
|
1073
|
-
"effective-state",
|
|
1074
|
-
`Expected link ${linkRefKey(expected.ref)} to be absent.`
|
|
1075
|
-
)
|
|
1076
|
-
return
|
|
1077
|
-
}
|
|
1078
|
-
if (!row || row.lastCommitId !== expected.lastCommitId) {
|
|
1079
|
-
throw new MaterializationConflictError(
|
|
1080
|
-
"effective-state",
|
|
1081
|
-
`Expected link ${linkRefKey(expected.ref)} changed.`
|
|
1082
|
-
)
|
|
1083
|
-
}
|
|
1055
|
+
assertExpectedLinkRevision(row?.lastCommitId, expected)
|
|
1084
1056
|
}
|
|
1085
1057
|
|
|
1086
1058
|
private assertPoint(expected: ExpectedTimeseriesPointRevision, projectId: string): void {
|
|
@@ -38,6 +38,55 @@ function assertCommitEnvelope(commit: OntologyCommitWrite): void {
|
|
|
38
38
|
assertNonblank(commit.executionId, "Materialization execution id")
|
|
39
39
|
assertNonblank(commit.ontologyRevision, "Materialization ontology revision")
|
|
40
40
|
assertTimestamp(commit.committedAt, "Materialization commit time")
|
|
41
|
+
assertCommitAttribution(commit)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** Shape only: the Materializer copies both values from the execution it has already verified. */
|
|
45
|
+
function assertCommitAttribution(commit: OntologyCommitWrite): void {
|
|
46
|
+
const { requestedBy, executor } = commit
|
|
47
|
+
if (requestedBy !== undefined) {
|
|
48
|
+
if (requestedBy.type !== "user" && requestedBy.type !== "serviceAccount") {
|
|
49
|
+
invalidCorrelation("Materialization requester must be a user or service account.")
|
|
50
|
+
}
|
|
51
|
+
assertNonblank(requestedBy.id, "Materialization requester id")
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
switch (executor?.type) {
|
|
55
|
+
case "request":
|
|
56
|
+
assertNonblank(executor.requestId, "Materialization executor request id")
|
|
57
|
+
return
|
|
58
|
+
case "primitive":
|
|
59
|
+
assertNonblank(executor.kind, "Materialization executor primitive kind")
|
|
60
|
+
assertNonblank(executor.id, "Materialization executor primitive id")
|
|
61
|
+
assertNonblank(executor.runId, "Materialization executor run id")
|
|
62
|
+
return
|
|
63
|
+
case "agent":
|
|
64
|
+
assertNonblank(executor.runId, "Materialization executor Agent run id")
|
|
65
|
+
return
|
|
66
|
+
case "kernel":
|
|
67
|
+
assertNonblank(executor.operation?.type, "Materialization executor kernel operation")
|
|
68
|
+
return
|
|
69
|
+
default:
|
|
70
|
+
invalidCorrelation("Materialization executor is invalid.")
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** A governed or projected write is attributed to exactly the primitive run that owns it. */
|
|
75
|
+
function assertPrimitiveExecutor(
|
|
76
|
+
commit: OntologyCommitWrite,
|
|
77
|
+
kind: "action" | "projection",
|
|
78
|
+
id: string,
|
|
79
|
+
runId: string
|
|
80
|
+
): void {
|
|
81
|
+
const { executor } = commit
|
|
82
|
+
if (
|
|
83
|
+
executor.type !== "primitive" ||
|
|
84
|
+
executor.kind !== kind ||
|
|
85
|
+
executor.id !== id ||
|
|
86
|
+
executor.runId !== runId
|
|
87
|
+
) {
|
|
88
|
+
invalidCorrelation(`Commit ${kind} origin does not match its executor.`)
|
|
89
|
+
}
|
|
41
90
|
}
|
|
42
91
|
|
|
43
92
|
function assertEditCommit(commit: OntologyCommitWrite, intent: EditOntologyCommitIntent): void {
|
|
@@ -47,6 +96,7 @@ function assertEditCommit(commit: OntologyCommitWrite, intent: EditOntologyCommi
|
|
|
47
96
|
case "action":
|
|
48
97
|
assertNonblank(commit.origin.actionId, "Action origin action id")
|
|
49
98
|
assertNonblank(commit.origin.runId, "Action origin run id")
|
|
99
|
+
assertPrimitiveExecutor(commit, "action", commit.origin.actionId, commit.origin.runId)
|
|
50
100
|
return
|
|
51
101
|
case "runtime":
|
|
52
102
|
assertNonblank(commit.origin.requestId, "Runtime origin request id")
|
|
@@ -77,6 +127,12 @@ function assertProjectionCommit(
|
|
|
77
127
|
) {
|
|
78
128
|
invalidCorrelation("Projection commit origin does not match its dataset version.")
|
|
79
129
|
}
|
|
130
|
+
assertPrimitiveExecutor(
|
|
131
|
+
commit,
|
|
132
|
+
"projection",
|
|
133
|
+
commit.origin.projectionId,
|
|
134
|
+
commit.origin.projectionRunId
|
|
135
|
+
)
|
|
80
136
|
}
|
|
81
137
|
|
|
82
138
|
function assertTelemetryCommit(
|
|
@@ -142,6 +198,7 @@ function assertProjectionTelemetryCommit(
|
|
|
142
198
|
if (origin.batchOrdinal !== source.batchOrdinal) {
|
|
143
199
|
invalidCorrelation("Projection telemetry origin does not match its batch ordinal.")
|
|
144
200
|
}
|
|
201
|
+
assertPrimitiveExecutor(commit, "projection", origin.projectionId, origin.projectionRunId)
|
|
145
202
|
}
|
|
146
203
|
|
|
147
204
|
function assertProjectionTelemetryBatch(
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
objectRefKey,
|
|
10
10
|
telemetryPointKey,
|
|
11
11
|
} from "../../materialization/refs"
|
|
12
|
+
import type { OntologyCommitWrite } from "./commits"
|
|
12
13
|
import {
|
|
13
14
|
type ExactTimeseriesPointWrite,
|
|
14
15
|
type MaterializationCardinalityOccupantWorkRecord,
|
|
@@ -107,8 +108,7 @@ export function assertWorkRecord(
|
|
|
107
108
|
record.draft.commitId !== header.commit.id ||
|
|
108
109
|
record.draft.occurredAt !== header.commit.committedAt ||
|
|
109
110
|
stableJsonStringify(record.draft.origin) !== stableJsonStringify(header.commit.origin) ||
|
|
110
|
-
|
|
111
|
-
stableJsonStringify(header.commit.actor ?? null)
|
|
111
|
+
!sameAttribution(record.draft, header.commit)
|
|
112
112
|
) {
|
|
113
113
|
throw new MaterializationValidationError("Materialization event work is invalid.")
|
|
114
114
|
}
|
|
@@ -312,7 +312,7 @@ function assertOutboxCorrelation(
|
|
|
312
312
|
value.availableAt !== commit.committedAt ||
|
|
313
313
|
value.createdAt !== commit.committedAt ||
|
|
314
314
|
stableJsonStringify(envelope.origin) !== stableJsonStringify(commit.origin) ||
|
|
315
|
-
|
|
315
|
+
!sameAttribution(envelope, commit) ||
|
|
316
316
|
!Number.isSafeInteger(envelope.commitOrdinal) ||
|
|
317
317
|
envelope.commitOrdinal < 0 ||
|
|
318
318
|
envelope.id !== createEventId(commit.projectId, commit.id, envelope.commitOrdinal)
|
|
@@ -347,3 +347,15 @@ function assertLinkRefEqual(left: OntologyLinkRef, right: OntologyLinkRef, label
|
|
|
347
347
|
invalidCorrelation(`${label} row and expected references differ.`)
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
|
+
|
|
351
|
+
/** Events carry exactly the attribution of the commit that produced them. */
|
|
352
|
+
function sameAttribution(
|
|
353
|
+
event: Pick<OntologyCommitWrite, "requestedBy" | "executor">,
|
|
354
|
+
commit: Pick<OntologyCommitWrite, "requestedBy" | "executor">
|
|
355
|
+
): boolean {
|
|
356
|
+
return (
|
|
357
|
+
stableJsonStringify(event.requestedBy ?? null) ===
|
|
358
|
+
stableJsonStringify(commit.requestedBy ?? null) &&
|
|
359
|
+
stableJsonStringify(event.executor) === stableJsonStringify(commit.executor)
|
|
360
|
+
)
|
|
361
|
+
}
|
|
@@ -6,10 +6,13 @@ import {
|
|
|
6
6
|
} from "../../materialization/errors"
|
|
7
7
|
import type {
|
|
8
8
|
EffectiveLinkSnapshot,
|
|
9
|
+
ExpectedLinkRevision,
|
|
10
|
+
ExpectedLinkScopeRevision,
|
|
11
|
+
ExpectedObjectRevision,
|
|
9
12
|
OntologyLinkRef,
|
|
10
13
|
OntologyObjectRef,
|
|
11
14
|
} from "../../materialization/model"
|
|
12
|
-
import { projectionEntityKey } from "../../materialization/refs"
|
|
15
|
+
import { linkRefKey, objectRefKey, projectionEntityKey } from "../../materialization/refs"
|
|
13
16
|
import type { OntologyCommitOriginSelector, OntologyCommitWrite } from "./commits"
|
|
14
17
|
import type {
|
|
15
18
|
FinalizeMaterializationInput,
|
|
@@ -485,6 +488,61 @@ export function effectiveConflict(message: string): MaterializationConflictError
|
|
|
485
488
|
return new MaterializationConflictError("effective-state", message)
|
|
486
489
|
}
|
|
487
490
|
|
|
491
|
+
/**
|
|
492
|
+
* Rejects a commit whose expected object no longer matches its current effective row.
|
|
493
|
+
*
|
|
494
|
+
* Every provider checks commit expectations through these helpers, so a failed expectation is always
|
|
495
|
+
* the `expectation` conflict kind: an Action run reports exactly that kind as a read conflict.
|
|
496
|
+
*/
|
|
497
|
+
export function assertExpectedObjectRevision(
|
|
498
|
+
current: { readonly version: number; readonly lastCommitId: string | null } | null,
|
|
499
|
+
expected: ExpectedObjectRevision
|
|
500
|
+
): void {
|
|
501
|
+
if (!expected.exists) {
|
|
502
|
+
if (current) {
|
|
503
|
+
throw expectationConflict(`Expected object ${objectRefKey(expected.ref)} to be absent.`)
|
|
504
|
+
}
|
|
505
|
+
return
|
|
506
|
+
}
|
|
507
|
+
if (
|
|
508
|
+
!current ||
|
|
509
|
+
current.version !== expected.version ||
|
|
510
|
+
current.lastCommitId !== expected.lastCommitId
|
|
511
|
+
) {
|
|
512
|
+
throw expectationConflict(`Expected object ${objectRefKey(expected.ref)} changed.`)
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/** `currentLastCommitId` is `undefined` when the link has no effective row. */
|
|
517
|
+
export function assertExpectedLinkRevision(
|
|
518
|
+
currentLastCommitId: string | null | undefined,
|
|
519
|
+
expected: ExpectedLinkRevision
|
|
520
|
+
): void {
|
|
521
|
+
if (!expected.exists) {
|
|
522
|
+
if (currentLastCommitId !== undefined) {
|
|
523
|
+
throw expectationConflict(`Expected link ${linkRefKey(expected.ref)} to be absent.`)
|
|
524
|
+
}
|
|
525
|
+
return
|
|
526
|
+
}
|
|
527
|
+
if (currentLastCommitId === undefined || currentLastCommitId !== expected.lastCommitId) {
|
|
528
|
+
throw expectationConflict(`Expected link ${linkRefKey(expected.ref)} changed.`)
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
export function assertExpectedLinkScopeRevision(
|
|
533
|
+
currentFingerprint: string | undefined,
|
|
534
|
+
expected: ExpectedLinkScopeRevision
|
|
535
|
+
): void {
|
|
536
|
+
if (currentFingerprint === expected.fingerprint) return
|
|
537
|
+
throw expectationConflict(
|
|
538
|
+
`Expected link scope changed for ${expected.source.objectTypeId}:${expected.source.primaryId}.${expected.linkId}.`
|
|
539
|
+
)
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
function expectationConflict(message: string): MaterializationConflictError {
|
|
543
|
+
return new MaterializationConflictError("expectation", message)
|
|
544
|
+
}
|
|
545
|
+
|
|
488
546
|
export function materializationWorkColumns(record: MaterializationWorkRecord): {
|
|
489
547
|
readonly lane: "none" | "apply" | "cardinality" | "event"
|
|
490
548
|
readonly majorOrder: number
|
|
@@ -206,6 +206,7 @@ export function createAuthOperationScope<T extends AuthStorage>(
|
|
|
206
206
|
groupMemberships: createOperationScopedFacade(target.groupMemberships, scope),
|
|
207
207
|
magicLinks: createOperationScopedFacade(target.magicLinks, scope),
|
|
208
208
|
oidcAuthorizationAttempts: createOperationScopedFacade(target.oidcAuthorizationAttempts, scope),
|
|
209
|
+
deviceAuthorizations: createOperationScopedFacade(target.deviceAuthorizations, scope),
|
|
209
210
|
}) as T
|
|
210
211
|
}
|
|
211
212
|
|
package/src/storage/types.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
+
import type { Principal } from "../../auth"
|
|
1
2
|
import type { WorkflowIOSnapshot } from "../workflow-runs"
|
|
2
3
|
|
|
3
4
|
export type WorkflowInterventionStatus = "pending" | "submitted" | "cancelled" | "expired"
|
|
4
5
|
|
|
5
|
-
export interface WorkflowInterventionActor {
|
|
6
|
-
readonly principalType: "user" | "serviceAccount" | "system"
|
|
7
|
-
readonly principalId: string
|
|
8
|
-
}
|
|
9
|
-
|
|
10
6
|
export interface WorkflowInterventionRecord {
|
|
11
7
|
readonly id: string
|
|
12
8
|
readonly projectId: string
|
|
@@ -23,10 +19,10 @@ export interface WorkflowInterventionRecord {
|
|
|
23
19
|
readonly requestedAt: Date
|
|
24
20
|
readonly expiresAt?: Date
|
|
25
21
|
readonly submittedAt?: Date
|
|
26
|
-
readonly submittedBy?:
|
|
22
|
+
readonly submittedBy?: Principal
|
|
27
23
|
readonly response?: WorkflowIOSnapshot
|
|
28
24
|
readonly cancelledAt?: Date
|
|
29
|
-
readonly cancelledBy?:
|
|
25
|
+
readonly cancelledBy?: Principal
|
|
30
26
|
readonly expiredAt?: Date
|
|
31
27
|
}
|
|
32
28
|
|
|
@@ -51,14 +47,14 @@ export interface SubmitWorkflowInterventionInput {
|
|
|
51
47
|
readonly id: string
|
|
52
48
|
readonly response: WorkflowIOSnapshot
|
|
53
49
|
readonly submittedAt?: Date
|
|
54
|
-
readonly submittedBy?:
|
|
50
|
+
readonly submittedBy?: Principal
|
|
55
51
|
}
|
|
56
52
|
|
|
57
53
|
export interface CancelWorkflowInterventionInput {
|
|
58
54
|
readonly projectId: string
|
|
59
55
|
readonly id: string
|
|
60
56
|
readonly cancelledAt?: Date
|
|
61
|
-
readonly cancelledBy?:
|
|
57
|
+
readonly cancelledBy?: Principal
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
export interface ExpireWorkflowInterventionInput {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TrustedPrimitiveRef } from "../execution"
|
|
1
|
+
import type { AuthorizablePrincipal, TrustedPrimitiveRef } from "../execution"
|
|
2
2
|
import type { ActionRunRecord, QueueActionRunInput, Storage } from "../storage"
|
|
3
3
|
import type { ExecutionStorage } from "../storage/executions"
|
|
4
4
|
|
|
@@ -11,6 +11,8 @@ export async function createTestActionExecution(
|
|
|
11
11
|
readonly runId: string
|
|
12
12
|
readonly executionId?: string
|
|
13
13
|
readonly requesterGroupIds?: readonly string[]
|
|
14
|
+
/** Must name an existing auth principal. The parent request then carries its authority. */
|
|
15
|
+
readonly requestedBy?: AuthorizablePrincipal
|
|
14
16
|
}
|
|
15
17
|
): Promise<string> {
|
|
16
18
|
const parentExecutionId = `test_request_execution:${input.runId}`
|
|
@@ -24,22 +26,28 @@ export async function createTestActionExecution(
|
|
|
24
26
|
const existing = await executions.getById({ projectId: input.projectId, id: executionId })
|
|
25
27
|
if (existing) return executionId
|
|
26
28
|
|
|
29
|
+
const requestedBy = input.requestedBy
|
|
27
30
|
const parent = await executions.getById({ projectId: input.projectId, id: parentExecutionId })
|
|
28
31
|
if (!parent) {
|
|
29
32
|
await executions.create({
|
|
30
33
|
id: parentExecutionId,
|
|
31
34
|
requesterGroupIds: input.requesterGroupIds ?? [],
|
|
32
35
|
projectId: input.projectId,
|
|
36
|
+
...(requestedBy === undefined ? {} : { requestedBy }),
|
|
33
37
|
executor: { type: "request", requestId: `test_request:${input.runId}` },
|
|
34
38
|
source: { type: "http", requestId: `test_request:${input.runId}` },
|
|
35
39
|
correlationId: `test_correlation:${input.runId}`,
|
|
36
|
-
authorizationRef:
|
|
40
|
+
authorizationRef:
|
|
41
|
+
requestedBy === undefined
|
|
42
|
+
? { type: "disabled" }
|
|
43
|
+
: { type: "principal", principal: requestedBy },
|
|
37
44
|
})
|
|
38
45
|
}
|
|
39
46
|
await executions.create({
|
|
40
47
|
id: executionId,
|
|
41
48
|
requesterGroupIds: input.requesterGroupIds ?? [],
|
|
42
49
|
projectId: input.projectId,
|
|
50
|
+
...(requestedBy === undefined ? {} : { requestedBy }),
|
|
43
51
|
executor: { type: "primitive", kind: primitive.kind, runId: primitive.runId },
|
|
44
52
|
source: { type: "execution", executionId: parentExecutionId },
|
|
45
53
|
correlationId: `test_correlation:${input.runId}`,
|
|
@@ -54,6 +62,7 @@ export async function queueTestActionRun(
|
|
|
54
62
|
storage: Pick<Storage, "actionRuns" | "executions">,
|
|
55
63
|
input: Omit<QueueActionRunInput, "executionId"> & {
|
|
56
64
|
readonly requesterGroupIds?: readonly string[]
|
|
65
|
+
readonly requestedBy?: AuthorizablePrincipal
|
|
57
66
|
}
|
|
58
67
|
): Promise<ActionRunRecord> {
|
|
59
68
|
if (!storage.actionRuns) throw new Error("Action run storage is not configured for this test.")
|
|
@@ -62,7 +71,8 @@ export async function queueTestActionRun(
|
|
|
62
71
|
actionId: input.actionId,
|
|
63
72
|
runId: input.id,
|
|
64
73
|
requesterGroupIds: input.requesterGroupIds,
|
|
74
|
+
...(input.requestedBy === undefined ? {} : { requestedBy: input.requestedBy }),
|
|
65
75
|
})
|
|
66
|
-
const { requesterGroupIds: _groups, ...run } = input
|
|
76
|
+
const { requesterGroupIds: _groups, requestedBy: _requestedBy, ...run } = input
|
|
67
77
|
return storage.actionRuns.queue({ ...run, executionId })
|
|
68
78
|
}
|