@sixb/core 0.1.19 → 0.1.21
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/execution.d.ts.map +1 -1
- package/dist/actions/index.js +54 -47
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-authorization.d.ts +9 -0
- package/dist/actions/run-authorization.d.ts.map +1 -1
- package/dist/activity/connection.d.ts +62 -0
- package/dist/activity/connection.d.ts.map +1 -0
- package/dist/activity/device.d.ts +8 -0
- package/dist/activity/device.d.ts.map +1 -0
- package/dist/activity/execution.d.ts +48 -0
- package/dist/activity/execution.d.ts.map +1 -0
- package/dist/activity/service.d.ts +79 -0
- package/dist/activity/service.d.ts.map +1 -0
- package/dist/activity/shares.d.ts +24 -0
- package/dist/activity/shares.d.ts.map +1 -0
- package/dist/activity/timeline.d.ts +96 -0
- package/dist/activity/timeline.d.ts.map +1 -0
- package/dist/agents/index.d.ts +2 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +63 -50
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents/skills.d.ts.map +1 -1
- package/dist/agents/streams/index.js +3 -3
- package/dist/agents/streams/internal.js +3 -3
- package/dist/agents/types.d.ts +8 -8
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/validation.d.ts +1 -1
- package/dist/agents/validation.d.ts.map +1 -1
- package/dist/artifacts/address.d.ts +48 -0
- package/dist/artifacts/address.d.ts.map +1 -0
- package/dist/artifacts/csv.d.ts +22 -0
- package/dist/artifacts/csv.d.ts.map +1 -0
- package/dist/artifacts/errors.d.ts +11 -0
- package/dist/artifacts/errors.d.ts.map +1 -0
- package/dist/artifacts/execution.d.ts +43 -0
- package/dist/artifacts/execution.d.ts.map +1 -0
- package/dist/artifacts/frames/assets.d.ts +28 -0
- package/dist/artifacts/frames/assets.d.ts.map +1 -0
- package/dist/artifacts/frames/grants.d.ts +37 -0
- package/dist/artifacts/frames/grants.d.ts.map +1 -0
- package/dist/artifacts/frames/index.d.ts +10 -0
- package/dist/artifacts/frames/index.d.ts.map +1 -0
- package/dist/artifacts/frames/index.js +892 -0
- package/dist/artifacts/frames/index.js.map +14 -0
- package/dist/artifacts/frames/kit.d.ts +66 -0
- package/dist/artifacts/frames/kit.d.ts.map +1 -0
- package/dist/artifacts/frames/probe.d.ts +41 -0
- package/dist/artifacts/frames/probe.d.ts.map +1 -0
- package/dist/artifacts/frames/protocol.d.ts +98 -0
- package/dist/artifacts/frames/protocol.d.ts.map +1 -0
- package/dist/artifacts/frames/runtime.d.ts +13 -0
- package/dist/artifacts/frames/runtime.d.ts.map +1 -0
- package/dist/artifacts/html.d.ts +6 -0
- package/dist/artifacts/html.d.ts.map +1 -0
- package/dist/artifacts/ids.d.ts +5 -0
- package/dist/artifacts/ids.d.ts.map +1 -0
- package/dist/artifacts/index.d.ts +16 -0
- package/dist/artifacts/index.d.ts.map +1 -0
- package/dist/artifacts/index.js +125 -0
- package/dist/artifacts/index.js.map +10 -0
- package/dist/artifacts/kinds.d.ts +5 -0
- package/dist/artifacts/kinds.d.ts.map +1 -0
- package/dist/artifacts/limits.d.ts +28 -0
- package/dist/artifacts/limits.d.ts.map +1 -0
- package/dist/artifacts/outline.d.ts +44 -0
- package/dist/artifacts/outline.d.ts.map +1 -0
- package/dist/artifacts/publish/files.d.ts +15 -0
- package/dist/artifacts/publish/files.d.ts.map +1 -0
- package/dist/artifacts/publish/index.d.ts +5 -0
- package/dist/artifacts/publish/index.d.ts.map +1 -0
- package/dist/artifacts/publish/index.js +36 -0
- package/dist/artifacts/publish/index.js.map +9 -0
- package/dist/artifacts/publish/publish.d.ts +52 -0
- package/dist/artifacts/publish/publish.d.ts.map +1 -0
- package/dist/artifacts/publish/references.d.ts +27 -0
- package/dist/artifacts/publish/references.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/document.d.ts +17 -0
- package/dist/artifacts/publish/validate/document.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/file.d.ts +8 -0
- package/dist/artifacts/publish/validate/file.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/sheet.d.ts +15 -0
- package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -0
- package/dist/artifacts/publish/validate/slides.d.ts +21 -0
- package/dist/artifacts/publish/validate/slides.d.ts.map +1 -0
- package/dist/artifacts/references.d.ts +12 -0
- package/dist/artifacts/references.d.ts.map +1 -0
- package/dist/artifacts/resolve.d.ts +41 -0
- package/dist/artifacts/resolve.d.ts.map +1 -0
- package/dist/artifacts/theme.d.ts +19 -0
- package/dist/artifacts/theme.d.ts.map +1 -0
- package/dist/artifacts/warnings.d.ts +11 -0
- package/dist/artifacts/warnings.d.ts.map +1 -0
- package/dist/artifacts/workbook.d.ts +64 -0
- package/dist/artifacts/workbook.d.ts.map +1 -0
- package/dist/auth/cookies.d.ts +2 -4
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/index.d.ts +0 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +14 -20
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +8 -10
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/session-cache.d.ts +1 -5
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/strategy.js +1 -1
- package/dist/auth/types.d.ts +4 -8
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/validation.d.ts +0 -1
- package/dist/auth/validation.d.ts.map +1 -1
- package/dist/authorization/decision.d.ts +2 -4
- package/dist/authorization/decision.d.ts.map +1 -1
- package/dist/authorization/grant-kinds.d.ts +6 -8
- package/dist/authorization/grant-kinds.d.ts.map +1 -1
- package/dist/authorization/index.d.ts +0 -1
- package/dist/authorization/index.d.ts.map +1 -1
- package/dist/authorization/index.js +7 -11
- 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/blob-storage/browser.js +1 -1
- package/dist/blob-storage/index.js +2 -2
- package/dist/blob-storage/internal.d.ts +1 -1
- package/dist/blob-storage/internal.d.ts.map +1 -1
- package/dist/blob-storage/internal.js +11 -5
- package/dist/blob-storage/internal.js.map +1 -1
- package/dist/blob-storage/media-type.d.ts +12 -0
- package/dist/blob-storage/media-type.d.ts.map +1 -1
- package/dist/bootstrap/index.js +54 -48
- package/dist/bootstrap/index.js.map +2 -2
- package/dist/{chunk-t6vq7bff.js → chunk-0bphap9y.js} +5 -5
- package/dist/{chunk-7mbzgd9m.js → chunk-1cc1xaf3.js} +3 -3
- package/dist/chunk-3jms7je7.js +14 -0
- package/dist/chunk-3jms7je7.js.map +10 -0
- package/dist/{chunk-s54c868q.js → chunk-3qct2mdc.js} +3 -13
- package/dist/chunk-3qct2mdc.js.map +12 -0
- package/dist/{chunk-6gmfggss.js → chunk-431pyp2c.js} +3 -3
- package/dist/{chunk-c85m1hyj.js → chunk-447a5c0p.js} +2 -2
- package/dist/chunk-48qjhh6v.js +185 -0
- package/dist/chunk-48qjhh6v.js.map +13 -0
- package/dist/{chunk-80mc0971.js → chunk-561r0yc9.js} +8 -8
- package/dist/{chunk-5e43w60z.js → chunk-5948n82c.js} +2 -2
- package/dist/{chunk-yzwja0mj.js → chunk-5hx48dnn.js} +2 -2
- package/dist/{chunk-tjb1mk5t.js → chunk-5vems3nx.js} +5 -6
- package/dist/{chunk-tjb1mk5t.js.map → chunk-5vems3nx.js.map} +3 -3
- package/dist/{chunk-aff7cyea.js → chunk-61y5xs4p.js} +563 -167
- package/dist/{chunk-aff7cyea.js.map → chunk-61y5xs4p.js.map} +12 -9
- package/dist/chunk-65abf64x.js +13 -0
- package/dist/chunk-65abf64x.js.map +10 -0
- package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
- package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
- package/dist/chunk-6rqgmkde.js +2028 -0
- package/dist/chunk-6rqgmkde.js.map +29 -0
- package/dist/{chunk-y7rqfrgg.js → chunk-6vb4st8k.js} +29 -38
- package/dist/chunk-6vb4st8k.js.map +23 -0
- package/dist/chunk-7q8t23v4.js +467 -0
- package/dist/chunk-7q8t23v4.js.map +14 -0
- package/dist/{chunk-kyzq4wy9.js → chunk-858emn8m.js} +17 -17
- package/dist/chunk-858emn8m.js.map +18 -0
- package/dist/{chunk-hvsb78a1.js → chunk-8frc8a4j.js} +26 -26
- package/dist/{chunk-hvsb78a1.js.map → chunk-8frc8a4j.js.map} +2 -2
- package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
- package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
- package/dist/{chunk-j2bp5ryw.js → chunk-918wwnaa.js} +495 -28
- package/dist/{chunk-j2bp5ryw.js.map → chunk-918wwnaa.js.map} +14 -12
- package/dist/{chunk-1f7wpmyp.js → chunk-9j4jw7as.js} +103 -110
- package/dist/chunk-9j4jw7as.js.map +14 -0
- package/dist/chunk-9kgkfg6v.js +502 -0
- package/dist/chunk-9kgkfg6v.js.map +14 -0
- package/dist/chunk-a3faa34j.js +74 -0
- package/dist/chunk-a3faa34j.js.map +10 -0
- package/dist/{chunk-ey3pyej1.js → chunk-akzryx9h.js} +347 -1174
- package/dist/{chunk-ey3pyej1.js.map → chunk-akzryx9h.js.map} +19 -25
- package/dist/chunk-arns890k.js +10 -0
- package/dist/chunk-arns890k.js.map +10 -0
- package/dist/{chunk-zrmy8zvw.js → chunk-bk9svbcq.js} +11 -11
- package/dist/{chunk-zrmy8zvw.js.map → chunk-bk9svbcq.js.map} +2 -2
- package/dist/{chunk-hkc3jct7.js → chunk-c06hmxyy.js} +2 -10
- package/dist/chunk-c06hmxyy.js.map +10 -0
- package/dist/{chunk-q1vkr2ys.js → chunk-c1rxbz5y.js} +3 -3
- package/dist/chunk-cfj9dfbb.js +288 -0
- package/dist/chunk-cfj9dfbb.js.map +12 -0
- package/dist/{chunk-4tcx876c.js → chunk-cn0fwwhy.js} +19 -19
- package/dist/{chunk-4tcx876c.js.map → chunk-cn0fwwhy.js.map} +1 -1
- package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
- package/dist/{chunk-fa02jy15.js → chunk-cy4mbddw.js} +1 -1
- package/dist/{chunk-7kg3k1m9.js → chunk-d09e3rax.js} +1 -1
- package/dist/chunk-d5rjr8c0.js +176 -0
- package/dist/chunk-d5rjr8c0.js.map +12 -0
- package/dist/{chunk-rhg02hxq.js → chunk-d7dnxdep.js} +3 -3
- package/dist/{chunk-b38szspf.js → chunk-dhcv7yxc.js} +1 -1
- package/dist/{chunk-b38szspf.js.map → chunk-dhcv7yxc.js.map} +1 -1
- package/dist/{chunk-enpsx8k5.js → chunk-dhdha526.js} +23 -21
- package/dist/chunk-dhdha526.js.map +10 -0
- package/dist/{chunk-8mx7qw3y.js → chunk-dvd2fp9q.js} +2 -2
- package/dist/{chunk-8mx7qw3y.js.map → chunk-dvd2fp9q.js.map} +3 -3
- package/dist/{chunk-bwjcehza.js → chunk-e17zdm62.js} +6 -12
- package/dist/{chunk-bwjcehza.js.map → chunk-e17zdm62.js.map} +3 -4
- package/dist/{chunk-tpn40322.js → chunk-e6k4thh5.js} +11 -10
- package/dist/{chunk-tpn40322.js.map → chunk-e6k4thh5.js.map} +3 -3
- package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
- package/dist/chunk-eptrvnby.js.map +12 -0
- package/dist/{chunk-xt1zt7gv.js → chunk-f4pamkt9.js} +30 -23
- package/dist/chunk-f4pamkt9.js.map +12 -0
- package/dist/chunk-ff5xkv0p.js +211 -0
- package/dist/chunk-ff5xkv0p.js.map +10 -0
- package/dist/{chunk-bpgy64fw.js → chunk-g257jwnc.js} +10 -4
- package/dist/{chunk-bpgy64fw.js.map → chunk-g257jwnc.js.map} +3 -3
- package/dist/chunk-g5bvzyyr.js +32 -0
- package/dist/chunk-g5bvzyyr.js.map +10 -0
- package/dist/{chunk-2jntasmh.js → chunk-hcbyfxbe.js} +25 -49
- package/dist/chunk-hcbyfxbe.js.map +12 -0
- package/dist/chunk-hke9aeen.js +9 -0
- package/dist/chunk-hke9aeen.js.map +10 -0
- package/dist/{chunk-1sr8ryzk.js → chunk-hwksyjks.js} +122 -1
- package/dist/{chunk-1sr8ryzk.js.map → chunk-hwksyjks.js.map} +3 -3
- package/dist/chunk-jcfw4h7m.js +9 -0
- package/dist/chunk-jcfw4h7m.js.map +10 -0
- package/dist/{chunk-85yvv5n0.js → chunk-k43ct2ke.js} +20 -11
- package/dist/chunk-k43ct2ke.js.map +12 -0
- package/dist/{chunk-dnmadg9k.js → chunk-kge7k6ey.js} +40 -8
- package/dist/chunk-kge7k6ey.js.map +15 -0
- package/dist/{chunk-wz0xs816.js → chunk-ky3j490c.js} +2 -2
- package/dist/chunk-mjddfa7k.js +129 -0
- package/dist/chunk-mjddfa7k.js.map +12 -0
- package/dist/{chunk-3gnrh4ve.js → chunk-nn5xnx3s.js} +86 -111
- package/dist/chunk-nn5xnx3s.js.map +40 -0
- package/dist/{chunk-rz53yb4v.js → chunk-q5e5tv4b.js} +35 -7
- package/dist/{chunk-rz53yb4v.js.map → chunk-q5e5tv4b.js.map} +3 -3
- package/dist/{chunk-vyf9kfqf.js → chunk-q7gn29y3.js} +1 -1
- package/dist/{chunk-d2ync1v3.js → chunk-rmakanzx.js} +10 -12
- package/dist/{chunk-d2ync1v3.js.map → chunk-rmakanzx.js.map} +3 -4
- package/dist/{chunk-v9xd5wzd.js → chunk-s7jg7pmn.js} +1 -1
- package/dist/chunk-tbc1ngpd.js +642 -0
- package/dist/chunk-tbc1ngpd.js.map +18 -0
- package/dist/chunk-twe4dx8p.js +676 -0
- package/dist/chunk-twe4dx8p.js.map +15 -0
- package/dist/{chunk-nre82s12.js → chunk-vf57cr4t.js} +2 -2
- package/dist/{chunk-9ybhtmg4.js → chunk-vvxtn22d.js} +1 -1
- package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
- package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
- package/dist/chunk-x0v3jd47.js +124 -0
- package/dist/chunk-x0v3jd47.js.map +10 -0
- package/dist/{chunk-7t429e3f.js → chunk-xvsc5m8n.js} +1 -1
- package/dist/{chunk-kg5j6fct.js → chunk-y5tah2kf.js} +1 -1
- package/dist/{chunk-52bk93x8.js → chunk-z58tm0hm.js} +2 -2
- package/dist/datasets/builders.d.ts +15 -2
- package/dist/datasets/builders.d.ts.map +1 -1
- package/dist/datasets/column-index.d.ts +7 -0
- package/dist/datasets/column-index.d.ts.map +1 -0
- package/dist/datasets/execution.d.ts +3 -2
- package/dist/datasets/execution.d.ts.map +1 -1
- package/dist/datasets/write.js +8 -8
- package/dist/deploy/internal.js +4 -3
- package/dist/deploy/internal.js.map +4 -4
- package/dist/deploy/services.d.ts.map +1 -1
- package/dist/deploy/types.d.ts +1 -2
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +4 -4
- package/dist/errors/internal.d.ts +1 -0
- package/dist/errors/internal.d.ts.map +1 -1
- package/dist/errors/internal.js +7 -4
- package/dist/errors/internal.js.map +1 -1
- package/dist/events/execution.d.ts +12 -2
- package/dist/events/execution.d.ts.map +1 -1
- package/dist/events/index.js +4 -4
- package/dist/execution/agent.js +56 -49
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts +52 -11
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/object-reader-clearance.d.ts +41 -0
- package/dist/execution/object-reader-clearance.d.ts.map +1 -0
- package/dist/execution/object-reader-ontology.d.ts +12 -0
- package/dist/execution/object-reader-ontology.d.ts.map +1 -0
- package/dist/execution/object-reader-security.d.ts +45 -0
- package/dist/execution/object-reader-security.d.ts.map +1 -0
- package/dist/execution/primitive.js +54 -47
- package/dist/execution/primitive.js.map +1 -1
- package/dist/execution/request.js +49 -42
- package/dist/execution/request.js.map +2 -2
- package/dist/http/api-routes.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/index.d.ts +23 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +111 -109
- package/dist/index.js.map +1 -1
- package/dist/lake-storage/in-memory.d.ts +1 -0
- package/dist/lake-storage/in-memory.d.ts.map +1 -1
- package/dist/lake-storage/index.d.ts +6 -3
- package/dist/lake-storage/index.d.ts.map +1 -1
- package/dist/lake-storage/index.js +21 -13
- package/dist/lake-storage/index.js.map +1 -1
- package/dist/lake-storage/lineage.d.ts +94 -0
- package/dist/lake-storage/lineage.d.ts.map +1 -0
- package/dist/lake-storage/sql-transforms.d.ts +45 -0
- package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
- package/dist/lake-storage/types.d.ts +55 -1
- package/dist/lake-storage/types.d.ts.map +1 -1
- package/dist/lake-storage/version-inputs.d.ts +14 -3
- package/dist/lake-storage/version-inputs.d.ts.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materializer/index.js +31 -30
- package/dist/materializer/index.js.map +1 -1
- package/dist/models/execution/index.js +26 -25
- package/dist/models/execution/index.js.map +1 -1
- package/dist/objects/clearance-redaction.d.ts +27 -0
- package/dist/objects/clearance-redaction.d.ts.map +1 -0
- package/dist/objects/index.js +54 -47
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/link/authorization.d.ts +8 -5
- package/dist/objects/link/authorization.d.ts.map +1 -1
- package/dist/objects/link/upsert-batch.d.ts.map +1 -1
- package/dist/objects/object/delete.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 +47 -24
- package/dist/objects/property-clearance.d.ts.map +1 -1
- package/dist/objects/query/clearance-admission.d.ts +10 -0
- package/dist/objects/query/clearance-admission.d.ts.map +1 -0
- package/dist/objects/query/index.js +29 -28
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/link-query-clearance.d.ts +21 -0
- package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
- package/dist/objects/vectors/handle.d.ts.map +1 -1
- package/dist/objects/vectors/profile.d.ts +5 -0
- package/dist/objects/vectors/profile.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/docs-markdown.d.ts +1 -1
- package/dist/ontology/docs-markdown.d.ts.map +1 -1
- package/dist/ontology/index.js +7 -7
- package/dist/ontology/internal.js +4 -4
- package/dist/ontology/internal.js.map +1 -1
- package/dist/pipelines/index.d.ts +2 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +47 -35
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/lineage.d.ts +17 -0
- package/dist/pipelines/lineage.d.ts.map +1 -0
- package/dist/projections/internal.d.ts +2 -2
- package/dist/projections/internal.js +30 -29
- package/dist/projections/internal.js.map +1 -1
- package/dist/runtime/create.d.ts +3 -0
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +6 -0
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +2 -0
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +46 -42
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/ontology-mutations.d.ts +2 -0
- package/dist/runtime/ontology-mutations.d.ts.map +1 -1
- package/dist/runtime/resolve-definitions.d.ts.map +1 -1
- package/dist/runtime/sixb.d.ts +8 -0
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/sandboxes/auth.d.ts +16 -0
- package/dist/sandboxes/auth.d.ts.map +1 -1
- package/dist/sandboxes/config.d.ts.map +1 -1
- package/dist/sandboxes/configuration.d.ts +26 -0
- package/dist/sandboxes/configuration.d.ts.map +1 -1
- package/dist/sandboxes/index.d.ts +1 -1
- package/dist/sandboxes/index.d.ts.map +1 -1
- package/dist/sandboxes/index.js +14 -13
- package/dist/sandboxes/index.js.map +1 -1
- package/dist/sandboxes/sandbox.d.ts +28 -5
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/security/applied-markings-contribution.d.ts +58 -0
- package/dist/security/applied-markings-contribution.d.ts.map +1 -0
- package/dist/security/applied-markings-host.d.ts +10 -0
- package/dist/security/applied-markings-host.d.ts.map +1 -0
- package/dist/security/applied-markings-snapshot.d.ts +67 -0
- package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
- package/dist/security/applied-markings.d.ts +73 -0
- package/dist/security/applied-markings.d.ts.map +1 -0
- package/dist/security/builders.d.ts.map +1 -1
- package/dist/security/dataset-version-markings.d.ts +47 -0
- package/dist/security/dataset-version-markings.d.ts.map +1 -0
- package/dist/security/every.d.ts +1 -4
- package/dist/security/every.d.ts.map +1 -1
- package/dist/security/grants.d.ts +4 -5
- package/dist/security/grants.d.ts.map +1 -1
- package/dist/security/index.d.ts +2 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/internal.d.ts +15 -0
- package/dist/security/internal.d.ts.map +1 -0
- package/dist/security/internal.js +135 -0
- package/dist/security/internal.js.map +10 -0
- package/dist/security/marking-propagation.d.ts +62 -0
- package/dist/security/marking-propagation.d.ts.map +1 -0
- package/dist/security/marking-sets.d.ts +14 -0
- package/dist/security/marking-sets.d.ts.map +1 -0
- package/dist/security/markings.d.ts +6 -3
- package/dist/security/markings.d.ts.map +1 -1
- package/dist/security/membership-policies.d.ts.map +1 -1
- package/dist/security/pipeline-markings.d.ts +20 -0
- package/dist/security/pipeline-markings.d.ts.map +1 -0
- package/dist/security/project.d.ts +4 -0
- package/dist/security/project.d.ts.map +1 -0
- package/dist/security/projection-markings.d.ts +71 -0
- package/dist/security/projection-markings.d.ts.map +1 -0
- package/dist/security/public.d.ts +10 -0
- package/dist/security/public.d.ts.map +1 -0
- package/dist/security/public.js +10 -0
- package/dist/security/public.js.map +9 -0
- package/dist/security/redactions.d.ts +4 -1
- package/dist/security/redactions.d.ts.map +1 -1
- package/dist/security/registry.d.ts +0 -1
- package/dist/security/registry.d.ts.map +1 -1
- package/dist/security/types.d.ts +34 -19
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/validation.d.ts +0 -6
- package/dist/security/validation.d.ts.map +1 -1
- package/dist/shares/internal.js +25 -24
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +3 -3
- package/dist/storage/action-runs/in-memory.d.ts +4 -0
- package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/action-runs/types.d.ts +8 -0
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/activity/in-memory.d.ts +55 -0
- package/dist/storage/activity/in-memory.d.ts.map +1 -0
- package/dist/storage/activity/index.d.ts +3 -0
- package/dist/storage/activity/index.d.ts.map +1 -0
- package/dist/storage/activity/policy.d.ts +96 -0
- package/dist/storage/activity/policy.d.ts.map +1 -0
- package/dist/storage/activity/types.d.ts +191 -0
- package/dist/storage/activity/types.d.ts.map +1 -0
- package/dist/storage/agents/in-memory.d.ts +4 -0
- package/dist/storage/agents/in-memory.d.ts.map +1 -1
- package/dist/storage/agents/provider.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +2 -5
- package/dist/storage/agents/provider.js.map +1 -1
- package/dist/storage/agents/types.d.ts +10 -9
- package/dist/storage/agents/types.d.ts.map +1 -1
- package/dist/storage/ai-limits/enforcement.js +3 -3
- package/dist/storage/artifacts/errors.d.ts +8 -0
- package/dist/storage/artifacts/errors.d.ts.map +1 -0
- package/dist/storage/artifacts/in-memory.d.ts +34 -0
- package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
- package/dist/storage/artifacts/index.d.ts +5 -0
- package/dist/storage/artifacts/index.d.ts.map +1 -0
- package/dist/storage/artifacts/record.d.ts +17 -0
- package/dist/storage/artifacts/record.d.ts.map +1 -0
- package/dist/storage/artifacts/types.d.ts +184 -0
- package/dist/storage/artifacts/types.d.ts.map +1 -0
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/magic-links.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/oidc-attempts.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +2 -11
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/shared.d.ts +1 -2
- 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 +20 -17
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +2 -2
- package/dist/storage/executions/in-memory.d.ts +2 -1
- package/dist/storage/executions/in-memory.d.ts.map +1 -1
- package/dist/storage/executions/index.d.ts +1 -1
- package/dist/storage/executions/index.d.ts.map +1 -1
- package/dist/storage/executions/provider.d.ts +2 -0
- package/dist/storage/executions/provider.d.ts.map +1 -1
- package/dist/storage/executions/provider.js +9 -223
- package/dist/storage/executions/provider.js.map +3 -4
- package/dist/storage/executions/types.d.ts +31 -0
- package/dist/storage/executions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.js +12 -12
- package/dist/storage/in-memory/index.d.ts +8 -0
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +6 -4
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +47 -46
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.d.ts +3 -0
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +66 -16
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
- package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
- package/dist/storage/ontology/index.d.ts +1 -1
- package/dist/storage/ontology/index.d.ts.map +1 -1
- package/dist/storage/ontology/sources.d.ts +15 -0
- package/dist/storage/ontology/sources.d.ts.map +1 -1
- package/dist/storage/projection-runs/provider.js +3 -3
- package/dist/storage/share-grants/in-memory.d.ts +2 -1
- package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
- package/dist/storage/share-grants/index.d.ts +1 -1
- package/dist/storage/share-grants/index.d.ts.map +1 -1
- package/dist/storage/share-grants/types.d.ts +6 -0
- package/dist/storage/share-grants/types.d.ts.map +1 -1
- package/dist/storage/types.d.ts +4 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
- package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +14 -13
- package/dist/storage/workflow-runs/provider.js.map +1 -1
- package/dist/storage/workflow-runs/types.d.ts +5 -0
- package/dist/storage/workflow-runs/types.d.ts.map +1 -1
- package/dist/syncs/index.js +35 -34
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
- package/dist/testing/activity-storage-contract.d.ts +14 -0
- package/dist/testing/activity-storage-contract.d.ts.map +1 -0
- package/dist/testing/agent-storage-contract.d.ts.map +1 -1
- package/dist/testing/artifact-storage-contract.d.ts +13 -0
- package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution-storage-contract.d.ts.map +1 -1
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +4493 -3225
- package/dist/testing/index.js.map +14 -12
- package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
- package/dist/testing/lake-storage-contract.d.ts +2 -0
- package/dist/testing/lake-storage-contract.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
- package/dist/webhooks/internal.js +28 -27
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/workers/index.js +2 -2
- package/dist/workflows/builders.d.ts.map +1 -1
- package/dist/workflows/index.js +57 -51
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/types.d.ts +9 -0
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/validation.d.ts +7 -0
- package/dist/workflows/validation.d.ts.map +1 -1
- package/package.json +32 -2
- package/src/actions/execution.ts +18 -13
- package/src/actions/request.ts +18 -3
- package/src/actions/run-authorization.ts +23 -0
- package/src/activity/README.md +155 -0
- package/src/activity/connection.ts +217 -0
- package/src/activity/device.ts +41 -0
- package/src/activity/execution.ts +210 -0
- package/src/activity/service.ts +274 -0
- package/src/activity/shares.ts +62 -0
- package/src/activity/timeline.ts +424 -0
- package/src/agents/index.ts +8 -3
- package/src/agents/request.ts +5 -0
- package/src/agents/skills.ts +6 -0
- package/src/agents/types.ts +8 -8
- package/src/agents/validation.ts +2 -0
- package/src/artifacts/address.ts +132 -0
- package/src/artifacts/csv.ts +108 -0
- package/src/artifacts/errors.ts +21 -0
- package/src/artifacts/execution.ts +153 -0
- package/src/artifacts/frames/assets.ts +88 -0
- package/src/artifacts/frames/grants.ts +124 -0
- package/src/artifacts/frames/index.ts +15 -0
- package/src/artifacts/frames/kit.ts +392 -0
- package/src/artifacts/frames/probe.ts +309 -0
- package/src/artifacts/frames/protocol.ts +174 -0
- package/src/artifacts/frames/runtime.ts +213 -0
- package/src/artifacts/html.ts +25 -0
- package/src/artifacts/ids.ts +18 -0
- package/src/artifacts/index.ts +61 -0
- package/src/artifacts/kinds.ts +8 -0
- package/src/artifacts/limits.ts +27 -0
- package/src/artifacts/outline.ts +62 -0
- package/src/artifacts/publish/files.ts +87 -0
- package/src/artifacts/publish/index.ts +12 -0
- package/src/artifacts/publish/publish.ts +250 -0
- package/src/artifacts/publish/references.ts +130 -0
- package/src/artifacts/publish/validate/document.ts +114 -0
- package/src/artifacts/publish/validate/file.ts +19 -0
- package/src/artifacts/publish/validate/sheet.ts +251 -0
- package/src/artifacts/publish/validate/slides.ts +134 -0
- package/src/artifacts/references.ts +11 -0
- package/src/artifacts/resolve.ts +97 -0
- package/src/artifacts/theme.ts +116 -0
- package/src/artifacts/warnings.ts +10 -0
- package/src/artifacts/workbook.ts +315 -0
- package/src/auth/cookies.ts +3 -20
- package/src/auth/index.ts +0 -6
- package/src/auth/runtime.ts +59 -76
- package/src/auth/session-cache.ts +2 -9
- package/src/auth/types.ts +4 -8
- package/src/auth/validation.ts +0 -2
- package/src/authorization/decision.ts +13 -23
- package/src/authorization/grant-kinds.ts +33 -28
- package/src/authorization/index.ts +0 -1
- package/src/authorization/resolve.ts +10 -6
- package/src/blob-storage/internal.ts +1 -1
- package/src/blob-storage/media-type.ts +69 -0
- package/src/datasets/builders.ts +66 -2
- package/src/datasets/column-index.ts +19 -0
- package/src/datasets/execution.ts +23 -9
- package/src/deploy/services.ts +0 -1
- package/src/deploy/types.ts +1 -2
- package/src/deploy/validation.ts +3 -1
- package/src/errors/internal.ts +1 -0
- package/src/events/execution.ts +134 -21
- package/src/execution/authorization.ts +11 -5
- package/src/execution/authorized-object-reader.ts +270 -256
- package/src/execution/object-reader-clearance.ts +91 -0
- package/src/execution/object-reader-ontology.ts +63 -0
- package/src/execution/object-reader-security.ts +146 -0
- package/src/http/api-routes.ts +125 -0
- package/src/index.ts +72 -17
- package/src/lake-storage/in-memory.ts +26 -3
- package/src/lake-storage/index.ts +13 -1
- package/src/lake-storage/lineage.ts +385 -0
- package/src/lake-storage/sql-transforms.ts +45 -0
- package/src/lake-storage/types.ts +59 -1
- package/src/lake-storage/version-inputs.ts +35 -6
- package/src/maintenance/ontology-maintenance.ts +15 -0
- package/src/models/execution/embedding.ts +6 -6
- package/src/objects/clearance-redaction.ts +138 -0
- package/src/objects/link/authorization.ts +27 -7
- package/src/objects/link/remove.ts +2 -2
- package/src/objects/link/upsert-batch.ts +7 -5
- package/src/objects/link/upsert.ts +2 -2
- package/src/objects/object/delete.ts +2 -0
- package/src/objects/object/upsert-batch.ts +2 -4
- package/src/objects/object/upsert.ts +2 -3
- package/src/objects/property-clearance.ts +171 -152
- package/src/objects/query/clearance-admission.ts +112 -0
- package/src/objects/query/link-query-clearance.ts +73 -0
- package/src/objects/vectors/README.md +4 -0
- package/src/objects/vectors/handle.ts +11 -2
- package/src/objects/vectors/indexing-generate.ts +2 -2
- package/src/objects/vectors/profile.ts +5 -0
- package/src/ontology/builders.ts +12 -1
- package/src/ontology/docs-markdown.ts +1 -1
- package/src/pipelines/index.ts +2 -0
- package/src/pipelines/lineage.ts +45 -0
- package/src/projections/internal.ts +2 -2
- package/src/runtime/create.ts +4 -0
- package/src/runtime/host.ts +55 -0
- package/src/runtime/internal.ts +2 -0
- package/src/runtime/ontology-mutations.ts +19 -4
- package/src/runtime/resolve-definitions.ts +66 -3
- package/src/runtime/sixb.ts +18 -1
- package/src/sandboxes/README.md +29 -7
- package/src/sandboxes/auth.ts +16 -0
- package/src/sandboxes/config.ts +2 -7
- package/src/sandboxes/configuration.ts +61 -7
- package/src/sandboxes/index.ts +1 -0
- package/src/sandboxes/sandbox.ts +27 -5
- package/src/security/applied-markings-contribution.ts +277 -0
- package/src/security/applied-markings-host.ts +41 -0
- package/src/security/applied-markings-snapshot.ts +235 -0
- package/src/security/applied-markings.ts +405 -0
- package/src/security/builders.ts +7 -2
- package/src/security/dataset-version-markings.ts +163 -0
- package/src/security/every.ts +0 -4
- package/src/security/grants.ts +42 -27
- package/src/security/index.ts +3 -3
- package/src/security/internal.ts +18 -0
- package/src/security/marking-propagation.ts +255 -0
- package/src/security/marking-sets.ts +42 -0
- package/src/security/markings.ts +29 -178
- package/src/security/membership-policies.ts +3 -1
- package/src/security/pipeline-markings.ts +175 -0
- package/src/security/project.ts +8 -0
- package/src/security/projection-markings.ts +421 -0
- package/src/security/public.ts +10 -0
- package/src/security/redactions.ts +7 -2
- package/src/security/registry.ts +0 -8
- package/src/security/types.ts +38 -26
- package/src/security/validation.ts +28 -19
- package/src/storage/action-runs/in-memory.ts +18 -0
- package/src/storage/action-runs/types.ts +8 -0
- package/src/storage/activity/in-memory.ts +374 -0
- package/src/storage/activity/index.ts +27 -0
- package/src/storage/activity/policy.ts +430 -0
- package/src/storage/activity/types.ts +211 -0
- package/src/storage/agents/in-memory.ts +10 -0
- package/src/storage/agents/provider.ts +2 -13
- package/src/storage/agents/types.ts +10 -17
- package/src/storage/artifacts/errors.ts +16 -0
- package/src/storage/artifacts/in-memory.ts +240 -0
- package/src/storage/artifacts/index.ts +30 -0
- package/src/storage/artifacts/record.ts +200 -0
- package/src/storage/artifacts/types.ts +209 -0
- package/src/storage/auth/in-memory/auth-storage.ts +0 -18
- package/src/storage/auth/in-memory/magic-links.ts +0 -3
- package/src/storage/auth/in-memory/oidc-attempts.ts +0 -3
- package/src/storage/auth/in-memory/sessions.ts +22 -25
- package/src/storage/auth/in-memory/shared.ts +1 -10
- package/src/storage/auth/index.ts +2 -0
- package/src/storage/auth/types.ts +20 -18
- package/src/storage/executions/in-memory.ts +61 -1
- package/src/storage/executions/index.ts +3 -0
- package/src/storage/executions/provider.ts +12 -0
- package/src/storage/executions/types.ts +30 -0
- package/src/storage/in-memory/index.ts +16 -0
- package/src/storage/index.ts +63 -0
- package/src/storage/internal.ts +30 -0
- package/src/storage/ontology/in-memory/sources.ts +23 -0
- package/src/storage/ontology/index.ts +2 -0
- package/src/storage/ontology/sources.ts +17 -0
- package/src/storage/share-grants/in-memory.ts +8 -0
- package/src/storage/share-grants/index.ts +1 -0
- package/src/storage/share-grants/types.ts +8 -0
- package/src/storage/types.ts +4 -0
- package/src/storage/workflow-runs/in-memory.ts +16 -0
- package/src/storage/workflow-runs/types.ts +5 -0
- package/src/testing/action-run-storage-contract.ts +25 -0
- package/src/testing/activity-storage-contract.ts +840 -0
- package/src/testing/agent-storage-contract.ts +22 -21
- package/src/testing/artifact-storage-contract.ts +517 -0
- package/src/testing/auth-storage-contract.ts +61 -107
- package/src/testing/execution-storage-contract.ts +147 -3
- package/src/testing/index.ts +9 -0
- package/src/testing/lake-merge-storage-contract.ts +38 -0
- package/src/testing/lake-storage-contract.ts +247 -2
- package/src/testing/materializer-storage-contract.ts +1 -0
- package/src/testing/ontology-storage-contract.ts +57 -2
- package/src/testing/share-grant-storage-contract.ts +15 -0
- package/src/workflows/builders.ts +14 -0
- package/src/workflows/types.ts +9 -0
- package/src/workflows/validation.ts +72 -0
- package/dist/auth/audience.d.ts +0 -8
- package/dist/auth/audience.d.ts.map +0 -1
- package/dist/authorization/application-access.d.ts +0 -18
- package/dist/authorization/application-access.d.ts.map +0 -1
- package/dist/chunk-1f7wpmyp.js.map +0 -14
- package/dist/chunk-1k89ecfr.js +0 -85
- package/dist/chunk-1k89ecfr.js.map +0 -10
- package/dist/chunk-2jntasmh.js.map +0 -13
- package/dist/chunk-3gnrh4ve.js.map +0 -40
- package/dist/chunk-85yvv5n0.js.map +0 -12
- package/dist/chunk-9gyp8hg1.js +0 -363
- package/dist/chunk-9gyp8hg1.js.map +0 -14
- package/dist/chunk-dnmadg9k.js.map +0 -15
- package/dist/chunk-enpsx8k5.js.map +0 -10
- package/dist/chunk-hkc3jct7.js.map +0 -10
- package/dist/chunk-kyzq4wy9.js.map +0 -18
- package/dist/chunk-s16apyk9.js +0 -256
- package/dist/chunk-s16apyk9.js.map +0 -16
- package/dist/chunk-s54c868q.js.map +0 -12
- package/dist/chunk-tw03bsmb.js.map +0 -11
- package/dist/chunk-wwdfe68s.js +0 -128
- package/dist/chunk-wwdfe68s.js.map +0 -11
- package/dist/chunk-xt1zt7gv.js.map +0 -13
- package/dist/chunk-y7rqfrgg.js.map +0 -24
- package/dist/security/applications.d.ts +0 -15
- package/dist/security/applications.d.ts.map +0 -1
- package/src/auth/audience.ts +0 -28
- package/src/authorization/application-access.ts +0 -34
- package/src/security/applications.ts +0 -11
- /package/dist/{chunk-t6vq7bff.js.map → chunk-0bphap9y.js.map} +0 -0
- /package/dist/{chunk-7mbzgd9m.js.map → chunk-1cc1xaf3.js.map} +0 -0
- /package/dist/{chunk-6gmfggss.js.map → chunk-431pyp2c.js.map} +0 -0
- /package/dist/{chunk-c85m1hyj.js.map → chunk-447a5c0p.js.map} +0 -0
- /package/dist/{chunk-80mc0971.js.map → chunk-561r0yc9.js.map} +0 -0
- /package/dist/{chunk-5e43w60z.js.map → chunk-5948n82c.js.map} +0 -0
- /package/dist/{chunk-yzwja0mj.js.map → chunk-5hx48dnn.js.map} +0 -0
- /package/dist/{chunk-q1vkr2ys.js.map → chunk-c1rxbz5y.js.map} +0 -0
- /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
- /package/dist/{chunk-fa02jy15.js.map → chunk-cy4mbddw.js.map} +0 -0
- /package/dist/{chunk-7kg3k1m9.js.map → chunk-d09e3rax.js.map} +0 -0
- /package/dist/{chunk-rhg02hxq.js.map → chunk-d7dnxdep.js.map} +0 -0
- /package/dist/{chunk-wz0xs816.js.map → chunk-ky3j490c.js.map} +0 -0
- /package/dist/{chunk-vyf9kfqf.js.map → chunk-q7gn29y3.js.map} +0 -0
- /package/dist/{chunk-v9xd5wzd.js.map → chunk-s7jg7pmn.js.map} +0 -0
- /package/dist/{chunk-nre82s12.js.map → chunk-vf57cr4t.js.map} +0 -0
- /package/dist/{chunk-9ybhtmg4.js.map → chunk-vvxtn22d.js.map} +0 -0
- /package/dist/{chunk-7t429e3f.js.map → chunk-xvsc5m8n.js.map} +0 -0
- /package/dist/{chunk-kg5j6fct.js.map → chunk-y5tah2kf.js.map} +0 -0
- /package/dist/{chunk-52bk93x8.js.map → chunk-z58tm0hm.js.map} +0 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import type { ArtifactKind } from "../../artifacts/kinds"
|
|
2
|
+
import type { ArtifactOutline } from "../../artifacts/outline"
|
|
3
|
+
import type { ArtifactReference } from "../../artifacts/references"
|
|
4
|
+
import type { Principal } from "../../auth"
|
|
5
|
+
import type { FileRef } from "../../blob-storage"
|
|
6
|
+
|
|
7
|
+
export type { ArtifactKind, ArtifactOutline, ArtifactReference }
|
|
8
|
+
|
|
9
|
+
/** A versioned document, sheet, deck, or file. Its kind never changes. */
|
|
10
|
+
export interface ArtifactRecord {
|
|
11
|
+
readonly projectId: string
|
|
12
|
+
readonly id: string
|
|
13
|
+
readonly kind: ArtifactKind
|
|
14
|
+
/** The latest version's title. */
|
|
15
|
+
readonly title: string
|
|
16
|
+
/** Who created the artifact; reading and publishing are decided from it. */
|
|
17
|
+
readonly owner: Principal
|
|
18
|
+
readonly latestVersion: number
|
|
19
|
+
readonly createdAt: Date
|
|
20
|
+
/** When the latest version was published. */
|
|
21
|
+
readonly updatedAt: Date
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** One file of a version, at its path inside the artifact. */
|
|
25
|
+
export interface ArtifactFile {
|
|
26
|
+
/** Relative, with `/` separators and no `.` or `..` segments. */
|
|
27
|
+
readonly path: string
|
|
28
|
+
readonly file: FileRef
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Where a version was published from. Provenance only: reading never depends on it. */
|
|
32
|
+
export interface ArtifactOrigin {
|
|
33
|
+
readonly threadId: string
|
|
34
|
+
readonly runId: string
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** One published version. A version never changes once stored. */
|
|
38
|
+
export interface ArtifactVersionRecord {
|
|
39
|
+
readonly projectId: string
|
|
40
|
+
readonly artifactId: string
|
|
41
|
+
readonly version: number
|
|
42
|
+
readonly title: string
|
|
43
|
+
/** The path of the file the kind renders from, one of `files`. */
|
|
44
|
+
readonly entry: string
|
|
45
|
+
readonly files: readonly ArtifactFile[]
|
|
46
|
+
readonly outline: ArtifactOutline
|
|
47
|
+
readonly references: readonly ArtifactReference[]
|
|
48
|
+
/** Who published this version. */
|
|
49
|
+
readonly author: Principal
|
|
50
|
+
readonly origin?: ArtifactOrigin
|
|
51
|
+
readonly createdAt: Date
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** A version's content before storage numbers it. */
|
|
55
|
+
export type ArtifactVersionInput = Omit<
|
|
56
|
+
ArtifactVersionRecord,
|
|
57
|
+
"projectId" | "artifactId" | "version"
|
|
58
|
+
>
|
|
59
|
+
|
|
60
|
+
export interface CreateArtifactInput {
|
|
61
|
+
readonly projectId: string
|
|
62
|
+
readonly id: string
|
|
63
|
+
readonly kind: ArtifactKind
|
|
64
|
+
readonly owner: Principal
|
|
65
|
+
/** Becomes version 1. */
|
|
66
|
+
readonly version: ArtifactVersionInput
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface PublishArtifactVersionInput {
|
|
70
|
+
readonly projectId: string
|
|
71
|
+
readonly artifactId: string
|
|
72
|
+
/** Must be the artifact's kind. */
|
|
73
|
+
readonly kind: ArtifactKind
|
|
74
|
+
readonly version: ArtifactVersionInput
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export interface PublishedArtifactVersion {
|
|
78
|
+
readonly artifact: ArtifactRecord
|
|
79
|
+
readonly version: ArtifactVersionRecord
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface GetArtifactInput {
|
|
83
|
+
readonly projectId: string
|
|
84
|
+
readonly id: string
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface ListArtifactsInput {
|
|
88
|
+
readonly projectId: string
|
|
89
|
+
readonly owner?: Principal
|
|
90
|
+
/** Only artifacts with a version published from this thread. */
|
|
91
|
+
readonly originThreadId?: string
|
|
92
|
+
/** Only artifacts of this kind. */
|
|
93
|
+
readonly kind?: ArtifactKind
|
|
94
|
+
readonly limit?: number
|
|
95
|
+
readonly offset?: number
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface ListArtifactsResult {
|
|
99
|
+
readonly artifacts: readonly ArtifactRecord[]
|
|
100
|
+
readonly hasMore: boolean
|
|
101
|
+
readonly total: number
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export interface GetArtifactVersionInput {
|
|
105
|
+
readonly projectId: string
|
|
106
|
+
readonly artifactId: string
|
|
107
|
+
readonly version: number
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export interface ListArtifactVersionsInput {
|
|
111
|
+
readonly projectId: string
|
|
112
|
+
readonly artifactId: string
|
|
113
|
+
readonly limit?: number
|
|
114
|
+
readonly offset?: number
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export interface ListArtifactVersionsResult {
|
|
118
|
+
readonly versions: readonly ArtifactVersionRecord[]
|
|
119
|
+
readonly hasMore: boolean
|
|
120
|
+
readonly total: number
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface DeleteArtifactInput {
|
|
124
|
+
readonly projectId: string
|
|
125
|
+
readonly id: string
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export interface ListReferencingVersionsInput {
|
|
129
|
+
readonly projectId: string
|
|
130
|
+
/** The artifact the versions refer to. */
|
|
131
|
+
readonly artifactId: string
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* A short-lived link to one version, which a sandboxed frame loads a deck's files through. Only
|
|
136
|
+
* the SHA-256 of the link's token is stored; the token is the credential.
|
|
137
|
+
*/
|
|
138
|
+
export interface ArtifactFrameGrantRecord {
|
|
139
|
+
readonly projectId: string
|
|
140
|
+
/** SHA-256 hex of the token. */
|
|
141
|
+
readonly tokenHash: string
|
|
142
|
+
readonly artifactId: string
|
|
143
|
+
readonly version: number
|
|
144
|
+
/** What the frame may show from other artifacts, decided for its reader when it was issued. */
|
|
145
|
+
readonly targets: readonly ArtifactFrameTarget[]
|
|
146
|
+
readonly createdAt: Date
|
|
147
|
+
readonly expiresAt: Date
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/** An address a version embeds, and the version of its target a frame shows. */
|
|
151
|
+
export interface ArtifactFrameTarget {
|
|
152
|
+
readonly address: string
|
|
153
|
+
readonly artifactId: string
|
|
154
|
+
readonly version: number
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export interface FindArtifactFrameGrantInput {
|
|
158
|
+
readonly projectId: string
|
|
159
|
+
readonly tokenHash: string
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export interface DeleteExpiredArtifactFrameGrantsInput {
|
|
163
|
+
readonly projectId: string
|
|
164
|
+
readonly expiredBefore: Date
|
|
165
|
+
readonly limit: number
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export interface DeleteArtifactVersionsByOriginInput {
|
|
169
|
+
readonly projectId: string
|
|
170
|
+
readonly runId: string
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Persistence only: who may read or publish, and what a version may contain, are decided in Core
|
|
175
|
+
* before a call reaches storage.
|
|
176
|
+
*/
|
|
177
|
+
export interface ArtifactStorage {
|
|
178
|
+
/** Creates the artifact with its first version. Throws `artifact_exists` when the id is taken. */
|
|
179
|
+
create(input: CreateArtifactInput): Promise<PublishedArtifactVersion>
|
|
180
|
+
/**
|
|
181
|
+
* Stores the next version and makes it the latest. Throws `artifact_not_found` or
|
|
182
|
+
* `artifact_kind_mismatch`. A version number is never reused, even after its version is deleted.
|
|
183
|
+
*/
|
|
184
|
+
publish(input: PublishArtifactVersionInput): Promise<PublishedArtifactVersion>
|
|
185
|
+
get(input: GetArtifactInput): Promise<ArtifactRecord | null>
|
|
186
|
+
/** Most recently updated first. */
|
|
187
|
+
list(input: ListArtifactsInput): Promise<ListArtifactsResult>
|
|
188
|
+
getVersion(input: GetArtifactVersionInput): Promise<ArtifactVersionRecord | null>
|
|
189
|
+
/** Newest first. */
|
|
190
|
+
listVersions(input: ListArtifactVersionsInput): Promise<ListArtifactVersionsResult>
|
|
191
|
+
/**
|
|
192
|
+
* The latest version of each artifact whose latest version has an address to this artifact, so
|
|
193
|
+
* a new version can tell which artifacts it breaks. Ordered by artifact id.
|
|
194
|
+
*/
|
|
195
|
+
listReferencingVersions(input: ListReferencingVersionsInput): Promise<ArtifactVersionRecord[]>
|
|
196
|
+
/** Stores a frame grant. Throws `artifact_not_found` when its artifact does not exist. */
|
|
197
|
+
createFrameGrant(record: ArtifactFrameGrantRecord): Promise<void>
|
|
198
|
+
/** Returns expired grants too; the caller decides whether one still serves. */
|
|
199
|
+
findFrameGrant(input: FindArtifactFrameGrantInput): Promise<ArtifactFrameGrantRecord | null>
|
|
200
|
+
/** Deletes up to `limit` grants that expired before `expiredBefore`, and returns the count. */
|
|
201
|
+
deleteExpiredFrameGrants(input: DeleteExpiredArtifactFrameGrantsInput): Promise<number>
|
|
202
|
+
/** Deletes the artifact, every version, and its frame grants. `false` when it does not exist. */
|
|
203
|
+
delete(input: DeleteArtifactInput): Promise<boolean>
|
|
204
|
+
/**
|
|
205
|
+
* Deletes the versions a run published and returns how many. An artifact left without versions
|
|
206
|
+
* is deleted; one that lost its latest version points at its newest remaining one.
|
|
207
|
+
*/
|
|
208
|
+
deleteVersionsByOrigin(input: DeleteArtifactVersionsByOriginInput): Promise<number>
|
|
209
|
+
}
|
|
@@ -222,7 +222,6 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
validateCompleteSessionInput(this.state, projectId, input.session)
|
|
225
|
-
assertSignInSessionAudience(projectId, input.session.audience, magicLink.audience)
|
|
226
225
|
|
|
227
226
|
let newUserId: string | undefined
|
|
228
227
|
if (shouldCreateUser) {
|
|
@@ -353,7 +352,6 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
353
352
|
}
|
|
354
353
|
|
|
355
354
|
validateCompleteSessionInput(this.state, projectId, input.session)
|
|
356
|
-
assertSignInSessionAudience(projectId, input.session.audience, attempt.audience)
|
|
357
355
|
|
|
358
356
|
let newUserId: string | undefined
|
|
359
357
|
if (shouldCreateUser) {
|
|
@@ -555,7 +553,6 @@ export class InMemoryAuthStorage implements AuthStorage {
|
|
|
555
553
|
projectId: input.projectId,
|
|
556
554
|
userId: input.userId,
|
|
557
555
|
strategyId: input.strategyId,
|
|
558
|
-
audience: input.session.audience,
|
|
559
556
|
tokenHash: input.session.tokenHash,
|
|
560
557
|
createdAt: input.session.createdAt,
|
|
561
558
|
expiresAt: input.session.expiresAt,
|
|
@@ -587,18 +584,3 @@ function restoreMap<TKey, TValue>(target: Map<TKey, TValue>, snapshot: Map<TKey,
|
|
|
587
584
|
target.set(key, value)
|
|
588
585
|
}
|
|
589
586
|
}
|
|
590
|
-
|
|
591
|
-
function assertSignInSessionAudience(
|
|
592
|
-
projectId: string,
|
|
593
|
-
sessionAudience: string,
|
|
594
|
-
storedAudience: string
|
|
595
|
-
): void {
|
|
596
|
-
if (sessionAudience === storedAudience) {
|
|
597
|
-
return
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
throw new AuthStorageError(
|
|
601
|
-
"invalid_input",
|
|
602
|
-
`[Sixb] Sign-in session audience '${sessionAudience}' does not match stored auth audience '${storedAudience}' for project '${projectId}'.`
|
|
603
|
-
)
|
|
604
|
-
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { resolveAuthSessionAudience } from "../../../auth/audience"
|
|
2
1
|
import { AuthStorageError } from "../errors"
|
|
3
2
|
import type { AuthMagicLinkStore, CreateAuthMagicLinkInput, MagicLinkRecord } from "../types"
|
|
4
3
|
import type { AuthStorageState } from "./shared"
|
|
@@ -22,7 +21,6 @@ export class InMemoryAuthMagicLinkStore implements AuthMagicLinkStore {
|
|
|
22
21
|
const id = assertNonEmpty(input.id, "Magic link id")
|
|
23
22
|
const projectId = assertNonEmpty(input.projectId, "Project id")
|
|
24
23
|
const strategyId = assertNonEmpty(input.strategyId, "Strategy id")
|
|
25
|
-
const audience = resolveAuthSessionAudience(input.audience)
|
|
26
24
|
const email = normalizeEmail(input.email)
|
|
27
25
|
const tokenHash = assertNonEmpty(input.tokenHash, "Magic link token hash")
|
|
28
26
|
const key = magicLinkKey(projectId, id)
|
|
@@ -40,7 +38,6 @@ export class InMemoryAuthMagicLinkStore implements AuthMagicLinkStore {
|
|
|
40
38
|
id,
|
|
41
39
|
projectId,
|
|
42
40
|
strategyId,
|
|
43
|
-
audience,
|
|
44
41
|
email,
|
|
45
42
|
tokenHash,
|
|
46
43
|
returnTo: input.returnTo,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { resolveAuthSessionAudience } from "../../../auth/audience"
|
|
2
1
|
import { AuthStorageError } from "../errors"
|
|
3
2
|
import type {
|
|
4
3
|
AuthOidcAuthorizationAttemptStore,
|
|
@@ -26,7 +25,6 @@ export class InMemoryAuthOidcAuthorizationAttemptStore
|
|
|
26
25
|
const id = assertNonEmpty(input.id, "OIDC authorization attempt id")
|
|
27
26
|
const projectId = assertNonEmpty(input.projectId, "Project id")
|
|
28
27
|
const strategyId = assertNonEmpty(input.strategyId, "Strategy id")
|
|
29
|
-
const audience = resolveAuthSessionAudience(input.audience)
|
|
30
28
|
const stateHash = assertNonEmpty(input.stateHash, "OIDC state hash")
|
|
31
29
|
const nonceHash = assertNonEmpty(input.nonceHash, "OIDC nonce hash")
|
|
32
30
|
const codeVerifier = assertNonEmpty(input.codeVerifier, "OIDC code verifier")
|
|
@@ -43,7 +41,6 @@ export class InMemoryAuthOidcAuthorizationAttemptStore
|
|
|
43
41
|
id,
|
|
44
42
|
projectId,
|
|
45
43
|
strategyId,
|
|
46
|
-
audience,
|
|
47
44
|
stateHash,
|
|
48
45
|
nonceHash,
|
|
49
46
|
codeVerifier,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { AuthSessionAudience } from "../../../auth/audience"
|
|
2
1
|
import { AuthStorageError } from "../errors"
|
|
3
2
|
import type {
|
|
4
3
|
AuthSessionStore,
|
|
5
4
|
CreateAuthSessionInput,
|
|
5
|
+
ListAuthSessionsInput,
|
|
6
|
+
ListAuthSessionsResult,
|
|
6
7
|
RotateSessionRefreshTokenResult,
|
|
7
8
|
SessionRecord,
|
|
8
9
|
} from "../types"
|
|
@@ -11,7 +12,6 @@ import {
|
|
|
11
12
|
cloneDate,
|
|
12
13
|
cloneOptionalRecord,
|
|
13
14
|
cloneRecord,
|
|
14
|
-
compareByCreatedAt,
|
|
15
15
|
createSessionRecord,
|
|
16
16
|
isActiveSession,
|
|
17
17
|
revokeActiveSessionsForUser,
|
|
@@ -33,22 +33,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
33
33
|
return cloneOptionalRecord(record)
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
async getActiveByUserId(params: {
|
|
37
|
-
readonly projectId: string
|
|
38
|
-
readonly userId: string
|
|
39
|
-
readonly audience: AuthSessionAudience
|
|
40
|
-
readonly now: Date
|
|
41
|
-
}): Promise<SessionRecord | null> {
|
|
42
|
-
const sessions = [...this.state.sessions.values()]
|
|
43
|
-
.filter((session) => session.projectId === params.projectId)
|
|
44
|
-
.filter((session) => session.userId === params.userId)
|
|
45
|
-
.filter((session) => session.audience === params.audience)
|
|
46
|
-
.filter((session) => isActiveSession(session, params.now))
|
|
47
|
-
.sort((a, b) => compareByCreatedAt(a, b, "desc"))
|
|
48
|
-
|
|
49
|
-
return cloneOptionalRecord(sessions[0] ?? null)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
36
|
async listActiveByUserId(params: {
|
|
53
37
|
readonly projectId: string
|
|
54
38
|
readonly userId: string
|
|
@@ -68,10 +52,28 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
68
52
|
.map(cloneRecord)
|
|
69
53
|
}
|
|
70
54
|
|
|
55
|
+
async listByUserId(params: ListAuthSessionsInput): Promise<ListAuthSessionsResult> {
|
|
56
|
+
const before = params.before
|
|
57
|
+
const offset = before?.skip ?? 0
|
|
58
|
+
const sessions = [...this.state.sessions.values()]
|
|
59
|
+
.filter((session) => session.projectId === params.projectId)
|
|
60
|
+
.filter((session) => session.userId === params.userId)
|
|
61
|
+
.filter((session) => !before || session.createdAt <= before.createdAt)
|
|
62
|
+
.sort((a, b) => {
|
|
63
|
+
const created = b.createdAt.getTime() - a.createdAt.getTime()
|
|
64
|
+
if (created !== 0) return created
|
|
65
|
+
return a.id < b.id ? 1 : a.id > b.id ? -1 : 0
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
sessions: sessions.slice(offset, offset + params.limit).map(cloneRecord),
|
|
70
|
+
hasMore: sessions.length > offset + params.limit,
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
71
74
|
async findValidByTokenHash(params: {
|
|
72
75
|
readonly projectId: string
|
|
73
76
|
readonly id: string
|
|
74
|
-
readonly audience: AuthSessionAudience
|
|
75
77
|
readonly tokenHash: string
|
|
76
78
|
readonly now: Date
|
|
77
79
|
}): Promise<SessionRecord | null> {
|
|
@@ -79,7 +81,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
79
81
|
if (
|
|
80
82
|
!session ||
|
|
81
83
|
session.bearer ||
|
|
82
|
-
session.audience !== params.audience ||
|
|
83
84
|
session.tokenHash !== params.tokenHash ||
|
|
84
85
|
!isActiveSession(session, params.now)
|
|
85
86
|
) {
|
|
@@ -153,7 +154,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
153
154
|
async renewIfValid(params: {
|
|
154
155
|
readonly projectId: string
|
|
155
156
|
readonly id: string
|
|
156
|
-
readonly audience: AuthSessionAudience
|
|
157
157
|
readonly tokenHash: string
|
|
158
158
|
readonly now: Date
|
|
159
159
|
readonly expiresAt: Date
|
|
@@ -163,7 +163,6 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
163
163
|
if (
|
|
164
164
|
!session ||
|
|
165
165
|
session.bearer ||
|
|
166
|
-
session.audience !== params.audience ||
|
|
167
166
|
session.tokenHash !== params.tokenHash ||
|
|
168
167
|
!isActiveSession(session, params.now)
|
|
169
168
|
) {
|
|
@@ -208,15 +207,13 @@ export class InMemoryAuthSessionStore implements AuthSessionStore {
|
|
|
208
207
|
async revokeActiveForUser(params: {
|
|
209
208
|
readonly projectId: string
|
|
210
209
|
readonly userId: string
|
|
211
|
-
readonly audience?: AuthSessionAudience
|
|
212
210
|
readonly revokedAt: Date
|
|
213
211
|
}): Promise<readonly SessionRecord[]> {
|
|
214
212
|
return revokeActiveSessionsForUser(
|
|
215
213
|
this.state,
|
|
216
214
|
params.projectId,
|
|
217
215
|
params.userId,
|
|
218
|
-
params.revokedAt
|
|
219
|
-
params.audience
|
|
216
|
+
params.revokedAt
|
|
220
217
|
).map(cloneRecord)
|
|
221
218
|
}
|
|
222
219
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type AuthSessionAudience, resolveAuthSessionAudience } from "../../../auth/audience"
|
|
2
1
|
import { AuthStorageError } from "../errors"
|
|
3
2
|
import type {
|
|
4
3
|
AccessTokenRecord,
|
|
@@ -213,8 +212,7 @@ export function revokeActiveSessionsForUser(
|
|
|
213
212
|
state: AuthStorageState,
|
|
214
213
|
projectId: string,
|
|
215
214
|
userId: string,
|
|
216
|
-
revokedAt: Date
|
|
217
|
-
audience?: AuthSessionAudience
|
|
215
|
+
revokedAt: Date
|
|
218
216
|
): readonly SessionRecord[] {
|
|
219
217
|
const revoked: SessionRecord[] = []
|
|
220
218
|
|
|
@@ -223,10 +221,6 @@ export function revokeActiveSessionsForUser(
|
|
|
223
221
|
continue
|
|
224
222
|
}
|
|
225
223
|
|
|
226
|
-
if (audience !== undefined && session.audience !== audience) {
|
|
227
|
-
continue
|
|
228
|
-
}
|
|
229
|
-
|
|
230
224
|
if (!isActiveSession(session, revokedAt)) {
|
|
231
225
|
continue
|
|
232
226
|
}
|
|
@@ -290,7 +284,6 @@ export function validateCompleteSessionInput(
|
|
|
290
284
|
session: CompleteAuthSessionInput
|
|
291
285
|
): void {
|
|
292
286
|
const sessionId = assertNonEmpty(session.id, "Session id")
|
|
293
|
-
assertNonEmpty(session.audience, "Session audience")
|
|
294
287
|
assertNonEmpty(session.tokenHash, "Session token hash")
|
|
295
288
|
assertSessionIdAvailable(state, projectId, sessionId)
|
|
296
289
|
}
|
|
@@ -303,7 +296,6 @@ export function createSessionRecord(
|
|
|
303
296
|
const projectId = assertNonEmpty(input.projectId, "Project id")
|
|
304
297
|
const userId = assertNonEmpty(input.userId, "User id")
|
|
305
298
|
const strategyId = assertNonEmpty(input.strategyId, "Strategy id")
|
|
306
|
-
const audience = resolveAuthSessionAudience(input.audience)
|
|
307
299
|
const tokenHash = assertNonEmpty(input.tokenHash, "Session token hash")
|
|
308
300
|
|
|
309
301
|
assertSessionIdAvailable(state, projectId, id)
|
|
@@ -313,7 +305,6 @@ export function createSessionRecord(
|
|
|
313
305
|
projectId,
|
|
314
306
|
userId,
|
|
315
307
|
strategyId,
|
|
316
|
-
audience,
|
|
317
308
|
tokenHash,
|
|
318
309
|
createdAt: cloneDate(input.createdAt),
|
|
319
310
|
expiresAt: cloneDate(input.expiresAt),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AccessTokenKind,
|
|
1
|
+
import type { AccessTokenKind, Principal } from "../../auth"
|
|
2
2
|
import type { AuthorizablePrincipal } from "../../execution/types"
|
|
3
3
|
|
|
4
4
|
export type UserStatus = "active" | "suspended"
|
|
@@ -57,7 +57,6 @@ export interface SessionRecord {
|
|
|
57
57
|
readonly userId: string
|
|
58
58
|
readonly strategyId: string
|
|
59
59
|
/** The web app a browser session belongs to. A bearer session belongs to none and ignores it. */
|
|
60
|
-
readonly audience: AuthSessionAudience
|
|
61
60
|
readonly tokenHash: string
|
|
62
61
|
readonly createdAt: Date
|
|
63
62
|
readonly expiresAt: Date
|
|
@@ -142,7 +141,6 @@ export interface MagicLinkRecord {
|
|
|
142
141
|
readonly id: string
|
|
143
142
|
readonly projectId: string
|
|
144
143
|
readonly strategyId: string
|
|
145
|
-
readonly audience: AuthSessionAudience
|
|
146
144
|
readonly email: string
|
|
147
145
|
readonly tokenHash: string
|
|
148
146
|
readonly returnTo?: string
|
|
@@ -156,7 +154,6 @@ export interface OidcAuthorizationAttemptRecord {
|
|
|
156
154
|
readonly id: string
|
|
157
155
|
readonly projectId: string
|
|
158
156
|
readonly strategyId: string
|
|
159
|
-
readonly audience: AuthSessionAudience
|
|
160
157
|
readonly stateHash: string
|
|
161
158
|
readonly nonceHash: string
|
|
162
159
|
readonly codeVerifier: string
|
|
@@ -288,7 +285,6 @@ export interface CreateAuthSessionInput {
|
|
|
288
285
|
readonly projectId: string
|
|
289
286
|
readonly userId: string
|
|
290
287
|
readonly strategyId: string
|
|
291
|
-
readonly audience: AuthSessionAudience
|
|
292
288
|
readonly tokenHash: string
|
|
293
289
|
readonly createdAt: Date
|
|
294
290
|
readonly expiresAt: Date
|
|
@@ -328,9 +324,24 @@ export interface ListAuthAccessTokensResult {
|
|
|
328
324
|
readonly total: number
|
|
329
325
|
}
|
|
330
326
|
|
|
327
|
+
export interface ListAuthSessionsInput {
|
|
328
|
+
readonly projectId: string
|
|
329
|
+
readonly userId: string
|
|
330
|
+
readonly limit: number
|
|
331
|
+
/**
|
|
332
|
+
* Continue a list: sessions created at or before `createdAt`, past the first `skip` of those
|
|
333
|
+
* created exactly then, which the previous pages returned.
|
|
334
|
+
*/
|
|
335
|
+
readonly before?: { readonly createdAt: Date; readonly skip: number }
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
export interface ListAuthSessionsResult {
|
|
339
|
+
readonly sessions: readonly SessionRecord[]
|
|
340
|
+
readonly hasMore: boolean
|
|
341
|
+
}
|
|
342
|
+
|
|
331
343
|
export interface CompleteAuthSessionInput {
|
|
332
344
|
readonly id: string
|
|
333
|
-
readonly audience: AuthSessionAudience
|
|
334
345
|
readonly tokenHash: string
|
|
335
346
|
readonly createdAt: Date
|
|
336
347
|
readonly expiresAt: Date
|
|
@@ -379,7 +390,6 @@ export interface CreateAuthMagicLinkInput {
|
|
|
379
390
|
readonly id: string
|
|
380
391
|
readonly projectId: string
|
|
381
392
|
readonly strategyId: string
|
|
382
|
-
readonly audience: AuthSessionAudience
|
|
383
393
|
readonly email: string
|
|
384
394
|
readonly tokenHash: string
|
|
385
395
|
readonly returnTo?: string
|
|
@@ -391,7 +401,6 @@ export interface CreateOidcAuthorizationAttemptInput {
|
|
|
391
401
|
readonly id: string
|
|
392
402
|
readonly projectId: string
|
|
393
403
|
readonly strategyId: string
|
|
394
|
-
readonly audience: AuthSessionAudience
|
|
395
404
|
readonly stateHash: string
|
|
396
405
|
readonly nonceHash: string
|
|
397
406
|
readonly codeVerifier: string
|
|
@@ -536,24 +545,19 @@ export interface AuthSessionStore {
|
|
|
536
545
|
readonly projectId: string
|
|
537
546
|
readonly id: string
|
|
538
547
|
}): Promise<SessionRecord | null>
|
|
539
|
-
|
|
540
|
-
readonly projectId: string
|
|
541
|
-
readonly userId: string
|
|
542
|
-
readonly audience: AuthSessionAudience
|
|
543
|
-
readonly now: Date
|
|
544
|
-
}): Promise<SessionRecord | null>
|
|
545
|
-
// All active sessions for a user across every audience, most-recently-active
|
|
548
|
+
// All active sessions for a user, most-recently-active
|
|
546
549
|
// first. Backs the active-sessions view.
|
|
547
550
|
listActiveByUserId(params: {
|
|
548
551
|
readonly projectId: string
|
|
549
552
|
readonly userId: string
|
|
550
553
|
readonly now: Date
|
|
551
554
|
}): Promise<readonly SessionRecord[]>
|
|
555
|
+
/** Every session of a user, revoked and expired ones too, newest first: a sign-in history. */
|
|
556
|
+
listByUserId(params: ListAuthSessionsInput): Promise<ListAuthSessionsResult>
|
|
552
557
|
/** A live browser (cookie) session whose secret hashes to `tokenHash`. */
|
|
553
558
|
findValidByTokenHash(params: {
|
|
554
559
|
readonly projectId: string
|
|
555
560
|
readonly id: string
|
|
556
|
-
readonly audience: AuthSessionAudience
|
|
557
561
|
readonly tokenHash: string
|
|
558
562
|
readonly now: Date
|
|
559
563
|
}): Promise<SessionRecord | null>
|
|
@@ -585,7 +589,6 @@ export interface AuthSessionStore {
|
|
|
585
589
|
renewIfValid(params: {
|
|
586
590
|
readonly projectId: string
|
|
587
591
|
readonly id: string
|
|
588
|
-
readonly audience: AuthSessionAudience
|
|
589
592
|
readonly tokenHash: string
|
|
590
593
|
readonly now: Date
|
|
591
594
|
readonly expiresAt: Date
|
|
@@ -598,7 +601,6 @@ export interface AuthSessionStore {
|
|
|
598
601
|
revokeActiveForUser(params: {
|
|
599
602
|
readonly projectId: string
|
|
600
603
|
readonly userId: string
|
|
601
|
-
readonly audience?: AuthSessionAudience
|
|
602
604
|
readonly revokedAt: Date
|
|
603
605
|
}): Promise<readonly SessionRecord[]>
|
|
604
606
|
touch(params: {
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import type { AuthStorage } from "../auth"
|
|
2
2
|
import type { ShareSessionStorage } from "../share-sessions"
|
|
3
3
|
import { ExecutionStorageError } from "./errors"
|
|
4
|
-
import
|
|
4
|
+
import { compareExecutionCreation } from "./provider"
|
|
5
|
+
import type {
|
|
6
|
+
CreateExecutionInput,
|
|
7
|
+
ExecutionRecord,
|
|
8
|
+
ExecutionStorage,
|
|
9
|
+
ListSessionExecutionsInput,
|
|
10
|
+
SessionExecutions,
|
|
11
|
+
} from "./types"
|
|
5
12
|
import { cloneExecutionRecord, prepareExecutionRecord } from "./validation"
|
|
6
13
|
|
|
7
14
|
type RunRootOperation = <T>(run: () => Promise<T> | T) => Promise<T>
|
|
@@ -73,6 +80,59 @@ export class InMemoryExecutionStorage implements ExecutionStorage {
|
|
|
73
80
|
return record ? cloneExecutionRecord(record) : null
|
|
74
81
|
})
|
|
75
82
|
}
|
|
83
|
+
|
|
84
|
+
async listBySession(input: ListSessionExecutionsInput): Promise<SessionExecutions> {
|
|
85
|
+
return this.runRootOperation(() => {
|
|
86
|
+
const rows = [...this.rows.values()].filter((row) => row.projectId === input.projectId)
|
|
87
|
+
|
|
88
|
+
const roots = rows
|
|
89
|
+
.filter(
|
|
90
|
+
(row) =>
|
|
91
|
+
row.source.type !== "execution" &&
|
|
92
|
+
row.createdAt >= input.from &&
|
|
93
|
+
row.createdAt < input.to &&
|
|
94
|
+
isFromSession(row, input.session)
|
|
95
|
+
)
|
|
96
|
+
.sort(compareExecutionCreation)
|
|
97
|
+
.slice(0, input.limit + 1)
|
|
98
|
+
|
|
99
|
+
// Level by level, as the SQL providers walk the tree, so truncation keeps roots first.
|
|
100
|
+
const found = [...roots]
|
|
101
|
+
let level = roots
|
|
102
|
+
while (level.length > 0 && found.length <= input.limit) {
|
|
103
|
+
const parents = new Set(level.map((row) => row.id))
|
|
104
|
+
level = rows
|
|
105
|
+
.filter((row) => row.source.type === "execution" && parents.has(row.source.executionId))
|
|
106
|
+
.sort(compareExecutionCreation)
|
|
107
|
+
found.push(...level)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return {
|
|
111
|
+
executions: found
|
|
112
|
+
.slice(0, input.limit)
|
|
113
|
+
.sort(compareExecutionCreation)
|
|
114
|
+
.map(cloneExecutionRecord),
|
|
115
|
+
truncated: found.length > input.limit,
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function isFromSession(
|
|
122
|
+
row: ExecutionRecord,
|
|
123
|
+
session: ListSessionExecutionsInput["session"]
|
|
124
|
+
): boolean {
|
|
125
|
+
const ref = row.authorizationRef
|
|
126
|
+
|
|
127
|
+
if (session.type === "user") {
|
|
128
|
+
return (
|
|
129
|
+
ref.type === "principal" &&
|
|
130
|
+
ref.credential?.type === "session" &&
|
|
131
|
+
ref.credential.id === session.id
|
|
132
|
+
)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return ref.type === "delegated" && ref.delegation.sessionId === session.id
|
|
76
136
|
}
|
|
77
137
|
|
|
78
138
|
export type InMemoryExecutionStorageSnapshot = Map<string, ExecutionRecord>
|
|
@@ -11,6 +11,18 @@ export {
|
|
|
11
11
|
validateExecutionRecordReferences,
|
|
12
12
|
} from "./validation"
|
|
13
13
|
|
|
14
|
+
/** Oldest first, then by id compared byte by byte: the order `listBySession` returns. */
|
|
15
|
+
export function compareExecutionCreation(
|
|
16
|
+
left: Pick<ExecutionRecord, "createdAt" | "id">,
|
|
17
|
+
right: Pick<ExecutionRecord, "createdAt" | "id">
|
|
18
|
+
): number {
|
|
19
|
+
const byTime = left.createdAt.getTime() - right.createdAt.getTime()
|
|
20
|
+
if (byTime !== 0) {
|
|
21
|
+
return byTime
|
|
22
|
+
}
|
|
23
|
+
return left.id < right.id ? -1 : left.id > right.id ? 1 : 0
|
|
24
|
+
}
|
|
25
|
+
|
|
14
26
|
/** Provider-neutral flattened representation used by the SQL adapters. */
|
|
15
27
|
export interface ExecutionStorageRow {
|
|
16
28
|
readonly projectId: string
|