@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.
Files changed (765) hide show
  1. package/dist/actions/execution.d.ts.map +1 -1
  2. package/dist/actions/index.js +54 -47
  3. package/dist/actions/index.js.map +1 -1
  4. package/dist/actions/request.d.ts.map +1 -1
  5. package/dist/actions/run-authorization.d.ts +9 -0
  6. package/dist/actions/run-authorization.d.ts.map +1 -1
  7. package/dist/activity/connection.d.ts +62 -0
  8. package/dist/activity/connection.d.ts.map +1 -0
  9. package/dist/activity/device.d.ts +8 -0
  10. package/dist/activity/device.d.ts.map +1 -0
  11. package/dist/activity/execution.d.ts +48 -0
  12. package/dist/activity/execution.d.ts.map +1 -0
  13. package/dist/activity/service.d.ts +79 -0
  14. package/dist/activity/service.d.ts.map +1 -0
  15. package/dist/activity/shares.d.ts +24 -0
  16. package/dist/activity/shares.d.ts.map +1 -0
  17. package/dist/activity/timeline.d.ts +96 -0
  18. package/dist/activity/timeline.d.ts.map +1 -0
  19. package/dist/agents/index.d.ts +2 -1
  20. package/dist/agents/index.d.ts.map +1 -1
  21. package/dist/agents/index.js +63 -50
  22. package/dist/agents/index.js.map +1 -1
  23. package/dist/agents/request.d.ts.map +1 -1
  24. package/dist/agents/skills.d.ts.map +1 -1
  25. package/dist/agents/streams/index.js +3 -3
  26. package/dist/agents/streams/internal.js +3 -3
  27. package/dist/agents/types.d.ts +8 -8
  28. package/dist/agents/types.d.ts.map +1 -1
  29. package/dist/agents/validation.d.ts +1 -1
  30. package/dist/agents/validation.d.ts.map +1 -1
  31. package/dist/artifacts/address.d.ts +48 -0
  32. package/dist/artifacts/address.d.ts.map +1 -0
  33. package/dist/artifacts/csv.d.ts +22 -0
  34. package/dist/artifacts/csv.d.ts.map +1 -0
  35. package/dist/artifacts/errors.d.ts +11 -0
  36. package/dist/artifacts/errors.d.ts.map +1 -0
  37. package/dist/artifacts/execution.d.ts +43 -0
  38. package/dist/artifacts/execution.d.ts.map +1 -0
  39. package/dist/artifacts/frames/assets.d.ts +28 -0
  40. package/dist/artifacts/frames/assets.d.ts.map +1 -0
  41. package/dist/artifacts/frames/grants.d.ts +37 -0
  42. package/dist/artifacts/frames/grants.d.ts.map +1 -0
  43. package/dist/artifacts/frames/index.d.ts +10 -0
  44. package/dist/artifacts/frames/index.d.ts.map +1 -0
  45. package/dist/artifacts/frames/index.js +892 -0
  46. package/dist/artifacts/frames/index.js.map +14 -0
  47. package/dist/artifacts/frames/kit.d.ts +66 -0
  48. package/dist/artifacts/frames/kit.d.ts.map +1 -0
  49. package/dist/artifacts/frames/probe.d.ts +41 -0
  50. package/dist/artifacts/frames/probe.d.ts.map +1 -0
  51. package/dist/artifacts/frames/protocol.d.ts +98 -0
  52. package/dist/artifacts/frames/protocol.d.ts.map +1 -0
  53. package/dist/artifacts/frames/runtime.d.ts +13 -0
  54. package/dist/artifacts/frames/runtime.d.ts.map +1 -0
  55. package/dist/artifacts/html.d.ts +6 -0
  56. package/dist/artifacts/html.d.ts.map +1 -0
  57. package/dist/artifacts/ids.d.ts +5 -0
  58. package/dist/artifacts/ids.d.ts.map +1 -0
  59. package/dist/artifacts/index.d.ts +16 -0
  60. package/dist/artifacts/index.d.ts.map +1 -0
  61. package/dist/artifacts/index.js +125 -0
  62. package/dist/artifacts/index.js.map +10 -0
  63. package/dist/artifacts/kinds.d.ts +5 -0
  64. package/dist/artifacts/kinds.d.ts.map +1 -0
  65. package/dist/artifacts/limits.d.ts +28 -0
  66. package/dist/artifacts/limits.d.ts.map +1 -0
  67. package/dist/artifacts/outline.d.ts +44 -0
  68. package/dist/artifacts/outline.d.ts.map +1 -0
  69. package/dist/artifacts/publish/files.d.ts +15 -0
  70. package/dist/artifacts/publish/files.d.ts.map +1 -0
  71. package/dist/artifacts/publish/index.d.ts +5 -0
  72. package/dist/artifacts/publish/index.d.ts.map +1 -0
  73. package/dist/artifacts/publish/index.js +36 -0
  74. package/dist/artifacts/publish/index.js.map +9 -0
  75. package/dist/artifacts/publish/publish.d.ts +52 -0
  76. package/dist/artifacts/publish/publish.d.ts.map +1 -0
  77. package/dist/artifacts/publish/references.d.ts +27 -0
  78. package/dist/artifacts/publish/references.d.ts.map +1 -0
  79. package/dist/artifacts/publish/validate/document.d.ts +17 -0
  80. package/dist/artifacts/publish/validate/document.d.ts.map +1 -0
  81. package/dist/artifacts/publish/validate/file.d.ts +8 -0
  82. package/dist/artifacts/publish/validate/file.d.ts.map +1 -0
  83. package/dist/artifacts/publish/validate/sheet.d.ts +15 -0
  84. package/dist/artifacts/publish/validate/sheet.d.ts.map +1 -0
  85. package/dist/artifacts/publish/validate/slides.d.ts +21 -0
  86. package/dist/artifacts/publish/validate/slides.d.ts.map +1 -0
  87. package/dist/artifacts/references.d.ts +12 -0
  88. package/dist/artifacts/references.d.ts.map +1 -0
  89. package/dist/artifacts/resolve.d.ts +41 -0
  90. package/dist/artifacts/resolve.d.ts.map +1 -0
  91. package/dist/artifacts/theme.d.ts +19 -0
  92. package/dist/artifacts/theme.d.ts.map +1 -0
  93. package/dist/artifacts/warnings.d.ts +11 -0
  94. package/dist/artifacts/warnings.d.ts.map +1 -0
  95. package/dist/artifacts/workbook.d.ts +64 -0
  96. package/dist/artifacts/workbook.d.ts.map +1 -0
  97. package/dist/auth/cookies.d.ts +2 -4
  98. package/dist/auth/cookies.d.ts.map +1 -1
  99. package/dist/auth/index.d.ts +0 -2
  100. package/dist/auth/index.d.ts.map +1 -1
  101. package/dist/auth/index.js +14 -20
  102. package/dist/auth/index.js.map +1 -1
  103. package/dist/auth/runtime.d.ts +8 -10
  104. package/dist/auth/runtime.d.ts.map +1 -1
  105. package/dist/auth/session-cache.d.ts +1 -5
  106. package/dist/auth/session-cache.d.ts.map +1 -1
  107. package/dist/auth/strategy.js +1 -1
  108. package/dist/auth/types.d.ts +4 -8
  109. package/dist/auth/types.d.ts.map +1 -1
  110. package/dist/auth/validation.d.ts +0 -1
  111. package/dist/auth/validation.d.ts.map +1 -1
  112. package/dist/authorization/decision.d.ts +2 -4
  113. package/dist/authorization/decision.d.ts.map +1 -1
  114. package/dist/authorization/grant-kinds.d.ts +6 -8
  115. package/dist/authorization/grant-kinds.d.ts.map +1 -1
  116. package/dist/authorization/index.d.ts +0 -1
  117. package/dist/authorization/index.d.ts.map +1 -1
  118. package/dist/authorization/index.js +7 -11
  119. package/dist/authorization/index.js.map +1 -1
  120. package/dist/authorization/resolve.d.ts +1 -1
  121. package/dist/authorization/resolve.d.ts.map +1 -1
  122. package/dist/blob-storage/browser.js +1 -1
  123. package/dist/blob-storage/index.js +2 -2
  124. package/dist/blob-storage/internal.d.ts +1 -1
  125. package/dist/blob-storage/internal.d.ts.map +1 -1
  126. package/dist/blob-storage/internal.js +11 -5
  127. package/dist/blob-storage/internal.js.map +1 -1
  128. package/dist/blob-storage/media-type.d.ts +12 -0
  129. package/dist/blob-storage/media-type.d.ts.map +1 -1
  130. package/dist/bootstrap/index.js +54 -48
  131. package/dist/bootstrap/index.js.map +2 -2
  132. package/dist/{chunk-t6vq7bff.js → chunk-0bphap9y.js} +5 -5
  133. package/dist/{chunk-7mbzgd9m.js → chunk-1cc1xaf3.js} +3 -3
  134. package/dist/chunk-3jms7je7.js +14 -0
  135. package/dist/chunk-3jms7je7.js.map +10 -0
  136. package/dist/{chunk-s54c868q.js → chunk-3qct2mdc.js} +3 -13
  137. package/dist/chunk-3qct2mdc.js.map +12 -0
  138. package/dist/{chunk-6gmfggss.js → chunk-431pyp2c.js} +3 -3
  139. package/dist/{chunk-c85m1hyj.js → chunk-447a5c0p.js} +2 -2
  140. package/dist/chunk-48qjhh6v.js +185 -0
  141. package/dist/chunk-48qjhh6v.js.map +13 -0
  142. package/dist/{chunk-80mc0971.js → chunk-561r0yc9.js} +8 -8
  143. package/dist/{chunk-5e43w60z.js → chunk-5948n82c.js} +2 -2
  144. package/dist/{chunk-yzwja0mj.js → chunk-5hx48dnn.js} +2 -2
  145. package/dist/{chunk-tjb1mk5t.js → chunk-5vems3nx.js} +5 -6
  146. package/dist/{chunk-tjb1mk5t.js.map → chunk-5vems3nx.js.map} +3 -3
  147. package/dist/{chunk-aff7cyea.js → chunk-61y5xs4p.js} +563 -167
  148. package/dist/{chunk-aff7cyea.js.map → chunk-61y5xs4p.js.map} +12 -9
  149. package/dist/chunk-65abf64x.js +13 -0
  150. package/dist/chunk-65abf64x.js.map +10 -0
  151. package/dist/{chunk-z3y5kg1x.js → chunk-6eqsgvxk.js} +3 -3
  152. package/dist/{chunk-z3y5kg1x.js.map → chunk-6eqsgvxk.js.map} +2 -2
  153. package/dist/chunk-6rqgmkde.js +2028 -0
  154. package/dist/chunk-6rqgmkde.js.map +29 -0
  155. package/dist/{chunk-y7rqfrgg.js → chunk-6vb4st8k.js} +29 -38
  156. package/dist/chunk-6vb4st8k.js.map +23 -0
  157. package/dist/chunk-7q8t23v4.js +467 -0
  158. package/dist/chunk-7q8t23v4.js.map +14 -0
  159. package/dist/{chunk-kyzq4wy9.js → chunk-858emn8m.js} +17 -17
  160. package/dist/chunk-858emn8m.js.map +18 -0
  161. package/dist/{chunk-hvsb78a1.js → chunk-8frc8a4j.js} +26 -26
  162. package/dist/{chunk-hvsb78a1.js.map → chunk-8frc8a4j.js.map} +2 -2
  163. package/dist/{chunk-3zxk45er.js → chunk-8ncg20rd.js} +3 -68
  164. package/dist/{chunk-3zxk45er.js.map → chunk-8ncg20rd.js.map} +4 -5
  165. package/dist/{chunk-j2bp5ryw.js → chunk-918wwnaa.js} +495 -28
  166. package/dist/{chunk-j2bp5ryw.js.map → chunk-918wwnaa.js.map} +14 -12
  167. package/dist/{chunk-1f7wpmyp.js → chunk-9j4jw7as.js} +103 -110
  168. package/dist/chunk-9j4jw7as.js.map +14 -0
  169. package/dist/chunk-9kgkfg6v.js +502 -0
  170. package/dist/chunk-9kgkfg6v.js.map +14 -0
  171. package/dist/chunk-a3faa34j.js +74 -0
  172. package/dist/chunk-a3faa34j.js.map +10 -0
  173. package/dist/{chunk-ey3pyej1.js → chunk-akzryx9h.js} +347 -1174
  174. package/dist/{chunk-ey3pyej1.js.map → chunk-akzryx9h.js.map} +19 -25
  175. package/dist/chunk-arns890k.js +10 -0
  176. package/dist/chunk-arns890k.js.map +10 -0
  177. package/dist/{chunk-zrmy8zvw.js → chunk-bk9svbcq.js} +11 -11
  178. package/dist/{chunk-zrmy8zvw.js.map → chunk-bk9svbcq.js.map} +2 -2
  179. package/dist/{chunk-hkc3jct7.js → chunk-c06hmxyy.js} +2 -10
  180. package/dist/chunk-c06hmxyy.js.map +10 -0
  181. package/dist/{chunk-q1vkr2ys.js → chunk-c1rxbz5y.js} +3 -3
  182. package/dist/chunk-cfj9dfbb.js +288 -0
  183. package/dist/chunk-cfj9dfbb.js.map +12 -0
  184. package/dist/{chunk-4tcx876c.js → chunk-cn0fwwhy.js} +19 -19
  185. package/dist/{chunk-4tcx876c.js.map → chunk-cn0fwwhy.js.map} +1 -1
  186. package/dist/{chunk-gc4ntf7d.js → chunk-cwdzcv37.js} +1 -1
  187. package/dist/{chunk-fa02jy15.js → chunk-cy4mbddw.js} +1 -1
  188. package/dist/{chunk-7kg3k1m9.js → chunk-d09e3rax.js} +1 -1
  189. package/dist/chunk-d5rjr8c0.js +176 -0
  190. package/dist/chunk-d5rjr8c0.js.map +12 -0
  191. package/dist/{chunk-rhg02hxq.js → chunk-d7dnxdep.js} +3 -3
  192. package/dist/{chunk-b38szspf.js → chunk-dhcv7yxc.js} +1 -1
  193. package/dist/{chunk-b38szspf.js.map → chunk-dhcv7yxc.js.map} +1 -1
  194. package/dist/{chunk-enpsx8k5.js → chunk-dhdha526.js} +23 -21
  195. package/dist/chunk-dhdha526.js.map +10 -0
  196. package/dist/{chunk-8mx7qw3y.js → chunk-dvd2fp9q.js} +2 -2
  197. package/dist/{chunk-8mx7qw3y.js.map → chunk-dvd2fp9q.js.map} +3 -3
  198. package/dist/{chunk-bwjcehza.js → chunk-e17zdm62.js} +6 -12
  199. package/dist/{chunk-bwjcehza.js.map → chunk-e17zdm62.js.map} +3 -4
  200. package/dist/{chunk-tpn40322.js → chunk-e6k4thh5.js} +11 -10
  201. package/dist/{chunk-tpn40322.js.map → chunk-e6k4thh5.js.map} +3 -3
  202. package/dist/{chunk-tw03bsmb.js → chunk-eptrvnby.js} +224 -3
  203. package/dist/chunk-eptrvnby.js.map +12 -0
  204. package/dist/{chunk-xt1zt7gv.js → chunk-f4pamkt9.js} +30 -23
  205. package/dist/chunk-f4pamkt9.js.map +12 -0
  206. package/dist/chunk-ff5xkv0p.js +211 -0
  207. package/dist/chunk-ff5xkv0p.js.map +10 -0
  208. package/dist/{chunk-bpgy64fw.js → chunk-g257jwnc.js} +10 -4
  209. package/dist/{chunk-bpgy64fw.js.map → chunk-g257jwnc.js.map} +3 -3
  210. package/dist/chunk-g5bvzyyr.js +32 -0
  211. package/dist/chunk-g5bvzyyr.js.map +10 -0
  212. package/dist/{chunk-2jntasmh.js → chunk-hcbyfxbe.js} +25 -49
  213. package/dist/chunk-hcbyfxbe.js.map +12 -0
  214. package/dist/chunk-hke9aeen.js +9 -0
  215. package/dist/chunk-hke9aeen.js.map +10 -0
  216. package/dist/{chunk-1sr8ryzk.js → chunk-hwksyjks.js} +122 -1
  217. package/dist/{chunk-1sr8ryzk.js.map → chunk-hwksyjks.js.map} +3 -3
  218. package/dist/chunk-jcfw4h7m.js +9 -0
  219. package/dist/chunk-jcfw4h7m.js.map +10 -0
  220. package/dist/{chunk-85yvv5n0.js → chunk-k43ct2ke.js} +20 -11
  221. package/dist/chunk-k43ct2ke.js.map +12 -0
  222. package/dist/{chunk-dnmadg9k.js → chunk-kge7k6ey.js} +40 -8
  223. package/dist/chunk-kge7k6ey.js.map +15 -0
  224. package/dist/{chunk-wz0xs816.js → chunk-ky3j490c.js} +2 -2
  225. package/dist/chunk-mjddfa7k.js +129 -0
  226. package/dist/chunk-mjddfa7k.js.map +12 -0
  227. package/dist/{chunk-3gnrh4ve.js → chunk-nn5xnx3s.js} +86 -111
  228. package/dist/chunk-nn5xnx3s.js.map +40 -0
  229. package/dist/{chunk-rz53yb4v.js → chunk-q5e5tv4b.js} +35 -7
  230. package/dist/{chunk-rz53yb4v.js.map → chunk-q5e5tv4b.js.map} +3 -3
  231. package/dist/{chunk-vyf9kfqf.js → chunk-q7gn29y3.js} +1 -1
  232. package/dist/{chunk-d2ync1v3.js → chunk-rmakanzx.js} +10 -12
  233. package/dist/{chunk-d2ync1v3.js.map → chunk-rmakanzx.js.map} +3 -4
  234. package/dist/{chunk-v9xd5wzd.js → chunk-s7jg7pmn.js} +1 -1
  235. package/dist/chunk-tbc1ngpd.js +642 -0
  236. package/dist/chunk-tbc1ngpd.js.map +18 -0
  237. package/dist/chunk-twe4dx8p.js +676 -0
  238. package/dist/chunk-twe4dx8p.js.map +15 -0
  239. package/dist/{chunk-nre82s12.js → chunk-vf57cr4t.js} +2 -2
  240. package/dist/{chunk-9ybhtmg4.js → chunk-vvxtn22d.js} +1 -1
  241. package/dist/{chunk-jhm3zsa7.js → chunk-wkv3h3q7.js} +64 -2
  242. package/dist/{chunk-jhm3zsa7.js.map → chunk-wkv3h3q7.js.map} +3 -3
  243. package/dist/chunk-x0v3jd47.js +124 -0
  244. package/dist/chunk-x0v3jd47.js.map +10 -0
  245. package/dist/{chunk-7t429e3f.js → chunk-xvsc5m8n.js} +1 -1
  246. package/dist/{chunk-kg5j6fct.js → chunk-y5tah2kf.js} +1 -1
  247. package/dist/{chunk-52bk93x8.js → chunk-z58tm0hm.js} +2 -2
  248. package/dist/datasets/builders.d.ts +15 -2
  249. package/dist/datasets/builders.d.ts.map +1 -1
  250. package/dist/datasets/column-index.d.ts +7 -0
  251. package/dist/datasets/column-index.d.ts.map +1 -0
  252. package/dist/datasets/execution.d.ts +3 -2
  253. package/dist/datasets/execution.d.ts.map +1 -1
  254. package/dist/datasets/write.js +8 -8
  255. package/dist/deploy/internal.js +4 -3
  256. package/dist/deploy/internal.js.map +4 -4
  257. package/dist/deploy/services.d.ts.map +1 -1
  258. package/dist/deploy/types.d.ts +1 -2
  259. package/dist/deploy/types.d.ts.map +1 -1
  260. package/dist/error-reporting/internal.js +4 -4
  261. package/dist/errors/internal.d.ts +1 -0
  262. package/dist/errors/internal.d.ts.map +1 -1
  263. package/dist/errors/internal.js +7 -4
  264. package/dist/errors/internal.js.map +1 -1
  265. package/dist/events/execution.d.ts +12 -2
  266. package/dist/events/execution.d.ts.map +1 -1
  267. package/dist/events/index.js +4 -4
  268. package/dist/execution/agent.js +56 -49
  269. package/dist/execution/agent.js.map +1 -1
  270. package/dist/execution/authorization.d.ts.map +1 -1
  271. package/dist/execution/authorized-object-reader.d.ts +52 -11
  272. package/dist/execution/authorized-object-reader.d.ts.map +1 -1
  273. package/dist/execution/object-reader-clearance.d.ts +41 -0
  274. package/dist/execution/object-reader-clearance.d.ts.map +1 -0
  275. package/dist/execution/object-reader-ontology.d.ts +12 -0
  276. package/dist/execution/object-reader-ontology.d.ts.map +1 -0
  277. package/dist/execution/object-reader-security.d.ts +45 -0
  278. package/dist/execution/object-reader-security.d.ts.map +1 -0
  279. package/dist/execution/primitive.js +54 -47
  280. package/dist/execution/primitive.js.map +1 -1
  281. package/dist/execution/request.js +49 -42
  282. package/dist/execution/request.js.map +2 -2
  283. package/dist/http/api-routes.d.ts.map +1 -1
  284. package/dist/http/index.js +1 -1
  285. package/dist/index.d.ts +23 -7
  286. package/dist/index.d.ts.map +1 -1
  287. package/dist/index.js +111 -109
  288. package/dist/index.js.map +1 -1
  289. package/dist/lake-storage/in-memory.d.ts +1 -0
  290. package/dist/lake-storage/in-memory.d.ts.map +1 -1
  291. package/dist/lake-storage/index.d.ts +6 -3
  292. package/dist/lake-storage/index.d.ts.map +1 -1
  293. package/dist/lake-storage/index.js +21 -13
  294. package/dist/lake-storage/index.js.map +1 -1
  295. package/dist/lake-storage/lineage.d.ts +94 -0
  296. package/dist/lake-storage/lineage.d.ts.map +1 -0
  297. package/dist/lake-storage/sql-transforms.d.ts +45 -0
  298. package/dist/lake-storage/sql-transforms.d.ts.map +1 -1
  299. package/dist/lake-storage/types.d.ts +55 -1
  300. package/dist/lake-storage/types.d.ts.map +1 -1
  301. package/dist/lake-storage/version-inputs.d.ts +14 -3
  302. package/dist/lake-storage/version-inputs.d.ts.map +1 -1
  303. package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
  304. package/dist/materializer/index.js +31 -30
  305. package/dist/materializer/index.js.map +1 -1
  306. package/dist/models/execution/index.js +26 -25
  307. package/dist/models/execution/index.js.map +1 -1
  308. package/dist/objects/clearance-redaction.d.ts +27 -0
  309. package/dist/objects/clearance-redaction.d.ts.map +1 -0
  310. package/dist/objects/index.js +54 -47
  311. package/dist/objects/index.js.map +1 -1
  312. package/dist/objects/link/authorization.d.ts +8 -5
  313. package/dist/objects/link/authorization.d.ts.map +1 -1
  314. package/dist/objects/link/upsert-batch.d.ts.map +1 -1
  315. package/dist/objects/object/delete.d.ts.map +1 -1
  316. package/dist/objects/object/upsert-batch.d.ts.map +1 -1
  317. package/dist/objects/object/upsert.d.ts.map +1 -1
  318. package/dist/objects/property-clearance.d.ts +47 -24
  319. package/dist/objects/property-clearance.d.ts.map +1 -1
  320. package/dist/objects/query/clearance-admission.d.ts +10 -0
  321. package/dist/objects/query/clearance-admission.d.ts.map +1 -0
  322. package/dist/objects/query/index.js +29 -28
  323. package/dist/objects/query/index.js.map +1 -1
  324. package/dist/objects/query/link-query-clearance.d.ts +21 -0
  325. package/dist/objects/query/link-query-clearance.d.ts.map +1 -0
  326. package/dist/objects/vectors/handle.d.ts.map +1 -1
  327. package/dist/objects/vectors/profile.d.ts +5 -0
  328. package/dist/objects/vectors/profile.d.ts.map +1 -1
  329. package/dist/ontology/builders.d.ts.map +1 -1
  330. package/dist/ontology/docs-markdown.d.ts +1 -1
  331. package/dist/ontology/docs-markdown.d.ts.map +1 -1
  332. package/dist/ontology/index.js +7 -7
  333. package/dist/ontology/internal.js +4 -4
  334. package/dist/ontology/internal.js.map +1 -1
  335. package/dist/pipelines/index.d.ts +2 -0
  336. package/dist/pipelines/index.d.ts.map +1 -1
  337. package/dist/pipelines/index.js +47 -35
  338. package/dist/pipelines/index.js.map +1 -1
  339. package/dist/pipelines/lineage.d.ts +17 -0
  340. package/dist/pipelines/lineage.d.ts.map +1 -0
  341. package/dist/projections/internal.d.ts +2 -2
  342. package/dist/projections/internal.js +30 -29
  343. package/dist/projections/internal.js.map +1 -1
  344. package/dist/runtime/create.d.ts +3 -0
  345. package/dist/runtime/create.d.ts.map +1 -1
  346. package/dist/runtime/host.d.ts +6 -0
  347. package/dist/runtime/host.d.ts.map +1 -1
  348. package/dist/runtime/internal.d.ts +2 -0
  349. package/dist/runtime/internal.d.ts.map +1 -1
  350. package/dist/runtime/internal.js +46 -42
  351. package/dist/runtime/internal.js.map +1 -1
  352. package/dist/runtime/ontology-mutations.d.ts +2 -0
  353. package/dist/runtime/ontology-mutations.d.ts.map +1 -1
  354. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  355. package/dist/runtime/sixb.d.ts +8 -0
  356. package/dist/runtime/sixb.d.ts.map +1 -1
  357. package/dist/sandboxes/auth.d.ts +16 -0
  358. package/dist/sandboxes/auth.d.ts.map +1 -1
  359. package/dist/sandboxes/config.d.ts.map +1 -1
  360. package/dist/sandboxes/configuration.d.ts +26 -0
  361. package/dist/sandboxes/configuration.d.ts.map +1 -1
  362. package/dist/sandboxes/index.d.ts +1 -1
  363. package/dist/sandboxes/index.d.ts.map +1 -1
  364. package/dist/sandboxes/index.js +14 -13
  365. package/dist/sandboxes/index.js.map +1 -1
  366. package/dist/sandboxes/sandbox.d.ts +28 -5
  367. package/dist/sandboxes/sandbox.d.ts.map +1 -1
  368. package/dist/security/applied-markings-contribution.d.ts +58 -0
  369. package/dist/security/applied-markings-contribution.d.ts.map +1 -0
  370. package/dist/security/applied-markings-host.d.ts +10 -0
  371. package/dist/security/applied-markings-host.d.ts.map +1 -0
  372. package/dist/security/applied-markings-snapshot.d.ts +67 -0
  373. package/dist/security/applied-markings-snapshot.d.ts.map +1 -0
  374. package/dist/security/applied-markings.d.ts +73 -0
  375. package/dist/security/applied-markings.d.ts.map +1 -0
  376. package/dist/security/builders.d.ts.map +1 -1
  377. package/dist/security/dataset-version-markings.d.ts +47 -0
  378. package/dist/security/dataset-version-markings.d.ts.map +1 -0
  379. package/dist/security/every.d.ts +1 -4
  380. package/dist/security/every.d.ts.map +1 -1
  381. package/dist/security/grants.d.ts +4 -5
  382. package/dist/security/grants.d.ts.map +1 -1
  383. package/dist/security/index.d.ts +2 -2
  384. package/dist/security/index.d.ts.map +1 -1
  385. package/dist/security/internal.d.ts +15 -0
  386. package/dist/security/internal.d.ts.map +1 -0
  387. package/dist/security/internal.js +135 -0
  388. package/dist/security/internal.js.map +10 -0
  389. package/dist/security/marking-propagation.d.ts +62 -0
  390. package/dist/security/marking-propagation.d.ts.map +1 -0
  391. package/dist/security/marking-sets.d.ts +14 -0
  392. package/dist/security/marking-sets.d.ts.map +1 -0
  393. package/dist/security/markings.d.ts +6 -3
  394. package/dist/security/markings.d.ts.map +1 -1
  395. package/dist/security/membership-policies.d.ts.map +1 -1
  396. package/dist/security/pipeline-markings.d.ts +20 -0
  397. package/dist/security/pipeline-markings.d.ts.map +1 -0
  398. package/dist/security/project.d.ts +4 -0
  399. package/dist/security/project.d.ts.map +1 -0
  400. package/dist/security/projection-markings.d.ts +71 -0
  401. package/dist/security/projection-markings.d.ts.map +1 -0
  402. package/dist/security/public.d.ts +10 -0
  403. package/dist/security/public.d.ts.map +1 -0
  404. package/dist/security/public.js +10 -0
  405. package/dist/security/public.js.map +9 -0
  406. package/dist/security/redactions.d.ts +4 -1
  407. package/dist/security/redactions.d.ts.map +1 -1
  408. package/dist/security/registry.d.ts +0 -1
  409. package/dist/security/registry.d.ts.map +1 -1
  410. package/dist/security/types.d.ts +34 -19
  411. package/dist/security/types.d.ts.map +1 -1
  412. package/dist/security/validation.d.ts +0 -6
  413. package/dist/security/validation.d.ts.map +1 -1
  414. package/dist/shares/internal.js +25 -24
  415. package/dist/shares/internal.js.map +2 -2
  416. package/dist/storage/action-runs/failure.js +3 -3
  417. package/dist/storage/action-runs/in-memory.d.ts +4 -0
  418. package/dist/storage/action-runs/in-memory.d.ts.map +1 -1
  419. package/dist/storage/action-runs/types.d.ts +8 -0
  420. package/dist/storage/action-runs/types.d.ts.map +1 -1
  421. package/dist/storage/activity/in-memory.d.ts +55 -0
  422. package/dist/storage/activity/in-memory.d.ts.map +1 -0
  423. package/dist/storage/activity/index.d.ts +3 -0
  424. package/dist/storage/activity/index.d.ts.map +1 -0
  425. package/dist/storage/activity/policy.d.ts +96 -0
  426. package/dist/storage/activity/policy.d.ts.map +1 -0
  427. package/dist/storage/activity/types.d.ts +191 -0
  428. package/dist/storage/activity/types.d.ts.map +1 -0
  429. package/dist/storage/agents/in-memory.d.ts +4 -0
  430. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  431. package/dist/storage/agents/provider.d.ts.map +1 -1
  432. package/dist/storage/agents/provider.js +2 -5
  433. package/dist/storage/agents/provider.js.map +1 -1
  434. package/dist/storage/agents/types.d.ts +10 -9
  435. package/dist/storage/agents/types.d.ts.map +1 -1
  436. package/dist/storage/ai-limits/enforcement.js +3 -3
  437. package/dist/storage/artifacts/errors.d.ts +8 -0
  438. package/dist/storage/artifacts/errors.d.ts.map +1 -0
  439. package/dist/storage/artifacts/in-memory.d.ts +34 -0
  440. package/dist/storage/artifacts/in-memory.d.ts.map +1 -0
  441. package/dist/storage/artifacts/index.d.ts +5 -0
  442. package/dist/storage/artifacts/index.d.ts.map +1 -0
  443. package/dist/storage/artifacts/record.d.ts +17 -0
  444. package/dist/storage/artifacts/record.d.ts.map +1 -0
  445. package/dist/storage/artifacts/types.d.ts +184 -0
  446. package/dist/storage/artifacts/types.d.ts.map +1 -0
  447. package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
  448. package/dist/storage/auth/in-memory/magic-links.d.ts.map +1 -1
  449. package/dist/storage/auth/in-memory/oidc-attempts.d.ts.map +1 -1
  450. package/dist/storage/auth/in-memory/sessions.d.ts +2 -11
  451. package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
  452. package/dist/storage/auth/in-memory/shared.d.ts +1 -2
  453. package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
  454. package/dist/storage/auth/index.d.ts +1 -1
  455. package/dist/storage/auth/index.d.ts.map +1 -1
  456. package/dist/storage/auth/types.d.ts +20 -17
  457. package/dist/storage/auth/types.d.ts.map +1 -1
  458. package/dist/storage/connector-connections/provider.js +2 -2
  459. package/dist/storage/executions/in-memory.d.ts +2 -1
  460. package/dist/storage/executions/in-memory.d.ts.map +1 -1
  461. package/dist/storage/executions/index.d.ts +1 -1
  462. package/dist/storage/executions/index.d.ts.map +1 -1
  463. package/dist/storage/executions/provider.d.ts +2 -0
  464. package/dist/storage/executions/provider.d.ts.map +1 -1
  465. package/dist/storage/executions/provider.js +9 -223
  466. package/dist/storage/executions/provider.js.map +3 -4
  467. package/dist/storage/executions/types.d.ts +31 -0
  468. package/dist/storage/executions/types.d.ts.map +1 -1
  469. package/dist/storage/file-upload-sessions/provider.js +12 -12
  470. package/dist/storage/in-memory/index.d.ts +8 -0
  471. package/dist/storage/in-memory/index.d.ts.map +1 -1
  472. package/dist/storage/index.d.ts +6 -4
  473. package/dist/storage/index.d.ts.map +1 -1
  474. package/dist/storage/index.js +47 -46
  475. package/dist/storage/index.js.map +1 -1
  476. package/dist/storage/internal.d.ts +3 -0
  477. package/dist/storage/internal.d.ts.map +1 -1
  478. package/dist/storage/internal.js +66 -16
  479. package/dist/storage/internal.js.map +1 -1
  480. package/dist/storage/ontology/in-memory/sources.d.ts +2 -1
  481. package/dist/storage/ontology/in-memory/sources.d.ts.map +1 -1
  482. package/dist/storage/ontology/index.d.ts +1 -1
  483. package/dist/storage/ontology/index.d.ts.map +1 -1
  484. package/dist/storage/ontology/sources.d.ts +15 -0
  485. package/dist/storage/ontology/sources.d.ts.map +1 -1
  486. package/dist/storage/projection-runs/provider.js +3 -3
  487. package/dist/storage/share-grants/in-memory.d.ts +2 -1
  488. package/dist/storage/share-grants/in-memory.d.ts.map +1 -1
  489. package/dist/storage/share-grants/index.d.ts +1 -1
  490. package/dist/storage/share-grants/index.d.ts.map +1 -1
  491. package/dist/storage/share-grants/types.d.ts +6 -0
  492. package/dist/storage/share-grants/types.d.ts.map +1 -1
  493. package/dist/storage/types.d.ts +4 -0
  494. package/dist/storage/types.d.ts.map +1 -1
  495. package/dist/storage/workflow-runs/in-memory.d.ts +4 -0
  496. package/dist/storage/workflow-runs/in-memory.d.ts.map +1 -1
  497. package/dist/storage/workflow-runs/provider.js +14 -13
  498. package/dist/storage/workflow-runs/provider.js.map +1 -1
  499. package/dist/storage/workflow-runs/types.d.ts +5 -0
  500. package/dist/storage/workflow-runs/types.d.ts.map +1 -1
  501. package/dist/syncs/index.js +35 -34
  502. package/dist/syncs/index.js.map +1 -1
  503. package/dist/testing/action-run-storage-contract.d.ts.map +1 -1
  504. package/dist/testing/activity-storage-contract.d.ts +14 -0
  505. package/dist/testing/activity-storage-contract.d.ts.map +1 -0
  506. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  507. package/dist/testing/artifact-storage-contract.d.ts +13 -0
  508. package/dist/testing/artifact-storage-contract.d.ts.map +1 -0
  509. package/dist/testing/auth-storage-contract.d.ts.map +1 -1
  510. package/dist/testing/execution-storage-contract.d.ts.map +1 -1
  511. package/dist/testing/index.d.ts +2 -0
  512. package/dist/testing/index.d.ts.map +1 -1
  513. package/dist/testing/index.js +4493 -3225
  514. package/dist/testing/index.js.map +14 -12
  515. package/dist/testing/lake-merge-storage-contract.d.ts.map +1 -1
  516. package/dist/testing/lake-storage-contract.d.ts +2 -0
  517. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  518. package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
  519. package/dist/testing/share-grant-storage-contract.d.ts.map +1 -1
  520. package/dist/webhooks/internal.js +28 -27
  521. package/dist/webhooks/internal.js.map +2 -2
  522. package/dist/workers/index.js +2 -2
  523. package/dist/workflows/builders.d.ts.map +1 -1
  524. package/dist/workflows/index.js +57 -51
  525. package/dist/workflows/index.js.map +1 -1
  526. package/dist/workflows/types.d.ts +9 -0
  527. package/dist/workflows/types.d.ts.map +1 -1
  528. package/dist/workflows/validation.d.ts +7 -0
  529. package/dist/workflows/validation.d.ts.map +1 -1
  530. package/package.json +32 -2
  531. package/src/actions/execution.ts +18 -13
  532. package/src/actions/request.ts +18 -3
  533. package/src/actions/run-authorization.ts +23 -0
  534. package/src/activity/README.md +155 -0
  535. package/src/activity/connection.ts +217 -0
  536. package/src/activity/device.ts +41 -0
  537. package/src/activity/execution.ts +210 -0
  538. package/src/activity/service.ts +274 -0
  539. package/src/activity/shares.ts +62 -0
  540. package/src/activity/timeline.ts +424 -0
  541. package/src/agents/index.ts +8 -3
  542. package/src/agents/request.ts +5 -0
  543. package/src/agents/skills.ts +6 -0
  544. package/src/agents/types.ts +8 -8
  545. package/src/agents/validation.ts +2 -0
  546. package/src/artifacts/address.ts +132 -0
  547. package/src/artifacts/csv.ts +108 -0
  548. package/src/artifacts/errors.ts +21 -0
  549. package/src/artifacts/execution.ts +153 -0
  550. package/src/artifacts/frames/assets.ts +88 -0
  551. package/src/artifacts/frames/grants.ts +124 -0
  552. package/src/artifacts/frames/index.ts +15 -0
  553. package/src/artifacts/frames/kit.ts +392 -0
  554. package/src/artifacts/frames/probe.ts +309 -0
  555. package/src/artifacts/frames/protocol.ts +174 -0
  556. package/src/artifacts/frames/runtime.ts +213 -0
  557. package/src/artifacts/html.ts +25 -0
  558. package/src/artifacts/ids.ts +18 -0
  559. package/src/artifacts/index.ts +61 -0
  560. package/src/artifacts/kinds.ts +8 -0
  561. package/src/artifacts/limits.ts +27 -0
  562. package/src/artifacts/outline.ts +62 -0
  563. package/src/artifacts/publish/files.ts +87 -0
  564. package/src/artifacts/publish/index.ts +12 -0
  565. package/src/artifacts/publish/publish.ts +250 -0
  566. package/src/artifacts/publish/references.ts +130 -0
  567. package/src/artifacts/publish/validate/document.ts +114 -0
  568. package/src/artifacts/publish/validate/file.ts +19 -0
  569. package/src/artifacts/publish/validate/sheet.ts +251 -0
  570. package/src/artifacts/publish/validate/slides.ts +134 -0
  571. package/src/artifacts/references.ts +11 -0
  572. package/src/artifacts/resolve.ts +97 -0
  573. package/src/artifacts/theme.ts +116 -0
  574. package/src/artifacts/warnings.ts +10 -0
  575. package/src/artifacts/workbook.ts +315 -0
  576. package/src/auth/cookies.ts +3 -20
  577. package/src/auth/index.ts +0 -6
  578. package/src/auth/runtime.ts +59 -76
  579. package/src/auth/session-cache.ts +2 -9
  580. package/src/auth/types.ts +4 -8
  581. package/src/auth/validation.ts +0 -2
  582. package/src/authorization/decision.ts +13 -23
  583. package/src/authorization/grant-kinds.ts +33 -28
  584. package/src/authorization/index.ts +0 -1
  585. package/src/authorization/resolve.ts +10 -6
  586. package/src/blob-storage/internal.ts +1 -1
  587. package/src/blob-storage/media-type.ts +69 -0
  588. package/src/datasets/builders.ts +66 -2
  589. package/src/datasets/column-index.ts +19 -0
  590. package/src/datasets/execution.ts +23 -9
  591. package/src/deploy/services.ts +0 -1
  592. package/src/deploy/types.ts +1 -2
  593. package/src/deploy/validation.ts +3 -1
  594. package/src/errors/internal.ts +1 -0
  595. package/src/events/execution.ts +134 -21
  596. package/src/execution/authorization.ts +11 -5
  597. package/src/execution/authorized-object-reader.ts +270 -256
  598. package/src/execution/object-reader-clearance.ts +91 -0
  599. package/src/execution/object-reader-ontology.ts +63 -0
  600. package/src/execution/object-reader-security.ts +146 -0
  601. package/src/http/api-routes.ts +125 -0
  602. package/src/index.ts +72 -17
  603. package/src/lake-storage/in-memory.ts +26 -3
  604. package/src/lake-storage/index.ts +13 -1
  605. package/src/lake-storage/lineage.ts +385 -0
  606. package/src/lake-storage/sql-transforms.ts +45 -0
  607. package/src/lake-storage/types.ts +59 -1
  608. package/src/lake-storage/version-inputs.ts +35 -6
  609. package/src/maintenance/ontology-maintenance.ts +15 -0
  610. package/src/models/execution/embedding.ts +6 -6
  611. package/src/objects/clearance-redaction.ts +138 -0
  612. package/src/objects/link/authorization.ts +27 -7
  613. package/src/objects/link/remove.ts +2 -2
  614. package/src/objects/link/upsert-batch.ts +7 -5
  615. package/src/objects/link/upsert.ts +2 -2
  616. package/src/objects/object/delete.ts +2 -0
  617. package/src/objects/object/upsert-batch.ts +2 -4
  618. package/src/objects/object/upsert.ts +2 -3
  619. package/src/objects/property-clearance.ts +171 -152
  620. package/src/objects/query/clearance-admission.ts +112 -0
  621. package/src/objects/query/link-query-clearance.ts +73 -0
  622. package/src/objects/vectors/README.md +4 -0
  623. package/src/objects/vectors/handle.ts +11 -2
  624. package/src/objects/vectors/indexing-generate.ts +2 -2
  625. package/src/objects/vectors/profile.ts +5 -0
  626. package/src/ontology/builders.ts +12 -1
  627. package/src/ontology/docs-markdown.ts +1 -1
  628. package/src/pipelines/index.ts +2 -0
  629. package/src/pipelines/lineage.ts +45 -0
  630. package/src/projections/internal.ts +2 -2
  631. package/src/runtime/create.ts +4 -0
  632. package/src/runtime/host.ts +55 -0
  633. package/src/runtime/internal.ts +2 -0
  634. package/src/runtime/ontology-mutations.ts +19 -4
  635. package/src/runtime/resolve-definitions.ts +66 -3
  636. package/src/runtime/sixb.ts +18 -1
  637. package/src/sandboxes/README.md +29 -7
  638. package/src/sandboxes/auth.ts +16 -0
  639. package/src/sandboxes/config.ts +2 -7
  640. package/src/sandboxes/configuration.ts +61 -7
  641. package/src/sandboxes/index.ts +1 -0
  642. package/src/sandboxes/sandbox.ts +27 -5
  643. package/src/security/applied-markings-contribution.ts +277 -0
  644. package/src/security/applied-markings-host.ts +41 -0
  645. package/src/security/applied-markings-snapshot.ts +235 -0
  646. package/src/security/applied-markings.ts +405 -0
  647. package/src/security/builders.ts +7 -2
  648. package/src/security/dataset-version-markings.ts +163 -0
  649. package/src/security/every.ts +0 -4
  650. package/src/security/grants.ts +42 -27
  651. package/src/security/index.ts +3 -3
  652. package/src/security/internal.ts +18 -0
  653. package/src/security/marking-propagation.ts +255 -0
  654. package/src/security/marking-sets.ts +42 -0
  655. package/src/security/markings.ts +29 -178
  656. package/src/security/membership-policies.ts +3 -1
  657. package/src/security/pipeline-markings.ts +175 -0
  658. package/src/security/project.ts +8 -0
  659. package/src/security/projection-markings.ts +421 -0
  660. package/src/security/public.ts +10 -0
  661. package/src/security/redactions.ts +7 -2
  662. package/src/security/registry.ts +0 -8
  663. package/src/security/types.ts +38 -26
  664. package/src/security/validation.ts +28 -19
  665. package/src/storage/action-runs/in-memory.ts +18 -0
  666. package/src/storage/action-runs/types.ts +8 -0
  667. package/src/storage/activity/in-memory.ts +374 -0
  668. package/src/storage/activity/index.ts +27 -0
  669. package/src/storage/activity/policy.ts +430 -0
  670. package/src/storage/activity/types.ts +211 -0
  671. package/src/storage/agents/in-memory.ts +10 -0
  672. package/src/storage/agents/provider.ts +2 -13
  673. package/src/storage/agents/types.ts +10 -17
  674. package/src/storage/artifacts/errors.ts +16 -0
  675. package/src/storage/artifacts/in-memory.ts +240 -0
  676. package/src/storage/artifacts/index.ts +30 -0
  677. package/src/storage/artifacts/record.ts +200 -0
  678. package/src/storage/artifacts/types.ts +209 -0
  679. package/src/storage/auth/in-memory/auth-storage.ts +0 -18
  680. package/src/storage/auth/in-memory/magic-links.ts +0 -3
  681. package/src/storage/auth/in-memory/oidc-attempts.ts +0 -3
  682. package/src/storage/auth/in-memory/sessions.ts +22 -25
  683. package/src/storage/auth/in-memory/shared.ts +1 -10
  684. package/src/storage/auth/index.ts +2 -0
  685. package/src/storage/auth/types.ts +20 -18
  686. package/src/storage/executions/in-memory.ts +61 -1
  687. package/src/storage/executions/index.ts +3 -0
  688. package/src/storage/executions/provider.ts +12 -0
  689. package/src/storage/executions/types.ts +30 -0
  690. package/src/storage/in-memory/index.ts +16 -0
  691. package/src/storage/index.ts +63 -0
  692. package/src/storage/internal.ts +30 -0
  693. package/src/storage/ontology/in-memory/sources.ts +23 -0
  694. package/src/storage/ontology/index.ts +2 -0
  695. package/src/storage/ontology/sources.ts +17 -0
  696. package/src/storage/share-grants/in-memory.ts +8 -0
  697. package/src/storage/share-grants/index.ts +1 -0
  698. package/src/storage/share-grants/types.ts +8 -0
  699. package/src/storage/types.ts +4 -0
  700. package/src/storage/workflow-runs/in-memory.ts +16 -0
  701. package/src/storage/workflow-runs/types.ts +5 -0
  702. package/src/testing/action-run-storage-contract.ts +25 -0
  703. package/src/testing/activity-storage-contract.ts +840 -0
  704. package/src/testing/agent-storage-contract.ts +22 -21
  705. package/src/testing/artifact-storage-contract.ts +517 -0
  706. package/src/testing/auth-storage-contract.ts +61 -107
  707. package/src/testing/execution-storage-contract.ts +147 -3
  708. package/src/testing/index.ts +9 -0
  709. package/src/testing/lake-merge-storage-contract.ts +38 -0
  710. package/src/testing/lake-storage-contract.ts +247 -2
  711. package/src/testing/materializer-storage-contract.ts +1 -0
  712. package/src/testing/ontology-storage-contract.ts +57 -2
  713. package/src/testing/share-grant-storage-contract.ts +15 -0
  714. package/src/workflows/builders.ts +14 -0
  715. package/src/workflows/types.ts +9 -0
  716. package/src/workflows/validation.ts +72 -0
  717. package/dist/auth/audience.d.ts +0 -8
  718. package/dist/auth/audience.d.ts.map +0 -1
  719. package/dist/authorization/application-access.d.ts +0 -18
  720. package/dist/authorization/application-access.d.ts.map +0 -1
  721. package/dist/chunk-1f7wpmyp.js.map +0 -14
  722. package/dist/chunk-1k89ecfr.js +0 -85
  723. package/dist/chunk-1k89ecfr.js.map +0 -10
  724. package/dist/chunk-2jntasmh.js.map +0 -13
  725. package/dist/chunk-3gnrh4ve.js.map +0 -40
  726. package/dist/chunk-85yvv5n0.js.map +0 -12
  727. package/dist/chunk-9gyp8hg1.js +0 -363
  728. package/dist/chunk-9gyp8hg1.js.map +0 -14
  729. package/dist/chunk-dnmadg9k.js.map +0 -15
  730. package/dist/chunk-enpsx8k5.js.map +0 -10
  731. package/dist/chunk-hkc3jct7.js.map +0 -10
  732. package/dist/chunk-kyzq4wy9.js.map +0 -18
  733. package/dist/chunk-s16apyk9.js +0 -256
  734. package/dist/chunk-s16apyk9.js.map +0 -16
  735. package/dist/chunk-s54c868q.js.map +0 -12
  736. package/dist/chunk-tw03bsmb.js.map +0 -11
  737. package/dist/chunk-wwdfe68s.js +0 -128
  738. package/dist/chunk-wwdfe68s.js.map +0 -11
  739. package/dist/chunk-xt1zt7gv.js.map +0 -13
  740. package/dist/chunk-y7rqfrgg.js.map +0 -24
  741. package/dist/security/applications.d.ts +0 -15
  742. package/dist/security/applications.d.ts.map +0 -1
  743. package/src/auth/audience.ts +0 -28
  744. package/src/authorization/application-access.ts +0 -34
  745. package/src/security/applications.ts +0 -11
  746. /package/dist/{chunk-t6vq7bff.js.map → chunk-0bphap9y.js.map} +0 -0
  747. /package/dist/{chunk-7mbzgd9m.js.map → chunk-1cc1xaf3.js.map} +0 -0
  748. /package/dist/{chunk-6gmfggss.js.map → chunk-431pyp2c.js.map} +0 -0
  749. /package/dist/{chunk-c85m1hyj.js.map → chunk-447a5c0p.js.map} +0 -0
  750. /package/dist/{chunk-80mc0971.js.map → chunk-561r0yc9.js.map} +0 -0
  751. /package/dist/{chunk-5e43w60z.js.map → chunk-5948n82c.js.map} +0 -0
  752. /package/dist/{chunk-yzwja0mj.js.map → chunk-5hx48dnn.js.map} +0 -0
  753. /package/dist/{chunk-q1vkr2ys.js.map → chunk-c1rxbz5y.js.map} +0 -0
  754. /package/dist/{chunk-gc4ntf7d.js.map → chunk-cwdzcv37.js.map} +0 -0
  755. /package/dist/{chunk-fa02jy15.js.map → chunk-cy4mbddw.js.map} +0 -0
  756. /package/dist/{chunk-7kg3k1m9.js.map → chunk-d09e3rax.js.map} +0 -0
  757. /package/dist/{chunk-rhg02hxq.js.map → chunk-d7dnxdep.js.map} +0 -0
  758. /package/dist/{chunk-wz0xs816.js.map → chunk-ky3j490c.js.map} +0 -0
  759. /package/dist/{chunk-vyf9kfqf.js.map → chunk-q7gn29y3.js.map} +0 -0
  760. /package/dist/{chunk-v9xd5wzd.js.map → chunk-s7jg7pmn.js.map} +0 -0
  761. /package/dist/{chunk-nre82s12.js.map → chunk-vf57cr4t.js.map} +0 -0
  762. /package/dist/{chunk-9ybhtmg4.js.map → chunk-vvxtn22d.js.map} +0 -0
  763. /package/dist/{chunk-7t429e3f.js.map → chunk-xvsc5m8n.js.map} +0 -0
  764. /package/dist/{chunk-kg5j6fct.js.map → chunk-y5tah2kf.js.map} +0 -0
  765. /package/dist/{chunk-52bk93x8.js.map → chunk-z58tm0hm.js.map} +0 -0
@@ -18,9 +18,8 @@ import type { PipelineDefinition } from "../pipelines";
18
18
  import type { ShareDefinition } from "../shares";
19
19
  import type { SyncDefinition } from "../syncs";
20
20
  import type { WorkflowDefinition } from "../workflows/types";
21
- import type { ApplicationDefinition } from "./types";
22
21
  /** Capability targets a breadth selector can range over. */
23
- export declare const BREADTH_TARGETS: readonly ["object", "dataset", "action", "workflow", "sync", "pipeline", "application", "connector", "share"];
22
+ export declare const BREADTH_TARGETS: readonly ["object", "dataset", "action", "workflow", "sync", "pipeline", "connector", "share"];
24
23
  export type BreadthTarget = (typeof BREADTH_TARGETS)[number];
25
24
  interface BreadthTargetInput {
26
25
  object: ObjectType;
@@ -29,7 +28,6 @@ interface BreadthTargetInput {
29
28
  workflow: WorkflowDefinition;
30
29
  sync: SyncDefinition;
31
30
  pipeline: PipelineDefinition;
32
- application: ApplicationDefinition;
33
31
  connector: ConnectorDefinition;
34
32
  share: ShareDefinition;
35
33
  }
@@ -63,7 +61,6 @@ export declare const every: {
63
61
  workflow: () => BreadthSelector<"workflow">;
64
62
  sync: () => BreadthSelector<"sync">;
65
63
  pipeline: () => BreadthSelector<"pipeline">;
66
- application: () => BreadthSelector<"application">;
67
64
  connector: () => BreadthSelector<"connector">;
68
65
  share: () => BreadthSelector<"share">;
69
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"every.d.ts","sourceRoot":"","sources":["../../src/security/every.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,4DAA4D;AAC5D,eAAO,MAAM,eAAe,+GAUlB,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D,UAAU,kBAAkB;IAC1B,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,gBAAgB,CAAA;IACxB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,WAAW,EAAE,qBAAqB,CAAA;IAClC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,KAAK,EAAE,eAAe,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa;IAC5E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;IAC9E,yEAAyE;IACzE,MAAM,CAAC,KAAK,EAAE,SAAS,kBAAkB,CAAC,OAAO,CAAC,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;CAChF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAQ1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrF;AAkBD;;;;;GAKG;AACH,eAAO,MAAM,KAAK;kBACJ,eAAe,CAAC,QAAQ,CAAC;mBACxB,eAAe,CAAC,SAAS,CAAC;kBAC3B,eAAe,CAAC,QAAQ,CAAC;oBACvB,eAAe,CAAC,UAAU,CAAC;gBAC/B,eAAe,CAAC,MAAM,CAAC;oBACnB,eAAe,CAAC,UAAU,CAAC;uBACxB,eAAe,CAAC,aAAa,CAAC;qBAChC,eAAe,CAAC,WAAW,CAAC;iBAChC,eAAe,CAAC,OAAO,CAAC;CACpC,CAAA"}
1
+ {"version":3,"file":"every.d.ts","sourceRoot":"","sources":["../../src/security/every.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAG5D,4DAA4D;AAC5D,eAAO,MAAM,eAAe,gGASlB,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D,UAAU,kBAAkB;IAC1B,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,gBAAgB,CAAA;IACxB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,SAAS,EAAE,mBAAmB,CAAA;IAC9B,KAAK,EAAE,eAAe,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa;IAC5E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAA;IAC9E,yEAAyE;IACzE,MAAM,CAAC,KAAK,EAAE,SAAS,kBAAkB,CAAC,OAAO,CAAC,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;CAChF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAQ1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrF;AAkBD;;;;;GAKG;AACH,eAAO,MAAM,KAAK;kBACJ,eAAe,CAAC,QAAQ,CAAC;mBACxB,eAAe,CAAC,SAAS,CAAC;kBAC3B,eAAe,CAAC,QAAQ,CAAC;oBACvB,eAAe,CAAC,UAAU,CAAC;gBAC/B,eAAe,CAAC,MAAM,CAAC;oBACnB,eAAe,CAAC,UAAU,CAAC;qBAC1B,eAAe,CAAC,WAAW,CAAC;iBAChC,eAAe,CAAC,OAAO,CAAC;CACpC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Grant builders for role definitions.
3
3
  *
4
- * Grants are plain data referencing application and runtime definitions
4
+ * Grants are plain data referencing runtime definitions
5
5
  * by id. They carry no enforcement logic — the authorization engine expands
6
6
  * each grant's selection into per-principal id sets at startup, so runtime
7
7
  * checks stay simple `set.has(id)` lookups.
@@ -16,9 +16,8 @@ import type { ShareActionGrantBuilder, ShareDefinition, ShareTarget, ShareViewGr
16
16
  import type { SyncDefinition } from "../syncs";
17
17
  import type { WorkflowDefinition } from "../workflows/types";
18
18
  import { type BreadthSelector, type BreadthTarget } from "./every";
19
- import type { AccessGrant, AgentRunGrant, AppendGrant, ApplicationDefinition, ApplyGrant, EditGrant, ManageGrant, ObserveGrant, RunGrant, ShareGrant, ViewGrant } from "./types";
19
+ import type { AgentRunGrant, AppendGrant, ApplyGrant, EditGrant, ManageGrant, ObserveGrant, ProjectSurfaceReference, RunGrant, ShareGrant, ViewGrant } from "./types";
20
20
  type GrantInput<TDefinition, TTarget extends BreadthTarget> = TDefinition | readonly TDefinition[] | BreadthSelector<TTarget>;
21
- declare function access(input: GrantInput<ApplicationDefinition, "application">): AccessGrant;
22
21
  declare function view<const TObjectTypeId extends string>(input: ShareTarget<TObjectTypeId>): ShareViewGrantBuilder<TObjectTypeId>;
23
22
  declare function view(input: GrantInput<ObjectType, "object">): ViewGrant<"object">;
24
23
  declare function view(input: GrantInput<DatasetDefinition, "dataset">): ViewGrant<"dataset">;
@@ -31,11 +30,11 @@ declare function run(input: GrantInput<WorkflowDefinition, "workflow">): RunGran
31
30
  declare function run(input: GrantInput<SyncDefinition, "sync">): RunGrant<"sync">;
32
31
  declare function run(input: GrantInput<PipelineDefinition, "pipeline">): RunGrant<"pipeline">;
33
32
  declare function run(input: AgentReference): AgentRunGrant;
34
- declare function observe(input: "logs" | AgentUsageReference): ObserveGrant;
33
+ type ObservableReference = ProjectSurfaceReference | AgentUsageReference;
34
+ declare function observe(input: ObservableReference): ObserveGrant;
35
35
  declare function manage(input: GrantInput<ConnectorDefinition, "connector">): ManageGrant<"connector">;
36
36
  declare function manage(input: AgentUsageReference): ManageGrant<"aiUsage">;
37
37
  export declare const can: {
38
- access: typeof access;
39
38
  view: typeof view;
40
39
  edit: typeof edit;
41
40
  append: typeof append;
@@ -1 +1 @@
1
- {"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/security/grants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/security/grants.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- export { applications } from "./applications";
2
1
  export type { DefineGroupOptions, DefineMarkingOptions, DefineMembershipPolicyOptions, DefineRoleOptions, } from "./builders";
3
2
  export { defineGroup, defineMarking, defineMembershipPolicy, defineRole } from "./builders";
4
3
  export { SecurityValidationError } from "./errors";
@@ -7,8 +6,9 @@ export { every } from "./every";
7
6
  export { can } from "./grants";
8
7
  export type { MembershipOperationScope, MembershipPolicyScope } from "./membership-policies";
9
8
  export { canPerformMembershipOperation, isMembershipOperation, missingMembershipGroupIds, resolveMembershipPolicyScope, } from "./membership-policies";
9
+ export { project } from "./project";
10
10
  export type { SecurityDefinitionCatalog, SecurityRegistryOptions } from "./registry";
11
11
  export { SecurityRegistry } from "./registry";
12
- export type { AccessGrant, AgentRunGrant, AppendGrant, ApplicationDefinition, ApplyGrant, EditGrant, GrantCapability, GrantDefinition, GroupDefinition, GroupReference, ManageGrant, ManageGrantTarget, MarkingDefinition, MembershipOperation, MembershipPolicyDefinition, ObserveGrant, ObserveGrantTarget, RedactionReason, Redactions, RegisteredSecurityDefinitions, RoleDefinition, RunGrant, RunGrantTarget, Selection, ShareGrant, ViewGrant, ViewGrantTarget, } from "./types";
12
+ export type { AgentRunGrant, AppendGrant, ApplyGrant, EditGrant, GrantCapability, GrantDefinition, GroupDefinition, GroupReference, ManageGrant, ManageGrantTarget, MarkingDefinition, MembershipOperation, MembershipPolicyDefinition, ObserveGrant, ObserveGrantTarget, ProjectReference, ProjectSurfaceReference, RedactionReason, Redactions, RegisteredSecurityDefinitions, RoleDefinition, RunGrant, RunGrantTarget, Selection, ShareGrant, ViewGrant, ViewGrantTarget, } from "./types";
13
13
  export { assertGrantDefinition, assertGroupDefinition, assertMembershipPolicyDefinition, assertRoleDefinition, isGroupDefinition, isMarkingDefinition, isMembershipPolicyDefinition, isRoleDefinition, validateSecurityDefinitionsAtStartup, } from "./validation";
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC5F,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,6BAA6B,EAC7B,cAAc,EACd,QAAQ,EACR,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,eAAe,GAChB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,oCAAoC,GACrC,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC5F,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,YAAY,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,YAAY,EACV,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,UAAU,EACV,6BAA6B,EAC7B,cAAc,EACd,QAAQ,EACR,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,eAAe,GAChB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,EAChC,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EAChB,oCAAoC,GACrC,MAAM,cAAc,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Marking plumbing for this repo's hosts and workers, not for app authors.
3
+ *
4
+ * `checkPipelineMarkings` is the SQL preflight the API server and CLI run before serving. The
5
+ * projection worker shares the host's version classifier with `shareDatasetVersionMarkings`, then
6
+ * classifies each pinned version and refuses one with `assertProjectionVersionMarkings`. The API
7
+ * server reads the versions projections applied ahead of its first request with
8
+ * `warmAppliedMarkings`, and the CLI reports what they add with `getAppliedMarkings`.
9
+ */
10
+ export { getAppliedMarkings, warmAppliedMarkings } from "./applied-markings-host";
11
+ export type { DatasetVersionMarkings, VersionClassification, VersionColumnMarkings, } from "./dataset-version-markings";
12
+ export { getDatasetVersionMarkings, shareDatasetVersionMarkings } from "./dataset-version-markings";
13
+ export { checkPipelineMarkings } from "./pipeline-markings";
14
+ export { assertProjectionVersionMarkings } from "./projection-markings";
15
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/security/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACjF,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,135 @@
1
+ // @bun
2
+ import"../chunk-x0v3jd47.js";
3
+ import {
4
+ registeredSteps,
5
+ runStepLineages,
6
+ MarkingPropagation,
7
+ validateProjectionMarkings,
8
+ assertProjectionVersionMarkings2,
9
+ describeOrigins,
10
+ getAppliedMarkings2,
11
+ warmAppliedMarkings2,
12
+ getDatasetVersionMarkings2,
13
+ shareDatasetVersionMarkings2
14
+ } from "../chunk-twe4dx8p.js";
15
+ import {
16
+ stepInputColumns2,
17
+ stepReadColumns
18
+ } from "../chunk-g5bvzyyr.js";
19
+ import {
20
+ PipelineError2
21
+ } from "../chunk-hke9aeen.js";
22
+ import {
23
+ SecurityValidationError2
24
+ } from "../chunk-jcfw4h7m.js";
25
+ // src/security/pipeline-markings.ts
26
+ async function checkPipelineMarkings(input) {
27
+ const { definitions, lakeStorage } = input;
28
+ const datasetsById = new Map(definitions.datasets.list().map((dataset) => [dataset.id, dataset]));
29
+ const steps = registeredSteps(definitions.pipelines.list());
30
+ const runLineageOf = runStepLineages(datasetsById);
31
+ const analyzed = new Map;
32
+ const lineageOf = (entry) => runLineageOf(entry) ?? analyzed.get(entry.step) ?? null;
33
+ const markings = new MarkingPropagation(datasetsById, steps).derive(lineageOf);
34
+ for (;; ) {
35
+ const wave = new Map;
36
+ for (const entry of steps) {
37
+ if (entry.step.executor.kind !== "sql" || analyzed.has(entry.step))
38
+ continue;
39
+ if (stepReadColumns(entry.step).some((ref) => markings.of(ref).size > 0)) {
40
+ if (!wave.has(entry.step))
41
+ wave.set(entry.step, entry);
42
+ }
43
+ }
44
+ if (wave.size === 0)
45
+ break;
46
+ await forEachConcurrently([...wave], ANALYSIS_CONCURRENCY, async ([step, entry]) => {
47
+ analyzed.set(step, await analyzeSqlStep(entry, markings, datasetsById, lakeStorage));
48
+ });
49
+ markings.derive(lineageOf);
50
+ }
51
+ validateProjectionMarkings(definitions.projections, definitions.ontology, markings);
52
+ }
53
+ var ANALYSIS_CONCURRENCY = 8;
54
+ async function forEachConcurrently(items, limit, task) {
55
+ const pending = items.values();
56
+ let failed = false;
57
+ const worker = async () => {
58
+ for (const item of pending) {
59
+ if (failed)
60
+ return;
61
+ try {
62
+ await task(item);
63
+ } catch (error) {
64
+ failed = true;
65
+ throw error;
66
+ }
67
+ }
68
+ };
69
+ await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker));
70
+ }
71
+ async function analyzeSqlStep(entry, markings, datasetsById, lakeStorage) {
72
+ const { step } = entry;
73
+ const subject = `[Sixb] Pipeline '${entry.pipelineId}' step '${step.id}'`;
74
+ if (step.executor.kind !== "sql")
75
+ throw new PipelineError2(`${subject} is not a SQL step.`);
76
+ const sql = "sql" in lakeStorage ? lakeStorage.sql : undefined;
77
+ if (!sql?.analyze) {
78
+ throw new SecurityValidationError2(`${subject} reads ${describeMarkedRead(step, markings)}, but the lake provider cannot analyze SQL to derive the markings of its output. Use a lake provider that analyzes SQL, or pick only unmarked columns.`);
79
+ }
80
+ const inputs = Object.entries(step.inputs);
81
+ let analysis;
82
+ try {
83
+ analysis = await sql.analyze({
84
+ sql: step.executor.sql,
85
+ sources: Object.fromEntries(inputs.map(([name, dataset]) => [
86
+ name,
87
+ {
88
+ dataset: registeredDataset(datasetsById, dataset.id, subject),
89
+ columns: stepInputColumns2(dataset)
90
+ }
91
+ ]))
92
+ });
93
+ } catch (error) {
94
+ const reason = error instanceof Error ? error.message : String(error);
95
+ throw new PipelineError2(`${subject} could not be analyzed: ${reason}`, { cause: error });
96
+ }
97
+ if (!analysis.supported) {
98
+ throw new SecurityValidationError2(`${subject} reads ${describeMarkedRead(step, markings)}, but its SQL cannot be analyzed: ${analysis.reason}. Rewrite that part of the query, or pick only unmarked columns.`);
99
+ }
100
+ const datasetIdBySource = new Map(inputs.map(([name, dataset]) => [name, dataset.id]));
101
+ const toRef = (ref) => {
102
+ const datasetId = datasetIdBySource.get(ref.source);
103
+ if (datasetId === undefined) {
104
+ throw new PipelineError2(`${subject} analysis references unknown source '${ref.source}'.`);
105
+ }
106
+ return { datasetId, column: ref.column };
107
+ };
108
+ return {
109
+ rows: analysis.lineage.rows.map(toRef),
110
+ columns: Object.fromEntries(Object.entries(analysis.lineage.columns).map(([column, refs]) => [column, refs.map(toRef)]))
111
+ };
112
+ }
113
+ function describeMarkedRead(step, markings) {
114
+ const ref = stepReadColumns(step).find((candidate) => markings.of(candidate).size > 0);
115
+ if (!ref)
116
+ return "no marked column";
117
+ const path = `${ref.datasetId}.${ref.column}`;
118
+ return `column '${path}', which carries ${describeOrigins(markings.of(ref), path)}`;
119
+ }
120
+ function registeredDataset(datasetsById, datasetId, subject) {
121
+ const dataset = datasetsById.get(datasetId);
122
+ if (!dataset)
123
+ throw new PipelineError2(`${subject} reads unregistered dataset '${datasetId}'.`);
124
+ return dataset;
125
+ }
126
+ export {
127
+ assertProjectionVersionMarkings2 as assertProjectionVersionMarkings,
128
+ checkPipelineMarkings,
129
+ getAppliedMarkings2 as getAppliedMarkings,
130
+ getDatasetVersionMarkings2 as getDatasetVersionMarkings,
131
+ shareDatasetVersionMarkings2 as shareDatasetVersionMarkings,
132
+ warmAppliedMarkings2 as warmAppliedMarkings
133
+ };
134
+
135
+ //# debugId=02F47B8AEF3C739F64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/security/pipeline-markings.ts"],
4
+ "sourcesContent": [
5
+ "import type { DatasetDefinition } from \"../datasets/types\"\nimport type {\n LakeStorageWithSql,\n SqlTransformAnalysis,\n SqlTransformColumnRef,\n} from \"../lake-storage/sql-transforms\"\nimport type { DatasetColumnLineage, DatasetColumnRef, LakeStorage } from \"../lake-storage/types\"\nimport { PipelineError } from \"../pipelines/errors\"\nimport { stepInputColumns, stepReadColumns } from \"../pipelines/lineage\"\nimport type { PipelineStepDefinition } from \"../pipelines/types\"\nimport type { SixbDefinitions } from \"../runtime/definitions\"\nimport { SecurityValidationError } from \"./errors\"\nimport {\n type DatasetMarkings,\n MarkingPropagation,\n type RegisteredStep,\n registeredSteps,\n runStepLineages,\n} from \"./marking-propagation\"\nimport { describeOrigins, validateProjectionMarkings } from \"./projection-markings\"\n\n/**\n * Derive the markings SQL steps give their outputs and check every projection against them.\n *\n * Startup cannot see through SQL, so this preflight completes it before a host serves traffic. It\n * is a diagnostic: each version records the lineage of the SQL that actually ran, and reads and\n * projections enforce markings from that record whether or not this ran.\n *\n * Only steps that read a marked column are analyzed, each step once. Analyzing a step can mark\n * the inputs of others, so steps are analyzed in waves, a few at a time within a wave. A step whose\n * SQL cannot be analyzed, or a lake provider that cannot analyze SQL, is reported with the step\n * and a marked column it reads.\n */\nexport async function checkPipelineMarkings(input: {\n readonly definitions: Pick<SixbDefinitions, \"ontology\" | \"datasets\" | \"pipelines\" | \"projections\">\n readonly lakeStorage: LakeStorage | LakeStorageWithSql\n}): Promise<void> {\n const { definitions, lakeStorage } = input\n const datasetsById = new Map(definitions.datasets.list().map((dataset) => [dataset.id, dataset]))\n const steps = registeredSteps(definitions.pipelines.list())\n const runLineageOf = runStepLineages(datasetsById)\n const analyzed = new Map<PipelineStepDefinition, DatasetColumnLineage>()\n const lineageOf = (entry: RegisteredStep) =>\n runLineageOf(entry) ?? analyzed.get(entry.step) ?? null\n\n const markings = new MarkingPropagation(datasetsById, steps).derive(lineageOf)\n\n for (;;) {\n const wave = new Map<PipelineStepDefinition, RegisteredStep>()\n for (const entry of steps) {\n if (entry.step.executor.kind !== \"sql\" || analyzed.has(entry.step)) continue\n if (stepReadColumns(entry.step).some((ref) => markings.of(ref).size > 0)) {\n if (!wave.has(entry.step)) wave.set(entry.step, entry)\n }\n }\n\n if (wave.size === 0) break\n\n await forEachConcurrently([...wave], ANALYSIS_CONCURRENCY, async ([step, entry]) => {\n analyzed.set(step, await analyzeSqlStep(entry, markings, datasetsById, lakeStorage))\n })\n markings.derive(lineageOf)\n }\n\n validateProjectionMarkings(definitions.projections, definitions.ontology, markings)\n}\n\n/** Analyses run at once. A provider may open a database per analysis, so a wave is not unbounded. */\nconst ANALYSIS_CONCURRENCY = 8\n\n/** Run `task` on each item, `limit` at a time. Stops starting new tasks once one fails. */\nasync function forEachConcurrently<TItem>(\n items: readonly TItem[],\n limit: number,\n task: (item: TItem) => Promise<void>\n): Promise<void> {\n const pending = items.values()\n let failed = false\n\n const worker = async () => {\n for (const item of pending) {\n if (failed) return\n\n try {\n await task(item)\n } catch (error) {\n failed = true\n throw error\n }\n }\n }\n\n await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker))\n}\n\nasync function analyzeSqlStep(\n entry: RegisteredStep,\n markings: DatasetMarkings,\n datasetsById: ReadonlyMap<string, DatasetDefinition>,\n lakeStorage: LakeStorage | LakeStorageWithSql\n): Promise<DatasetColumnLineage> {\n const { step } = entry\n const subject = `[Sixb] Pipeline '${entry.pipelineId}' step '${step.id}'`\n\n if (step.executor.kind !== \"sql\") throw new PipelineError(`${subject} is not a SQL step.`)\n\n const sql = \"sql\" in lakeStorage ? lakeStorage.sql : undefined\n if (!sql?.analyze) {\n throw new SecurityValidationError(\n `${subject} reads ${describeMarkedRead(step, markings)}, but the lake provider cannot analyze SQL to derive the markings of its output. Use a lake provider that analyzes SQL, or pick only unmarked columns.`\n )\n }\n\n const inputs = Object.entries(step.inputs)\n let analysis: SqlTransformAnalysis\n try {\n analysis = await sql.analyze({\n sql: step.executor.sql,\n sources: Object.fromEntries(\n inputs.map(([name, dataset]) => [\n name,\n {\n dataset: registeredDataset(datasetsById, dataset.id, subject),\n columns: stepInputColumns(dataset),\n },\n ])\n ),\n })\n } catch (error) {\n const reason = error instanceof Error ? error.message : String(error)\n throw new PipelineError(`${subject} could not be analyzed: ${reason}`, { cause: error })\n }\n\n if (!analysis.supported) {\n throw new SecurityValidationError(\n `${subject} reads ${describeMarkedRead(step, markings)}, but its SQL cannot be analyzed: ${analysis.reason}. Rewrite that part of the query, or pick only unmarked columns.`\n )\n }\n\n const datasetIdBySource = new Map(inputs.map(([name, dataset]) => [name, dataset.id]))\n const toRef = (ref: SqlTransformColumnRef): DatasetColumnRef => {\n const datasetId = datasetIdBySource.get(ref.source)\n if (datasetId === undefined) {\n throw new PipelineError(`${subject} analysis references unknown source '${ref.source}'.`)\n }\n\n return { datasetId, column: ref.column }\n }\n\n return {\n rows: analysis.lineage.rows.map(toRef),\n columns: Object.fromEntries(\n Object.entries(analysis.lineage.columns).map(([column, refs]) => [column, refs.map(toRef)])\n ),\n }\n}\n\n/** A marked column the step reads, for messages. */\nfunction describeMarkedRead(step: PipelineStepDefinition, markings: DatasetMarkings): string {\n const ref = stepReadColumns(step).find((candidate) => markings.of(candidate).size > 0)\n if (!ref) return \"no marked column\"\n\n const path = `${ref.datasetId}.${ref.column}`\n return `column '${path}', which carries ${describeOrigins(markings.of(ref), path)}`\n}\n\nfunction registeredDataset(\n datasetsById: ReadonlyMap<string, DatasetDefinition>,\n datasetId: string,\n subject: string\n): DatasetDefinition {\n const dataset = datasetsById.get(datasetId)\n if (!dataset) throw new PipelineError(`${subject} reads unregistered dataset '${datasetId}'.`)\n return dataset\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "02F47B8AEF3C739F64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,62 @@
1
+ import type { DatasetDefinition } from "../datasets/types";
2
+ import type { DatasetColumnLineage, DatasetColumnRef } from "../lake-storage/types";
3
+ import type { PipelineDefinition, PipelineStepDefinition } from "../pipelines/types";
4
+ /** A step of a registered pipeline. A step reused by two pipelines is two registered steps. */
5
+ export interface RegisteredStep {
6
+ readonly pipelineId: string;
7
+ readonly step: PipelineStepDefinition;
8
+ }
9
+ /** The column that declares a marking, and the steps it went through to reach a column. */
10
+ export interface MarkingOrigin {
11
+ readonly column: DatasetColumnRef;
12
+ /** `pipeline/step`, upstream first. Empty when the column declares the marking itself. */
13
+ readonly steps: readonly string[];
14
+ }
15
+ /** Each marking a column carries, with one path it arrived by. */
16
+ export type ColumnMarkingOrigins = ReadonlyMap<string, MarkingOrigin>;
17
+ /** Markings of every column of every registered dataset, derived from the definitions. */
18
+ export interface DatasetMarkings {
19
+ /** Empty for a column without markings or that is not registered. */
20
+ of(column: DatasetColumnRef): ColumnMarkingOrigins;
21
+ }
22
+ export declare function registeredSteps(pipelines: readonly PipelineDefinition[]): readonly RegisteredStep[];
23
+ /** Lineage of each `run` step, built once per step object; undefined for other steps. */
24
+ export declare function runStepLineages(datasetsById: ReadonlyMap<string, DatasetDefinition>): (entry: RegisteredStep) => DatasetColumnLineage | undefined;
25
+ export declare function stepLabel(entry: RegisteredStep): string;
26
+ /**
27
+ * Markings each column carries according to the registered definitions: the ones it declares, and
28
+ * the ones each step derives from the columns it depends on, once that step's lineage is known.
29
+ *
30
+ * What decided the rows of a step's inputs decides the rows of its output, whether or not the step
31
+ * reads a column of that input: `SELECT count(*) FROM rich` reveals which rows `rich` holds. So
32
+ * each dataset also keeps the markings of its row dependencies, and every output column of a step
33
+ * carries those of every input it reads, as the lineage each version records does.
34
+ *
35
+ * A step may read its own output and a dataset may have several producers, so a step whose output
36
+ * gains a marking queues the steps that read that output, until nothing changes. Lineage can be
37
+ * added in rounds: each round only revisits what the new lineage reaches.
38
+ */
39
+ export declare class MarkingPropagation implements DatasetMarkings {
40
+ private readonly datasetsById;
41
+ /** Marked columns only, by dataset, built when a dataset is first looked at. */
42
+ private readonly markings;
43
+ /** Markings of what decides each dataset's rows, for datasets a step writes. */
44
+ private readonly rowMarkings;
45
+ private readonly ordered;
46
+ private readonly readers;
47
+ private readonly known;
48
+ private readonly queue;
49
+ constructor(datasetsById: ReadonlyMap<string, DatasetDefinition>, steps: readonly RegisteredStep[]);
50
+ of(ref: DatasetColumnRef): ColumnMarkingOrigins;
51
+ /**
52
+ * Derive markings through every step `lineageOf` knows the lineage of. A step it returns null
53
+ * for derives nothing until a later call knows it.
54
+ */
55
+ derive(lineageOf: (entry: RegisteredStep) => DatasetColumnLineage | null): this;
56
+ /** Whether the output's rows or any output column gained a marking. */
57
+ private apply;
58
+ private markedColumns;
59
+ /** Every marking of these columns, each with the first origin found. */
60
+ private union;
61
+ }
62
+ //# sourceMappingURL=marking-propagation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marking-propagation.d.ts","sourceRoot":"","sources":["../../src/security/marking-propagation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAEpF,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;CACtC;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC;AAED,kEAAkE;AAClE,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAErE,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,CAAA;CACnD;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,kBAAkB,EAAE,GACvC,SAAS,cAAc,EAAE,CAI3B;AAED,yFAAyF;AACzF,wBAAgB,eAAe,CAC7B,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,GACnD,CAAC,KAAK,EAAE,cAAc,KAAK,oBAAoB,GAAG,SAAS,CAc7D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAEvD;AAYD;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiD;IAC1E,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;gBAGhD,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACpD,KAAK,EAAE,SAAS,cAAc,EAAE;IAYlC,EAAE,CAAC,GAAG,EAAE,gBAAgB,GAAG,oBAAoB;IAI/C;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,oBAAoB,GAAG,IAAI,GAAG,IAAI;IAyB/E,uEAAuE;IACvE,OAAO,CAAC,KAAK;IAmDb,OAAO,CAAC,aAAa;IAiBrB,wEAAwE;IACxE,OAAO,CAAC,KAAK;CASd"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared, immutable sets of marking ids.
3
+ *
4
+ * Every column of every resolved version holds one of a handful of distinct sets, so each distinct
5
+ * set is created once and compared by identity.
6
+ */
7
+ export declare class MarkingSets {
8
+ readonly empty: ReadonlySet<string>;
9
+ private readonly sets;
10
+ of(markingIds: Iterable<string> | undefined): ReadonlySet<string>;
11
+ /** The union of sets this instance created. */
12
+ union(sets: Iterable<ReadonlySet<string> | undefined>): ReadonlySet<string>;
13
+ }
14
+ //# sourceMappingURL=marking-sets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marking-sets.d.ts","sourceRoot":"","sources":["../../src/security/marking-sets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2D;IAEhF,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;IAkBjE,+CAA+C;IAC/C,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;CAY5E"}
@@ -5,9 +5,12 @@ import type { ProjectionDefinitionCatalog } from "../projections/registry";
5
5
  /**
6
6
  * Check every marking once at startup.
7
7
  *
8
- * A marking is enforced at read time from the property or column definition alone, so each rule
9
- * here closes a path that would otherwise return the value unredacted or make enforcement
10
- * ambiguous.
8
+ * A marking is enforced at read time from the property or column definition and the lineage of
9
+ * the version read, so each rule here closes a path that would otherwise return the value
10
+ * unredacted or make enforcement ambiguous.
11
+ *
12
+ * Projections are checked against the markings columns declare or inherit through `run` steps.
13
+ * What SQL steps derive needs the lake provider's analysis, which `checkPipelineMarkings` adds.
11
14
  */
12
15
  export declare function validateMarkingsAtStartup(input: {
13
16
  readonly markingIds: ReadonlySet<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"markings.d.ts","sourceRoot":"","sources":["../../src/security/markings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAErE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAI1E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;IAC5C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC7D,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACjD,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAA;CAClD,GAAG,IAAI,CAKP"}
1
+ {"version":3,"file":"markings.d.ts","sourceRoot":"","sources":["../../src/security/markings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAErE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAK1E;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;IAC5C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC7D,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACjD,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAA;CAClD,GAAG,IAAI,CAWP"}
@@ -1 +1 @@
1
- {"version":3,"file":"membership-policies.d.ts","sourceRoot":"","sources":["../../src/security/membership-policies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAE9E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CAAA;CACrF;AAID,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,0BAA0B,EAAE,CAAA;IAClE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3C,GAAG,qBAAqB,CA2BxB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CAYT;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,SAAS,MAAM,EAAE,CAOnB;AAuBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF"}
1
+ {"version":3,"file":"membership-policies.d.ts","sourceRoot":"","sources":["../../src/security/membership-policies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAE9E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CAAA;CACrF;AAID,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,0BAA0B,EAAE,CAAA;IAClE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3C,GAAG,qBAAqB,CA4BxB;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CAYT;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,SAAS,MAAM,EAAE,CAOnB;AAwBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF"}
@@ -0,0 +1,20 @@
1
+ import type { LakeStorageWithSql } from "../lake-storage/sql-transforms";
2
+ import type { LakeStorage } from "../lake-storage/types";
3
+ import type { SixbDefinitions } from "../runtime/definitions";
4
+ /**
5
+ * Derive the markings SQL steps give their outputs and check every projection against them.
6
+ *
7
+ * Startup cannot see through SQL, so this preflight completes it before a host serves traffic. It
8
+ * is a diagnostic: each version records the lineage of the SQL that actually ran, and reads and
9
+ * projections enforce markings from that record whether or not this ran.
10
+ *
11
+ * Only steps that read a marked column are analyzed, each step once. Analyzing a step can mark
12
+ * the inputs of others, so steps are analyzed in waves, a few at a time within a wave. A step whose
13
+ * SQL cannot be analyzed, or a lake provider that cannot analyze SQL, is reported with the step
14
+ * and a marked column it reads.
15
+ */
16
+ export declare function checkPipelineMarkings(input: {
17
+ readonly definitions: Pick<SixbDefinitions, "ontology" | "datasets" | "pipelines" | "projections">;
18
+ readonly lakeStorage: LakeStorage | LakeStorageWithSql;
19
+ }): Promise<void>;
20
+ //# sourceMappingURL=pipeline-markings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-markings.d.ts","sourceRoot":"","sources":["../../src/security/pipeline-markings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAA0C,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAIhG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAW7D;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC,CAAA;IAClG,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,kBAAkB,CAAA;CACvD,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BhB"}
@@ -0,0 +1,4 @@
1
+ import type { ProjectReference } from "./types";
2
+ /** Project-wide surfaces used in security grants such as `can.observe(project.logs)`. */
3
+ export declare const project: ProjectReference;
4
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/security/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,yFAAyF;AACzF,eAAO,MAAM,OAAO,EAAE,gBAIpB,CAAA"}
@@ -0,0 +1,71 @@
1
+ import type { DatasetVersion } from "../lake-storage/types";
2
+ import type { OntologyDefinitionCatalog } from "../ontology/registry";
3
+ import type { ProjectionDefinitionCatalog } from "../projections/registry";
4
+ import type { ProjectionDefinition } from "../projections/types";
5
+ import type { VersionClassification } from "./dataset-version-markings";
6
+ import type { ColumnMarkingOrigins, DatasetMarkings } from "./marking-propagation";
7
+ type OntologyLookup = Pick<OntologyDefinitionCatalog, "getObjectTypeById">;
8
+ /** Markings of one column of the projection's dataset. */
9
+ type ColumnMarkingsLookup = (column: string) => readonly string[];
10
+ /** What a marked key column makes unreadable: the objects it identifies, or the link it keys. */
11
+ export type ProjectionKeyTarget = {
12
+ readonly kind: "type";
13
+ readonly objectTypeId: string;
14
+ } | {
15
+ readonly kind: "link";
16
+ readonly objectTypeId: string;
17
+ readonly linkId: string;
18
+ readonly targetObjectTypeId: string;
19
+ };
20
+ /**
21
+ * Objects are read through the ontology, so each projected property declares the markings of its
22
+ * column: the ontology stays the reviewed contract of what each reader receives. Values that
23
+ * identify objects or key links are returned wherever the object or link is, and telemetry does
24
+ * not enforce markings yet, so those columns cannot carry markings.
25
+ *
26
+ * Startup checks it with the markings columns declare or inherit through `run` steps, and the
27
+ * pipeline preflight with the markings SQL steps derive as well.
28
+ */
29
+ export declare function validateProjectionMarkings(projections: ProjectionDefinitionCatalog, ontology: OntologyLookup, markings: DatasetMarkings): void;
30
+ /**
31
+ * Refuse to project a dataset version whose columns carry more markings than the projection
32
+ * allows. A version keeps the markings of the code that produced it, so a version written before
33
+ * the current code can carry markings startup did not see. Call it once per version, before
34
+ * reading its rows; it reads nothing, so what it throws is a refusal that no retry changes.
35
+ */
36
+ export declare function assertProjectionVersionMarkings(input: {
37
+ readonly projection: ProjectionDefinition;
38
+ readonly ontology: OntologyLookup;
39
+ readonly version: DatasetVersion;
40
+ readonly classification: VersionClassification;
41
+ }): void;
42
+ /** Markings an applied version gives a projection's targets beyond what the ontology declares. */
43
+ export interface ProjectionSurplus {
44
+ /** Markings a mapped column carries that its property does not declare. */
45
+ readonly properties: readonly {
46
+ readonly objectTypeId: string;
47
+ readonly propertyId: string;
48
+ readonly column: string;
49
+ readonly markings: readonly string[];
50
+ }[];
51
+ /** Marked key columns, with what each one makes unreadable and why. */
52
+ readonly keys: readonly {
53
+ readonly target: ProjectionKeyTarget;
54
+ readonly column: string;
55
+ readonly role: string;
56
+ readonly markings: readonly string[];
57
+ }[];
58
+ }
59
+ /**
60
+ * What a projection's targets carry beyond their declarations when read from columns with these
61
+ * markings: every rule it breaks, as markings to add to properties and to key targets. A property
62
+ * that keys a link keeps its markings on the property as well.
63
+ */
64
+ export declare function projectionSurplus(projection: ProjectionDefinition, ontology: OntologyLookup, markingsOf: ColumnMarkingsLookup): ProjectionSurplus;
65
+ /**
66
+ * `[financial] from 'raw_invoices.amount' through step 'invoices/normalize'`: each marking with one
67
+ * path it arrived by. Markings the column declares itself have no path.
68
+ */
69
+ export declare function describeOrigins(origins: ColumnMarkingOrigins, columnPath: string): string;
70
+ export {};
71
+ //# sourceMappingURL=projection-markings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection-markings.d.ts","sourceRoot":"","sources":["../../src/security/projection-markings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAErE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,KAAK,EAGV,oBAAoB,EAErB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAEvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAiB,MAAM,uBAAuB,CAAA;AAEjG,KAAK,cAAc,GAAG,IAAI,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAA;AAE1E,0DAA0D;AAC1D,KAAK,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAA;AAEjE,iGAAiG;AACjG,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACxD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CACpC,CAAA;AAuBL;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,2BAA2B,EACxC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,eAAe,GACxB,IAAI,CA+BN;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAA;IACzC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAA;CAC/C,GAAG,IAAI,CAoBP;AAED,kGAAkG;AAClG,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,SAAS;QAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KACrC,EAAE,CAAA;IACH,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,SAAS;QACtB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;QACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KACrC,EAAE,CAAA;CACJ;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,oBAAoB,EAChC,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,oBAAoB,GAC/B,iBAAiB,CAkCnB;AA+MD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAOzF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Browser-safe security entrypoint (`@sixb/core/security`).
3
+ *
4
+ * Group files import `defineGroup` from here, because an app layout imports groups to decide who
5
+ * sees which screens, and the browser cannot load the `@sixb/core` root.
6
+ */
7
+ export type { DefineGroupOptions } from "./builders";
8
+ export { defineGroup } from "./builders";
9
+ export type { GroupDefinition } from "./types";
10
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/security/public.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,10 @@
1
+ // @bun
2
+ import"../chunk-dhdha526.js";
3
+ import {
4
+ defineGroup2
5
+ } from "../chunk-f4pamkt9.js";
6
+ export {
7
+ defineGroup2 as defineGroup
8
+ };
9
+
10
+ //# debugId=DDA7C76AC166CB3C64756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "DDA7C76AC166CB3C64756E2164756E21",
8
+ "names": []
9
+ }
@@ -1,4 +1,7 @@
1
1
  import type { Redactions } from "./types";
2
- /** List the values hidden from a reader that lacks a clearance for their markings. */
2
+ /**
3
+ * List the values hidden from a reader that lacks a clearance for their markings. Deeply frozen,
4
+ * so every row and event redacted the same way can share it.
5
+ */
3
6
  export declare function missingClearanceRedactions(ids: Iterable<string>): Redactions;
4
7
  //# sourceMappingURL=redactions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redactions.d.ts","sourceRoot":"","sources":["../../src/security/redactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,sFAAsF;AACtF,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,UAAU,CAE5E"}
1
+ {"version":3,"file":"redactions.d.ts","sourceRoot":"","sources":["../../src/security/redactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzC;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,UAAU,CAE5E"}
@@ -17,7 +17,6 @@ export interface SecurityRegistryOptions {
17
17
  readonly groups?: readonly GroupDefinition[];
18
18
  readonly roles?: readonly RoleDefinition[];
19
19
  readonly membershipPolicies?: readonly MembershipPolicyDefinition[];
20
- readonly applicationIds?: ReadonlySet<string>;
21
20
  readonly objectTypeIds?: ReadonlySet<string>;
22
21
  readonly datasetIds?: ReadonlySet<string>;
23
22
  readonly actionIds?: ReadonlySet<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/security/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/security/registry.ts"],"names":[],"mappings":"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"}