@sixb/core 0.1.17 → 0.1.19
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/README.md +7 -6
- package/dist/actions/commit-edits.d.ts +7 -19
- package/dist/actions/commit-edits.d.ts.map +1 -1
- package/dist/actions/errors.d.ts +0 -3
- package/dist/actions/errors.d.ts.map +1 -1
- package/dist/actions/execution.d.ts +10 -3
- package/dist/actions/execution.d.ts.map +1 -1
- package/dist/actions/index.d.ts +6 -9
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +56 -52
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +1 -1
- package/dist/actions/request.d.ts +14 -25
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run/context.d.ts +40 -0
- package/dist/actions/run/context.d.ts.map +1 -0
- package/dist/actions/run/edits-commit.d.ts +31 -0
- package/dist/actions/run/edits-commit.d.ts.map +1 -0
- package/dist/actions/run/effects.d.ts +23 -0
- package/dist/actions/run/effects.d.ts.map +1 -0
- package/dist/actions/run/execute.d.ts +30 -0
- package/dist/actions/run/execute.d.ts.map +1 -0
- package/dist/actions/run/executor.d.ts +95 -0
- package/dist/actions/run/executor.d.ts.map +1 -0
- package/dist/actions/run/normalize.d.ts +36 -0
- package/dist/actions/run/normalize.d.ts.map +1 -0
- package/dist/actions/run/phase-types.d.ts +18 -0
- package/dist/actions/run/phase-types.d.ts.map +1 -0
- package/dist/actions/run/phases.d.ts +20 -0
- package/dist/actions/run/phases.d.ts.map +1 -0
- package/dist/actions/run/run-action.d.ts +25 -0
- package/dist/actions/run/run-action.d.ts.map +1 -0
- package/dist/actions/run/signals.d.ts +67 -0
- package/dist/actions/run/signals.d.ts.map +1 -0
- package/dist/actions/run/state.d.ts +47 -0
- package/dist/actions/run/state.d.ts.map +1 -0
- package/dist/actions/run/types.d.ts +54 -0
- package/dist/actions/run/types.d.ts.map +1 -0
- package/dist/actions/run/writeback.d.ts +17 -0
- package/dist/actions/run/writeback.d.ts.map +1 -0
- package/dist/actions/run-authorization.d.ts +1 -1
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/actions/run-persistence.d.ts +53 -0
- package/dist/actions/run-persistence.d.ts.map +1 -0
- package/dist/actions/types/context.d.ts +10 -0
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/validation.d.ts.map +1 -1
- package/dist/agents/adapters.d.ts +7 -0
- package/dist/agents/adapters.d.ts.map +1 -1
- package/dist/agents/authority.d.ts +7 -0
- package/dist/agents/authority.d.ts.map +1 -1
- package/dist/agents/context/entries.d.ts +10 -1
- package/dist/agents/context/entries.d.ts.map +1 -1
- package/dist/agents/context/index.d.ts +1 -1
- package/dist/agents/context/index.d.ts.map +1 -1
- package/dist/agents/context/index.js +4 -2
- package/dist/agents/context/index.js.map +1 -1
- package/dist/agents/context-compaction.d.ts.map +1 -1
- package/dist/agents/errors.d.ts +1 -1
- package/dist/agents/errors.d.ts.map +1 -1
- package/dist/agents/index.d.ts +6 -4
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +63 -59
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/message.d.ts +8 -1
- package/dist/agents/message.d.ts.map +1 -1
- package/dist/agents/request.d.ts +19 -5
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts +41 -0
- package/dist/agents/skills.d.ts.map +1 -0
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/agents/types.d.ts +33 -4
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/auth/index.js +12 -9
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/types.d.ts +6 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/event-visibility.d.ts.map +1 -1
- package/dist/authorization/index.js +6 -4
- package/dist/authorization/index.js.map +1 -1
- package/dist/authorization/resolve.d.ts +1 -1
- package/dist/authorization/resolve.d.ts.map +1 -1
- package/dist/authorization/types.d.ts +7 -0
- package/dist/authorization/types.d.ts.map +1 -1
- package/dist/blob-storage/browser.js +1 -1
- package/dist/blob-storage/execution.d.ts.map +1 -1
- package/dist/blob-storage/file-content.d.ts +18 -0
- package/dist/blob-storage/file-content.d.ts.map +1 -0
- package/dist/blob-storage/index.d.ts +1 -1
- package/dist/blob-storage/index.d.ts.map +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +2 -0
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +16 -4
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +8 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -0
- package/dist/blob-storage/types.d.ts +12 -1
- package/dist/blob-storage/types.d.ts.map +1 -1
- package/dist/blob-storage/validation.d.ts +6 -0
- package/dist/blob-storage/validation.d.ts.map +1 -1
- package/dist/bootstrap/agent-context.d.ts +33 -0
- package/dist/bootstrap/agent-context.d.ts.map +1 -0
- package/dist/bootstrap/discovery.d.ts +23 -3
- package/dist/bootstrap/discovery.d.ts.map +1 -1
- package/dist/bootstrap/index.d.ts +2 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +285 -77
- package/dist/bootstrap/index.js.map +4 -3
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-t9shqx3w.js → chunk-1f7wpmyp.js} +143 -7
- package/dist/chunk-1f7wpmyp.js.map +14 -0
- package/dist/{chunk-jjrn5v0p.js → chunk-1k89ecfr.js} +1 -1
- package/dist/{chunk-9vx5e9g1.js → chunk-1sr8ryzk.js} +3 -3
- package/dist/chunk-1sr8ryzk.js.map +11 -0
- package/dist/{chunk-s7ftxrdr.js → chunk-29yx306f.js} +20 -3
- package/dist/{chunk-s7ftxrdr.js.map → chunk-29yx306f.js.map} +3 -3
- package/dist/{chunk-svabwqdq.js → chunk-3gnrh4ve.js} +44 -420
- package/dist/{chunk-svabwqdq.js.map → chunk-3gnrh4ve.js.map} +9 -13
- package/dist/{chunk-4ra628t7.js → chunk-3zxk45er.js} +70 -6
- package/dist/{chunk-4ra628t7.js.map → chunk-3zxk45er.js.map} +5 -4
- package/dist/{chunk-pja9jfz6.js → chunk-4tcx876c.js} +126 -64
- package/dist/chunk-4tcx876c.js.map +19 -0
- package/dist/{chunk-vre348sb.js → chunk-52bk93x8.js} +2 -2
- package/dist/{chunk-4gmng3vf.js → chunk-5e43w60z.js} +2 -2
- package/dist/{chunk-91kcnbf0.js → chunk-6gmfggss.js} +22 -9
- package/dist/chunk-6gmfggss.js.map +10 -0
- package/dist/{chunk-33saed7g.js → chunk-7kg3k1m9.js} +1 -1
- package/dist/{chunk-7ecp4v7a.js → chunk-7mbzgd9m.js} +10 -4
- package/dist/{chunk-7ecp4v7a.js.map → chunk-7mbzgd9m.js.map} +3 -3
- package/dist/{chunk-b9affek3.js → chunk-7n440zgt.js} +30 -30
- package/dist/{chunk-b9affek3.js.map → chunk-7n440zgt.js.map} +4 -4
- package/dist/{chunk-kkqwzy6h.js → chunk-7t429e3f.js} +1 -1
- package/dist/{chunk-xcy5ddha.js → chunk-80mc0971.js} +356 -301
- package/dist/chunk-80mc0971.js.map +15 -0
- package/dist/{chunk-gf7yht60.js → chunk-85yvv5n0.js} +27 -10
- package/dist/chunk-85yvv5n0.js.map +12 -0
- package/dist/{chunk-6fsr7y93.js → chunk-8mx7qw3y.js} +14 -13
- package/dist/{chunk-6fsr7y93.js.map → chunk-8mx7qw3y.js.map} +4 -4
- package/dist/{chunk-kpx7jrmn.js → chunk-91mg3nj9.js} +59 -59
- package/dist/{chunk-kpx7jrmn.js.map → chunk-91mg3nj9.js.map} +5 -5
- package/dist/{chunk-2am3db31.js → chunk-9gyp8hg1.js} +2 -2
- package/dist/{chunk-ewqa58h9.js → chunk-9k93ah50.js} +4 -4
- package/dist/{chunk-ewqa58h9.js.map → chunk-9k93ah50.js.map} +1 -1
- package/dist/{chunk-4wn7bxxa.js → chunk-9ybhtmg4.js} +1 -1
- package/dist/{chunk-fc5zfxy1.js → chunk-a40ad1ft.js} +5 -13
- package/dist/chunk-a40ad1ft.js.map +10 -0
- package/dist/{chunk-dam456ve.js → chunk-aff7cyea.js} +431 -70
- package/dist/{chunk-dam456ve.js.map → chunk-aff7cyea.js.map} +10 -7
- package/dist/{chunk-y2aq6ag9.js → chunk-b38szspf.js} +5 -14
- package/dist/chunk-b38szspf.js.map +11 -0
- package/dist/{chunk-r2y23egw.js → chunk-bkpke1sg.js} +1 -10
- package/dist/chunk-bkpke1sg.js.map +10 -0
- package/dist/{chunk-xyvy73tj.js → chunk-bpgy64fw.js} +8 -3
- package/dist/chunk-bpgy64fw.js.map +12 -0
- package/dist/{chunk-rb143ggb.js → chunk-bwjcehza.js} +1 -1
- package/dist/{chunk-5thzcb8g.js → chunk-c85m1hyj.js} +2 -2
- package/dist/{chunk-e67ynxcr.js → chunk-d2ync1v3.js} +5 -5
- package/dist/{chunk-3rrezgyc.js → chunk-dnmadg9k.js} +2 -2
- package/dist/chunk-enpsx8k5.js +127 -0
- package/dist/chunk-enpsx8k5.js.map +10 -0
- package/dist/chunk-ey3pyej1.js +8807 -0
- package/dist/chunk-ey3pyej1.js.map +106 -0
- package/dist/{chunk-vjcd8d27.js → chunk-fa02jy15.js} +1 -1
- package/dist/{chunk-9se093qz.js → chunk-gc4ntf7d.js} +4 -4
- package/dist/{chunk-9se093qz.js.map → chunk-gc4ntf7d.js.map} +1 -1
- package/dist/{chunk-98cw09sw.js → chunk-hkc3jct7.js} +4 -2
- package/dist/chunk-hkc3jct7.js.map +10 -0
- package/dist/{chunk-rpxz486p.js → chunk-hvsb78a1.js} +24 -8
- package/dist/{chunk-rpxz486p.js.map → chunk-hvsb78a1.js.map} +3 -3
- package/dist/{chunk-5yd8cchh.js → chunk-j2bp5ryw.js} +55 -246
- package/dist/{chunk-5yd8cchh.js.map → chunk-j2bp5ryw.js.map} +4 -4
- package/dist/{chunk-h3v76ams.js → chunk-jhm3zsa7.js} +25 -2
- package/dist/chunk-jhm3zsa7.js.map +12 -0
- package/dist/{chunk-w9yycd3t.js → chunk-kg5j6fct.js} +4 -8
- package/dist/{chunk-w9yycd3t.js.map → chunk-kg5j6fct.js.map} +3 -3
- package/dist/{chunk-vp3z1ckh.js → chunk-kyzq4wy9.js} +7 -7
- package/dist/{chunk-wr8qp979.js → chunk-m427qgq0.js} +9 -5
- package/dist/{chunk-wr8qp979.js.map → chunk-m427qgq0.js.map} +4 -3
- package/dist/{chunk-c2rga5cx.js → chunk-mfs23znk.js} +1 -1
- package/dist/{chunk-e1c18xjx.js → chunk-nq6gpjt7.js} +4 -45
- package/dist/{chunk-e1c18xjx.js.map → chunk-nq6gpjt7.js.map} +5 -5
- package/dist/{chunk-a7er86jd.js → chunk-nre82s12.js} +1 -1
- package/dist/{chunk-1hqwggsn.js → chunk-nzapm6p0.js} +1 -2
- package/dist/chunk-nzapm6p0.js.map +12 -0
- package/dist/{chunk-wt4szfec.js → chunk-pbcbn83d.js} +4 -4
- package/dist/{chunk-wt4szfec.js.map → chunk-pbcbn83d.js.map} +1 -1
- package/dist/{chunk-dmn70ztd.js → chunk-pfp1txq2.js} +25 -6
- package/dist/chunk-pfp1txq2.js.map +11 -0
- package/dist/chunk-pqajwytd.js.map +2 -2
- package/dist/{chunk-f1xh7a32.js → chunk-q1vkr2ys.js} +4 -4
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-23xs4qp9.js → chunk-rhg02hxq.js} +4 -4
- package/dist/{chunk-cd234ba4.js → chunk-rz53yb4v.js} +10 -5
- package/dist/chunk-rz53yb4v.js.map +14 -0
- package/dist/{chunk-aq39q04r.js → chunk-s16apyk9.js} +104 -18
- package/dist/chunk-s16apyk9.js.map +16 -0
- package/dist/{chunk-69266efg.js → chunk-s54c868q.js} +12 -4
- package/dist/chunk-s54c868q.js.map +12 -0
- package/dist/{chunk-k4g51s47.js → chunk-t6vq7bff.js} +5 -5
- package/dist/{chunk-sk0hcjsz.js → chunk-tjb1mk5t.js} +3 -3
- package/dist/{chunk-cnb5kv05.js → chunk-tpn40322.js} +23 -8
- package/dist/chunk-tpn40322.js.map +19 -0
- package/dist/{chunk-rx7h5fdx.js → chunk-v9xd5wzd.js} +1 -1
- package/dist/{chunk-2vhg6ysa.js → chunk-vyf9kfqf.js} +1 -1
- package/dist/chunk-wwdfe68s.js +128 -0
- package/dist/chunk-wwdfe68s.js.map +11 -0
- package/dist/{chunk-jnfxmr3f.js → chunk-wz0xs816.js} +6 -6
- package/dist/{chunk-jnfxmr3f.js.map → chunk-wz0xs816.js.map} +1 -1
- package/dist/chunk-xt1zt7gv.js +471 -0
- package/dist/chunk-xt1zt7gv.js.map +13 -0
- package/dist/chunk-y0c4e6ex.js +16 -0
- package/dist/chunk-y0c4e6ex.js.map +10 -0
- package/dist/{chunk-5be2ath4.js → chunk-y7rqfrgg.js} +20 -138
- package/dist/{chunk-5be2ath4.js.map → chunk-y7rqfrgg.js.map} +8 -9
- package/dist/{chunk-z5rnrmz1.js → chunk-yw9pyg66.js} +5 -3
- package/dist/chunk-yw9pyg66.js.map +11 -0
- package/dist/{chunk-dfm066qg.js → chunk-yxd3nnqt.js} +2 -29
- package/dist/chunk-yxd3nnqt.js.map +11 -0
- package/dist/{chunk-70jmg2zx.js → chunk-yzwja0mj.js} +4 -19
- package/dist/{chunk-70jmg2zx.js.map → chunk-yzwja0mj.js.map} +3 -3
- package/dist/{chunk-fggq3d9k.js → chunk-zrmy8zvw.js} +66 -47
- package/dist/{chunk-fggq3d9k.js.map → chunk-zrmy8zvw.js.map} +4 -4
- package/dist/datasets/builders.d.ts +12 -1
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/execution.d.ts +27 -1
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/index.d.ts +1 -1
- package/dist/datasets/index.d.ts.map +1 -1
- package/dist/datasets/types.d.ts +2 -0
- package/dist/datasets/types.d.ts.map +1 -1
- package/dist/datasets/write.d.ts +5 -0
- package/dist/datasets/write.d.ts.map +1 -1
- package/dist/datasets/write.js +10 -5
- package/dist/datasets/write.js.map +1 -1
- package/dist/deploy/index.d.ts +1 -1
- package/dist/deploy/index.d.ts.map +1 -1
- package/dist/deploy/internal.js +10 -8
- package/dist/deploy/internal.js.map +4 -4
- package/dist/deploy/services.d.ts +1 -2
- package/dist/deploy/services.d.ts.map +1 -1
- package/dist/deploy/types.d.ts +6 -5
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/validation.d.ts.map +1 -1
- package/dist/edits/index.js +3 -5
- package/dist/edits/index.js.map +1 -1
- package/dist/edits/properties.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +3 -3
- package/dist/error-reporting/types.d.ts +2 -9
- package/dist/error-reporting/types.d.ts.map +1 -1
- package/dist/errors/catalog.d.ts +12 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/definitions.d.ts +0 -5
- package/dist/events/definitions.d.ts.map +1 -1
- package/dist/events/execution.d.ts +2 -1
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.d.ts +3 -3
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +6 -8
- package/dist/events/index.js.map +1 -1
- package/dist/events/scope.d.ts +0 -1
- package/dist/events/scope.d.ts.map +1 -1
- package/dist/events/scope.js +1 -1
- package/dist/events/selectors/builder.d.ts +1 -8
- package/dist/events/selectors/builder.d.ts.map +1 -1
- package/dist/events/selectors/index.d.ts +2 -2
- package/dist/events/selectors/index.d.ts.map +1 -1
- package/dist/events/selectors/index.js +2 -2
- package/dist/events/selectors/predicate.d.ts.map +1 -1
- package/dist/events/selectors/types.d.ts +2 -33
- package/dist/events/selectors/types.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +1 -12
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/events/types/objects.d.ts +5 -0
- package/dist/events/types/objects.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +10 -0
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +50 -48
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +6 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.js +60 -88
- package/dist/execution/primitive.js.map +3 -4
- package/dist/execution/request.js +46 -46
- package/dist/execution/request.js.map +1 -1
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +12 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +120 -124
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/index.js +8 -5
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/materialization/index.js +3 -3
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/model.d.ts +19 -6
- package/dist/materialization/model.d.ts.map +1 -1
- package/dist/materializer/index.js +35 -32
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/shared/normalize.d.ts.map +1 -1
- package/dist/models/catalog.d.ts +1 -1
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/execution/binding.d.ts +6 -0
- package/dist/models/execution/binding.d.ts.map +1 -1
- package/dist/models/execution/index.js +26 -23
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/execution/model-call-recorder.d.ts +4 -0
- package/dist/models/execution/model-call-recorder.d.ts.map +1 -1
- package/dist/models/execution.d.ts.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/models/language-model.d.ts +6 -0
- package/dist/models/language-model.d.ts.map +1 -1
- package/dist/objects/action/errors.d.ts +0 -9
- package/dist/objects/action/errors.d.ts.map +1 -1
- package/dist/objects/action/index.d.ts +3 -3
- package/dist/objects/action/index.d.ts.map +1 -1
- package/dist/objects/action/request.d.ts +2 -8
- package/dist/objects/action/request.d.ts.map +1 -1
- package/dist/objects/context/index.d.ts +1 -1
- package/dist/objects/context/index.d.ts.map +1 -1
- package/dist/objects/context/types.d.ts +6 -0
- package/dist/objects/context/types.d.ts.map +1 -1
- package/dist/objects/execution.d.ts +2 -3
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +49 -30
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/materializer-adapter.d.ts.map +1 -1
- package/dist/objects/object/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/upsert.d.ts.map +1 -1
- package/dist/objects/property-clearance.d.ts +41 -0
- package/dist/objects/property-clearance.d.ts.map +1 -0
- package/dist/objects/query/executor.d.ts +3 -0
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +34 -31
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/validate.d.ts +10 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/file-handle.d.ts +6 -0
- package/dist/objects/sdk/file-handle.d.ts.map +1 -0
- package/dist/objects/sdk/object-handle.d.ts +2 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -0
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/service/index.d.ts +0 -1
- package/dist/objects/service/index.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +12 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +35 -0
- package/dist/ontology/docs-markdown.d.ts.map +1 -0
- package/dist/ontology/docs.d.ts +50 -0
- package/dist/ontology/docs.d.ts.map +1 -0
- package/dist/ontology/index.js +7 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +19 -0
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +3 -1
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +276 -3
- package/dist/ontology/internal.js.map +4 -3
- package/dist/ontology/tokens.d.ts +8 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +5 -0
- package/dist/ontology/types.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/schema.d.ts +7 -0
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +34 -31
- package/dist/pipelines/index.js.map +1 -1
- package/dist/projections/internal.js +27 -24
- package/dist/projections/internal.js.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +1 -2
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/queues/index.d.ts +1 -1
- package/dist/queues/index.d.ts.map +1 -1
- package/dist/queues/index.js +1 -1
- package/dist/queues/types.d.ts +0 -7
- package/dist/queues/types.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +11 -2
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/definitions.d.ts +3 -1
- package/dist/runtime/definitions.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +13 -2
- 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 +30 -28
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/locale.d.ts +9 -0
- package/dist/runtime/locale.d.ts.map +1 -0
- package/dist/runtime/resolve-definitions.d.ts +4 -2
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +46 -39
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +7 -6
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/runtime.d.ts +3 -0
- package/dist/scheduler/runtime.d.ts.map +1 -1
- package/dist/schedules/builders.d.ts.map +1 -1
- package/dist/schedules/index.js +3 -3
- package/dist/schedules/runtime.d.ts.map +1 -1
- package/dist/schedules/validation.d.ts +0 -1
- package/dist/schedules/validation.d.ts.map +1 -1
- package/dist/security/builders.d.ts +11 -2
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/every.d.ts +1 -1
- package/dist/security/index.d.ts +4 -4
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/markings.d.ts +19 -0
- package/dist/security/markings.d.ts.map +1 -0
- package/dist/security/redactions.d.ts +4 -0
- package/dist/security/redactions.d.ts.map +1 -0
- package/dist/security/registry.d.ts +7 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +25 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +4 -1
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -21
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/idempotency.d.ts +3 -4
- package/dist/storage/action-runs/idempotency.d.ts.map +1 -1
- package/dist/storage/action-runs/in-memory.d.ts +2 -9
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/index.d.ts +1 -3
- package/dist/storage/action-runs/index.d.ts.map +1 -1
- package/dist/storage/action-runs/provider.js +1 -1
- package/dist/storage/action-runs/record.d.ts +20 -0
- package/dist/storage/action-runs/record.d.ts.map +1 -0
- package/dist/storage/action-runs/types.d.ts +39 -68
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +5 -4
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +15 -9
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/file-upload-sessions/provider.js +12 -9
- package/dist/storage/file-upload-sessions/provider.js.map +1 -1
- package/dist/storage/index.d.ts +3 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +36 -34
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +1 -1
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +11 -13
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/execution-limits.d.ts +1 -1
- package/dist/storage/objects/execution-limits.d.ts.map +1 -1
- package/dist/storage/objects/types.d.ts +7 -0
- package/dist/storage/objects/types.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +2 -2
- 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-runs/provider.js +12 -9
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/syncs/index.js +35 -32
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-execution.d.ts +34 -4
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts +11 -0
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3213 -2869
- package/dist/testing/index.js.map +7 -6
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/queues-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +29 -26
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +1 -1
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +55 -55
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/request.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +6 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +2 -1
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +1 -7
- package/src/actions/commit-edits.ts +9 -37
- package/src/actions/errors.ts +0 -4
- package/src/actions/execution.ts +10 -10
- package/src/actions/index.ts +5 -24
- package/src/actions/read-facade.ts +2 -1
- package/src/actions/request.ts +157 -295
- package/src/actions/run/context.ts +193 -0
- package/src/actions/run/edits-commit.ts +102 -0
- package/src/actions/run/effects.ts +105 -0
- package/src/actions/run/execute.ts +113 -0
- package/src/actions/run/executor.ts +314 -0
- package/src/actions/run/normalize.ts +142 -0
- package/src/actions/run/phase-types.ts +20 -0
- package/src/actions/run/phases.ts +150 -0
- package/src/actions/run/run-action.ts +170 -0
- package/src/actions/run/signals.ts +118 -0
- package/src/actions/run/state.ts +95 -0
- package/src/actions/run/types.ts +61 -0
- package/src/actions/run/writeback.ts +79 -0
- package/src/actions/run-authorization.ts +1 -1
- package/src/actions/run-persistence.ts +105 -0
- package/src/actions/types/context.ts +10 -0
- package/src/actions/validation.ts +4 -1
- package/src/agents/adapters.ts +15 -0
- package/src/agents/authority.ts +15 -0
- package/src/agents/context/entries.ts +48 -4
- package/src/agents/context/index.ts +1 -0
- package/src/agents/context-compaction.ts +6 -0
- package/src/agents/errors.ts +3 -0
- package/src/agents/index.ts +13 -1
- package/src/agents/message.ts +9 -0
- package/src/agents/request.ts +178 -22
- package/src/agents/skills.ts +63 -0
- package/src/agents/types.ts +35 -5
- package/src/auth/runtime.ts +14 -0
- package/src/auth/types.ts +6 -0
- package/src/authorization/event-visibility.ts +0 -12
- package/src/authorization/resolve.ts +6 -1
- package/src/authorization/types.ts +7 -0
- package/src/blob-storage/execution.ts +12 -0
- package/src/blob-storage/file-content.ts +106 -0
- package/src/blob-storage/index.ts +1 -0
- package/src/blob-storage/internal.ts +7 -0
- package/src/blob-storage/media-type.ts +29 -0
- package/src/blob-storage/types.ts +13 -1
- package/src/blob-storage/validation.ts +13 -0
- package/src/bootstrap/agent-context.ts +356 -0
- package/src/bootstrap/discovery.ts +100 -33
- package/src/bootstrap/index.ts +1 -1
- package/src/bootstrap/ontology-type-manifest.ts +3 -38
- package/src/datasets/builders.ts +17 -1
- package/src/datasets/execution.ts +110 -2
- package/src/datasets/index.ts +7 -1
- package/src/datasets/types.ts +2 -0
- package/src/datasets/write.ts +21 -2
- package/src/deploy/index.ts +0 -1
- package/src/deploy/services.ts +2 -11
- package/src/deploy/types.ts +6 -6
- package/src/deploy/validation.ts +12 -6
- package/src/edits/properties.ts +3 -0
- package/src/error-reporting/types.ts +2 -10
- package/src/errors/catalog.ts +13 -0
- package/src/events/definitions.ts +0 -17
- package/src/events/execution.ts +15 -16
- package/src/events/index.ts +0 -14
- package/src/events/scope.ts +0 -12
- package/src/events/selectors/builder.ts +0 -51
- package/src/events/selectors/index.ts +0 -6
- package/src/events/selectors/predicate.ts +0 -2
- package/src/events/selectors/types.ts +7 -65
- package/src/events/types/index.ts +0 -11
- package/src/events/types/objects.ts +5 -0
- package/src/execution/agent.ts +27 -0
- package/src/execution/authorization.ts +1 -0
- package/src/execution/authorized-object-reader.ts +96 -34
- package/src/execution/scopes.ts +2 -6
- package/src/http/api-routes.ts +4 -3
- package/src/index.ts +28 -21
- package/src/materialization/model.ts +26 -9
- package/src/materializer/README.md +6 -1
- package/src/materializer/edits/commit.ts +42 -32
- package/src/materializer/shared/normalize.ts +25 -14
- package/src/models/catalog.ts +26 -2
- package/src/models/execution/README.md +4 -3
- package/src/models/execution/binding.ts +6 -0
- package/src/models/execution/model-call-recorder.ts +10 -0
- package/src/models/execution/session.ts +2 -2
- package/src/models/execution.ts +6 -2
- package/src/models/language-model.ts +6 -0
- package/src/objects/action/errors.ts +0 -12
- package/src/objects/action/index.ts +3 -3
- package/src/objects/action/request.ts +2 -29
- package/src/objects/context/index.ts +1 -0
- package/src/objects/context/types.ts +7 -0
- package/src/objects/execution.ts +6 -3
- package/src/objects/materializer-adapter.ts +3 -0
- package/src/objects/object/upsert-batch.ts +4 -1
- package/src/objects/object/upsert.ts +3 -1
- package/src/objects/property-clearance.ts +209 -0
- package/src/objects/query/executor.ts +43 -36
- package/src/objects/query/validate.ts +133 -14
- package/src/objects/sdk/file-handle.ts +77 -0
- package/src/objects/sdk/object-handle.ts +11 -33
- package/src/objects/sdk/object-set.ts +10 -32
- package/src/objects/service/index.ts +0 -1
- package/src/ontology/builders.ts +18 -2
- package/src/ontology/docs-markdown.ts +394 -0
- package/src/ontology/docs.ts +196 -0
- package/src/ontology/inference/index.ts +25 -0
- package/src/ontology/internal.ts +7 -0
- package/src/ontology/tokens.ts +13 -2
- package/src/ontology/types.ts +5 -0
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/schema.ts +26 -1
- package/src/queues/in-memory.ts +0 -6
- package/src/queues/index.ts +0 -2
- package/src/queues/types.ts +0 -11
- package/src/runtime/create.ts +34 -4
- package/src/runtime/definitions.ts +3 -1
- package/src/runtime/host.ts +50 -1
- package/src/runtime/index.ts +3 -0
- package/src/runtime/locale.ts +26 -0
- package/src/runtime/resolve-definitions.ts +28 -2
- package/src/runtime/sixb.ts +1 -1
- package/src/runtime/types.ts +55 -48
- package/src/scheduler/runtime.ts +11 -2
- package/src/schedules/builders.ts +1 -4
- package/src/schedules/runtime.ts +0 -41
- package/src/schedules/validation.ts +2 -16
- package/src/security/builders.ts +49 -5
- package/src/security/every.ts +1 -1
- package/src/security/index.ts +6 -1
- package/src/security/markings.ts +313 -0
- package/src/security/redactions.ts +6 -0
- package/src/security/registry.ts +21 -1
- package/src/security/types.ts +26 -0
- package/src/security/validation.ts +59 -2
- package/src/storage/action-runs/idempotency.ts +13 -41
- package/src/storage/action-runs/in-memory.ts +20 -311
- package/src/storage/action-runs/index.ts +1 -16
- package/src/storage/action-runs/record.ts +130 -0
- package/src/storage/action-runs/types.ts +37 -92
- package/src/storage/agents/provider.ts +11 -0
- package/src/storage/agents/types.ts +15 -7
- package/src/storage/index.ts +2 -9
- package/src/storage/internal.ts +1 -7
- package/src/storage/objects/execution-limits.ts +3 -2
- package/src/storage/objects/types.ts +7 -0
- package/src/storage/types.ts +2 -4
- package/src/testing/action-execution.ts +73 -13
- package/src/testing/action-run-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -1
- package/src/testing/materializer-storage-contract.ts +174 -18
- package/src/testing/queues-contract.ts +0 -18
- package/src/workflows/builders.ts +24 -1
- package/src/workflows/request.ts +3 -0
- package/src/workflows/types.ts +6 -3
- package/src/workflows/validation.ts +32 -4
- package/dist/actions/run-dispatch.d.ts +0 -25
- package/dist/actions/run-dispatch.d.ts.map +0 -1
- package/dist/actions/worker.d.ts +0 -3
- package/dist/actions/worker.d.ts.map +0 -1
- package/dist/actions/worker.js +0 -321
- package/dist/actions/worker.js.map +0 -11
- package/dist/chunk-10styjgk.js +0 -1572
- package/dist/chunk-10styjgk.js.map +0 -20
- package/dist/chunk-1hqwggsn.js.map +0 -12
- package/dist/chunk-52c5zb0z.js +0 -81
- package/dist/chunk-52c5zb0z.js.map +0 -10
- package/dist/chunk-69266efg.js.map +0 -12
- package/dist/chunk-6wbm6ymz.js +0 -4399
- package/dist/chunk-6wbm6ymz.js.map +0 -48
- package/dist/chunk-85cd7e8c.js +0 -51
- package/dist/chunk-85cd7e8c.js.map +0 -10
- package/dist/chunk-91kcnbf0.js.map +0 -10
- package/dist/chunk-98cw09sw.js.map +0 -10
- package/dist/chunk-9g6jz9kk.js +0 -592
- package/dist/chunk-9g6jz9kk.js.map +0 -15
- package/dist/chunk-9vx5e9g1.js.map +0 -11
- package/dist/chunk-aq39q04r.js.map +0 -15
- package/dist/chunk-cd234ba4.js.map +0 -14
- package/dist/chunk-cnb5kv05.js.map +0 -19
- package/dist/chunk-dfm066qg.js.map +0 -11
- package/dist/chunk-dmn70ztd.js.map +0 -11
- package/dist/chunk-fc5zfxy1.js.map +0 -11
- package/dist/chunk-gf7yht60.js.map +0 -12
- package/dist/chunk-h3v76ams.js.map +0 -11
- package/dist/chunk-pja9jfz6.js.map +0 -19
- package/dist/chunk-r2y23egw.js.map +0 -10
- package/dist/chunk-t9shqx3w.js.map +0 -12
- package/dist/chunk-tjjgy3z4.js +0 -1277
- package/dist/chunk-tjjgy3z4.js.map +0 -35
- package/dist/chunk-xcy5ddha.js.map +0 -15
- package/dist/chunk-xyvy73tj.js.map +0 -12
- package/dist/chunk-y2aq6ag9.js.map +0 -11
- package/dist/chunk-z5rnrmz1.js.map +0 -11
- package/dist/chunk-zvx7h87b.js +0 -12
- package/dist/chunk-zvx7h87b.js.map +0 -10
- package/dist/events/types/actions.d.ts +0 -39
- package/dist/events/types/actions.d.ts.map +0 -1
- package/dist/objects/service/action-service.d.ts +0 -13
- package/dist/objects/service/action-service.d.ts.map +0 -1
- package/src/actions/run-dispatch.ts +0 -282
- package/src/actions/worker.ts +0 -2
- package/src/events/types/actions.ts +0 -42
- package/src/objects/service/action-service.ts +0 -43
- /package/dist/{chunk-jjrn5v0p.js.map → chunk-1k89ecfr.js.map} +0 -0
- /package/dist/{chunk-vre348sb.js.map → chunk-52bk93x8.js.map} +0 -0
- /package/dist/{chunk-4gmng3vf.js.map → chunk-5e43w60z.js.map} +0 -0
- /package/dist/{chunk-33saed7g.js.map → chunk-7kg3k1m9.js.map} +0 -0
- /package/dist/{chunk-kkqwzy6h.js.map → chunk-7t429e3f.js.map} +0 -0
- /package/dist/{chunk-2am3db31.js.map → chunk-9gyp8hg1.js.map} +0 -0
- /package/dist/{chunk-4wn7bxxa.js.map → chunk-9ybhtmg4.js.map} +0 -0
- /package/dist/{chunk-rb143ggb.js.map → chunk-bwjcehza.js.map} +0 -0
- /package/dist/{chunk-5thzcb8g.js.map → chunk-c85m1hyj.js.map} +0 -0
- /package/dist/{chunk-e67ynxcr.js.map → chunk-d2ync1v3.js.map} +0 -0
- /package/dist/{chunk-3rrezgyc.js.map → chunk-dnmadg9k.js.map} +0 -0
- /package/dist/{chunk-vjcd8d27.js.map → chunk-fa02jy15.js.map} +0 -0
- /package/dist/{chunk-vp3z1ckh.js.map → chunk-kyzq4wy9.js.map} +0 -0
- /package/dist/{chunk-c2rga5cx.js.map → chunk-mfs23znk.js.map} +0 -0
- /package/dist/{chunk-a7er86jd.js.map → chunk-nre82s12.js.map} +0 -0
- /package/dist/{chunk-f1xh7a32.js.map → chunk-q1vkr2ys.js.map} +0 -0
- /package/dist/{chunk-23xs4qp9.js.map → chunk-rhg02hxq.js.map} +0 -0
- /package/dist/{chunk-k4g51s47.js.map → chunk-t6vq7bff.js.map} +0 -0
- /package/dist/{chunk-sk0hcjsz.js.map → chunk-tjb1mk5t.js.map} +0 -0
- /package/dist/{chunk-rx7h5fdx.js.map → chunk-v9xd5wzd.js.map} +0 -0
- /package/dist/{chunk-2vhg6ysa.js.map → chunk-vyf9kfqf.js.map} +0 -0
package/src/datasets/builders.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { markingIdsFrom } from "../security/builders"
|
|
2
|
+
import type { MarkingDefinition } from "../security/types"
|
|
1
3
|
import { DatasetValidationError } from "./errors"
|
|
2
4
|
import type {
|
|
3
5
|
DatasetColumnDefinition,
|
|
@@ -10,6 +12,8 @@ import { assertDatasetColumnDefinition, assertDatasetDefinition } from "./valida
|
|
|
10
12
|
|
|
11
13
|
type DatasetColumnOptions = {
|
|
12
14
|
readonly nullable?: boolean
|
|
15
|
+
/** Principals need a clearance for every marking to read this column. */
|
|
16
|
+
readonly markings?: readonly MarkingDefinition[]
|
|
13
17
|
}
|
|
14
18
|
|
|
15
19
|
type DefineDatasetOptions = {
|
|
@@ -112,6 +116,13 @@ type DerivedColumns<
|
|
|
112
116
|
: DerivedBaseColumns<TParent, TOptions>
|
|
113
117
|
: DerivedBaseColumns<TParent, TOptions>
|
|
114
118
|
|
|
119
|
+
/** The column records marking ids; only a declared, non-empty list marks it. */
|
|
120
|
+
type MarkingsFromOptions<TOptions> = TOptions extends {
|
|
121
|
+
readonly markings: readonly [MarkingDefinition, ...MarkingDefinition[]]
|
|
122
|
+
}
|
|
123
|
+
? { readonly markings: readonly string[] }
|
|
124
|
+
: { readonly markings?: readonly string[] }
|
|
125
|
+
|
|
115
126
|
type DatasetColumnResult<
|
|
116
127
|
TName extends string,
|
|
117
128
|
TType extends DatasetColumnType,
|
|
@@ -119,7 +130,8 @@ type DatasetColumnResult<
|
|
|
119
130
|
> = {
|
|
120
131
|
readonly name: TName
|
|
121
132
|
readonly type: TType
|
|
122
|
-
} & FieldFromOptions<TOptions, "nullable", boolean>
|
|
133
|
+
} & FieldFromOptions<TOptions, "nullable", boolean> &
|
|
134
|
+
MarkingsFromOptions<TOptions>
|
|
123
135
|
|
|
124
136
|
type DatasetDefinitionResult<TId extends string, TOptions extends DefineDatasetOptions> = Omit<
|
|
125
137
|
DatasetDefinition<TId, TOptions["schema"]>,
|
|
@@ -165,10 +177,14 @@ export function col(
|
|
|
165
177
|
type: DatasetColumnType,
|
|
166
178
|
options?: DatasetColumnOptions
|
|
167
179
|
): DatasetColumnDefinition {
|
|
180
|
+
const markings = options?.markings
|
|
168
181
|
const column: DatasetColumnDefinition = {
|
|
169
182
|
name,
|
|
170
183
|
type,
|
|
171
184
|
...(options?.nullable !== undefined ? { nullable: options.nullable } : {}),
|
|
185
|
+
...(markings && markings.length > 0
|
|
186
|
+
? { markings: markingIdsFrom(markings, `Dataset column '${name}' markings`) }
|
|
187
|
+
: {}),
|
|
172
188
|
}
|
|
173
189
|
|
|
174
190
|
assertDatasetColumnDefinition(column, (message) => new DatasetValidationError(message))
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
assertAuthorized,
|
|
3
|
+
assertPrivileged,
|
|
4
|
+
assertRuntimeAuthorizationBound,
|
|
5
|
+
isRuntimeAllowed,
|
|
6
|
+
} from "../authorization"
|
|
2
7
|
import type { BlobStorage } from "../blob-storage"
|
|
3
8
|
import type { ExecutionContext } from "../execution"
|
|
4
9
|
import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
|
|
5
10
|
import type { DatasetMergeCommitResult } from "../lake-storage/merge"
|
|
6
11
|
import { getDatasetPrimaryKeyColumns } from "../lake-storage/merge-validation"
|
|
7
|
-
import type { DatasetRow, LakeStorage } from "../lake-storage/types"
|
|
12
|
+
import type { DatasetRow, DatasetVersion, LakeStorage } from "../lake-storage/types"
|
|
8
13
|
import type { SixbRuntimeContext } from "../runtime/types"
|
|
14
|
+
import { missingClearanceRedactions } from "../security/redactions"
|
|
15
|
+
import type { Redactions } from "../security/types"
|
|
9
16
|
import type { MergeChange } from "./changes"
|
|
10
17
|
import type { DatasetDefinition } from "./types"
|
|
11
18
|
import { writeDataset } from "./write"
|
|
@@ -20,9 +27,36 @@ export interface DatasetIngestInput {
|
|
|
20
27
|
/** Source commit result; downstream pipelines and projections run asynchronously. */
|
|
21
28
|
export type DatasetIngestResult = DatasetMergeCommitResult & { readonly rowsRead: number }
|
|
22
29
|
|
|
30
|
+
export interface DatasetReadRowsInput {
|
|
31
|
+
/** Defaults to the latest version. */
|
|
32
|
+
readonly versionId?: string
|
|
33
|
+
/** Defaults to every column of the version, in schema order. */
|
|
34
|
+
readonly columns?: readonly string[]
|
|
35
|
+
readonly limit?: number
|
|
36
|
+
readonly offset?: number
|
|
37
|
+
readonly signal?: AbortSignal
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface DatasetRows {
|
|
41
|
+
readonly version: DatasetVersion
|
|
42
|
+
/** Columns each row holds. Redacted columns are left out. */
|
|
43
|
+
readonly columns: readonly string[]
|
|
44
|
+
/**
|
|
45
|
+
* Every column of the dataset the reader cannot read, whether or not it was requested. Absent
|
|
46
|
+
* when the reader can read every column.
|
|
47
|
+
*/
|
|
48
|
+
readonly redactions?: Redactions
|
|
49
|
+
readonly rows: AsyncIterable<DatasetRow>
|
|
50
|
+
}
|
|
51
|
+
|
|
23
52
|
export interface DatasetsRuntime {
|
|
24
53
|
list(): readonly DatasetDefinition[]
|
|
25
54
|
getById(datasetId: string): DatasetDefinition | null
|
|
55
|
+
/**
|
|
56
|
+
* Read rows of one version. Returns null when the dataset has no version yet or the requested
|
|
57
|
+
* version does not exist.
|
|
58
|
+
*/
|
|
59
|
+
readRows(dataset: DatasetDefinition, input?: DatasetReadRowsInput): Promise<DatasetRows | null>
|
|
26
60
|
ingest(dataset: DatasetDefinition, input: DatasetIngestInput): Promise<DatasetIngestResult>
|
|
27
61
|
}
|
|
28
62
|
|
|
@@ -47,6 +81,44 @@ export function createDatasetsRuntime(
|
|
|
47
81
|
const dataset = source.getById(datasetId)
|
|
48
82
|
return dataset && allowed(datasetId) ? dataset : null
|
|
49
83
|
},
|
|
84
|
+
async readRows(dataset, input = {}) {
|
|
85
|
+
assertAuthorized(runtime, { kind: "dataset.view", datasetId: dataset.id })
|
|
86
|
+
const registered = source.getById(dataset.id)
|
|
87
|
+
if (!registered) throw new Error(`[Sixb] Dataset '${dataset.id}' is not registered.`)
|
|
88
|
+
const version =
|
|
89
|
+
input.versionId === undefined
|
|
90
|
+
? await lakeStorage.getLatestVersion(registered.id)
|
|
91
|
+
: await lakeStorage.getVersion(registered.id, input.versionId)
|
|
92
|
+
if (!version) return null
|
|
93
|
+
|
|
94
|
+
const redacted = redactedColumns(registered, assertRuntimeAuthorizationBound(runtime))
|
|
95
|
+
const selected = selectColumns(version, input.columns)
|
|
96
|
+
const columns = selected.filter((column) => !redacted.has(column))
|
|
97
|
+
const read = (readColumns: readonly string[] | undefined) =>
|
|
98
|
+
lakeStorage.readRows({
|
|
99
|
+
datasetId: registered.id,
|
|
100
|
+
versionId: version.versionId,
|
|
101
|
+
columns: readColumns,
|
|
102
|
+
limit: input.limit,
|
|
103
|
+
offset: input.offset,
|
|
104
|
+
signal: input.signal,
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
// Redacted columns are not read. A provider reads every column when given none, so a page
|
|
108
|
+
// made only of redacted columns reads one of them to count its rows and returns them empty.
|
|
109
|
+
const rows =
|
|
110
|
+
columns.length === selected.length
|
|
111
|
+
? read(input.columns)
|
|
112
|
+
: columns.length > 0
|
|
113
|
+
? read(columns)
|
|
114
|
+
: emptyRows(read(selected.slice(0, 1)))
|
|
115
|
+
return {
|
|
116
|
+
version,
|
|
117
|
+
columns,
|
|
118
|
+
...(redacted.size > 0 ? { redactions: missingClearanceRedactions(redacted) } : {}),
|
|
119
|
+
rows,
|
|
120
|
+
}
|
|
121
|
+
},
|
|
50
122
|
async ingest(dataset, input) {
|
|
51
123
|
assertPrivileged(runtime, "datasets.ingest")
|
|
52
124
|
const registered = source.getById(dataset.id)
|
|
@@ -93,3 +165,39 @@ export function createDatasetsRuntime(
|
|
|
93
165
|
},
|
|
94
166
|
}
|
|
95
167
|
}
|
|
168
|
+
|
|
169
|
+
/** Requested columns, or every column of the version. Like the lake, an empty list means all. */
|
|
170
|
+
function selectColumns(version: DatasetVersion, requested: readonly string[] | undefined) {
|
|
171
|
+
const available = version.schema.columns.map((column) => column.name)
|
|
172
|
+
if (requested === undefined || requested.length === 0) return available
|
|
173
|
+
for (const column of requested) {
|
|
174
|
+
if (!available.includes(column)) {
|
|
175
|
+
throw new Error(
|
|
176
|
+
`[Sixb] Dataset '${version.datasetId}' does not have column '${column}' at version '${version.versionId}'.`
|
|
177
|
+
)
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return [...requested]
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Columns the reader cannot read. Trusted code reads every column, a principal reads what its roles
|
|
185
|
+
* clear, and any other authority is cleared for nothing.
|
|
186
|
+
*/
|
|
187
|
+
function redactedColumns(
|
|
188
|
+
dataset: DatasetDefinition,
|
|
189
|
+
authority: ReturnType<typeof assertRuntimeAuthorizationBound>
|
|
190
|
+
): ReadonlySet<string> {
|
|
191
|
+
if (authority.type === "unrestricted") return new Set()
|
|
192
|
+
const clearances =
|
|
193
|
+
authority.type === "principal" ? (authority.context.clearances ?? new Set()) : new Set()
|
|
194
|
+
return new Set(
|
|
195
|
+
dataset.schema.columns
|
|
196
|
+
.filter((column) => column.markings?.some((markingId) => !clearances.has(markingId)))
|
|
197
|
+
.map((column) => column.name)
|
|
198
|
+
)
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
async function* emptyRows(rows: AsyncIterable<DatasetRow>): AsyncIterable<DatasetRow> {
|
|
202
|
+
for await (const _row of rows) yield {}
|
|
203
|
+
}
|
package/src/datasets/index.ts
CHANGED
|
@@ -2,7 +2,13 @@ export { col, defineDataset } from "./builders"
|
|
|
2
2
|
export type { MergeChange } from "./changes"
|
|
3
3
|
export { change } from "./changes"
|
|
4
4
|
export { DatasetValidationError } from "./errors"
|
|
5
|
-
export type {
|
|
5
|
+
export type {
|
|
6
|
+
DatasetIngestInput,
|
|
7
|
+
DatasetIngestResult,
|
|
8
|
+
DatasetReadRowsInput,
|
|
9
|
+
DatasetRows,
|
|
10
|
+
DatasetsRuntime,
|
|
11
|
+
} from "./execution"
|
|
6
12
|
export type {
|
|
7
13
|
DatasetColumnDefinition,
|
|
8
14
|
DatasetColumnDefinitionOf,
|
package/src/datasets/types.ts
CHANGED
|
@@ -16,6 +16,8 @@ export interface DatasetColumnDefinition<
|
|
|
16
16
|
readonly name: TName
|
|
17
17
|
readonly type: TType
|
|
18
18
|
readonly nullable?: boolean
|
|
19
|
+
/** Marking ids. Principals need a clearance for each one to read this column. */
|
|
20
|
+
readonly markings?: readonly string[]
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
export interface DatasetSchema<
|
package/src/datasets/write.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BlobStorage, FileRef } from "../blob-storage"
|
|
2
2
|
import { isFileRef } from "../blob-storage"
|
|
3
|
+
import { isValidFileRef } from "../blob-storage/validation"
|
|
3
4
|
import type { DatasetMergeCommitResult } from "../lake-storage/merge"
|
|
4
5
|
import { getDatasetMergeChangeValidationError } from "../lake-storage/merge-validation"
|
|
5
6
|
import type {
|
|
@@ -37,6 +38,18 @@ export interface WriteDatasetInput<TValue extends DatasetWriteValue = DatasetWri
|
|
|
37
38
|
|
|
38
39
|
export type WriteDatasetResult = DatasetMergeCommitResult & { readonly rowsRead: number }
|
|
39
40
|
|
|
41
|
+
/**
|
|
42
|
+
* The definition the lake receives. Markings are enforced from the registered definition and never
|
|
43
|
+
* stored, so a stored schema cannot keep a classification the code has since changed.
|
|
44
|
+
*/
|
|
45
|
+
export function lakeDatasetDefinition(dataset: DatasetDefinition): DatasetDefinition {
|
|
46
|
+
if (!dataset.schema.columns.some((column) => column.markings)) return dataset
|
|
47
|
+
return {
|
|
48
|
+
...dataset,
|
|
49
|
+
schema: { columns: dataset.schema.columns.map(({ markings: _markings, ...column }) => column) },
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
40
53
|
/**
|
|
41
54
|
* Validate, stage, and commit one dataset write using existing lake sessions.
|
|
42
55
|
*
|
|
@@ -47,7 +60,8 @@ export type WriteDatasetResult = DatasetMergeCommitResult & { readonly rowsRead:
|
|
|
47
60
|
export async function writeDataset<TValue extends DatasetWriteValue>(
|
|
48
61
|
input: WriteDatasetInput<TValue>
|
|
49
62
|
): Promise<WriteDatasetResult> {
|
|
50
|
-
const { lakeStorage,
|
|
63
|
+
const { lakeStorage, signal } = input
|
|
64
|
+
const dataset = lakeDatasetDefinition(input.dataset)
|
|
51
65
|
let abortWrite: (() => Promise<void>) | undefined
|
|
52
66
|
let rowsRead = 0
|
|
53
67
|
const onRead = () => {
|
|
@@ -207,8 +221,13 @@ async function verifyFileRef(
|
|
|
207
221
|
columnName: string,
|
|
208
222
|
itemIndex: number
|
|
209
223
|
): Promise<void> {
|
|
210
|
-
const blobInfo = await input.blobStorage.stat(fileRef.blobId)
|
|
211
224
|
const context = `${sourceLabel(input)} returned row ${itemIndex} with dataset '${input.dataset.id}' column '${columnName}'`
|
|
225
|
+
if (!isValidFileRef(fileRef)) {
|
|
226
|
+
throw new Error(
|
|
227
|
+
`${context} with an invalid mediaType; use one media type, such as "application/pdf".`
|
|
228
|
+
)
|
|
229
|
+
}
|
|
230
|
+
const blobInfo = await input.blobStorage.stat(fileRef.blobId)
|
|
212
231
|
if (!blobInfo) {
|
|
213
232
|
throw new Error(`${context} referencing unknown blob '${fileRef.blobId}'.`)
|
|
214
233
|
}
|
package/src/deploy/index.ts
CHANGED
package/src/deploy/services.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
DeployConfigurableWorkerType,
|
|
3
2
|
DeployHttpServiceName,
|
|
4
3
|
DeployServiceName,
|
|
5
4
|
DeploySingletonServiceName,
|
|
@@ -19,27 +18,19 @@ const SERVICES = {
|
|
|
19
18
|
workers: "workers",
|
|
20
19
|
} as const satisfies Record<DeployServiceName, "http" | "singleton" | "workers">
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
const WORKER_TYPES: {
|
|
24
|
-
readonly [Type in DeployWorkerType]: Type extends DeployConfigurableWorkerType ? true : false
|
|
25
|
-
} = {
|
|
21
|
+
const WORKER_TYPES = {
|
|
26
22
|
sync: true,
|
|
27
|
-
action: false,
|
|
28
23
|
agent: true,
|
|
29
24
|
pipeline: true,
|
|
30
25
|
projection: true,
|
|
31
26
|
workflow: true,
|
|
32
|
-
}
|
|
27
|
+
} as const satisfies Record<DeployWorkerType, true>
|
|
33
28
|
|
|
34
29
|
/** Every service, in the order a deployment lists them. */
|
|
35
30
|
export const DEPLOY_SERVICES = Object.keys(SERVICES) as DeployServiceName[]
|
|
36
31
|
|
|
37
32
|
export const DEPLOY_WORKER_TYPES = Object.keys(WORKER_TYPES) as DeployWorkerType[]
|
|
38
33
|
|
|
39
|
-
export const DEPLOY_CONFIGURABLE_WORKER_TYPES = DEPLOY_WORKER_TYPES.filter(
|
|
40
|
-
(workerType): workerType is DeployConfigurableWorkerType => WORKER_TYPES[workerType]
|
|
41
|
-
)
|
|
42
|
-
|
|
43
34
|
export function isDeployHttpService(service: DeployServiceName): service is DeployHttpServiceName {
|
|
44
35
|
return SERVICES[service] === "http"
|
|
45
36
|
}
|
package/src/deploy/types.ts
CHANGED
|
@@ -36,10 +36,7 @@ export type DeploySingletonServiceName = "orchestrator" | "scheduler" | "rules"
|
|
|
36
36
|
|
|
37
37
|
export type DeployServiceName = DeployHttpServiceName | DeploySingletonServiceName | "workers"
|
|
38
38
|
|
|
39
|
-
export type DeployWorkerType = "sync" | "
|
|
40
|
-
|
|
41
|
-
/** Action jobs run one at a time, so their concurrency is fixed. */
|
|
42
|
-
export type DeployConfigurableWorkerType = Exclude<DeployWorkerType, "action">
|
|
39
|
+
export type DeployWorkerType = "sync" | "agent" | "pipeline" | "projection" | "workflow"
|
|
43
40
|
|
|
44
41
|
export interface DeployServicesConfig {
|
|
45
42
|
readonly api?: boolean | DeployHttpServiceConfig
|
|
@@ -74,7 +71,7 @@ export interface DeployWorkersConfig {
|
|
|
74
71
|
/** Wall-clock budget for one agent turn, such as `"30s"`, `"10m"`, or `"1h"`. */
|
|
75
72
|
readonly agentTurnTimeout?: string
|
|
76
73
|
/** Jobs each worker type runs at once inside one process. */
|
|
77
|
-
readonly concurrency?: Readonly<Partial<Record<
|
|
74
|
+
readonly concurrency?: Readonly<Partial<Record<DeployWorkerType, number>>>
|
|
78
75
|
/** Added to the deployment's `env` for the workers only. */
|
|
79
76
|
readonly env?: DeployEnv
|
|
80
77
|
readonly process?: DeployScalableProcessOptions
|
|
@@ -90,7 +87,10 @@ export interface DeployProcessDefinition {
|
|
|
90
87
|
}
|
|
91
88
|
|
|
92
89
|
export interface DeployProcessOptions {
|
|
93
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* How long a stopping process may take before it is killed. Defaults to 10000, and to 70000 for
|
|
92
|
+
* the API, which first lets the Actions it is running and their effects finish.
|
|
93
|
+
*/
|
|
94
94
|
readonly killTimeoutMs?: number
|
|
95
95
|
/** Wait before restarting a process that exited, growing with each restart. Defaults to 1000. */
|
|
96
96
|
readonly restartDelayMs?: number
|
package/src/deploy/validation.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
DEPLOY_CONFIGURABLE_WORKER_TYPES,
|
|
3
2
|
DEPLOY_SERVICES,
|
|
4
3
|
DEPLOY_WORKER_TYPES,
|
|
5
4
|
isDeployHttpService,
|
|
@@ -131,6 +130,7 @@ function workerTypes(value: unknown, path: string): void {
|
|
|
131
130
|
}
|
|
132
131
|
const seen = new Set<string>()
|
|
133
132
|
for (const workerType of value) {
|
|
133
|
+
if (workerType === "action") throw removedActionWorker(path)
|
|
134
134
|
if (!(DEPLOY_WORKER_TYPES as readonly unknown[]).includes(workerType)) {
|
|
135
135
|
throw new Error(
|
|
136
136
|
`[SixbDeploy] ${path} has unknown worker type ${JSON.stringify(workerType)}. ` +
|
|
@@ -147,19 +147,25 @@ function workerTypes(value: unknown, path: string): void {
|
|
|
147
147
|
function workerConcurrency(value: unknown, path: string): void {
|
|
148
148
|
const config = record(value, path)
|
|
149
149
|
for (const [workerType, concurrency] of Object.entries(config)) {
|
|
150
|
-
if (workerType === "action")
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
if (!(DEPLOY_CONFIGURABLE_WORKER_TYPES as readonly string[]).includes(workerType)) {
|
|
150
|
+
if (workerType === "action") throw removedActionWorker(path)
|
|
151
|
+
if (!(DEPLOY_WORKER_TYPES as readonly string[]).includes(workerType)) {
|
|
154
152
|
throw new Error(
|
|
155
153
|
`[SixbDeploy] ${path} has unknown worker type "${workerType}". ` +
|
|
156
|
-
`Available: ${
|
|
154
|
+
`Available: ${DEPLOY_WORKER_TYPES.join(", ")}.`
|
|
157
155
|
)
|
|
158
156
|
}
|
|
159
157
|
positiveInteger(concurrency, `${path}.${workerType}`)
|
|
160
158
|
}
|
|
161
159
|
}
|
|
162
160
|
|
|
161
|
+
/** `"action"` was a worker type until Actions ran in the process that requests them. */
|
|
162
|
+
function removedActionWorker(path: string): Error {
|
|
163
|
+
return new Error(
|
|
164
|
+
`[SixbDeploy] ${path} names "action", which is no longer a worker type: Actions run in the ` +
|
|
165
|
+
"process that requests them (API, workflows, syncs). Remove it."
|
|
166
|
+
)
|
|
167
|
+
}
|
|
168
|
+
|
|
163
169
|
function processOptions(
|
|
164
170
|
value: unknown,
|
|
165
171
|
path: string,
|
package/src/edits/properties.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { OntologyValidationError } from "../ontology/errors"
|
|
|
3
3
|
import type { ObjectTypeWithPropertyTokens } from "../ontology/tokens"
|
|
4
4
|
import {
|
|
5
5
|
assertKnownProperties,
|
|
6
|
+
assertValidFileRefs,
|
|
6
7
|
normalizeObjectProperties,
|
|
7
8
|
validateObjectProperties,
|
|
8
9
|
validatePropertyValue,
|
|
@@ -20,6 +21,7 @@ export function normalizeObjectEditProperties(params: {
|
|
|
20
21
|
assertKnownProperties(objectType, properties)
|
|
21
22
|
assertNoTelemetryProperties(objectType.properties, properties, path)
|
|
22
23
|
validateObjectProperties(objectType, properties, valueTypesById)
|
|
24
|
+
assertValidFileRefs(properties, objectType.id)
|
|
23
25
|
return normalizeObjectProperties(objectType.properties, properties, valueTypesById, path)
|
|
24
26
|
}
|
|
25
27
|
|
|
@@ -60,6 +62,7 @@ export function normalizeLinkEditProperties(params: {
|
|
|
60
62
|
valueTypesById
|
|
61
63
|
)
|
|
62
64
|
}
|
|
65
|
+
assertValidFileRefs(properties, `${sourceObjectTypeId}.${linkId}`)
|
|
63
66
|
|
|
64
67
|
return normalizeObjectProperties(
|
|
65
68
|
linkProperties,
|
|
@@ -93,19 +93,11 @@ export type SixbRunFailedContext = SixbFailureContext<"run.failed"> &
|
|
|
93
93
|
readonly attempt?: number
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
/** A post-commit Action effects phase failed without changing the committed Action outcome. */
|
|
97
|
-
export interface SixbActionPhaseFailedContext extends SixbFailureContext<"action.phase.failed"> {
|
|
98
|
-
readonly actionId: string
|
|
99
|
-
readonly runId: string
|
|
100
|
-
readonly phase: "effects"
|
|
101
|
-
readonly failure: ActionRunFailure<"effects">
|
|
102
|
-
}
|
|
103
|
-
|
|
104
96
|
/**
|
|
105
97
|
* A post-commit Action phase failed without changing the committed Action outcome.
|
|
106
98
|
*
|
|
107
|
-
* Effects run after the
|
|
108
|
-
* context exposes the exact phase failure
|
|
99
|
+
* Effects run after the run is recorded with its commit, so the run remains succeeded while this
|
|
100
|
+
* context exposes the exact phase failure recorded on it.
|
|
109
101
|
*/
|
|
110
102
|
export interface SixbActionPhaseFailedContext extends SixbFailureContext<"action.phase.failed"> {
|
|
111
103
|
readonly actionId: string
|
package/src/errors/catalog.ts
CHANGED
|
@@ -18,6 +18,15 @@ export const SIXB_ERROR_DEFINITIONS = {
|
|
|
18
18
|
publicMessage: "Data the Action read changed before its commit.",
|
|
19
19
|
retryable: true,
|
|
20
20
|
},
|
|
21
|
+
"action.run_in_progress": {
|
|
22
|
+
publicMessage: "The Action run is already in progress.",
|
|
23
|
+
retryable: true,
|
|
24
|
+
},
|
|
25
|
+
// Not retryable: the deadline aborts a writeback whose external call may still have landed.
|
|
26
|
+
"action.timeout": {
|
|
27
|
+
publicMessage: "The Action exceeded its 30-second time limit.",
|
|
28
|
+
retryable: false,
|
|
29
|
+
},
|
|
21
30
|
"agent.execution_failed": {
|
|
22
31
|
publicMessage: "Agent execution failed.",
|
|
23
32
|
retryable: false,
|
|
@@ -134,6 +143,10 @@ export const SIXB_ERROR_DEFINITIONS = {
|
|
|
134
143
|
publicMessage: "Execution was cancelled.",
|
|
135
144
|
retryable: false,
|
|
136
145
|
},
|
|
146
|
+
"runtime.stopping": {
|
|
147
|
+
publicMessage: "The runtime is stopping; retry the request.",
|
|
148
|
+
retryable: true,
|
|
149
|
+
},
|
|
137
150
|
"vector.model_unavailable": {
|
|
138
151
|
publicMessage: "The embedding model configured for this vector profile is unavailable.",
|
|
139
152
|
retryable: false,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { EventsError } from "./errors"
|
|
2
|
-
import type { ActionEvent } from "./types/actions"
|
|
3
2
|
import type { DatasetEvent } from "./types/datasets"
|
|
4
3
|
import type { DomainEvent, DomainEventDraft } from "./types/index"
|
|
5
4
|
import type { LinkEvent } from "./types/links"
|
|
@@ -67,21 +66,6 @@ export const LINK_EVENT_DEFINITIONS = defineEventGroup<LinkEvent>({
|
|
|
67
66
|
},
|
|
68
67
|
})
|
|
69
68
|
|
|
70
|
-
export const ACTION_EVENT_DEFINITIONS = defineEventGroup<ActionEvent>({
|
|
71
|
-
"action.requested": {
|
|
72
|
-
topic: "actions",
|
|
73
|
-
partitionKey: (payload) => payload.actionId,
|
|
74
|
-
},
|
|
75
|
-
"action.completed": {
|
|
76
|
-
topic: "actions",
|
|
77
|
-
partitionKey: (payload) => payload.actionId,
|
|
78
|
-
},
|
|
79
|
-
"action.failed": {
|
|
80
|
-
topic: "actions",
|
|
81
|
-
partitionKey: (payload) => payload.actionId,
|
|
82
|
-
},
|
|
83
|
-
})
|
|
84
|
-
|
|
85
69
|
export const SCHEDULE_EVENT_DEFINITIONS = defineEventGroup<ScheduleEvent>({
|
|
86
70
|
"schedule.triggered": {
|
|
87
71
|
topic: "schedules",
|
|
@@ -190,7 +174,6 @@ export const EVENT_DEFINITIONS = {
|
|
|
190
174
|
...OBJECT_EVENT_DEFINITIONS,
|
|
191
175
|
...TELEMETRY_EVENT_DEFINITIONS,
|
|
192
176
|
...LINK_EVENT_DEFINITIONS,
|
|
193
|
-
...ACTION_EVENT_DEFINITIONS,
|
|
194
177
|
...SCHEDULE_EVENT_DEFINITIONS,
|
|
195
178
|
...SYNC_EVENT_DEFINITIONS,
|
|
196
179
|
...PIPELINE_EVENT_DEFINITIONS,
|
package/src/events/execution.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { assertPrivileged, canViewEvent } from "../authorization"
|
|
2
2
|
import { resolveRuntimeAuthorizationForProject } from "../execution/authorization"
|
|
3
|
+
import { redactDomainEvent, resolvePropertyClearance } from "../objects/property-clearance"
|
|
3
4
|
import type { SixbRuntimeContext } from "../runtime/types"
|
|
4
5
|
import type {
|
|
5
6
|
EventsAppendInput,
|
|
@@ -10,7 +11,8 @@ import type {
|
|
|
10
11
|
import type { StoredDomainEvent } from "./types"
|
|
11
12
|
|
|
12
13
|
export interface EventsRuntime {
|
|
13
|
-
|
|
14
|
+
/** The event as this execution may read it: hidden events are `undefined`, others redacted. */
|
|
15
|
+
readable(event: StoredDomainEvent): StoredDomainEvent | undefined
|
|
14
16
|
append(input: EventsAppendInput): Promise<readonly StoredDomainEvent[]>
|
|
15
17
|
emit(input: EventsAppendInput, options: EventsEmitOptions): Promise<void>
|
|
16
18
|
read(input?: EventsReadInput): Promise<readonly StoredDomainEvent[]>
|
|
@@ -23,30 +25,27 @@ export interface EventsRuntime {
|
|
|
23
25
|
|
|
24
26
|
export function createEventsRuntime(runtime: SixbRuntimeContext): EventsRuntime {
|
|
25
27
|
const authority = resolveRuntimeAuthorizationForProject(runtime)
|
|
26
|
-
const
|
|
28
|
+
const clearance =
|
|
29
|
+
authority.type === "principal"
|
|
30
|
+
? resolvePropertyClearance(runtime.ontology, authority.context.clearances ?? new Set())
|
|
31
|
+
: undefined
|
|
32
|
+
const readable = (event: StoredDomainEvent): StoredDomainEvent | undefined => {
|
|
27
33
|
switch (authority.type) {
|
|
28
34
|
case "denied":
|
|
29
35
|
case "delegated":
|
|
30
|
-
return
|
|
36
|
+
return undefined
|
|
31
37
|
case "principal":
|
|
32
|
-
|
|
38
|
+
if (!canViewEvent(authority.context, event)) return undefined
|
|
39
|
+
return clearance ? redactDomainEvent(event, clearance) : event
|
|
33
40
|
case "unrestricted":
|
|
34
|
-
return
|
|
41
|
+
return event
|
|
35
42
|
}
|
|
36
43
|
}
|
|
44
|
+
const visibleEvents = (events: readonly StoredDomainEvent[]): readonly StoredDomainEvent[] =>
|
|
45
|
+
events.flatMap((event) => readable(event) ?? [])
|
|
37
46
|
|
|
38
47
|
return {
|
|
39
|
-
|
|
40
|
-
switch (authority.type) {
|
|
41
|
-
case "denied":
|
|
42
|
-
case "delegated":
|
|
43
|
-
return false
|
|
44
|
-
case "principal":
|
|
45
|
-
return canViewEvent(authority.context, event)
|
|
46
|
-
case "unrestricted":
|
|
47
|
-
return true
|
|
48
|
-
}
|
|
49
|
-
},
|
|
48
|
+
readable,
|
|
50
49
|
append: (input) => {
|
|
51
50
|
assertPrivileged(runtime, "events.append")
|
|
52
51
|
return runtime.events.append(input)
|
package/src/events/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export type { ErrorReporter } from "../error-reporting/reporter"
|
|
2
2
|
export type { EventDefinition, EventDefinitionGroup, EventDefinitionMap } from "./definitions"
|
|
3
3
|
export {
|
|
4
|
-
ACTION_EVENT_DEFINITIONS,
|
|
5
4
|
DATASET_EVENT_DEFINITIONS,
|
|
6
5
|
EVENT_DEFINITIONS,
|
|
7
6
|
EVENT_TOPICS,
|
|
@@ -26,12 +25,6 @@ export {
|
|
|
26
25
|
export type { EventScopeKeys } from "./scope"
|
|
27
26
|
export { scopeKeysForEvent } from "./scope"
|
|
28
27
|
export {
|
|
29
|
-
type ActionEventSelectorBuilder,
|
|
30
|
-
type ActionEventSelectorContext,
|
|
31
|
-
type ActionEventSelectorEvent,
|
|
32
|
-
type ActionEventSelectorOperation,
|
|
33
|
-
type ActionEventToken,
|
|
34
|
-
type ActionEventTokenOf,
|
|
35
28
|
buildEventSelectorPredicate,
|
|
36
29
|
type DatasetEventSelectorBuilder,
|
|
37
30
|
type DatasetEventSelectorContext,
|
|
@@ -82,11 +75,7 @@ export {
|
|
|
82
75
|
} from "./service"
|
|
83
76
|
export { toStoredEvent } from "./toStoredEvent"
|
|
84
77
|
export type {
|
|
85
|
-
ActionCompletedEvent,
|
|
86
|
-
ActionEvent,
|
|
87
78
|
ActionEventOrigin,
|
|
88
|
-
ActionFailedEvent,
|
|
89
|
-
ActionRequestedEvent,
|
|
90
79
|
AuthorableDomainEvent,
|
|
91
80
|
AuthorableEventDraft,
|
|
92
81
|
DatasetEvent,
|
|
@@ -122,9 +111,6 @@ export type {
|
|
|
122
111
|
RuntimeMutationEventOrigin,
|
|
123
112
|
ScheduleEvent,
|
|
124
113
|
ScheduleTriggeredEvent,
|
|
125
|
-
StoredActionCompletedEvent,
|
|
126
|
-
StoredActionFailedEvent,
|
|
127
|
-
StoredActionRequestedEvent,
|
|
128
114
|
StoredAuthorableEvent,
|
|
129
115
|
StoredDatasetVersionCommittedEvent,
|
|
130
116
|
StoredDomainEvent,
|
package/src/events/scope.ts
CHANGED
|
@@ -17,7 +17,6 @@ export interface EventScopeKeys {
|
|
|
17
17
|
readonly linkId?: string
|
|
18
18
|
readonly ruleId?: string
|
|
19
19
|
readonly runId?: string
|
|
20
|
-
readonly actionId?: string
|
|
21
20
|
readonly datasetId?: string
|
|
22
21
|
readonly syncId?: string
|
|
23
22
|
readonly pipelineId?: string
|
|
@@ -45,17 +44,6 @@ export function scopeKeysForEvent(event: DomainEvent): EventScopeKeys {
|
|
|
45
44
|
return { pipelineId: event.payload.pipelineId, runId: event.payload.runId }
|
|
46
45
|
case "syncs":
|
|
47
46
|
return { syncId: event.payload.syncId, runId: event.payload.runId }
|
|
48
|
-
case "actions":
|
|
49
|
-
return {
|
|
50
|
-
actionId: event.payload.actionId,
|
|
51
|
-
runId: event.payload.runId,
|
|
52
|
-
...(event.payload.subject.kind === "object"
|
|
53
|
-
? {
|
|
54
|
-
objectTypeId: event.payload.subject.objectTypeId,
|
|
55
|
-
primaryId: event.payload.subject.primaryId,
|
|
56
|
-
}
|
|
57
|
-
: {}),
|
|
58
|
-
}
|
|
59
47
|
case "rules":
|
|
60
48
|
return { ruleId: event.payload.ruleId }
|
|
61
49
|
case "schedules":
|