@stigmer/server 3.25.0 → 3.27.0

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 (254) hide show
  1. package/dist/authorization/evaluator.d.ts +4 -1
  2. package/dist/authorization/evaluator.d.ts.map +1 -1
  3. package/dist/authorization/evaluator.js +8 -0
  4. package/dist/authorization/evaluator.js.map +1 -1
  5. package/dist/authorization/model/agent.d.ts.map +1 -1
  6. package/dist/authorization/model/agent.js +4 -2
  7. package/dist/authorization/model/agent.js.map +1 -1
  8. package/dist/authorization/model/agent_channel.d.ts.map +1 -1
  9. package/dist/authorization/model/agent_channel.js +5 -4
  10. package/dist/authorization/model/agent_channel.js.map +1 -1
  11. package/dist/authorization/model/agent_instance.d.ts.map +1 -1
  12. package/dist/authorization/model/agent_instance.js +3 -2
  13. package/dist/authorization/model/agent_instance.js.map +1 -1
  14. package/dist/authorization/model/mcp_server.d.ts.map +1 -1
  15. package/dist/authorization/model/mcp_server.js +3 -2
  16. package/dist/authorization/model/mcp_server.js.map +1 -1
  17. package/dist/authorization/model/organization.d.ts.map +1 -1
  18. package/dist/authorization/model/organization.js +3 -0
  19. package/dist/authorization/model/organization.js.map +1 -1
  20. package/dist/authorization/model/plugin.d.ts.map +1 -1
  21. package/dist/authorization/model/plugin.js +4 -2
  22. package/dist/authorization/model/plugin.js.map +1 -1
  23. package/dist/authorization/model/rewrite.d.ts +25 -7
  24. package/dist/authorization/model/rewrite.d.ts.map +1 -1
  25. package/dist/authorization/model/rewrite.js +40 -1
  26. package/dist/authorization/model/rewrite.js.map +1 -1
  27. package/dist/authorization/model/schedule.d.ts.map +1 -1
  28. package/dist/authorization/model/schedule.js +8 -3
  29. package/dist/authorization/model/schedule.js.map +1 -1
  30. package/dist/authorization/model/skill.d.ts.map +1 -1
  31. package/dist/authorization/model/skill.js +3 -2
  32. package/dist/authorization/model/skill.js.map +1 -1
  33. package/dist/authorization/model/workflow.d.ts.map +1 -1
  34. package/dist/authorization/model/workflow.js +3 -2
  35. package/dist/authorization/model/workflow.js.map +1 -1
  36. package/dist/authorization/model/workflow_execution.d.ts.map +1 -1
  37. package/dist/authorization/model/workflow_execution.js +4 -3
  38. package/dist/authorization/model/workflow_execution.js.map +1 -1
  39. package/dist/authorization/model/workflow_instance.d.ts.map +1 -1
  40. package/dist/authorization/model/workflow_instance.js +5 -1
  41. package/dist/authorization/model/workflow_instance.js.map +1 -1
  42. package/dist/boot/compose.d.ts.map +1 -1
  43. package/dist/boot/compose.js +13 -8
  44. package/dist/boot/compose.js.map +1 -1
  45. package/dist/boot/list-indexes.d.ts +3 -0
  46. package/dist/boot/list-indexes.d.ts.map +1 -0
  47. package/dist/boot/list-indexes.js +24 -0
  48. package/dist/boot/list-indexes.js.map +1 -0
  49. package/dist/domain/agentexecution/controller.d.ts.map +1 -1
  50. package/dist/domain/agentexecution/controller.js +6 -8
  51. package/dist/domain/agentexecution/controller.js.map +1 -1
  52. package/dist/domain/agentexecution/list-index.d.ts +2 -0
  53. package/dist/domain/agentexecution/list-index.d.ts.map +1 -0
  54. package/dist/domain/agentexecution/list-index.js +23 -0
  55. package/dist/domain/agentexecution/list-index.js.map +1 -0
  56. package/dist/domain/agentexecution/steps.d.ts +17 -33
  57. package/dist/domain/agentexecution/steps.d.ts.map +1 -1
  58. package/dist/domain/agentexecution/steps.js +94 -95
  59. package/dist/domain/agentexecution/steps.js.map +1 -1
  60. package/dist/domain/agentexecution/usage.d.ts.map +1 -1
  61. package/dist/domain/agentexecution/usage.js +37 -14
  62. package/dist/domain/agentexecution/usage.js.map +1 -1
  63. package/dist/domain/artifact/controller.d.ts.map +1 -1
  64. package/dist/domain/artifact/controller.js +27 -15
  65. package/dist/domain/artifact/controller.js.map +1 -1
  66. package/dist/domain/artifact/list-index.d.ts +2 -0
  67. package/dist/domain/artifact/list-index.d.ts.map +1 -0
  68. package/dist/domain/artifact/list-index.js +21 -0
  69. package/dist/domain/artifact/list-index.js.map +1 -0
  70. package/dist/domain/iampolicy/access-lists.d.ts +5 -3
  71. package/dist/domain/iampolicy/access-lists.d.ts.map +1 -1
  72. package/dist/domain/iampolicy/access-lists.js +72 -19
  73. package/dist/domain/iampolicy/access-lists.js.map +1 -1
  74. package/dist/domain/iampolicy/constants.d.ts +32 -6
  75. package/dist/domain/iampolicy/constants.d.ts.map +1 -1
  76. package/dist/domain/iampolicy/constants.js +41 -6
  77. package/dist/domain/iampolicy/constants.js.map +1 -1
  78. package/dist/domain/iampolicy/controller.d.ts +6 -0
  79. package/dist/domain/iampolicy/controller.d.ts.map +1 -1
  80. package/dist/domain/iampolicy/controller.js +16 -7
  81. package/dist/domain/iampolicy/controller.js.map +1 -1
  82. package/dist/domain/iampolicy/resource-store.d.ts.map +1 -1
  83. package/dist/domain/iampolicy/resource-store.js +2 -6
  84. package/dist/domain/iampolicy/resource-store.js.map +1 -1
  85. package/dist/domain/iampolicy/steps.d.ts.map +1 -1
  86. package/dist/domain/iampolicy/steps.js +49 -7
  87. package/dist/domain/iampolicy/steps.js.map +1 -1
  88. package/dist/domain/session/list-index.d.ts +4 -0
  89. package/dist/domain/session/list-index.d.ts.map +1 -0
  90. package/dist/domain/session/list-index.js +26 -0
  91. package/dist/domain/session/list-index.js.map +1 -0
  92. package/dist/domain/session/steps.d.ts +7 -8
  93. package/dist/domain/session/steps.d.ts.map +1 -1
  94. package/dist/domain/session/steps.js +76 -78
  95. package/dist/domain/session/steps.js.map +1 -1
  96. package/dist/domain/workflow/registry/data/task-kind-registry.json +1 -0
  97. package/dist/domain/workflowexecution/controller.d.ts.map +1 -1
  98. package/dist/domain/workflowexecution/controller.js +53 -55
  99. package/dist/domain/workflowexecution/controller.js.map +1 -1
  100. package/dist/domain/workflowexecution/execution-filter.d.ts +4 -0
  101. package/dist/domain/workflowexecution/execution-filter.d.ts.map +1 -1
  102. package/dist/domain/workflowexecution/execution-filter.js +11 -5
  103. package/dist/domain/workflowexecution/execution-filter.js.map +1 -1
  104. package/dist/domain/workflowexecution/get-execution-summary.d.ts.map +1 -1
  105. package/dist/domain/workflowexecution/get-execution-summary.js +23 -17
  106. package/dist/domain/workflowexecution/get-execution-summary.js.map +1 -1
  107. package/dist/domain/workflowexecution/list-index.d.ts +2 -0
  108. package/dist/domain/workflowexecution/list-index.d.ts.map +1 -0
  109. package/dist/domain/workflowexecution/list-index.js +21 -0
  110. package/dist/domain/workflowexecution/list-index.js.map +1 -0
  111. package/dist/domain/workflowexecution/list-pending-approvals.d.ts.map +1 -1
  112. package/dist/domain/workflowexecution/list-pending-approvals.js +69 -32
  113. package/dist/domain/workflowexecution/list-pending-approvals.js.map +1 -1
  114. package/dist/domain/workflowexecution/queries.d.ts +30 -4
  115. package/dist/domain/workflowexecution/queries.d.ts.map +1 -1
  116. package/dist/domain/workflowexecution/queries.js +76 -22
  117. package/dist/domain/workflowexecution/queries.js.map +1 -1
  118. package/dist/extensions/drivers.d.ts +12 -0
  119. package/dist/extensions/drivers.d.ts.map +1 -1
  120. package/dist/extensions/gate-slots.d.ts +10 -1
  121. package/dist/extensions/gate-slots.d.ts.map +1 -1
  122. package/dist/extensions/gate-slots.js +1 -0
  123. package/dist/extensions/gate-slots.js.map +1 -1
  124. package/dist/extensions/list-read-scope.d.ts +9 -12
  125. package/dist/extensions/list-read-scope.d.ts.map +1 -1
  126. package/dist/extensions/list-read-scope.js.map +1 -1
  127. package/dist/extensions/principal-display.d.ts +34 -0
  128. package/dist/extensions/principal-display.d.ts.map +1 -0
  129. package/dist/extensions/principal-display.js +2 -0
  130. package/dist/extensions/principal-display.js.map +1 -0
  131. package/dist/extensions/registry.d.ts +6 -0
  132. package/dist/extensions/registry.d.ts.map +1 -1
  133. package/dist/extensions/registry.js +10 -0
  134. package/dist/extensions/registry.js.map +1 -1
  135. package/dist/index.d.ts +4 -2
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +6 -1
  138. package/dist/index.js.map +1 -1
  139. package/dist/pipeline/apiresource-meta.d.ts +10 -0
  140. package/dist/pipeline/apiresource-meta.d.ts.map +1 -1
  141. package/dist/pipeline/apiresource-meta.js +16 -0
  142. package/dist/pipeline/apiresource-meta.js.map +1 -1
  143. package/dist/pipeline/steps/list-page.d.ts +63 -0
  144. package/dist/pipeline/steps/list-page.d.ts.map +1 -0
  145. package/dist/pipeline/steps/list-page.js +187 -0
  146. package/dist/pipeline/steps/list-page.js.map +1 -0
  147. package/dist/query/activity/handler.d.ts +6 -7
  148. package/dist/query/activity/handler.d.ts.map +1 -1
  149. package/dist/query/activity/handler.js +42 -59
  150. package/dist/query/activity/handler.js.map +1 -1
  151. package/dist/store/interface.d.ts +29 -0
  152. package/dist/store/interface.d.ts.map +1 -1
  153. package/dist/store/interface.js.map +1 -1
  154. package/dist/store/list-index.d.ts +123 -0
  155. package/dist/store/list-index.d.ts.map +1 -0
  156. package/dist/store/list-index.js +277 -0
  157. package/dist/store/list-index.js.map +1 -0
  158. package/dist/store/logger.d.ts +3 -0
  159. package/dist/store/logger.d.ts.map +1 -1
  160. package/dist/store/logger.js +5 -1
  161. package/dist/store/logger.js.map +1 -1
  162. package/dist/store/postgres/migrations.d.ts +10 -6
  163. package/dist/store/postgres/migrations.d.ts.map +1 -1
  164. package/dist/store/postgres/migrations.js +64 -6
  165. package/dist/store/postgres/migrations.js.map +1 -1
  166. package/dist/store/postgres/store.d.ts +26 -5
  167. package/dist/store/postgres/store.d.ts.map +1 -1
  168. package/dist/store/postgres/store.js +377 -22
  169. package/dist/store/postgres/store.js.map +1 -1
  170. package/dist/store/sqlite/migrations.d.ts +11 -5
  171. package/dist/store/sqlite/migrations.d.ts.map +1 -1
  172. package/dist/store/sqlite/migrations.js +50 -4
  173. package/dist/store/sqlite/migrations.js.map +1 -1
  174. package/dist/store/sqlite/store.d.ts +18 -3
  175. package/dist/store/sqlite/store.d.ts.map +1 -1
  176. package/dist/store/sqlite/store.js +321 -15
  177. package/dist/store/sqlite/store.js.map +1 -1
  178. package/package.json +6 -6
  179. package/src/authorization/__tests__/drivers.ts +6 -1
  180. package/src/authorization/__tests__/evaluator.test.ts +127 -2
  181. package/src/authorization/evaluator.ts +12 -1
  182. package/src/authorization/model/__tests__/registry.test.ts +64 -2
  183. package/src/authorization/model/agent.ts +4 -1
  184. package/src/authorization/model/agent_channel.ts +11 -3
  185. package/src/authorization/model/agent_instance.ts +3 -1
  186. package/src/authorization/model/mcp_server.ts +3 -1
  187. package/src/authorization/model/organization.ts +3 -0
  188. package/src/authorization/model/plugin.ts +4 -1
  189. package/src/authorization/model/rewrite.ts +65 -8
  190. package/src/authorization/model/schedule.ts +11 -2
  191. package/src/authorization/model/skill.ts +3 -1
  192. package/src/authorization/model/workflow.ts +3 -1
  193. package/src/authorization/model/workflow_execution.ts +4 -2
  194. package/src/authorization/model/workflow_instance.ts +5 -0
  195. package/src/boot/__tests__/list-indexes.test.ts +65 -0
  196. package/src/boot/compose.ts +25 -13
  197. package/src/boot/list-indexes.ts +25 -0
  198. package/src/domain/agentexecution/__tests__/agentexecution.test.ts +85 -3
  199. package/src/domain/agentexecution/controller.ts +8 -10
  200. package/src/domain/agentexecution/list-index.ts +24 -0
  201. package/src/domain/agentexecution/steps.ts +118 -115
  202. package/src/domain/agentexecution/usage.ts +38 -17
  203. package/src/domain/artifact/controller.ts +28 -18
  204. package/src/domain/artifact/list-index.ts +22 -0
  205. package/src/domain/iampolicy/__tests__/access-lists.test.ts +120 -6
  206. package/src/domain/iampolicy/__tests__/constants.test.ts +26 -4
  207. package/src/domain/iampolicy/__tests__/controller.test.ts +55 -1
  208. package/src/domain/iampolicy/__tests__/grant-path.test.ts +3 -3
  209. package/src/domain/iampolicy/__tests__/steps.test.ts +123 -1
  210. package/src/domain/iampolicy/access-lists.ts +98 -23
  211. package/src/domain/iampolicy/constants.ts +50 -6
  212. package/src/domain/iampolicy/controller.ts +30 -7
  213. package/src/domain/iampolicy/resource-store.ts +3 -6
  214. package/src/domain/iampolicy/steps.ts +89 -7
  215. package/src/domain/session/list-index.ts +28 -0
  216. package/src/domain/session/steps.ts +108 -123
  217. package/src/domain/workflow/registry/data/task-kind-registry.json +1 -0
  218. package/src/domain/workflowexecution/__tests__/list-read-scope-summaries.test.ts +155 -99
  219. package/src/domain/workflowexecution/__tests__/workflowexecution.test.ts +193 -31
  220. package/src/domain/workflowexecution/controller.ts +54 -82
  221. package/src/domain/workflowexecution/execution-filter.ts +20 -7
  222. package/src/domain/workflowexecution/get-execution-summary.ts +31 -24
  223. package/src/domain/workflowexecution/list-index.ts +22 -0
  224. package/src/domain/workflowexecution/list-pending-approvals.ts +82 -25
  225. package/src/domain/workflowexecution/queries.ts +134 -23
  226. package/src/extensions/__tests__/iam-policy-points.test.ts +30 -0
  227. package/src/extensions/__tests__/registry.test.ts +3 -0
  228. package/src/extensions/drivers.ts +12 -0
  229. package/src/extensions/gate-slots.ts +10 -0
  230. package/src/extensions/list-read-scope.ts +9 -12
  231. package/src/extensions/principal-display.ts +37 -0
  232. package/src/extensions/registry.ts +19 -0
  233. package/src/index.ts +19 -1
  234. package/src/pipeline/apiresource-meta.ts +21 -0
  235. package/src/pipeline/steps/__tests__/list-page.test.ts +186 -0
  236. package/src/pipeline/steps/list-page.ts +284 -0
  237. package/src/query/activity/handler.ts +57 -78
  238. package/src/store/README.md +51 -32
  239. package/src/store/__tests__/list-index.measure.test.ts +293 -0
  240. package/src/store/__tests__/list-index.test.ts +328 -0
  241. package/src/store/__tests__/store-contract.ts +346 -3
  242. package/src/store/interface.ts +39 -0
  243. package/src/store/list-index.ts +465 -0
  244. package/src/store/logger.ts +8 -1
  245. package/src/store/postgres/__tests__/list-index-repair.test.ts +133 -0
  246. package/src/store/postgres/__tests__/migrations.test.ts +27 -19
  247. package/src/store/postgres/__tests__/store-contract.test.ts +50 -3
  248. package/src/store/postgres/migrations.ts +69 -7
  249. package/src/store/postgres/store.ts +485 -29
  250. package/src/store/sqlite/__tests__/migrations.test.ts +51 -7
  251. package/src/store/sqlite/__tests__/store-contract.test.ts +70 -16
  252. package/src/store/sqlite/__tests__/support.ts +12 -3
  253. package/src/store/sqlite/migrations.ts +57 -6
  254. package/src/store/sqlite/store.ts +462 -21
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/domain/artifact/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/domain/artifact/controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const artifactListIndex: import("../../store/list-index.js").ListIndexDeclaration<"agent_execution" | "workflow_execution">;
2
+ //# sourceMappingURL=list-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-index.d.ts","sourceRoot":"","sources":["../../../src/domain/artifact/list-index.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,iBAAiB,oGAQ5B,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The artifact list index (store/list-index.ts): an artifact names the
3
+ * execution that produced it, agent or workflow, and
4
+ * `listByExecution` reads the one the request names.
5
+ *
6
+ * A change to `keys` bumps `revision` (boot/__tests__/list-indexes.test.ts
7
+ * pins the pair).
8
+ */
9
+ import { ArtifactSchema } from "@stigmer/protos/ai/stigmer/agentic/artifact/v1/api_pb";
10
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
11
+ import { declareListIndex, field } from "../../store/list-index.js";
12
+ export const artifactListIndex = declareListIndex({
13
+ kind: ApiResourceKind.artifact,
14
+ schema: ArtifactSchema,
15
+ revision: 1,
16
+ keys: {
17
+ agent_execution: field("spec.source.agent_execution_id"),
18
+ workflow_execution: field("spec.source.workflow_execution_id"),
19
+ },
20
+ });
21
+ //# sourceMappingURL=list-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-index.js","sourceRoot":"","sources":["../../../src/domain/artifact/list-index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;IAChD,IAAI,EAAE,eAAe,CAAC,QAAQ;IAC9B,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE;QACJ,eAAe,EAAE,KAAK,CAAC,gCAAgC,CAAC;QACxD,kBAAkB,EAAE,KAAK,CAAC,mCAAmC,CAAC;KAC/D;CACF,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ApiResourceRefView, PrincipalAccess } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/io_pb";
2
+ import type { PrincipalDisplay } from "../../extensions/principal-display.js";
2
3
  import type { IamPolicyStore } from "./store.js";
3
4
  export interface HierarchyLevel {
4
5
  readonly kind: string;
@@ -20,8 +21,9 @@ export interface PrincipalDisplayResolver {
20
21
  }
21
22
  /**
22
23
  * Groups assignable-role policies by principal in first-seen order (the
23
- * Java LinkedHashMap contract), enriched where the resolver answers and
24
- * the Java fallback shape (name = id) everywhere else.
24
+ * Java LinkedHashMap contract), enriched where the resolver (people) or
25
+ * the composed principal display (every other kind) answers, and the Java
26
+ * fallback shape (name = id) everywhere else.
25
27
  */
26
- export declare function buildPrincipalAccessList(policies: IamPolicyStore, displayResolver: PrincipalDisplayResolver, hierarchy: ReadonlyArray<HierarchyLevel>): Promise<ReadonlyArray<PrincipalAccess>>;
28
+ export declare function buildPrincipalAccessList(policies: IamPolicyStore, displayResolver: PrincipalDisplayResolver, principalDisplay: PrincipalDisplay | undefined, hierarchy: ReadonlyArray<HierarchyLevel>): Promise<ReadonlyArray<PrincipalAccess>>;
27
29
  //# sourceMappingURL=access-lists.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"access-lists.d.ts","sourceRoot":"","sources":["../../../src/domain/iampolicy/access-lists.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAEhB,MAAM,mDAAmD,CAAC;AAU3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAsBxC;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,uBAAuB,CACrB,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,cAAc,EACxB,eAAe,EAAE,wBAAwB,EACzC,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CA8DzC"}
1
+ {"version":3,"file":"access-lists.d.ts","sourceRoot":"","sources":["../../../src/domain/iampolicy/access-lists.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAEhB,MAAM,mDAAmD,CAAC;AAQ3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAM9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAsBxC;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,uBAAuB,CACrB,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;CACrD;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,cAAc,EACxB,eAAe,EAAE,wBAAwB,EACzC,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,EAC9C,SAAS,EAAE,aAAa,CAAC,cAAc,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAmEzC"}
@@ -17,16 +17,24 @@
17
17
  *
18
18
  * Display enrichment is a seam (`PrincipalDisplayResolver`) because the
19
19
  * data lives in the identity-account domain; display-resolver.ts fills it
20
- * over that domain's PORT. A principal the resolver does not answer for —
21
- * any kind that is not an identity account, or an account whose row is
22
- * gone — renders as kind/id with the id standing in as the display name,
23
- * the Java `enrich()` fallback shape.
20
+ * over that domain's PORT. A grantee of any other kind (a team) is named by
21
+ * the edition's `drivers.principalDisplay` when one is composed
22
+ * (extensions/principal-display.ts). A principal nobody answers for — no
23
+ * driver, or an account or team whose row is gone — renders as kind/id
24
+ * with the id standing in as the display name, the Java `enrich()`
25
+ * fallback shape.
26
+ *
27
+ * Every entry names its grantee exactly as the rows hold it: kind, id AND
28
+ * the relation qualifier (`team:<id>#member`), and entries group by all
29
+ * three. A revoke matches the qualifier exactly (grant-path.ts
30
+ * `findByTriple`), so a list that dropped it would hand the console a
31
+ * grantee whose revoke finds no row and succeeds having deleted nothing.
24
32
  */
25
- import { create } from "@bufbuild/protobuf";
33
+ import { clone, create } from "@bufbuild/protobuf";
26
34
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
27
35
  import { ApiResourceRefViewSchema, PrincipalAccessSchema, RoleGrantSchema, } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/io_pb";
28
36
  import { ApiResourceRefSchema } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/spec_pb";
29
- import { kindEnumName } from "../../pipeline/apiresource-meta.js";
37
+ import { kindByEnumName, kindEnumName, } from "../../pipeline/apiresource-meta.js";
30
38
  import { assignableRelations, roleInfoFromRelation } from "./roles.js";
31
39
  /** The Java resolver's bounds: ≤5 steps, platform terminates the walk. */
32
40
  const MAX_HIERARCHY_DEPTH = 5;
@@ -59,10 +67,11 @@ export async function resolveHierarchy(policies, resourceKind, resourceId, inclu
59
67
  }
60
68
  /**
61
69
  * Groups assignable-role policies by principal in first-seen order (the
62
- * Java LinkedHashMap contract), enriched where the resolver answers and
63
- * the Java fallback shape (name = id) everywhere else.
70
+ * Java LinkedHashMap contract), enriched where the resolver (people) or
71
+ * the composed principal display (every other kind) answers, and the Java
72
+ * fallback shape (name = id) everywhere else.
64
73
  */
65
- export async function buildPrincipalAccessList(policies, displayResolver, hierarchy) {
74
+ export async function buildPrincipalAccessList(policies, displayResolver, principalDisplay, hierarchy) {
66
75
  const grants = [];
67
76
  for (const [index, level] of hierarchy.entries()) {
68
77
  const rows = await policies.findByResourceWithRelations(level.kind, level.id, assignableRelations());
@@ -73,29 +82,28 @@ export async function buildPrincipalAccessList(policies, displayResolver, hierar
73
82
  if (grants.length === 0) {
74
83
  return [];
75
84
  }
76
- const accountKind = kindEnumName(ApiResourceKind.identity_account);
77
- const accountIds = grants
78
- .filter((g) => g.policy.spec?.principal?.kind === accountKind)
79
- .map((g) => g.policy.spec?.principal?.id ?? "");
80
- const enriched = await displayResolver.resolveIdentityAccounts(accountIds);
85
+ const enriched = await resolvePrincipalViews(grants.map((g) => g.policy), displayResolver, principalDisplay);
81
86
  const grouped = new Map();
82
87
  for (const grant of grants) {
83
88
  const principal = grant.policy.spec?.principal;
84
89
  if (principal === undefined) {
85
90
  continue;
86
91
  }
87
- const key = `${principal.kind}:${principal.id}`;
92
+ const key = `${principal.kind}:${principal.id}#${principal.relation}`;
88
93
  let entry = grouped.get(key);
89
94
  if (entry === undefined) {
95
+ const view = enriched.get(`${principal.kind}:${principal.id}`);
90
96
  entry = {
91
- // The Java enrich() fallback shape for unresolved principals of
92
- // ANY kind: kind/id with the id standing in as the display name.
93
- principal: enriched.get(principal.id) ??
97
+ // A resolved view is shared by every qualifier of one grantee, so
98
+ // each entry stamps its own copy. The Java enrich() fallback shape
99
+ // for unresolved principals of ANY kind: kind/id with the id
100
+ // standing in as the display name.
101
+ principal: withRelation(view ??
94
102
  create(ApiResourceRefViewSchema, {
95
103
  kind: principal.kind,
96
104
  id: principal.id,
97
105
  name: principal.id,
98
- }),
106
+ }), principal.relation),
99
107
  roles: [],
100
108
  };
101
109
  grouped.set(key, entry);
@@ -107,6 +115,51 @@ export async function buildPrincipalAccessList(policies, displayResolver, hierar
107
115
  roles: entry.roles,
108
116
  }));
109
117
  }
118
+ /**
119
+ * The display views of every distinct principal the rows name, keyed
120
+ * `kind:id` (the grouping key, so two kinds can never share an id's view):
121
+ * people through the identity-account resolver, every other kind the
122
+ * edition's principal display knows through it, one call per kind. A kind
123
+ * string that names no kind (a legacy row) and every kind with no display
124
+ * are simply absent, so the caller's fallback shape names them.
125
+ */
126
+ async function resolvePrincipalViews(rows, displayResolver, principalDisplay) {
127
+ const accountKind = kindEnumName(ApiResourceKind.identity_account);
128
+ const idsByKind = new Map();
129
+ for (const row of rows) {
130
+ const principal = row.spec?.principal;
131
+ if (principal === undefined) {
132
+ continue;
133
+ }
134
+ const ids = idsByKind.get(principal.kind) ?? new Set();
135
+ ids.add(principal.id);
136
+ idsByKind.set(principal.kind, ids);
137
+ }
138
+ const views = new Map();
139
+ for (const [kindName, ids] of idsByKind) {
140
+ let resolved;
141
+ if (kindName === accountKind) {
142
+ resolved = await displayResolver.resolveIdentityAccounts([...ids]);
143
+ }
144
+ else {
145
+ const kind = kindByEnumName(kindName);
146
+ if (principalDisplay === undefined ||
147
+ kind === ApiResourceKind.api_resource_kind_unknown) {
148
+ continue;
149
+ }
150
+ resolved = await principalDisplay.resolve(kind, [...ids]);
151
+ }
152
+ for (const [id, view] of resolved) {
153
+ views.set(`${kindName}:${id}`, view);
154
+ }
155
+ }
156
+ return views;
157
+ }
158
+ function withRelation(view, relation) {
159
+ const stamped = clone(ApiResourceRefViewSchema, view);
160
+ stamped.relation = relation;
161
+ return stamped;
162
+ }
110
163
  function buildGrant(policy, isInherited, level) {
111
164
  return create(RoleGrantSchema, {
112
165
  role: roleInfoFromRelation(policy.spec?.relation ?? ""),
@@ -1 +1 @@
1
- {"version":3,"file":"access-lists.js","sourceRoot":"","sources":["../../../src/domain/iampolicy/access-lists.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAOtH,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvE,0EAA0E;AAC1E,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IAClD,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC;CACvC,CAAC,CAAC;AAOH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAwB,EACxB,YAAoB,EACpB,UAAkB,EAClB,gBAAyB;IAEzB,MAAM,SAAS,GAAqB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,WAAW,GAAG,YAAY,CAAC;IAC/B,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,mBAAmB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAC/D,KAAK,EAAE,EACP,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM;QACR,CAAC;QACD,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAaD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAwB,EACxB,eAAyC,EACzC,SAAwC;IAOxC,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,2BAA2B,CACrD,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,EAAE,EACR,mBAAmB,EAAE,CACtB,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,KAAK,WAAW,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAE3E,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IACJ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;QAC/C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG;gBACN,gEAAgE;gBAChE,iEAAiE;gBACjE,SAAS,EACP,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,wBAAwB,EAAE;wBAC/B,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,EAAE,EAAE,SAAS,CAAC,EAAE;wBAChB,IAAI,EAAE,SAAS,CAAC,EAAE;qBACnB,CAAC;gBACJ,KAAK,EAAE,EAAE;aACV,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,MAAM,CAAC,qBAAqB,EAAE;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,MAAiB,EACjB,WAAoB,EACpB,KAAqB;IAErB,OAAO,MAAM,CAAC,eAAe,EAAE;QAC7B,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;QACvD,WAAW;QACX,GAAG,CAAC,WAAW;YACb,CAAC,CAAC;gBACE,aAAa,EAAE,MAAM,CAAC,oBAAoB,EAAE;oBAC1C,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;iBACb,CAAC;aACH;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"access-lists.js","sourceRoot":"","sources":["../../../src/domain/iampolicy/access-lists.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,9 @@
36
36
  * console and SDK show these sentences verbatim, so they are contract. The
37
37
  * new sentences are the two edition refusals (the federation shape), the
38
38
  * unknown permission, the unknown principal kind (the resource sentence's
39
- * shape) and the malformed triple.
39
+ * shape), the malformed triple, and the four principal refusals a team
40
+ * grantee brought (a person's qualifier, a team's qualifier, a kind no
41
+ * team may be granted, a role a team may not hold).
40
42
  */
41
43
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
42
44
  import type { IamPolicySpec } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/spec_pb";
@@ -92,8 +94,8 @@ export declare const ROLES_RECONCILED_KEY = "membership_rules_reconciled";
92
94
  /**
93
95
  * The principal kinds a PERSON may grant a role to — the user `create`
94
96
  * lane's grantee vocabulary (2026-09-14, session 9 ruling Q-S9-2; the
95
- * security read's finding 41). A role names a person, so the one grantee
96
- * is the identity account. A row whose principal is a RESOURCE
97
+ * security read's finding 41): a person (the identity account) and a team
98
+ * of people. A row whose principal is a RESOURCE
97
99
  * (`organization:A#organization@platform_client:X`, `#managed_org`) is a
98
100
  * structural link, and structural links are `bootstrapPolicy`'s — the
99
101
  * platform's own lane, which skips role validation by design.
@@ -104,11 +106,22 @@ export declare const ROLES_RECONCILED_KEY = "membership_rules_reconciled";
104
106
  * two cannot drift), and the hierarchy walk follows it. Without the arm, a
105
107
  * person with `can_grant_access` on organization B could write
106
108
  * `organization:A#member@organization:B` and B's Members page, asked for
107
- * inherited access, would list A's people. The cloud's `create` had the
108
- * same gap; the store's exclusion also keeps the cloud's Java-era `team`,
109
- * which is not an ApiResourceKind and so no wire spec can name.
109
+ * inherited access, would list A's people.
110
+ *
111
+ * Each kind grants through its own list: a person the kind's
112
+ * `grantable_roles`, a team its `team_grantable_roles`, always as the
113
+ * team's members (`TEAM_MEMBERS_RELATION`). A kind that lists no team role
114
+ * — `organization` among them, so open source's organization-only scope —
115
+ * grants a team nothing.
110
116
  */
111
117
  export declare const USER_GRANT_PRINCIPAL_KINDS: ReadonlyArray<ApiResourceKind>;
118
+ /**
119
+ * The one relation a team principal names: the team's members. A grant to
120
+ * `team:<id>#member` is a grant to every member, and membership is bounded
121
+ * by organization membership in the model, so leaving the organization
122
+ * ends the grant with no cleanup.
123
+ */
124
+ export declare const TEAM_MEMBERS_RELATION = "member";
112
125
  /** get on a missing policy (NOT_FOUND). */
113
126
  export declare function policyNotFoundMessage(id: string): string;
114
127
  /** A grant on a kind whose kind_meta lists no grantable roles (INVALID_ARGUMENT, every edition). */
@@ -141,6 +154,19 @@ export declare function unknownPrincipalKindMessage(kind: string): string;
141
154
  * in the role sentence's shape: the offending kind, then the vocabulary.
142
155
  */
143
156
  export declare function principalNotGrantableMessage(kind: string): string;
157
+ /**
158
+ * A person principal carrying a relation qualifier (INVALID_ARGUMENT). A
159
+ * person is granted a role directly; `identity_account:<id>#<relation>`
160
+ * names no one, and OpenFGA would refuse the tuple after the row was
161
+ * written.
162
+ */
163
+ export declare function personQualifierMessage(relation: string): string;
164
+ /** A team principal naming a relation other than its members (INVALID_ARGUMENT). */
165
+ export declare function teamQualifierMessage(relation: string): string;
166
+ /** A team grant on a kind that lists no team role (INVALID_ARGUMENT). */
167
+ export declare function teamNotGrantableMessage(kind: string): string;
168
+ /** A team grant of a role the kind does not let a team hold (INVALID_ARGUMENT); the list in kind_meta order. */
169
+ export declare function teamRoleNotGrantableMessage(role: string, kind: string, grantable: ReadonlyArray<string>): string;
144
170
  /** A triple field holding a canonical-text delimiter (INVALID_ARGUMENT; Q-S2-1). */
145
171
  export declare function malformedTripleMessage(field: string): string;
146
172
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/domain/iampolicy/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,qDAAqD,CAAC;AAK7D,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAC1D,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAmB,CAAC;AAoBxE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAG/D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAe5E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAOvD;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,eAAe,CAO1D,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,eAAe,CAErE,CAAC;AAMF,2CAA2C;AAC3C,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,+FAA+F;AAC/F,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,MAAM,CAER;AAED,yEAAyE;AACzE,eAAO,MAAM,+BAA+B,iDACI,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAMD;;;;GAIG;AACH,eAAO,MAAM,yCAAyC,+EACwB,CAAC;AAE/E,mGAAmG;AACnG,eAAO,MAAM,2CAA2C,0EACiB,CAAC;AAE1E,0FAA0F;AAC1F,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,4FAA4F;AAC5F,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/domain/iampolicy/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,qDAAqD,CAAC;AAK7D,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAC1D,eAAO,MAAM,eAAe,cAAc,CAAC;AAE3C,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAmB,CAAC;AAoBxE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAG/D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAe5E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAOvD;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,eAAe,CAO1D,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,eAAe,CAGrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAM9C,2CAA2C;AAC3C,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,+FAA+F;AAC/F,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,MAAM,CAER;AAED,yEAAyE;AACzE,eAAO,MAAM,+BAA+B,iDACI,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAMD;;;;GAIG;AACH,eAAO,MAAM,yCAAyC,+EACwB,CAAC;AAE/E,mGAAmG;AACnG,eAAO,MAAM,2CAA2C,0EACiB,CAAC;AAE1E,0FAA0F;AAC1F,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,4FAA4F;AAC5F,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,gHAAgH;AAChH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,MAAM,CAER;AAED,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -36,7 +36,9 @@
36
36
  * console and SDK show these sentences verbatim, so they are contract. The
37
37
  * new sentences are the two edition refusals (the federation shape), the
38
38
  * unknown permission, the unknown principal kind (the resource sentence's
39
- * shape) and the malformed triple.
39
+ * shape), the malformed triple, and the four principal refusals a team
40
+ * grantee brought (a person's qualifier, a team's qualifier, a kind no
41
+ * team may be granted, a role a team may not hold).
40
42
  */
41
43
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
42
44
  import { kindEnumName } from "../../pipeline/apiresource-meta.js";
@@ -135,8 +137,8 @@ export const ROLES_RECONCILED_KEY = "membership_rules_reconciled";
135
137
  /**
136
138
  * The principal kinds a PERSON may grant a role to — the user `create`
137
139
  * lane's grantee vocabulary (2026-09-14, session 9 ruling Q-S9-2; the
138
- * security read's finding 41). A role names a person, so the one grantee
139
- * is the identity account. A row whose principal is a RESOURCE
140
+ * security read's finding 41): a person (the identity account) and a team
141
+ * of people. A row whose principal is a RESOURCE
140
142
  * (`organization:A#organization@platform_client:X`, `#managed_org`) is a
141
143
  * structural link, and structural links are `bootstrapPolicy`'s — the
142
144
  * platform's own lane, which skips role validation by design.
@@ -147,13 +149,25 @@ export const ROLES_RECONCILED_KEY = "membership_rules_reconciled";
147
149
  * two cannot drift), and the hierarchy walk follows it. Without the arm, a
148
150
  * person with `can_grant_access` on organization B could write
149
151
  * `organization:A#member@organization:B` and B's Members page, asked for
150
- * inherited access, would list A's people. The cloud's `create` had the
151
- * same gap; the store's exclusion also keeps the cloud's Java-era `team`,
152
- * which is not an ApiResourceKind and so no wire spec can name.
152
+ * inherited access, would list A's people.
153
+ *
154
+ * Each kind grants through its own list: a person the kind's
155
+ * `grantable_roles`, a team its `team_grantable_roles`, always as the
156
+ * team's members (`TEAM_MEMBERS_RELATION`). A kind that lists no team role
157
+ * — `organization` among them, so open source's organization-only scope —
158
+ * grants a team nothing.
153
159
  */
154
160
  export const USER_GRANT_PRINCIPAL_KINDS = [
155
161
  ApiResourceKind.identity_account,
162
+ ApiResourceKind.team,
156
163
  ];
164
+ /**
165
+ * The one relation a team principal names: the team's members. A grant to
166
+ * `team:<id>#member` is a grant to every member, and membership is bounded
167
+ * by organization membership in the model, so leaving the organization
168
+ * ends the grant with no cleanup.
169
+ */
170
+ export const TEAM_MEMBERS_RELATION = "member";
157
171
  // ---------------------------------------------------------------------------
158
172
  // Byte-pinned copy (the cloud handlers' sentences, moved as-is).
159
173
  // ---------------------------------------------------------------------------
@@ -207,6 +221,27 @@ export function principalNotGrantableMessage(kind) {
207
221
  const grantable = USER_GRANT_PRINCIPAL_KINDS.map((k) => kindEnumName(k));
208
222
  return `Principal kind '${kind}' cannot be granted a role. Grantable principal kinds: [${grantable.join(", ")}]`;
209
223
  }
224
+ /**
225
+ * A person principal carrying a relation qualifier (INVALID_ARGUMENT). A
226
+ * person is granted a role directly; `identity_account:<id>#<relation>`
227
+ * names no one, and OpenFGA would refuse the tuple after the row was
228
+ * written.
229
+ */
230
+ export function personQualifierMessage(relation) {
231
+ return `Principal kind 'identity_account' takes no relation; got '${relation}'`;
232
+ }
233
+ /** A team principal naming a relation other than its members (INVALID_ARGUMENT). */
234
+ export function teamQualifierMessage(relation) {
235
+ return `A team principal must name the relation '${TEAM_MEMBERS_RELATION}' (the team's members); got '${relation}'`;
236
+ }
237
+ /** A team grant on a kind that lists no team role (INVALID_ARGUMENT). */
238
+ export function teamNotGrantableMessage(kind) {
239
+ return `A team cannot be granted access to resource kind '${kind}'.`;
240
+ }
241
+ /** A team grant of a role the kind does not let a team hold (INVALID_ARGUMENT); the list in kind_meta order. */
242
+ export function teamRoleNotGrantableMessage(role, kind, grantable) {
243
+ return `Role '${role}' cannot be granted to a team on resource kind '${kind}'. Roles a team can hold: [${grantable.join(", ")}]`;
244
+ }
210
245
  /** A triple field holding a canonical-text delimiter (INVALID_ARGUMENT; Q-S2-1). */
211
246
  export function malformedTripleMessage(field) {
212
247
  return `policy ${field} must not contain ':', '#' or '@'`;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/domain/iampolicy/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/domain/iampolicy/constants.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@ import type { ServerEdition } from "@stigmer/protos/ai/stigmer/platform/v1/serve
3
3
  import type { Logger } from "../../boot/logger.js";
4
4
  import type { AuthorizationQueryEngine } from "../../extensions/authorization-queries.js";
5
5
  import type { Authorizer } from "../../extensions/authorizer.js";
6
+ import type { ResolvedGateSteps } from "../../extensions/gate-slots.js";
6
7
  import type { PolicyGrantScope } from "../../extensions/policy-grant-scope.js";
8
+ import type { PrincipalDisplay } from "../../extensions/principal-display.js";
7
9
  import type { AccountsByCaller } from "../identityaccount/resolve.js";
8
10
  import type { AccountsByIds } from "./display-resolver.js";
9
11
  import type { IamPolicyGrantPath } from "./grant-path.js";
@@ -20,6 +22,10 @@ export interface IamPolicyControllerDeps {
20
22
  readonly grantScope: PolicyGrantScope;
21
23
  /** The composed query engine — undefined = the tuple-half RPCs refuse UNIMPLEMENTED. */
22
24
  readonly queries: AuthorizationQueryEngine | undefined;
25
+ /** The composed principal display — undefined = a non-person grantee renders in the id fallback shape. */
26
+ readonly principalDisplay: PrincipalDisplay | undefined;
27
+ /** The merged gate steps; `create` splices `iam-policy-create:pre-side-effect-gate`. */
28
+ readonly gateSteps: ResolvedGateSteps;
23
29
  /** The served edition — `checkMyPermission`'s first arm reads a kind's tier against it. */
24
30
  readonly edition: ServerEdition;
25
31
  readonly logger: Logger;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/domain/iampolicy/controller.ts"],"names":[],"mappings":"AAgGA,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAqCzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAE3F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAmB/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAStE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAe1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAcjD,iHAAiH;AACjH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,4GAA4G;IAC5G,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,sHAAsH;IACtH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACvD,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,sEAAsE;AACtE,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,uBAAuB,GAC5B,IAAI,CA0CN"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/domain/iampolicy/controller.ts"],"names":[],"mappings":"AAkGA,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAqCzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAE3F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAmB9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAStE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAe1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAcjD,iHAAiH;AACjH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,4GAA4G;IAC5G,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,sHAAsH;IACtH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACvD,0GAA0G;IAC1G,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxD,wFAAwF;IACxF,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,sEAAsE;AACtE,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,uBAAuB,GAC5B,IAAI,CA0CN"}
@@ -31,9 +31,11 @@
31
31
  * triple — strictly safer than the cloud's silent default instance.
32
32
  * - `create` validates the role BEFORE it writes (the cloud's order): a
33
33
  * held row under a role the kind does not grant is refused, never
34
- * answered as a duplicate. It also grants to PEOPLE only (Q-S9-2,
35
- * 2026-09-14): a principal that is not an identity account is
36
- * INVALID_ARGUMENT — a row naming a resource as its principal is the
34
+ * answered as a duplicate. It also grants to PEOPLE and TEAMS only
35
+ * (Q-S9-2, 2026-09-14): any other principal is INVALID_ARGUMENT, and a
36
+ * team only on the roles its kind lets a team hold (steps.ts) and,
37
+ * where an edition serves teams, only a team the create gate slot
38
+ * admits — a row naming a resource as its principal is the
37
39
  * structural link the hierarchy walk follows, `bootstrapPolicy`'s to
38
40
  * write, and through this lane would have let a right on one
39
41
  * organization list another's members. The cloud's create had the
@@ -99,6 +101,7 @@ import { AuthorizedPrincipalIdsListSchema, AuthorizedResourceIdsListSchema, Chec
99
101
  import { IamPolicyQueryController } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/query_pb";
100
102
  import { ApiResourceRefSchema, IamPolicySpecSchema, } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/spec_pb";
101
103
  import { IamPermission } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
104
+ import { stepsForSlot } from "../../extensions/gate-slots.js";
102
105
  import { isPlatformPipelineCaller } from "../../extensions/identity.js";
103
106
  import { kindByEnumName, kindEnumName, kindServedByEdition, } from "../../pipeline/apiresource-meta.js";
104
107
  import { internalError } from "../../pipeline/errors.js";
@@ -170,15 +173,18 @@ function guardSystemRpc(method, caller) {
170
173
  // ---------------------------------------------------------------------------
171
174
  // The command chains
172
175
  // ---------------------------------------------------------------------------
173
- /** `create`: the wire refusal, then Authorize → ValidateProto → ValidateGrantableRole → Grant. */
176
+ /**
177
+ * `create`: the wire refusal, then Authorize → ValidateProto →
178
+ * ValidateGrantableRole → [iam-policy-create:pre-side-effect-gate] → Grant.
179
+ */
174
180
  function createPolicy(deps, spec, ctx) {
175
181
  requireWellFormedTriple(spec);
176
182
  return grantThroughChain(deps, IamPolicyCommandController.method.create, spec, ctx, true);
177
183
  }
178
184
  /**
179
185
  * The grant chain both `create` and `bootstrapPolicy` run; only the user
180
- * lane validates the role — bootstrap writes structural relations no
181
- * scope would admit.
186
+ * lane validates the role and runs the create gate slot — bootstrap writes
187
+ * structural relations no scope would admit and no edition gates.
182
188
  */
183
189
  async function grantThroughChain(deps, method, spec, ctx, validateRole) {
184
190
  const reqCtx = new RequestContext(IamPolicySpecSchema, spec, callerIdentityOf(ctx), kindOf(ctx));
@@ -187,6 +193,9 @@ async function grantThroughChain(deps, method, spec, ctx, validateRole) {
187
193
  .addStep(newValidateProtoStep());
188
194
  if (validateRole) {
189
195
  pipeline.addStep(newValidateGrantableRoleStep(deps.grantScope));
196
+ for (const step of stepsForSlot(deps.gateSteps, "iam-policy-create:pre-side-effect-gate")) {
197
+ pipeline.addStep(step);
198
+ }
190
199
  }
191
200
  await pipeline.addStep(newGrantStep(deps.grantPath)).build().execute(reqCtx);
192
201
  return policyResultOf(reqCtx, method);
@@ -340,7 +349,7 @@ async function listResourceAccessByPrincipal(deps, displayResolver, input, ctx)
340
349
  await authorizeDirect(IamPolicyQueryController.method.listResourceAccessByPrincipal, deps.authorizer, callerIdentityOf(ctx), input);
341
350
  const entries = await read(async () => {
342
351
  const hierarchy = await resolveHierarchy(deps.policies, resource.kind, resource.id, input.includeInherited);
343
- return buildPrincipalAccessList(deps.policies, displayResolver, hierarchy);
352
+ return buildPrincipalAccessList(deps.policies, displayResolver, deps.principalDisplay, hierarchy);
344
353
  }, "failed to list resource access");
345
354
  return create(ResourceAccessByPrincipalListSchema, {
346
355
  entries: [...entries],