@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
@@ -0,0 +1,315 @@
1
+ import { ARTIFACT_LIMITS } from "./limits"
2
+
3
+ /**
4
+ * A sheet artifact is `workbook.json` and one CSV per sheet under `sheets/`. The CSV holds the
5
+ * values; the workbook holds what CSV can't: sheet order, column types and formats, frozen rows
6
+ * and columns, widths, and charts drawn from the sheets. Formulas belong in an `.xlsx` file.
7
+ */
8
+ export const WORKBOOK_FILE = "workbook.json"
9
+
10
+ export const SHEET_COLUMN_TYPES = [
11
+ "text",
12
+ "number",
13
+ "currency",
14
+ "percent",
15
+ "date",
16
+ "link",
17
+ "image",
18
+ ] as const
19
+ export type SheetColumnType = (typeof SHEET_COLUMN_TYPES)[number]
20
+
21
+ /** Column types whose cells are numbers, so a chart can plot them and a range can sum them. */
22
+ export const NUMERIC_COLUMN_TYPES: readonly SheetColumnType[] = ["number", "currency", "percent"]
23
+
24
+ export const SHEET_CHART_TYPES = ["bar", "line", "area", "pie"] as const
25
+ export type SheetChartType = (typeof SHEET_CHART_TYPES)[number]
26
+
27
+ export interface SheetColumnFormat {
28
+ readonly type: SheetColumnType
29
+ /** An ISO 4217 code, for a currency column. */
30
+ readonly currency?: string
31
+ /** Digits after the decimal point, for numbers, currencies, and percents. */
32
+ readonly decimals?: number
33
+ }
34
+
35
+ export interface WorkbookSheet {
36
+ readonly name: string
37
+ /** Rows that stay in view as the sheet scrolls, the header row included. */
38
+ readonly frozenRows: number
39
+ /** Columns that stay in view as the sheet scrolls sideways. */
40
+ readonly frozenColumns: number
41
+ /** Formats by column name; a column not named here is text. */
42
+ readonly columns: Readonly<Record<string, SheetColumnFormat>>
43
+ /** Widths in pixels by column name. */
44
+ readonly widths: Readonly<Record<string, number>>
45
+ }
46
+
47
+ export interface WorkbookChart {
48
+ /** What `#chart=<name>` names in an address; lowercase letters, digits, and hyphens. */
49
+ readonly name: string
50
+ readonly type: SheetChartType
51
+ readonly sheet: string
52
+ /** The column along the x axis, or a pie's slice labels. */
53
+ readonly x: string
54
+ /** The plotted columns: one series each, or a pie's one value column. */
55
+ readonly y: readonly string[]
56
+ readonly title?: string
57
+ /** Stack a bar or area chart's series. */
58
+ readonly stacked: boolean
59
+ }
60
+
61
+ export interface Workbook {
62
+ readonly sheets: readonly WorkbookSheet[]
63
+ readonly charts: readonly WorkbookChart[]
64
+ }
65
+
66
+ /** Where a sheet's values are, in the artifact. */
67
+ export function sheetFilePath(sheetName: string): string {
68
+ return `sheets/${sheetName}.csv`
69
+ }
70
+
71
+ /**
72
+ * Reads `workbook.json` into its full form: `"Revenue": "currency"` becomes
73
+ * `{ type: "currency" }`, a single `y` becomes a list, and defaults are filled. Returns what is
74
+ * wrong in words the author can act on. Whether the columns exist is checked against the CSVs.
75
+ */
76
+ export function parseWorkbook(
77
+ text: string
78
+ ): { readonly workbook: Workbook } | { readonly error: string } {
79
+ let value: unknown
80
+ try {
81
+ value = JSON.parse(text)
82
+ } catch {
83
+ return { error: `${WORKBOOK_FILE} is not valid JSON.` }
84
+ }
85
+ try {
86
+ return { workbook: readWorkbook(value) }
87
+ } catch (error) {
88
+ if (error instanceof WorkbookError) return { error: `${WORKBOOK_FILE}: ${error.message}` }
89
+ throw error
90
+ }
91
+ }
92
+
93
+ /** A number as a sheet stores it: plain digits, an optional sign, decimals, and exponent. */
94
+ export function parseSheetNumber(value: string): number | undefined {
95
+ const trimmed = value.trim()
96
+ if (!/^[-+]?(\d+\.?\d*|\.\d+)(e[-+]?\d+)?$/i.test(trimmed)) return undefined
97
+ const number = Number(trimmed)
98
+ return Number.isFinite(number) ? number : undefined
99
+ }
100
+
101
+ /** A date as a sheet stores it: `YYYY-MM-DD`, optionally with an ISO 8601 time. */
102
+ export function parseSheetDate(value: string): Date | undefined {
103
+ const trimmed = value.trim()
104
+ if (!/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[-+]\d{2}:\d{2})?)?$/.test(trimmed)) {
105
+ return undefined
106
+ }
107
+ const date = new Date(trimmed.length === 10 ? `${trimmed}T00:00:00Z` : trimmed)
108
+ return Number.isNaN(date.getTime()) ? undefined : date
109
+ }
110
+
111
+ class WorkbookError extends Error {}
112
+
113
+ const SHEET_NAME_MAX = 60
114
+ const CHART_NAME = /^[a-z0-9][a-z0-9-]{0,39}$/
115
+ const CONTROL = /[\u0000-\u001f\u007f]/
116
+
117
+ function readWorkbook(value: unknown): Workbook {
118
+ const input = record(value, "the workbook", ["sheets", "charts"])
119
+ if (!Array.isArray(input.sheets) || input.sheets.length === 0) {
120
+ throw new WorkbookError('"sheets" must list at least one sheet.')
121
+ }
122
+ if (input.sheets.length > ARTIFACT_LIMITS.maxSheets) {
123
+ throw new WorkbookError(
124
+ `a workbook holds at most ${ARTIFACT_LIMITS.maxSheets} sheets; this one has ${input.sheets.length}.`
125
+ )
126
+ }
127
+ const sheets = input.sheets.map((sheet, index) => readSheet(sheet, index))
128
+ const names = new Set<string>()
129
+ for (const sheet of sheets) {
130
+ const key = sheet.name.toLowerCase()
131
+ if (names.has(key)) throw new WorkbookError(`two sheets are named '${sheet.name}'.`)
132
+ names.add(key)
133
+ }
134
+
135
+ const chartsInput = input.charts ?? []
136
+ if (!Array.isArray(chartsInput)) throw new WorkbookError('"charts" must be a list.')
137
+ if (chartsInput.length > ARTIFACT_LIMITS.maxCharts) {
138
+ throw new WorkbookError(
139
+ `a workbook holds at most ${ARTIFACT_LIMITS.maxCharts} charts; this one has ${chartsInput.length}.`
140
+ )
141
+ }
142
+ const charts = chartsInput.map((chart, index) => readChart(chart, index, sheets))
143
+ const chartNames = new Set<string>()
144
+ for (const chart of charts) {
145
+ if (chartNames.has(chart.name)) throw new WorkbookError(`two charts are named '${chart.name}'.`)
146
+ chartNames.add(chart.name)
147
+ }
148
+ return { sheets, charts }
149
+ }
150
+
151
+ function readSheet(value: unknown, index: number): WorkbookSheet {
152
+ const at = `sheet ${index + 1}`
153
+ const input = record(value, at, ["name", "frozenRows", "frozenColumns", "columns", "widths"])
154
+ const name = typeof input.name === "string" ? input.name.trim() : ""
155
+ if (
156
+ !name ||
157
+ name.length > SHEET_NAME_MAX ||
158
+ CONTROL.test(name) ||
159
+ /[/\\]/.test(name) ||
160
+ name === "." ||
161
+ name === ".."
162
+ ) {
163
+ throw new WorkbookError(
164
+ `${at} needs a "name" of at most ${SHEET_NAME_MAX} characters without / or \\; its values go in sheets/<name>.csv.`
165
+ )
166
+ }
167
+ const sheetAt = `sheet '${name}'`
168
+ const columns: Record<string, SheetColumnFormat> = {}
169
+ for (const [column, format] of Object.entries(
170
+ record(input.columns ?? {}, `${sheetAt} "columns"`, null)
171
+ )) {
172
+ columns[column] = readColumnFormat(format, `${sheetAt} column '${column}'`)
173
+ }
174
+ const widths: Record<string, number> = {}
175
+ for (const [column, width] of Object.entries(
176
+ record(input.widths ?? {}, `${sheetAt} "widths"`, null)
177
+ )) {
178
+ if (typeof width !== "number" || !Number.isInteger(width) || width < 40 || width > 800) {
179
+ throw new WorkbookError(
180
+ `${sheetAt} gives column '${column}' a width of ${String(width)}; use 40 to 800 pixels.`
181
+ )
182
+ }
183
+ widths[column] = width
184
+ }
185
+ return {
186
+ name,
187
+ frozenRows: integer(input.frozenRows, 1, 0, 10, `${sheetAt} "frozenRows"`),
188
+ frozenColumns: integer(input.frozenColumns, 0, 0, 5, `${sheetAt} "frozenColumns"`),
189
+ columns,
190
+ widths,
191
+ }
192
+ }
193
+
194
+ function readColumnFormat(value: unknown, at: string): SheetColumnFormat {
195
+ if (typeof value === "string") return { type: columnType(value, at) }
196
+ const input = record(value, at, ["type", "currency", "decimals"])
197
+ const type = columnType(input.type, at)
198
+ if (input.currency !== undefined) {
199
+ if (type !== "currency")
200
+ throw new WorkbookError(`${at} sets "currency" but is not a currency column.`)
201
+ if (typeof input.currency !== "string" || !/^[A-Z]{3}$/.test(input.currency)) {
202
+ throw new WorkbookError(`${at} "currency" must be an ISO 4217 code such as "USD".`)
203
+ }
204
+ }
205
+ if (input.decimals !== undefined && !["number", "currency", "percent"].includes(type)) {
206
+ throw new WorkbookError(
207
+ `${at} sets "decimals" but is not a number, currency, or percent column.`
208
+ )
209
+ }
210
+ return {
211
+ type,
212
+ ...(typeof input.currency === "string" ? { currency: input.currency } : {}),
213
+ ...(input.decimals === undefined
214
+ ? {}
215
+ : { decimals: integer(input.decimals, 0, 0, 6, `${at} "decimals"`) }),
216
+ }
217
+ }
218
+
219
+ function columnType(value: unknown, at: string): SheetColumnType {
220
+ if (typeof value === "string" && (SHEET_COLUMN_TYPES as readonly string[]).includes(value)) {
221
+ return value as SheetColumnType
222
+ }
223
+ throw new WorkbookError(
224
+ `${at} has type ${JSON.stringify(value)}; use one of ${SHEET_COLUMN_TYPES.join(", ")}.`
225
+ )
226
+ }
227
+
228
+ function readChart(value: unknown, index: number, sheets: readonly WorkbookSheet[]): WorkbookChart {
229
+ const input = record(value, `chart ${index + 1}`, [
230
+ "name",
231
+ "type",
232
+ "sheet",
233
+ "x",
234
+ "y",
235
+ "title",
236
+ "stacked",
237
+ ])
238
+ if (typeof input.name !== "string" || !CHART_NAME.test(input.name)) {
239
+ throw new WorkbookError(
240
+ `chart ${index + 1} needs a "name" of lowercase letters, digits, and hyphens, such as "revenue".`
241
+ )
242
+ }
243
+ const at = `chart '${input.name}'`
244
+ if (!(SHEET_CHART_TYPES as readonly unknown[]).includes(input.type)) {
245
+ throw new WorkbookError(
246
+ `${at} has type ${JSON.stringify(input.type)}; use one of ${SHEET_CHART_TYPES.join(", ")}.`
247
+ )
248
+ }
249
+ const type = input.type as SheetChartType
250
+ if (typeof input.sheet !== "string" || !sheets.some((sheet) => sheet.name === input.sheet)) {
251
+ throw new WorkbookError(
252
+ `${at} names sheet ${JSON.stringify(input.sheet)}, which the workbook does not have.`
253
+ )
254
+ }
255
+ if (typeof input.x !== "string" || !input.x) throw new WorkbookError(`${at} needs an "x" column.`)
256
+ const y = typeof input.y === "string" ? [input.y] : input.y
257
+ if (
258
+ !Array.isArray(y) ||
259
+ y.length === 0 ||
260
+ !y.every((column) => typeof column === "string" && column)
261
+ ) {
262
+ throw new WorkbookError(`${at} needs a "y" column, or a list of them.`)
263
+ }
264
+ if (y.length > ARTIFACT_LIMITS.maxChartSeries) {
265
+ throw new WorkbookError(
266
+ `${at} plots ${y.length} columns; a chart reads well with at most ${ARTIFACT_LIMITS.maxChartSeries}. Split it, or chart the ones that matter.`
267
+ )
268
+ }
269
+ if (type === "pie" && y.length !== 1)
270
+ throw new WorkbookError(`${at} is a pie: give it one "y" column.`)
271
+ if (input.stacked !== undefined && typeof input.stacked !== "boolean") {
272
+ throw new WorkbookError(`${at} "stacked" must be true or false.`)
273
+ }
274
+ if (input.stacked === true && type !== "bar" && type !== "area") {
275
+ throw new WorkbookError(`${at} is a ${type} chart; only bar and area charts stack.`)
276
+ }
277
+ if (input.title !== undefined && (typeof input.title !== "string" || input.title.length > 120)) {
278
+ throw new WorkbookError(`${at} "title" must be text of at most 120 characters.`)
279
+ }
280
+ return {
281
+ name: input.name,
282
+ type,
283
+ sheet: input.sheet,
284
+ x: input.x,
285
+ y: y as string[],
286
+ ...(typeof input.title === "string" && input.title.trim() ? { title: input.title.trim() } : {}),
287
+ stacked: input.stacked === true,
288
+ }
289
+ }
290
+
291
+ function record(
292
+ value: unknown,
293
+ at: string,
294
+ keys: readonly string[] | null
295
+ ): Record<string, unknown> {
296
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
297
+ throw new WorkbookError(`${at} must be an object.`)
298
+ }
299
+ const input = value as Record<string, unknown>
300
+ const unknownKey = keys && Object.keys(input).find((key) => !keys.includes(key))
301
+ if (unknownKey) {
302
+ throw new WorkbookError(
303
+ `${at} has '${unknownKey}'; it takes ${keys.map((key) => `"${key}"`).join(", ")}.`
304
+ )
305
+ }
306
+ return input
307
+ }
308
+
309
+ function integer(value: unknown, fallback: number, min: number, max: number, at: string): number {
310
+ if (value === undefined) return fallback
311
+ if (typeof value !== "number" || !Number.isInteger(value) || value < min || value > max) {
312
+ throw new WorkbookError(`${at} must be a whole number from ${min} to ${max}.`)
313
+ }
314
+ return value
315
+ }
@@ -1,9 +1,8 @@
1
- import type { AuthSessionAudience } from "./audience"
2
- import { DEFAULT_AUTH_SESSION_AUDIENCE, resolveAuthSessionAudience } from "./audience"
3
1
  import type { AuthCookieOptions } from "./types"
4
2
 
5
- export const DEFAULT_SESSION_COOKIE_NAME = "sixb_session"
6
- export const DEFAULT_CSRF_COOKIE_NAME = "sixb_csrf"
3
+ // The names the app's cookies had beside Atlas's, so its sessions survived Atlas leaving.
4
+ export const DEFAULT_SESSION_COOKIE_NAME = "sixb_session_app"
5
+ export const DEFAULT_CSRF_COOKIE_NAME = "sixb_csrf_app"
7
6
 
8
7
  export interface ResolvedAuthCookieOptions {
9
8
  readonly sessionCookieName: string
@@ -41,22 +40,6 @@ export function resolveAuthCookieOptions(
41
40
  return resolved
42
41
  }
43
42
 
44
- export function resolveAuthCookieOptionsForAudience(
45
- options: ResolvedAuthCookieOptions,
46
- audience: AuthSessionAudience | undefined
47
- ): ResolvedAuthCookieOptions {
48
- const resolvedAudience = resolveAuthSessionAudience(audience)
49
- if (resolvedAudience === DEFAULT_AUTH_SESSION_AUDIENCE) {
50
- return options
51
- }
52
-
53
- return {
54
- ...options,
55
- sessionCookieName: `${options.sessionCookieName}_${resolvedAudience}`,
56
- csrfCookieName: `${options.csrfCookieName}_${resolvedAudience}`,
57
- }
58
- }
59
-
60
43
  export function parseCookieHeader(header: string | null): ReadonlyMap<string, string> {
61
44
  const cookies = new Map<string, string>()
62
45
  if (!header) {
package/src/auth/index.ts CHANGED
@@ -9,12 +9,6 @@ export {
9
9
  parseAccessTokenValue,
10
10
  SERVICE_ACCOUNT_ACCESS_TOKEN_PREFIX,
11
11
  } from "./access-tokens"
12
- export type { AuthSessionAudience, AuthSessionAudienceOptions } from "./audience"
13
- export {
14
- DEFAULT_AUTH_SESSION_AUDIENCE,
15
- isValidAuthSessionAudience,
16
- resolveAuthSessionAudience,
17
- } from "./audience"
18
12
  export { getRequestClientAddress, setRequestClientAddress } from "./client-address"
19
13
  export {
20
14
  clearCsrfCookieHeader,
@@ -1,9 +1,5 @@
1
1
  import { randomUUID } from "node:crypto"
2
- import {
3
- type AuthorizationContext,
4
- canAccessApplication,
5
- resolveAuthorizationContext,
6
- } from "../authorization"
2
+ import { type AuthorizationContext, resolveAuthorizationContext } from "../authorization"
7
3
  import {
8
4
  canPerformMembershipOperation,
9
5
  type GroupReference,
@@ -33,13 +29,8 @@ import {
33
29
  hashAccessTokenSecret,
34
30
  parseAccessTokenValue,
35
31
  } from "./access-tokens"
36
- import { type AuthSessionAudience, DEFAULT_AUTH_SESSION_AUDIENCE } from "./audience"
37
32
  import { getRequestClientAddress } from "./client-address"
38
- import {
39
- getCookie,
40
- type ResolvedAuthCookieOptions,
41
- resolveAuthCookieOptionsForAudience,
42
- } from "./cookies"
33
+ import { getCookie, type ResolvedAuthCookieOptions } from "./cookies"
43
34
  import { AuthRuntimeError } from "./errors"
44
35
  import { SessionCache } from "./session-cache"
45
36
  import {
@@ -108,7 +99,6 @@ import {
108
99
  isInvitationDeliveryAuthStrategy,
109
100
  normalizePagination,
110
101
  resolveAuthConfig,
111
- resolveAuthSessionAudience,
112
102
  resolveInvitationExpiresAt,
113
103
  } from "./validation"
114
104
 
@@ -184,8 +174,8 @@ export class AuthRuntime {
184
174
  }
185
175
  }
186
176
 
187
- getCookieOptions(options: AuthSessionResolutionOptions = {}): ResolvedAuthCookieOptions {
188
- return resolveAuthCookieOptionsForAudience(this.config.cookies, options.audience)
177
+ getCookieOptions(): ResolvedAuthCookieOptions {
178
+ return this.config.cookies
189
179
  }
190
180
 
191
181
  assertCanServeHttp(params: { readonly production: boolean }): void {
@@ -240,8 +230,6 @@ export class AuthRuntime {
240
230
  return { authenticated: false, reason: "auth_disabled" }
241
231
  }
242
232
 
243
- const audience = resolveAuthSessionAudience(options.audience)
244
-
245
233
  if (options.credentialSource === "any") {
246
234
  const tokenValue = getBearerAccessTokenValue(request)
247
235
  if (tokenValue?.startsWith(SESSION_ACCESS_TOKEN_PREFIX)) {
@@ -257,15 +245,14 @@ export class AuthRuntime {
257
245
  }
258
246
  }
259
247
 
260
- return this.resolveCookieSession(request, audience, options.sessionActivity)
248
+ return this.resolveCookieSession(request, options.sessionActivity)
261
249
  }
262
250
 
263
251
  private async resolveCookieSession(
264
252
  request: Request,
265
- audience: ReturnType<typeof resolveAuthSessionAudience>,
266
253
  activity: AuthSessionResolutionOptions["sessionActivity"]
267
254
  ): Promise<AuthSessionResult> {
268
- const cookieOptions = this.getCookieOptions({ audience })
255
+ const cookieOptions = this.getCookieOptions()
269
256
  const cookieValue = getCookie(request, cookieOptions.sessionCookieName)
270
257
  if (!cookieValue) {
271
258
  return { authenticated: false, reason: "missing_cookie" }
@@ -283,7 +270,6 @@ export class AuthRuntime {
283
270
  sessionId: parts.sessionId,
284
271
  tokenHash,
285
272
  transport: "cookie",
286
- audience,
287
273
  nowMs,
288
274
  })
289
275
  if (cached) {
@@ -298,7 +284,6 @@ export class AuthRuntime {
298
284
  let session = await storage.sessions.findValidByTokenHash({
299
285
  projectId: this.projectId,
300
286
  id: parts.sessionId,
301
- audience,
302
287
  tokenHash,
303
288
  now,
304
289
  })
@@ -312,7 +297,6 @@ export class AuthRuntime {
312
297
  const renewed = await storage.sessions.renewIfValid({
313
298
  projectId: this.projectId,
314
299
  id: parts.sessionId,
315
- audience,
316
300
  tokenHash,
317
301
  now,
318
302
  expiresAt: this.getRenewedSessionExpiresAt(session, nowMs),
@@ -388,7 +372,6 @@ export class AuthRuntime {
388
372
  this.sessionCache?.set({
389
373
  sessionId: session.id,
390
374
  tokenHash,
391
- audience: session.audience,
392
375
  session: result,
393
376
  nowMs: now.getTime(),
394
377
  sessionExpiresAtMs: session.expiresAt.getTime(),
@@ -418,8 +401,6 @@ export class AuthRuntime {
418
401
  projectId: this.projectId,
419
402
  userId: input.userId,
420
403
  strategyId: "device",
421
- // A native session belongs to no web app. The column needs a value; nothing reads it.
422
- audience: DEFAULT_AUTH_SESSION_AUDIENCE,
423
404
  tokenHash: tokens.tokenHash,
424
405
  createdAt: input.now,
425
406
  ...this.createSessionDeadlines(input.now),
@@ -712,6 +693,11 @@ export class AuthRuntime {
712
693
  caller: AuthenticatedUserRequestSession
713
694
  ): Promise<ListServiceAccountsResult> {
714
695
  const storage = this.requireAuthStorage()
696
+ const scope = this.resolveMembershipPolicyScopeForUser(caller.groupIds)
697
+ if (scope.operations.serviceAccounts.policyIds.length === 0) {
698
+ return { serviceAccounts: [] }
699
+ }
700
+
715
701
  const result = await storage.serviceAccounts.list({
716
702
  projectId: this.projectId,
717
703
  order: "desc",
@@ -724,11 +710,11 @@ export class AuthRuntime {
724
710
  }))
725
711
  )
726
712
 
727
- // A caller only sees the service accounts it is allowed to manage, so
728
- // listing never leaks the groups of more-privileged accounts.
713
+ // A caller only sees the service accounts its membership policies cover, so
714
+ // listing never leaks the groups of accounts outside its scope.
729
715
  return {
730
716
  serviceAccounts: withGroups.filter(({ groupIds }) =>
731
- callerCanManageServiceAccount(caller.groupIds, groupIds)
717
+ canPerformMembershipOperation(scope, "serviceAccounts", groupIds)
732
718
  ),
733
719
  }
734
720
  }
@@ -738,11 +724,9 @@ export class AuthRuntime {
738
724
  input: CreateServiceAccountInput
739
725
  ): Promise<CreateServiceAccountResult> {
740
726
  const storage = this.requireAuthStorage()
741
- // A caller can only place a service account in groups it itself belongs to.
742
- const groupIds =
743
- constrainRequestedGroupIds(input.groupIds, caller.groupIds, {
744
- subject: "service account",
745
- }) ?? []
727
+ // A caller can only place a service account in groups its `serviceAccounts` policies cover.
728
+ const groupIds = normalizeRequestedGroupIds(input.groupIds) ?? []
729
+ this.assertCanManageServiceAccountGroups(caller.groupIds, groupIds)
746
730
  const now = new Date()
747
731
  const serviceAccount = await storage.serviceAccounts.create({
748
732
  id: input.id ?? `svc_${randomUUID()}`,
@@ -829,8 +813,8 @@ export class AuthRuntime {
829
813
  }
830
814
 
831
815
  // The token can only carry groups the service account already holds; the
832
- // manageability check above guarantees those are a subset of the caller's
833
- // own groups, so the caller can never mint privileges it lacks.
816
+ // manageability check above guarantees those are within the caller's
817
+ // `serviceAccounts` scope, so the token never reaches past that scope.
834
818
  const groupIds = constrainRequestedGroupIds(input.groupIds, serviceAccountGroupIds, {
835
819
  subject: "service account token",
836
820
  })
@@ -888,12 +872,10 @@ export class AuthRuntime {
888
872
  /**
889
873
  * Resolve a service account the caller is allowed to manage.
890
874
  *
891
- * A caller may manage a service account only when it belongs to every group
892
- * the account is in ("you can manage what you could have created"). This
893
- * confines token minting, disabling, and revocation to privileges the caller
894
- * already holds and prevents a service-account token from outliving the
895
- * caller's own access. Missing and non-manageable accounts raise the same
896
- * error so callers cannot probe which privileged accounts exist.
875
+ * A caller needs a membership policy with the `serviceAccounts` operation whose scope covers every
876
+ * group the account is in ("you can manage what you could have created"). This confines token
877
+ * minting, disabling, and revocation to the groups the project's policies hand out. Missing and
878
+ * out-of-scope accounts raise the same error so callers cannot probe which accounts exist.
897
879
  */
898
880
  private async requireManageableServiceAccount(
899
881
  storage: AuthStorage,
@@ -903,6 +885,11 @@ export class AuthRuntime {
903
885
  readonly serviceAccount: ServiceAccountRecord
904
886
  readonly groupIds: readonly string[]
905
887
  }> {
888
+ const scope = this.resolveMembershipPolicyScopeForUser(callerGroupIds)
889
+ if (scope.operations.serviceAccounts.policyIds.length === 0) {
890
+ throw missingServiceAccountsPolicyError()
891
+ }
892
+
906
893
  const serviceAccount = await storage.serviceAccounts.getById({
907
894
  projectId: this.projectId,
908
895
  id: serviceAccountId,
@@ -911,7 +898,7 @@ export class AuthRuntime {
911
898
  ? await this.listServiceAccountGroupIds(storage, serviceAccountId)
912
899
  : []
913
900
 
914
- if (!serviceAccount || !callerCanManageServiceAccount(callerGroupIds, groupIds)) {
901
+ if (!serviceAccount || !canPerformMembershipOperation(scope, "serviceAccounts", groupIds)) {
915
902
  throw new AuthStorageError(
916
903
  "missing_service_account",
917
904
  `[Sixb] Service account '${serviceAccountId}' not found for project '${this.projectId}'.`
@@ -975,6 +962,7 @@ export class AuthRuntime {
975
962
  return {
976
963
  // The member-admin edit-groups dialog assigns from the `assignGroups` scope.
977
964
  groups: this.scopedGroupOptions(scope.operations.assignGroups.groupIds),
965
+ serviceAccountGroups: this.scopedGroupOptions(scope.operations.serviceAccounts.groupIds),
978
966
  capabilities: membershipCapabilities(scope).holds,
979
967
  }
980
968
  }
@@ -1163,7 +1151,7 @@ export class AuthRuntime {
1163
1151
  return { user: reactivated, groupIds, managedGroupIds }
1164
1152
  }
1165
1153
 
1166
- /** The caller's active sessions across every audience, most recently active first. */
1154
+ /** The caller's active sessions, most recently active first. */
1167
1155
  async listSessions(caller: AuthenticatedUserRequestSession): Promise<readonly SessionRecord[]> {
1168
1156
  return this.requireAuthStorage().sessions.listActiveByUserId({
1169
1157
  projectId: this.projectId,
@@ -1195,7 +1183,7 @@ export class AuthRuntime {
1195
1183
  return true
1196
1184
  }
1197
1185
 
1198
- /** End every active session of the caller, across audiences. Returns how many ended. */
1186
+ /** End every active session of the caller. Returns how many ended. */
1199
1187
  async revokeAllSessions(caller: AuthenticatedUserRequestSession): Promise<number> {
1200
1188
  const revoked = await this.requireAuthStorage().sessions.revokeActiveForUser({
1201
1189
  projectId: this.projectId,
@@ -1284,7 +1272,6 @@ export class AuthRuntime {
1284
1272
  }
1285
1273
 
1286
1274
  await this.assertCanInviteRecipient(strategy, authStorage, input.email, now)
1287
- this.assertInvitationApplicationAccess(groupIds, destination.audience)
1288
1275
 
1289
1276
  const invitation = await authStorage.invitations.createOrUpdateActive({
1290
1277
  id: `inv_${randomUUID()}`,
@@ -1304,7 +1291,6 @@ export class AuthRuntime {
1304
1291
  projectId: this.projectId,
1305
1292
  authStorage,
1306
1293
  invitation,
1307
- audience: destination.audience,
1308
1294
  returnTo: destination.returnTo,
1309
1295
  requestOrigin: destination.requestOrigin,
1310
1296
  revealLink: input.revealLink,
@@ -1451,27 +1437,6 @@ export class AuthRuntime {
1451
1437
  return { state: "enabled" }
1452
1438
  }
1453
1439
 
1454
- private assertInvitationApplicationAccess(
1455
- groupIds: readonly string[],
1456
- audience: AuthSessionAudience
1457
- ): void {
1458
- // Check only the groups this invitation assigns. Existing memberships may
1459
- // be outside the caller's policy scope and must not affect this response.
1460
- const roles = this.security.listResolvedRoles()
1461
- const authorization = resolveAuthorizationContext({
1462
- principal: { type: "user", id: "invited-user" },
1463
- groupIds,
1464
- roles,
1465
- })
1466
-
1467
- if (canAccessApplication(authorization, roles, audience)) return
1468
-
1469
- throw new AuthRuntimeError(
1470
- "authorization_denied",
1471
- `[Sixb] Invitation groups do not grant access to application '${audience}'.`
1472
- )
1473
- }
1474
-
1475
1440
  private async assertCanInviteRecipient(
1476
1441
  strategy: InvitationDeliveryAuthStrategy,
1477
1442
  authStorage: AuthStorage,
@@ -1524,6 +1489,27 @@ export class AuthRuntime {
1524
1489
  )
1525
1490
  }
1526
1491
 
1492
+ private assertCanManageServiceAccountGroups(
1493
+ callerGroupIds: readonly string[],
1494
+ groupIds: readonly string[]
1495
+ ): void {
1496
+ const scope = this.resolveMembershipPolicyScopeForUser(callerGroupIds)
1497
+
1498
+ if (canPerformMembershipOperation(scope, "serviceAccounts", groupIds)) {
1499
+ return
1500
+ }
1501
+
1502
+ if (scope.operations.serviceAccounts.policyIds.length === 0) {
1503
+ throw missingServiceAccountsPolicyError()
1504
+ }
1505
+
1506
+ const missing = missingMembershipGroupIds(scope, "serviceAccounts", groupIds)
1507
+ throw new AuthRuntimeError(
1508
+ "authorization_denied",
1509
+ `[Sixb] The current user is not allowed to place service accounts in group(s): ${missing.join(", ")}.`
1510
+ )
1511
+ }
1512
+
1527
1513
  private assertCanManageInvitationGroups(
1528
1514
  callerGroupIds: readonly string[],
1529
1515
  groupIds: readonly string[]
@@ -1590,15 +1576,11 @@ function constrainTokenGroupIds(
1590
1576
  return principalGroupIds.filter((groupId) => allowed.has(groupId))
1591
1577
  }
1592
1578
 
1593
- // A caller may manage a service account only when it belongs to every group the
1594
- // account is in, so managing it can never grant more than the caller already
1595
- // has. An account with no groups is powerless and therefore freely manageable.
1596
- function callerCanManageServiceAccount(
1597
- callerGroupIds: readonly string[],
1598
- serviceAccountGroupIds: readonly string[]
1599
- ): boolean {
1600
- const callerGroups = new Set(callerGroupIds)
1601
- return serviceAccountGroupIds.every((groupId) => callerGroups.has(groupId))
1579
+ function missingServiceAccountsPolicyError(): AuthRuntimeError {
1580
+ return new AuthRuntimeError(
1581
+ "authorization_denied",
1582
+ "[Sixb] Managing service accounts needs a membership policy with the 'serviceAccounts' operation."
1583
+ )
1602
1584
  }
1603
1585
 
1604
1586
  function missingAccessTokenError(tokenId: string, projectId: string): AuthStorageError {
@@ -1701,6 +1683,7 @@ function membershipCapabilities(scope: MembershipPolicyScope): MembershipCapabil
1701
1683
  invite: scope.operations.invite.policyIds.length > 0,
1702
1684
  assignGroups: scope.operations.assignGroups.policyIds.length > 0,
1703
1685
  suspend: scope.operations.suspend.policyIds.length > 0,
1686
+ serviceAccounts: scope.operations.serviceAccounts.policyIds.length > 0,
1704
1687
  },
1705
1688
  assignableGroupIds: [...scope.operations.assignGroups.groupIds],
1706
1689
  covers: (operation, memberGroups) =>