@stigmer/server 3.40.1 → 3.41.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 (527) hide show
  1. package/dist/authorization/authorizer.d.ts +16 -10
  2. package/dist/authorization/authorizer.d.ts.map +1 -1
  3. package/dist/authorization/authorizer.js +17 -9
  4. package/dist/authorization/authorizer.js.map +1 -1
  5. package/dist/authorization/derived-tuples.d.ts +7 -3
  6. package/dist/authorization/derived-tuples.d.ts.map +1 -1
  7. package/dist/authorization/derived-tuples.js +62 -6
  8. package/dist/authorization/derived-tuples.js.map +1 -1
  9. package/dist/authorization/evaluator.d.ts +11 -7
  10. package/dist/authorization/evaluator.d.ts.map +1 -1
  11. package/dist/authorization/evaluator.js +16 -10
  12. package/dist/authorization/evaluator.js.map +1 -1
  13. package/dist/authorization/list-read-scope.d.ts +4 -0
  14. package/dist/authorization/list-read-scope.d.ts.map +1 -1
  15. package/dist/authorization/list-read-scope.js +1 -0
  16. package/dist/authorization/list-read-scope.js.map +1 -1
  17. package/dist/authorization/model/data/authorization-model.json +830 -67
  18. package/dist/authorization/model/execution-viewer.d.ts.map +1 -1
  19. package/dist/authorization/model/execution-viewer.js +26 -24
  20. package/dist/authorization/model/execution-viewer.js.map +1 -1
  21. package/dist/authorization/model/index.d.ts +4 -1
  22. package/dist/authorization/model/index.d.ts.map +1 -1
  23. package/dist/authorization/model/index.js +4 -1
  24. package/dist/authorization/model/index.js.map +1 -1
  25. package/dist/authorization/model/rewrite.d.ts +5 -3
  26. package/dist/authorization/model/rewrite.d.ts.map +1 -1
  27. package/dist/authorization/organization-directory.d.ts +44 -0
  28. package/dist/authorization/organization-directory.d.ts.map +1 -1
  29. package/dist/authorization/organization-directory.js +1 -0
  30. package/dist/authorization/organization-directory.js.map +1 -1
  31. package/dist/authorization/person.d.ts +14 -1
  32. package/dist/authorization/person.d.ts.map +1 -1
  33. package/dist/authorization/person.js +16 -0
  34. package/dist/authorization/person.js.map +1 -1
  35. package/dist/authorization/policy-check.d.ts +52 -0
  36. package/dist/authorization/policy-check.d.ts.map +1 -0
  37. package/dist/authorization/policy-check.js +35 -0
  38. package/dist/authorization/policy-check.js.map +1 -0
  39. package/dist/authorization/posture.d.ts +30 -4
  40. package/dist/authorization/posture.d.ts.map +1 -1
  41. package/dist/authorization/posture.js +58 -0
  42. package/dist/authorization/posture.js.map +1 -1
  43. package/dist/authorization/resource-creators.d.ts +4 -0
  44. package/dist/authorization/resource-creators.d.ts.map +1 -0
  45. package/dist/authorization/resource-creators.js +44 -0
  46. package/dist/authorization/resource-creators.js.map +1 -0
  47. package/dist/authorization/trusted-local-authorizer.d.ts +9 -0
  48. package/dist/authorization/trusted-local-authorizer.d.ts.map +1 -0
  49. package/dist/authorization/trusted-local-authorizer.js +70 -0
  50. package/dist/authorization/trusted-local-authorizer.js.map +1 -0
  51. package/dist/authorization/tuples.d.ts +12 -0
  52. package/dist/authorization/tuples.d.ts.map +1 -1
  53. package/dist/authorization/tuples.js +3 -0
  54. package/dist/authorization/tuples.js.map +1 -1
  55. package/dist/boot/compose.d.ts.map +1 -1
  56. package/dist/boot/compose.js +132 -43
  57. package/dist/boot/compose.js.map +1 -1
  58. package/dist/boot/config.d.ts +22 -7
  59. package/dist/boot/config.d.ts.map +1 -1
  60. package/dist/boot/config.js +2 -1
  61. package/dist/boot/config.js.map +1 -1
  62. package/dist/boot/inprocess.d.ts.map +1 -1
  63. package/dist/boot/inprocess.js +10 -4
  64. package/dist/boot/inprocess.js.map +1 -1
  65. package/dist/boot/list-indexes.d.ts.map +1 -1
  66. package/dist/boot/list-indexes.js +6 -1
  67. package/dist/boot/list-indexes.js.map +1 -1
  68. package/dist/boot/logger.d.ts +3 -1
  69. package/dist/boot/logger.d.ts.map +1 -1
  70. package/dist/boot/logger.js +3 -1
  71. package/dist/boot/logger.js.map +1 -1
  72. package/dist/boot/oauth-redirect-uri.d.ts +33 -12
  73. package/dist/boot/oauth-redirect-uri.d.ts.map +1 -1
  74. package/dist/boot/oauth-redirect-uri.js +43 -14
  75. package/dist/boot/oauth-redirect-uri.js.map +1 -1
  76. package/dist/boot/skill-transfer-origin.d.ts +46 -14
  77. package/dist/boot/skill-transfer-origin.d.ts.map +1 -1
  78. package/dist/boot/skill-transfer-origin.js +53 -13
  79. package/dist/boot/skill-transfer-origin.js.map +1 -1
  80. package/dist/domain/agentchannel/steps.d.ts +8 -6
  81. package/dist/domain/agentchannel/steps.d.ts.map +1 -1
  82. package/dist/domain/agentchannel/steps.js +9 -7
  83. package/dist/domain/agentchannel/steps.js.map +1 -1
  84. package/dist/domain/agentexecution/controller.d.ts +7 -0
  85. package/dist/domain/agentexecution/controller.d.ts.map +1 -1
  86. package/dist/domain/agentexecution/controller.js +1 -1
  87. package/dist/domain/agentexecution/controller.js.map +1 -1
  88. package/dist/domain/agentexecution/create-steps.d.ts +26 -12
  89. package/dist/domain/agentexecution/create-steps.d.ts.map +1 -1
  90. package/dist/domain/agentexecution/create-steps.js +61 -43
  91. package/dist/domain/agentexecution/create-steps.js.map +1 -1
  92. package/dist/domain/agentexecution/submit-approval.d.ts.map +1 -1
  93. package/dist/domain/agentexecution/submit-approval.js +9 -6
  94. package/dist/domain/agentexecution/submit-approval.js.map +1 -1
  95. package/dist/domain/agentexecution/submit-file-decision.d.ts.map +1 -1
  96. package/dist/domain/agentexecution/submit-file-decision.js +5 -4
  97. package/dist/domain/agentexecution/submit-file-decision.js.map +1 -1
  98. package/dist/domain/agentshare/steps.d.ts +5 -3
  99. package/dist/domain/agentshare/steps.d.ts.map +1 -1
  100. package/dist/domain/agentshare/steps.js +6 -4
  101. package/dist/domain/agentshare/steps.js.map +1 -1
  102. package/dist/domain/apikey/verifier.d.ts +7 -0
  103. package/dist/domain/apikey/verifier.d.ts.map +1 -1
  104. package/dist/domain/apikey/verifier.js +34 -1
  105. package/dist/domain/apikey/verifier.js.map +1 -1
  106. package/dist/domain/channelapp/controller.d.ts +4 -3
  107. package/dist/domain/channelapp/controller.d.ts.map +1 -1
  108. package/dist/domain/channelapp/controller.js.map +1 -1
  109. package/dist/domain/executioncontext/steps.d.ts +2 -1
  110. package/dist/domain/executioncontext/steps.d.ts.map +1 -1
  111. package/dist/domain/executioncontext/steps.js +2 -1
  112. package/dist/domain/executioncontext/steps.js.map +1 -1
  113. package/dist/domain/iampolicy/access-lists.d.ts.map +1 -1
  114. package/dist/domain/iampolicy/access-lists.js +57 -2
  115. package/dist/domain/iampolicy/access-lists.js.map +1 -1
  116. package/dist/domain/iampolicy/change.d.ts +53 -0
  117. package/dist/domain/iampolicy/change.d.ts.map +1 -0
  118. package/dist/domain/iampolicy/change.js +44 -0
  119. package/dist/domain/iampolicy/change.js.map +1 -0
  120. package/dist/domain/iampolicy/constants.d.ts +6 -0
  121. package/dist/domain/iampolicy/constants.d.ts.map +1 -1
  122. package/dist/domain/iampolicy/constants.js +6 -0
  123. package/dist/domain/iampolicy/constants.js.map +1 -1
  124. package/dist/domain/iampolicy/controller.d.ts.map +1 -1
  125. package/dist/domain/iampolicy/controller.js +9 -5
  126. package/dist/domain/iampolicy/controller.js.map +1 -1
  127. package/dist/domain/iampolicy/grant-path.d.ts +31 -13
  128. package/dist/domain/iampolicy/grant-path.d.ts.map +1 -1
  129. package/dist/domain/iampolicy/grant-path.js +216 -19
  130. package/dist/domain/iampolicy/grant-path.js.map +1 -1
  131. package/dist/domain/iampolicy/membership.d.ts +11 -3
  132. package/dist/domain/iampolicy/membership.d.ts.map +1 -1
  133. package/dist/domain/iampolicy/membership.js +18 -13
  134. package/dist/domain/iampolicy/membership.js.map +1 -1
  135. package/dist/domain/iampolicy/resource-store.d.ts.map +1 -1
  136. package/dist/domain/iampolicy/resource-store.js +4 -0
  137. package/dist/domain/iampolicy/resource-store.js.map +1 -1
  138. package/dist/domain/iampolicy/role-lifecycle.d.ts.map +1 -1
  139. package/dist/domain/iampolicy/role-lifecycle.js +2 -2
  140. package/dist/domain/iampolicy/role-lifecycle.js.map +1 -1
  141. package/dist/domain/iampolicy/roles.d.ts.map +1 -1
  142. package/dist/domain/iampolicy/roles.js +7 -0
  143. package/dist/domain/iampolicy/roles.js.map +1 -1
  144. package/dist/domain/iampolicy/steps.d.ts +4 -3
  145. package/dist/domain/iampolicy/steps.d.ts.map +1 -1
  146. package/dist/domain/iampolicy/steps.js +7 -7
  147. package/dist/domain/iampolicy/steps.js.map +1 -1
  148. package/dist/domain/iampolicy/store-contract.d.ts.map +1 -1
  149. package/dist/domain/iampolicy/store-contract.js +22 -1
  150. package/dist/domain/iampolicy/store-contract.js.map +1 -1
  151. package/dist/domain/iampolicy/store.d.ts +18 -5
  152. package/dist/domain/iampolicy/store.d.ts.map +1 -1
  153. package/dist/domain/iampolicy/store.js.map +1 -1
  154. package/dist/domain/identityaccount/constants.d.ts +15 -0
  155. package/dist/domain/identityaccount/constants.d.ts.map +1 -1
  156. package/dist/domain/identityaccount/constants.js +17 -0
  157. package/dist/domain/identityaccount/constants.js.map +1 -1
  158. package/dist/domain/identityaccount/controller.d.ts.map +1 -1
  159. package/dist/domain/identityaccount/controller.js +17 -6
  160. package/dist/domain/identityaccount/controller.js.map +1 -1
  161. package/dist/domain/identityaccount/resolve.d.ts +47 -0
  162. package/dist/domain/identityaccount/resolve.d.ts.map +1 -1
  163. package/dist/domain/identityaccount/resolve.js +38 -1
  164. package/dist/domain/identityaccount/resolve.js.map +1 -1
  165. package/dist/domain/identityaccount/resource-store.d.ts.map +1 -1
  166. package/dist/domain/identityaccount/resource-store.js +11 -1
  167. package/dist/domain/identityaccount/resource-store.js.map +1 -1
  168. package/dist/domain/identityaccount/steps.d.ts +2 -1
  169. package/dist/domain/identityaccount/steps.d.ts.map +1 -1
  170. package/dist/domain/identityaccount/steps.js +4 -3
  171. package/dist/domain/identityaccount/steps.js.map +1 -1
  172. package/dist/domain/identityaccount/store-contract.js +2 -2
  173. package/dist/domain/identityaccount/store-contract.js.map +1 -1
  174. package/dist/domain/identityaccount/store.d.ts +6 -1
  175. package/dist/domain/identityaccount/store.d.ts.map +1 -1
  176. package/dist/domain/mcpserver/connect-sandbox.d.ts +67 -0
  177. package/dist/domain/mcpserver/connect-sandbox.d.ts.map +1 -0
  178. package/dist/domain/mcpserver/connect-sandbox.js +64 -0
  179. package/dist/domain/mcpserver/connect-sandbox.js.map +1 -0
  180. package/dist/domain/mcpserver/connect.d.ts +42 -10
  181. package/dist/domain/mcpserver/connect.d.ts.map +1 -1
  182. package/dist/domain/mcpserver/connect.js +147 -40
  183. package/dist/domain/mcpserver/connect.js.map +1 -1
  184. package/dist/domain/mcpserver/controller.js +4 -2
  185. package/dist/domain/mcpserver/controller.js.map +1 -1
  186. package/dist/domain/mcpserver/engine.d.ts +26 -7
  187. package/dist/domain/mcpserver/engine.d.ts.map +1 -1
  188. package/dist/domain/mcpserver/engine.js.map +1 -1
  189. package/dist/domain/mcpserver/start-connect.d.ts +5 -0
  190. package/dist/domain/mcpserver/start-connect.d.ts.map +1 -1
  191. package/dist/domain/mcpserver/start-connect.js +38 -15
  192. package/dist/domain/mcpserver/start-connect.js.map +1 -1
  193. package/dist/domain/memory/controller.js +2 -1
  194. package/dist/domain/memory/controller.js.map +1 -1
  195. package/dist/domain/memory/list-index.d.ts +2 -0
  196. package/dist/domain/memory/list-index.d.ts.map +1 -0
  197. package/dist/domain/memory/list-index.js +31 -0
  198. package/dist/domain/memory/list-index.js.map +1 -0
  199. package/dist/domain/memory/queries.d.ts +10 -0
  200. package/dist/domain/memory/queries.d.ts.map +1 -0
  201. package/dist/domain/memory/queries.js +54 -0
  202. package/dist/domain/memory/queries.js.map +1 -0
  203. package/dist/domain/memory/steps.d.ts +13 -11
  204. package/dist/domain/memory/steps.d.ts.map +1 -1
  205. package/dist/domain/memory/steps.js +26 -57
  206. package/dist/domain/memory/steps.js.map +1 -1
  207. package/dist/domain/organization/steps.d.ts.map +1 -1
  208. package/dist/domain/organization/steps.js +1 -1
  209. package/dist/domain/organization/steps.js.map +1 -1
  210. package/dist/domain/platformclient/mint.d.ts.map +1 -1
  211. package/dist/domain/platformclient/mint.js +2 -2
  212. package/dist/domain/platformclient/mint.js.map +1 -1
  213. package/dist/domain/platformclient/verifier.d.ts.map +1 -1
  214. package/dist/domain/platformclient/verifier.js +6 -3
  215. package/dist/domain/platformclient/verifier.js.map +1 -1
  216. package/dist/domain/plugin/push.d.ts.map +1 -1
  217. package/dist/domain/plugin/push.js +1 -0
  218. package/dist/domain/plugin/push.js.map +1 -1
  219. package/dist/domain/schedule/steps.d.ts +3 -1
  220. package/dist/domain/schedule/steps.d.ts.map +1 -1
  221. package/dist/domain/schedule/steps.js +3 -1
  222. package/dist/domain/schedule/steps.js.map +1 -1
  223. package/dist/domain/skill/push.d.ts.map +1 -1
  224. package/dist/domain/skill/push.js +1 -0
  225. package/dist/domain/skill/push.js.map +1 -1
  226. package/dist/domain/workflow/registry/data/task-kind-registry.json +27 -1
  227. package/dist/domain/workflowexecution/submit-approval.d.ts +5 -2
  228. package/dist/domain/workflowexecution/submit-approval.d.ts.map +1 -1
  229. package/dist/domain/workflowexecution/submit-approval.js +1 -1
  230. package/dist/domain/workflowexecution/submit-approval.js.map +1 -1
  231. package/dist/domain/workflowexecution/submit-file-decision.d.ts +5 -2
  232. package/dist/domain/workflowexecution/submit-file-decision.d.ts.map +1 -1
  233. package/dist/domain/workflowexecution/submit-file-decision.js +1 -1
  234. package/dist/domain/workflowexecution/submit-file-decision.js.map +1 -1
  235. package/dist/domain/workflowexecution/submit-workflow-task-approval.d.ts.map +1 -1
  236. package/dist/domain/workflowexecution/submit-workflow-task-approval.js +12 -1
  237. package/dist/domain/workflowexecution/submit-workflow-task-approval.js.map +1 -1
  238. package/dist/domain/workflowinstance/controller.d.ts +6 -3
  239. package/dist/domain/workflowinstance/controller.d.ts.map +1 -1
  240. package/dist/domain/workflowinstance/controller.js +12 -7
  241. package/dist/domain/workflowinstance/controller.js.map +1 -1
  242. package/dist/domain/workflowinstance/steps.d.ts +31 -0
  243. package/dist/domain/workflowinstance/steps.d.ts.map +1 -1
  244. package/dist/domain/workflowinstance/steps.js +88 -1
  245. package/dist/domain/workflowinstance/steps.js.map +1 -1
  246. package/dist/extensions/composed-services.d.ts +56 -0
  247. package/dist/extensions/composed-services.d.ts.map +1 -0
  248. package/dist/extensions/composed-services.js +2 -0
  249. package/dist/extensions/composed-services.js.map +1 -0
  250. package/dist/extensions/drivers.d.ts +32 -1
  251. package/dist/extensions/drivers.d.ts.map +1 -1
  252. package/dist/extensions/identity.d.ts +4 -1
  253. package/dist/extensions/identity.d.ts.map +1 -1
  254. package/dist/extensions/identity.js +4 -1
  255. package/dist/extensions/identity.js.map +1 -1
  256. package/dist/extensions/registry.d.ts +37 -0
  257. package/dist/extensions/registry.d.ts.map +1 -1
  258. package/dist/extensions/registry.js +50 -0
  259. package/dist/extensions/registry.js.map +1 -1
  260. package/dist/extensions/resource-authorization.d.ts +78 -0
  261. package/dist/extensions/resource-authorization.d.ts.map +1 -1
  262. package/dist/extensions/resource-row-reader.d.ts +43 -0
  263. package/dist/extensions/resource-row-reader.d.ts.map +1 -0
  264. package/dist/extensions/resource-row-reader.js +2 -0
  265. package/dist/extensions/resource-row-reader.js.map +1 -0
  266. package/dist/extensions/visitor-classifier.d.ts +41 -0
  267. package/dist/extensions/visitor-classifier.d.ts.map +1 -0
  268. package/dist/extensions/visitor-classifier.js +2 -0
  269. package/dist/extensions/visitor-classifier.js.map +1 -0
  270. package/dist/identity/oidc-userinfo.d.ts +6 -1
  271. package/dist/identity/oidc-userinfo.d.ts.map +1 -1
  272. package/dist/identity/oidc-userinfo.js.map +1 -1
  273. package/dist/identity/oidc-verifier.d.ts.map +1 -1
  274. package/dist/identity/oidc-verifier.js +37 -8
  275. package/dist/identity/oidc-verifier.js.map +1 -1
  276. package/dist/index.d.ts +14 -6
  277. package/dist/index.d.ts.map +1 -1
  278. package/dist/index.js +25 -9
  279. package/dist/index.js.map +1 -1
  280. package/dist/pipeline/errors.d.ts +8 -0
  281. package/dist/pipeline/errors.d.ts.map +1 -1
  282. package/dist/pipeline/errors.js +25 -16
  283. package/dist/pipeline/errors.js.map +1 -1
  284. package/dist/pipeline/interceptors/auth.d.ts +17 -9
  285. package/dist/pipeline/interceptors/auth.d.ts.map +1 -1
  286. package/dist/pipeline/interceptors/auth.js +17 -9
  287. package/dist/pipeline/interceptors/auth.js.map +1 -1
  288. package/dist/pipeline/steps/authorization-tuples.d.ts +23 -1
  289. package/dist/pipeline/steps/authorization-tuples.d.ts.map +1 -1
  290. package/dist/pipeline/steps/authorization-tuples.js +42 -0
  291. package/dist/pipeline/steps/authorization-tuples.js.map +1 -1
  292. package/dist/pipeline/steps/authorize.d.ts +6 -5
  293. package/dist/pipeline/steps/authorize.d.ts.map +1 -1
  294. package/dist/pipeline/steps/authorize.js +6 -5
  295. package/dist/pipeline/steps/authorize.js.map +1 -1
  296. package/dist/pipeline/steps/defaults.d.ts +12 -0
  297. package/dist/pipeline/steps/defaults.d.ts.map +1 -1
  298. package/dist/pipeline/steps/defaults.js +42 -7
  299. package/dist/pipeline/steps/defaults.js.map +1 -1
  300. package/dist/pipeline/steps/guard-memory-capture.d.ts +13 -15
  301. package/dist/pipeline/steps/guard-memory-capture.d.ts.map +1 -1
  302. package/dist/pipeline/steps/guard-memory-capture.js +2 -3
  303. package/dist/pipeline/steps/guard-memory-capture.js.map +1 -1
  304. package/dist/runnerauth/built-in-runner-credential-provider.d.ts +0 -2
  305. package/dist/runnerauth/built-in-runner-credential-provider.d.ts.map +1 -1
  306. package/dist/runnerauth/built-in-runner-credential-provider.js +8 -17
  307. package/dist/runnerauth/built-in-runner-credential-provider.js.map +1 -1
  308. package/dist/runnerauth/runner-credential-provider.d.ts +17 -7
  309. package/dist/runnerauth/runner-credential-provider.d.ts.map +1 -1
  310. package/dist/runnerauth/runner-credential-provider.js.map +1 -1
  311. package/dist/sandbox/docker.d.ts.map +1 -1
  312. package/dist/sandbox/docker.js +3 -0
  313. package/dist/sandbox/docker.js.map +1 -1
  314. package/dist/sandbox/kubernetes.d.ts.map +1 -1
  315. package/dist/sandbox/kubernetes.js +3 -0
  316. package/dist/sandbox/kubernetes.js.map +1 -1
  317. package/dist/sandbox/local-process.d.ts.map +1 -1
  318. package/dist/sandbox/local-process.js +4 -0
  319. package/dist/sandbox/local-process.js.map +1 -1
  320. package/dist/sandbox/provisioner.d.ts +18 -6
  321. package/dist/sandbox/provisioner.d.ts.map +1 -1
  322. package/dist/sandbox/provisioner.js.map +1 -1
  323. package/dist/temporal/manager.d.ts +5 -0
  324. package/dist/temporal/manager.d.ts.map +1 -1
  325. package/dist/temporal/manager.js +9 -0
  326. package/dist/temporal/manager.js.map +1 -1
  327. package/dist/temporal/mcpserver/engine-client.d.ts +2 -2
  328. package/dist/temporal/mcpserver/engine-client.d.ts.map +1 -1
  329. package/dist/temporal/mcpserver/engine-client.js +6 -4
  330. package/dist/temporal/mcpserver/engine-client.js.map +1 -1
  331. package/dist/temporal/mcpserver/names.d.ts +13 -2
  332. package/dist/temporal/mcpserver/names.d.ts.map +1 -1
  333. package/dist/temporal/mcpserver/names.js +15 -2
  334. package/dist/temporal/mcpserver/names.js.map +1 -1
  335. package/dist/temporal/sdk-logger.d.ts +74 -0
  336. package/dist/temporal/sdk-logger.d.ts.map +1 -0
  337. package/dist/temporal/sdk-logger.js +143 -0
  338. package/dist/temporal/sdk-logger.js.map +1 -0
  339. package/package.json +6 -6
  340. package/src/authorization/README.md +18 -6
  341. package/src/authorization/__tests__/authorizer.test.ts +5 -1
  342. package/src/authorization/__tests__/derived-tuples.test.ts +26 -0
  343. package/src/authorization/__tests__/evaluator.test.ts +4 -0
  344. package/src/authorization/__tests__/list-read-scope.test.ts +11 -5
  345. package/src/authorization/__tests__/store-tests.test.ts +3 -1
  346. package/src/authorization/__tests__/trusted-local-authorizer.test.ts +155 -0
  347. package/src/authorization/__tests__/unit-owned-kinds.test.ts +420 -0
  348. package/src/authorization/__tests__/wire-permissions.test.ts +31 -2
  349. package/src/authorization/authorizer.ts +21 -10
  350. package/src/authorization/derived-tuples.ts +92 -18
  351. package/src/authorization/evaluator.ts +30 -15
  352. package/src/authorization/list-read-scope.ts +4 -0
  353. package/src/authorization/model/__tests__/registry.test.ts +23 -0
  354. package/src/authorization/model/data/authorization-model.json +830 -67
  355. package/src/authorization/model/execution-viewer.ts +32 -27
  356. package/src/authorization/model/index.ts +4 -1
  357. package/src/authorization/model/rewrite.ts +5 -3
  358. package/src/authorization/organization-directory.ts +4 -0
  359. package/src/authorization/person.ts +32 -1
  360. package/src/authorization/policy-check.ts +105 -0
  361. package/src/authorization/posture.ts +45 -4
  362. package/src/authorization/resource-creators.ts +48 -0
  363. package/src/authorization/trusted-local-authorizer.ts +91 -0
  364. package/src/authorization/tuples.ts +17 -0
  365. package/src/boot/__tests__/compose.test.ts +120 -4
  366. package/src/boot/__tests__/list-indexes.test.ts +4 -0
  367. package/src/boot/__tests__/oauth-redirect-uri.test.ts +121 -10
  368. package/src/boot/__tests__/skill-transfer-origin.test.ts +96 -25
  369. package/src/boot/compose.ts +153 -61
  370. package/src/boot/config.ts +28 -12
  371. package/src/boot/inprocess.ts +18 -4
  372. package/src/boot/list-indexes.ts +6 -1
  373. package/src/boot/logger.ts +3 -1
  374. package/src/boot/oauth-redirect-uri.ts +62 -17
  375. package/src/boot/skill-transfer-origin.ts +71 -16
  376. package/src/domain/agent/__tests__/agent.test.ts +42 -1
  377. package/src/domain/agentchannel/__tests__/agentchannel.test.ts +9 -0
  378. package/src/domain/agentchannel/__tests__/channel-runtime.test.ts +2 -0
  379. package/src/domain/agentchannel/__tests__/create-authorization.test.ts +7 -6
  380. package/src/domain/agentchannel/steps.ts +9 -7
  381. package/src/domain/agentexecution/__tests__/agentexecution.test.ts +148 -56
  382. package/src/domain/agentexecution/__tests__/create-steps.test.ts +175 -12
  383. package/src/domain/agentexecution/__tests__/file-review-seed.ts +91 -0
  384. package/src/domain/agentexecution/controller.ts +8 -0
  385. package/src/domain/agentexecution/create-steps.ts +74 -44
  386. package/src/domain/agentexecution/submit-approval.ts +9 -6
  387. package/src/domain/agentexecution/submit-file-decision.ts +5 -4
  388. package/src/domain/agentinstance/__tests__/agentinstance.test.ts +2 -0
  389. package/src/domain/agentshare/__tests__/agentshare.test.ts +17 -0
  390. package/src/domain/agentshare/__tests__/create-authorization.test.ts +5 -4
  391. package/src/domain/agentshare/steps.ts +6 -4
  392. package/src/domain/apikey/__tests__/verifier.test.ts +73 -1
  393. package/src/domain/apikey/verifier.ts +45 -1
  394. package/src/domain/artifact/__tests__/artifact.test.ts +13 -24
  395. package/src/domain/channelapp/__tests__/channelapp.test.ts +7 -0
  396. package/src/domain/channelapp/controller.ts +4 -3
  397. package/src/domain/environment/__tests__/environment.test.ts +13 -0
  398. package/src/domain/executioncontext/__tests__/executioncontext.test.ts +2 -0
  399. package/src/domain/executioncontext/steps.ts +2 -1
  400. package/src/domain/iampolicy/__tests__/access-lists.test.ts +79 -0
  401. package/src/domain/iampolicy/__tests__/change.test.ts +63 -0
  402. package/src/domain/iampolicy/__tests__/controller.test.ts +39 -3
  403. package/src/domain/iampolicy/__tests__/grant-path.test.ts +595 -27
  404. package/src/domain/iampolicy/__tests__/iampolicy.test.ts +33 -2
  405. package/src/domain/iampolicy/__tests__/membership.test.ts +47 -5
  406. package/src/domain/iampolicy/__tests__/resource-store.test.ts +1 -0
  407. package/src/domain/iampolicy/__tests__/role-lifecycle.test.ts +41 -8
  408. package/src/domain/iampolicy/__tests__/roles.test.ts +3 -2
  409. package/src/domain/iampolicy/__tests__/steps.test.ts +75 -6
  410. package/src/domain/iampolicy/__tests__/support.ts +68 -4
  411. package/src/domain/iampolicy/access-lists.ts +70 -2
  412. package/src/domain/iampolicy/change.ts +109 -0
  413. package/src/domain/iampolicy/constants.ts +8 -0
  414. package/src/domain/iampolicy/controller.ts +17 -3
  415. package/src/domain/iampolicy/grant-path.ts +349 -31
  416. package/src/domain/iampolicy/membership.ts +32 -12
  417. package/src/domain/iampolicy/resource-store.ts +4 -0
  418. package/src/domain/iampolicy/role-lifecycle.ts +2 -0
  419. package/src/domain/iampolicy/roles.ts +8 -0
  420. package/src/domain/iampolicy/steps.ts +15 -5
  421. package/src/domain/iampolicy/store-contract.ts +37 -1
  422. package/src/domain/iampolicy/store.ts +19 -5
  423. package/src/domain/identityaccount/__tests__/resolve.test.ts +246 -2
  424. package/src/domain/identityaccount/__tests__/resource-store.test.ts +1 -1
  425. package/src/domain/identityaccount/constants.ts +20 -0
  426. package/src/domain/identityaccount/controller.ts +20 -5
  427. package/src/domain/identityaccount/resolve.ts +80 -1
  428. package/src/domain/identityaccount/resource-store.ts +14 -1
  429. package/src/domain/identityaccount/steps.ts +4 -3
  430. package/src/domain/identityaccount/store-contract.ts +4 -4
  431. package/src/domain/identityaccount/store.ts +6 -1
  432. package/src/domain/mcpserver/__tests__/connect-authorization.test.ts +1 -0
  433. package/src/domain/mcpserver/__tests__/connect.test.ts +358 -15
  434. package/src/domain/mcpserver/__tests__/mcpserver.test.ts +2 -0
  435. package/src/domain/mcpserver/__tests__/oauth-handshake.test.ts +2 -0
  436. package/src/domain/mcpserver/__tests__/store-faults.test.ts +2 -0
  437. package/src/domain/mcpserver/connect-sandbox.ts +135 -0
  438. package/src/domain/mcpserver/connect.ts +226 -56
  439. package/src/domain/mcpserver/controller.ts +8 -2
  440. package/src/domain/mcpserver/engine.ts +24 -6
  441. package/src/domain/mcpserver/start-connect.ts +49 -10
  442. package/src/domain/memory/__tests__/memory.test.ts +92 -22
  443. package/src/domain/memory/__tests__/queries.test.ts +173 -0
  444. package/src/domain/memory/controller.ts +2 -1
  445. package/src/domain/memory/list-index.ts +32 -0
  446. package/src/domain/memory/queries.ts +72 -0
  447. package/src/domain/memory/steps.ts +26 -63
  448. package/src/domain/oauthapp/__tests__/oauthapp.test.ts +14 -0
  449. package/src/domain/organization/__tests__/support.ts +41 -0
  450. package/src/domain/organization/steps.ts +1 -0
  451. package/src/domain/platformclient/mint.ts +6 -2
  452. package/src/domain/platformclient/verifier.ts +6 -3
  453. package/src/domain/plugin/__tests__/plugin.test.ts +11 -24
  454. package/src/domain/plugin/push.ts +1 -0
  455. package/src/domain/schedule/__tests__/schedule.composed.test.ts +2 -0
  456. package/src/domain/schedule/steps.ts +3 -1
  457. package/src/domain/session/__tests__/session.test.ts +2 -0
  458. package/src/domain/skill/__tests__/skill.test.ts +7 -25
  459. package/src/domain/skill/push.ts +1 -0
  460. package/src/domain/workflow/__tests__/workflow.test.ts +2 -0
  461. package/src/domain/workflow/registry/data/task-kind-registry.json +27 -1
  462. package/src/domain/workflowexecution/__tests__/forward-attribution-composed.test.ts +270 -0
  463. package/src/domain/workflowexecution/__tests__/submit-workflow-task-approval.test.ts +196 -0
  464. package/src/domain/workflowexecution/__tests__/workflowexecution.test.ts +3 -57
  465. package/src/domain/workflowexecution/submit-approval.ts +9 -2
  466. package/src/domain/workflowexecution/submit-file-decision.ts +6 -1
  467. package/src/domain/workflowexecution/submit-workflow-task-approval.ts +23 -5
  468. package/src/domain/workflowinstance/controller.ts +27 -9
  469. package/src/domain/workflowinstance/steps.ts +123 -1
  470. package/src/extensions/__tests__/apikey-before-sign-in-composed.test.ts +172 -0
  471. package/src/extensions/__tests__/built-in-authorization-composed.test.ts +80 -1
  472. package/src/extensions/__tests__/composed-services-composed.test.ts +236 -0
  473. package/src/extensions/__tests__/extension-composition.test.ts +229 -16
  474. package/src/extensions/__tests__/identity-account-composed.test.ts +84 -4
  475. package/src/extensions/__tests__/list-read-scope-composed.test.ts +2 -0
  476. package/src/extensions/__tests__/registry.test.ts +147 -1
  477. package/src/extensions/__tests__/secret-cleanup-composed.test.ts +2 -0
  478. package/src/extensions/__tests__/visitor-classifier-points.test.ts +42 -0
  479. package/src/extensions/composed-services.ts +61 -0
  480. package/src/extensions/drivers.ts +33 -1
  481. package/src/extensions/identity.ts +4 -1
  482. package/src/extensions/registry.ts +105 -0
  483. package/src/extensions/resource-authorization.ts +87 -0
  484. package/src/extensions/resource-row-reader.ts +43 -0
  485. package/src/extensions/visitor-classifier.ts +41 -0
  486. package/src/identity/__tests__/oidc-verifier.test.ts +38 -12
  487. package/src/identity/oidc-userinfo.ts +6 -1
  488. package/src/identity/oidc-verifier.ts +42 -8
  489. package/src/index.ts +61 -6
  490. package/src/pipeline/__tests__/steps.test.ts +31 -4
  491. package/src/pipeline/errors.ts +30 -16
  492. package/src/pipeline/interceptors/auth.ts +17 -9
  493. package/src/pipeline/steps/__tests__/authorization-tuples.test.ts +20 -0
  494. package/src/pipeline/steps/__tests__/guard-memory-capture.test.ts +72 -15
  495. package/src/pipeline/steps/authorization-tuples.ts +54 -0
  496. package/src/pipeline/steps/authorize.ts +6 -5
  497. package/src/pipeline/steps/defaults.ts +52 -7
  498. package/src/pipeline/steps/guard-memory-capture.ts +15 -20
  499. package/src/runnerauth/__tests__/built-in-runner-credential-provider.test.ts +1 -1
  500. package/src/runnerauth/__tests__/runner-subject-composed.test.ts +13 -0
  501. package/src/runnerauth/bound-execution.ts +2 -2
  502. package/src/runnerauth/built-in-runner-credential-provider.ts +8 -21
  503. package/src/runnerauth/runner-credential-provider.ts +17 -7
  504. package/src/sandbox/__tests__/docker.integration.test.ts +4 -0
  505. package/src/sandbox/__tests__/kubernetes.test.ts +18 -1
  506. package/src/sandbox/__tests__/local-process.integration.test.ts +4 -0
  507. package/src/sandbox/__tests__/provisioner.test.ts +1 -0
  508. package/src/sandbox/docker.ts +3 -0
  509. package/src/sandbox/kubernetes.ts +3 -0
  510. package/src/sandbox/local-process.ts +4 -0
  511. package/src/sandbox/provisioner.ts +18 -6
  512. package/src/store/postgres/__tests__/support.ts +11 -2
  513. package/src/temporal/README.md +1 -0
  514. package/src/temporal/__tests__/manager.test.ts +56 -4
  515. package/src/temporal/__tests__/sdk-log-workflows.ts +26 -0
  516. package/src/temporal/__tests__/sdk-logger.e2e.test.ts +150 -0
  517. package/src/temporal/__tests__/sdk-logger.test.ts +238 -0
  518. package/src/temporal/manager.ts +9 -0
  519. package/src/temporal/mcpserver/engine-client.ts +8 -3
  520. package/src/temporal/mcpserver/names.ts +16 -2
  521. package/src/temporal/sdk-logger.ts +173 -0
  522. package/dist/authorization/lane-admission.d.ts +0 -50
  523. package/dist/authorization/lane-admission.d.ts.map +0 -1
  524. package/dist/authorization/lane-admission.js +0 -13
  525. package/dist/authorization/lane-admission.js.map +0 -1
  526. package/src/authorization/__tests__/lane-admission.test.ts +0 -115
  527. package/src/authorization/lane-admission.ts +0 -73
@@ -19,7 +19,7 @@
19
19
  import type { Client } from "@temporalio/client";
20
20
  import type { Logger } from "../../boot/logger.js";
21
21
  import type { AgentExecutionTemporalConfig } from "../../domain/agentexecution/temporal/config.js";
22
- import type { ConnectRun, ConnectWorkflowInput, McpServerConnectEngine, McpServerEngineStateProvider } from "../../domain/mcpserver/engine.js";
22
+ import type { ConnectRun, ConnectTaskQueue, ConnectWorkflowInput, McpServerConnectEngine, McpServerEngineStateProvider } from "../../domain/mcpserver/engine.js";
23
23
  import type { TemporalManager } from "../manager.js";
24
24
  export interface McpServerEngineDeps {
25
25
  readonly client: Client;
@@ -29,7 +29,7 @@ export interface McpServerEngineDeps {
29
29
  export declare class TemporalMcpServerConnectEngine implements McpServerConnectEngine {
30
30
  private readonly deps;
31
31
  constructor(deps: McpServerEngineDeps);
32
- startOrAttachConnect(mcpServerId: string, input: ConnectWorkflowInput, runTimeoutMs: number): Promise<ConnectRun>;
32
+ startOrAttachConnect(mcpServerId: string, input: ConnectWorkflowInput, runTimeoutMs: number, taskQueue: ConnectTaskQueue): Promise<ConnectRun>;
33
33
  isConnectRunRunning(workflowId: string): Promise<boolean>;
34
34
  hasRunnerQueuePollers(): Promise<boolean | undefined>;
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine-client.d.ts","sourceRoot":"","sources":["../../../src/temporal/mcpserver/engine-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAajD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,KAAK,EACV,UAAU,EAGV,oBAAoB,EAEpB,sBAAsB,EAEtB,4BAA4B,EAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,8BAA+B,YAAW,sBAAsB;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEhD,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,oBAAoB,EAC3B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC;IA8ChB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAczD,qBAAqB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;CAmB5D;AAoGD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,4BAA4B,CAsB/B"}
1
+ {"version":3,"file":"engine-client.d.ts","sourceRoot":"","sources":["../../../src/temporal/mcpserver/engine-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAajD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EAChB,oBAAoB,EAEpB,sBAAsB,EAEtB,4BAA4B,EAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,8BAA+B,YAAW,sBAAsB;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEhD,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,oBAAoB,EAC3B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAiDhB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAczD,qBAAqB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;CAmB5D;AAoGD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,4BAA4B,CAsB/B"}
@@ -11,13 +11,15 @@ export class TemporalMcpServerConnectEngine {
11
11
  constructor(deps) {
12
12
  this.deps = deps;
13
13
  }
14
- async startOrAttachConnect(mcpServerId, input, runTimeoutMs) {
14
+ async startOrAttachConnect(mcpServerId, input, runTimeoutMs, taskQueue) {
15
15
  const { client, config, logger } = this.deps;
16
16
  const workflowId = connectWorkflowIdFor(mcpServerId);
17
17
  // MCP connect is not session-scoped (it discovers tools at the server
18
- // level), so it always routes to the default runner queue regardless
19
- // of routing mode (connect.go:642-645).
20
- const runnerQueue = config.runnerQueue;
18
+ // level), so it never takes the agent-execution routing mode: it runs
19
+ // on the shared runner queue (connect.go:642-645) or, with a sandbox
20
+ // provisioner composed, on the queue its own connect sandbox serves —
21
+ // the domain decides which (engine.ts ConnectTaskQueue).
22
+ const runnerQueue = taskQueue.kind === "runner" ? config.runnerQueue : taskQueue.name;
21
23
  let handle;
22
24
  let attached = false;
23
25
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"engine-client.js","sourceRoot":"","sources":["../../../src/temporal/mcpserver/engine-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine-client.js","sourceRoot":"","sources":["../../../src/temporal/mcpserver/engine-client.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * McpServer connect workflow wire identifiers — cross-edition constants
3
- * copied character-for-character from Go (connect.go:31-32, 584-586).
4
- * Renaming one is a wire protocol break (guidelines §2).
3
+ * copied character-for-character from Go (connect.go:31-32, 584-586), plus
4
+ * the connect sandbox's task queue (stigmer/stigmer#1474), which a
5
+ * sandboxed runner polls. Renaming one is a wire protocol break
6
+ * (guidelines §2).
5
7
  */
6
8
  /** The runner's connect workflow type (Go connectWorkflowName). */
7
9
  export declare const CONNECT_WORKFLOW_NAME = "stigmer/mcp-server/connect";
@@ -17,4 +19,13 @@ export declare const CONNECT_WORKFLOW_NAME = "stigmer/mcp-server/connect";
17
19
  * is.
18
20
  */
19
21
  export declare function connectWorkflowIdFor(mcpServerId: string): string;
22
+ /**
23
+ * The task queue one connect sandbox serves: its runner polls exactly this
24
+ * queue (STIGMER_TASK_QUEUE) and the connect workflow is started on it. The
25
+ * colon form of every per-queue name (`session:`, `wfexec:`, `sandbox:`);
26
+ * the id is the connect's synthetic execution id
27
+ * (domain/mcpserver/connect-execution-id.ts), unique per attempt, so two
28
+ * connects of one server never share a sandbox.
29
+ */
30
+ export declare function connectTaskQueueFor(connectExecutionId: string): string;
20
31
  //# sourceMappingURL=names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../../src/temporal/mcpserver/names.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,+BAA+B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE"}
1
+ {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../../src/temporal/mcpserver/names.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,+BAA+B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAEtE"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * McpServer connect workflow wire identifiers — cross-edition constants
3
- * copied character-for-character from Go (connect.go:31-32, 584-586).
4
- * Renaming one is a wire protocol break (guidelines §2).
3
+ * copied character-for-character from Go (connect.go:31-32, 584-586), plus
4
+ * the connect sandbox's task queue (stigmer/stigmer#1474), which a
5
+ * sandboxed runner polls. Renaming one is a wire protocol break
6
+ * (guidelines §2).
5
7
  */
6
8
  /** The runner's connect workflow type (Go connectWorkflowName). */
7
9
  export const CONNECT_WORKFLOW_NAME = "stigmer/mcp-server/connect";
@@ -19,4 +21,15 @@ export const CONNECT_WORKFLOW_NAME = "stigmer/mcp-server/connect";
19
21
  export function connectWorkflowIdFor(mcpServerId) {
20
22
  return `${CONNECT_WORKFLOW_NAME}/${mcpServerId}`;
21
23
  }
24
+ /**
25
+ * The task queue one connect sandbox serves: its runner polls exactly this
26
+ * queue (STIGMER_TASK_QUEUE) and the connect workflow is started on it. The
27
+ * colon form of every per-queue name (`session:`, `wfexec:`, `sandbox:`);
28
+ * the id is the connect's synthetic execution id
29
+ * (domain/mcpserver/connect-execution-id.ts), unique per attempt, so two
30
+ * connects of one server never share a sandbox.
31
+ */
32
+ export function connectTaskQueueFor(connectExecutionId) {
33
+ return `mcpconnect:${connectExecutionId}`;
34
+ }
22
35
  //# sourceMappingURL=names.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"names.js","sourceRoot":"","sources":["../../../src/temporal/mcpserver/names.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,GAAG,qBAAqB,IAAI,WAAW,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../../src/temporal/mcpserver/names.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,GAAG,qBAAqB,IAAI,WAAW,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,kBAA0B;IAC5D,OAAO,cAAc,kBAAkB,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * The Temporal SDK's log lines, routed through the server logger (#1037).
3
+ *
4
+ * The SDK logs through its process-wide Runtime logger: `Activity failed`
5
+ * with the activity's identity and error, worker lifecycle lines, and every
6
+ * `log.*` a workflow body calls (the workflow sink resolves to the same
7
+ * logger). Left at its default, that logger writes its own format to
8
+ * stderr, outside LOG_LEVEL and outside the sink seam, so a deployable that
9
+ * exports the server's lines (boot/logger.ts's `sink`) never sees the
10
+ * warnings an operator most needs. One `Runtime.install({ logger })` before
11
+ * the first native connection routes them all through the server logger,
12
+ * with the same threshold, shape and export as every other line.
13
+ *
14
+ * Meta becomes fields by one table, keyed on who wrote the line. The SDK
15
+ * tags each line with `sdkComponent`; `workflow`, `activity` and `nexus`
16
+ * are the context loggers user code calls, and the SDK "never publishes
17
+ * messages with" them (@temporalio/common's SdkComponent). Those lines are
18
+ * ours and get the server logger's own contract: values pass as the call
19
+ * site wrote them, and redaction is the call site's. Every other line is
20
+ * the SDK's own, and keeps only strings, numbers and booleans, because
21
+ * its nested values are not ours to vouch for: at debug the SDK logs
22
+ * `Creating worker` with the whole worker options, which hold the payload
23
+ * codecs and their decryption keys. An unknown or absent component is
24
+ * treated as the SDK's, since the SDK says its component list may change.
25
+ * On every line: symbol keys are dropped (the workflow sink's call-time
26
+ * stamp rides one), `taskToken` is dropped (it can complete the activity
27
+ * from outside, and has no business in a log store), null and undefined
28
+ * are dropped, an Error becomes its message as every server call site logs
29
+ * one, and a bigint becomes its decimal string because JSON cannot carry
30
+ * it. Keys keep the SDK's names (`activityType`, `workflowId`), which are
31
+ * Temporal's documented vocabulary.
32
+ *
33
+ * Two consequences, accepted. A workflow line is stamped when its
34
+ * activation's sinks flush, milliseconds after the `log.*` call, because
35
+ * the server Logger takes no instant. And the table runs before the
36
+ * threshold drops a line, because the Logger exposes no level check; it
37
+ * walks a handful of keys, and drops the one large SDK object unwalked.
38
+ *
39
+ * Native (Rust core) lines stay on the console, as the SDK defaults:
40
+ * forwarding them makes the SDK buffer every runtime-logger line for
41
+ * 100 ms (RuntimeOptions' telemetryOptions.logging), which would delay and
42
+ * restamp `Activity failed` itself.
43
+ *
44
+ * The Runtime is a process singleton, so the install is a bridge with one
45
+ * process instance: the first attach installs an adapter that reads the
46
+ * bridge's current target, and every later attach (a reconnect, a second
47
+ * composition in one test process) only retargets it. A Runtime created
48
+ * before the first attach (a test environment, or an embedder that touched
49
+ * the SDK first) keeps the SDK default; the attach says so once and never
50
+ * fails the boot over it. TemporalManager attaches before every native
51
+ * connect, so every worker it builds, OSS and extension alike, is covered.
52
+ * A composition that prebuilds a bundle with `bundleWorkflowCode` passes
53
+ * that call its own logger: the bundler never reads the Runtime.
54
+ */
55
+ import { type LogMetadata, type Logger as SdkLogger } from "@temporalio/common";
56
+ import { type RuntimeOptions } from "@temporalio/worker";
57
+ import type { LogFields, Logger } from "../boot/logger.js";
58
+ /** The meta table (module header), exported for its own unit arms. */
59
+ export declare function toLogFields(meta: LogMetadata | undefined): LogFields;
60
+ /** The SDK's Logger over whichever server logger `target` returns now. */
61
+ export declare function createSdkLoggerAdapter(target: () => Logger): SdkLogger;
62
+ /** `Runtime.install`'s shape, the bridge's test seam. */
63
+ export type RuntimeInstall = (options: RuntimeOptions) => unknown;
64
+ export interface SdkLogBridge {
65
+ /**
66
+ * Routes the SDK's lines to `logger`: installs the Runtime logger on the
67
+ * first call, retargets it on every later one.
68
+ */
69
+ attach(logger: Logger): void;
70
+ }
71
+ export declare function createSdkLogBridge(install: RuntimeInstall): SdkLogBridge;
72
+ /** The process's one bridge, over the SDK's one Runtime. */
73
+ export declare const processSdkLogBridge: SdkLogBridge;
74
+ //# sourceMappingURL=sdk-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-logger.d.ts","sourceRoot":"","sources":["../../src/temporal/sdk-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,MAAM,IAAI,SAAS,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAY,MAAM,mBAAmB,CAAC;AAoBrE,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAwBpE;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,CAYtE;AAED,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,YAAY,CA+BxE;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,EAAE,YAEjC,CAAC"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * The Temporal SDK's log lines, routed through the server logger (#1037).
3
+ *
4
+ * The SDK logs through its process-wide Runtime logger: `Activity failed`
5
+ * with the activity's identity and error, worker lifecycle lines, and every
6
+ * `log.*` a workflow body calls (the workflow sink resolves to the same
7
+ * logger). Left at its default, that logger writes its own format to
8
+ * stderr, outside LOG_LEVEL and outside the sink seam, so a deployable that
9
+ * exports the server's lines (boot/logger.ts's `sink`) never sees the
10
+ * warnings an operator most needs. One `Runtime.install({ logger })` before
11
+ * the first native connection routes them all through the server logger,
12
+ * with the same threshold, shape and export as every other line.
13
+ *
14
+ * Meta becomes fields by one table, keyed on who wrote the line. The SDK
15
+ * tags each line with `sdkComponent`; `workflow`, `activity` and `nexus`
16
+ * are the context loggers user code calls, and the SDK "never publishes
17
+ * messages with" them (@temporalio/common's SdkComponent). Those lines are
18
+ * ours and get the server logger's own contract: values pass as the call
19
+ * site wrote them, and redaction is the call site's. Every other line is
20
+ * the SDK's own, and keeps only strings, numbers and booleans, because
21
+ * its nested values are not ours to vouch for: at debug the SDK logs
22
+ * `Creating worker` with the whole worker options, which hold the payload
23
+ * codecs and their decryption keys. An unknown or absent component is
24
+ * treated as the SDK's, since the SDK says its component list may change.
25
+ * On every line: symbol keys are dropped (the workflow sink's call-time
26
+ * stamp rides one), `taskToken` is dropped (it can complete the activity
27
+ * from outside, and has no business in a log store), null and undefined
28
+ * are dropped, an Error becomes its message as every server call site logs
29
+ * one, and a bigint becomes its decimal string because JSON cannot carry
30
+ * it. Keys keep the SDK's names (`activityType`, `workflowId`), which are
31
+ * Temporal's documented vocabulary.
32
+ *
33
+ * Two consequences, accepted. A workflow line is stamped when its
34
+ * activation's sinks flush, milliseconds after the `log.*` call, because
35
+ * the server Logger takes no instant. And the table runs before the
36
+ * threshold drops a line, because the Logger exposes no level check; it
37
+ * walks a handful of keys, and drops the one large SDK object unwalked.
38
+ *
39
+ * Native (Rust core) lines stay on the console, as the SDK defaults:
40
+ * forwarding them makes the SDK buffer every runtime-logger line for
41
+ * 100 ms (RuntimeOptions' telemetryOptions.logging), which would delay and
42
+ * restamp `Activity failed` itself.
43
+ *
44
+ * The Runtime is a process singleton, so the install is a bridge with one
45
+ * process instance: the first attach installs an adapter that reads the
46
+ * bridge's current target, and every later attach (a reconnect, a second
47
+ * composition in one test process) only retargets it. A Runtime created
48
+ * before the first attach (a test environment, or an embedder that touched
49
+ * the SDK first) keeps the SDK default; the attach says so once and never
50
+ * fails the boot over it. TemporalManager attaches before every native
51
+ * connect, so every worker it builds, OSS and extension alike, is covered.
52
+ * A composition that prebuilds a bundle with `bundleWorkflowCode` passes
53
+ * that call its own logger: the bundler never reads the Runtime.
54
+ */
55
+ import { IllegalStateError, SdkComponent, } from "@temporalio/common";
56
+ import { Runtime } from "@temporalio/worker";
57
+ /** The components whose lines come from our own code (module header). */
58
+ const CALLER_COMPONENTS = new Set([
59
+ SdkComponent.workflow,
60
+ SdkComponent.activity,
61
+ SdkComponent.nexus,
62
+ ]);
63
+ /** Dropped on every line: it completes the activity from outside. */
64
+ const TASK_TOKEN_KEY = "taskToken";
65
+ const LEVELS = {
66
+ TRACE: "debug",
67
+ DEBUG: "debug",
68
+ INFO: "info",
69
+ WARN: "warn",
70
+ ERROR: "error",
71
+ };
72
+ /** The meta table (module header), exported for its own unit arms. */
73
+ export function toLogFields(meta) {
74
+ const fields = {};
75
+ if (meta === undefined) {
76
+ return fields;
77
+ }
78
+ const fromCaller = CALLER_COMPONENTS.has(String(meta["sdkComponent"]));
79
+ for (const [key, value] of Object.entries(meta)) {
80
+ if (key === TASK_TOKEN_KEY || value === null || value === undefined) {
81
+ continue;
82
+ }
83
+ if (value instanceof Error) {
84
+ fields[key] = value.message;
85
+ }
86
+ else if (typeof value === "bigint") {
87
+ fields[key] = value.toString();
88
+ }
89
+ else if (fromCaller ||
90
+ typeof value === "string" ||
91
+ typeof value === "number" ||
92
+ typeof value === "boolean") {
93
+ fields[key] = value;
94
+ }
95
+ }
96
+ return fields;
97
+ }
98
+ /** The SDK's Logger over whichever server logger `target` returns now. */
99
+ export function createSdkLoggerAdapter(target) {
100
+ const log = (level, message, meta) => {
101
+ target()[LEVELS[level]](message, toLogFields(meta));
102
+ };
103
+ return {
104
+ log,
105
+ trace: (message, meta) => log("TRACE", message, meta),
106
+ debug: (message, meta) => log("DEBUG", message, meta),
107
+ info: (message, meta) => log("INFO", message, meta),
108
+ warn: (message, meta) => log("WARN", message, meta),
109
+ error: (message, meta) => log("ERROR", message, meta),
110
+ };
111
+ }
112
+ export function createSdkLogBridge(install) {
113
+ let state = "pending";
114
+ let target;
115
+ const adapter = createSdkLoggerAdapter(() => {
116
+ if (target === undefined) {
117
+ throw new Error("Temporal SDK log bridge used before attach");
118
+ }
119
+ return target;
120
+ });
121
+ return {
122
+ attach(logger) {
123
+ target = logger;
124
+ if (state !== "pending") {
125
+ return;
126
+ }
127
+ try {
128
+ install({ logger: adapter });
129
+ state = "installed";
130
+ }
131
+ catch (error) {
132
+ if (!(error instanceof IllegalStateError)) {
133
+ throw error;
134
+ }
135
+ state = "preempted";
136
+ logger.warn("Temporal SDK logger not installed: the Temporal runtime already existed before the worker manager's first connect", { error: error.message });
137
+ }
138
+ },
139
+ };
140
+ }
141
+ /** The process's one bridge, over the SDK's one Runtime. */
142
+ export const processSdkLogBridge = createSdkLogBridge((options) => Runtime.install(options));
143
+ //# sourceMappingURL=sdk-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-logger.js","sourceRoot":"","sources":["../../src/temporal/sdk-logger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/server",
3
- "version": "3.40.1",
3
+ "version": "3.41.0",
4
4
  "description": "The Stigmer OSS control plane as a composable library: composeServer, the extension registry and the driver seams a composition builds on. The self-contained deployable of the same server is @stigmer/server-slim.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -63,11 +63,11 @@
63
63
  "@connectrpc/connect-node": "^2.0.0",
64
64
  "@kubernetes/client-node": "2.0.0",
65
65
  "@opentelemetry/api": "^1.9.0",
66
- "@stigmer/outbound": "3.40.1",
67
- "@stigmer/plugin-package": "3.40.1",
68
- "@stigmer/protos": "3.40.1",
69
- "@stigmer/temporal-codecs": "3.40.1",
70
- "@stigmer/zip-structure": "3.40.1",
66
+ "@stigmer/outbound": "3.41.0",
67
+ "@stigmer/plugin-package": "3.41.0",
68
+ "@stigmer/protos": "3.41.0",
69
+ "@stigmer/temporal-codecs": "3.41.0",
70
+ "@stigmer/zip-structure": "3.41.0",
71
71
  "@temporalio/activity": "1.16.2",
72
72
  "@temporalio/client": "1.16.2",
73
73
  "@temporalio/common": "1.16.2",
@@ -42,14 +42,16 @@ computes.
42
42
  edition evaluates (`authorizer.ts`, arm 2).
43
43
  - `tuples.ts` — the tuple vocabulary (object, relation, subject; the string
44
44
  notation), the `Person` type (the caller as the model sees them: account id
45
- plus the aliases a creator stamp may carry). The model declares no wildcard
45
+ plus the aliases a creator stamp may carry), and the `Principal` a check asks
46
+ about: a person, or any other object matched by its own reference. The model declares no wildcard
46
47
  subject and no condition, so a check carries no context and the parser refuses
47
48
  the `type:*` notation.
48
49
  - `person.ts` — the one construction of a `Person`: `resolvePerson` reads the
49
50
  caller's account through the port the way whoAmI does, `personFor` builds the
50
51
  aliases (the account id and the issuer subject; an email is nobody's) and
51
52
  refuses an identity that names no person. Every driver resolves the caller
52
- here.
53
+ here; `personOfAccount` builds the same aliases for an account id no caller
54
+ stands for (an invitation's creator).
53
55
  - `evaluator.ts` — OpenFGA's check over a model and a tuple source: type
54
56
  restrictions enforced on direct tuples (model drift fails closed), a memo per
55
57
  (object, relation), OpenFGA's depth bound, cycles and undeclared targets as
@@ -68,7 +70,10 @@ computes.
68
70
  organization's owner is a row, and a stamp that names no person is no tuple. A
69
71
  source may be seeded with candidates' facts (the list scope), so a seeded
70
72
  object's tuples derive without a read of its row; a `derived` rule still reads
71
- the row it needs.
73
+ the row it needs. A row is read where the composition keeps it: open source's
74
+ kinds from the generic Store, an account through the account port, and a kind
75
+ a unit keeps itself through the reader it registered
76
+ (`drivers.resourceRowReaders`).
72
77
  - `strict-json.ts` — the strict reads both data inputs share (the compiled
73
78
  model and the store tests): an unknown key or a wrong shape is a fault naming
74
79
  where, never a half-read input.
@@ -78,8 +83,9 @@ computes.
78
83
  with the Java copy; a kind this edition does not serve denied (a platform
79
84
  capability no self-host holds); the target loaded once through the source;
80
85
  `not-found` for a missing row except on the kinds the cloud never probes
81
- (`NOT_FOUND_EXEMPT_KINDS`: `identity_account`, `iam_policy` — account ids
82
- cannot be enumerated); the model's answer with an empty reason on a denial so
86
+ (`NOT_FOUND_EXEMPT_KINDS`, the cloud's own set: accounts, policies, platform
87
+ clients, and the platform, identity providers, invitations and teams an
88
+ edition above open source serves — ids cannot be enumerated); the model's answer with an empty reason on a denial so
83
89
  the annotation's copy wins; every fault `unavailable`, never a denial and
84
90
  never a throw.
85
91
  - `organization-directory.ts` — `findMyOrganizations` as the cloud answers it
@@ -100,8 +106,14 @@ computes.
100
106
  that does not decode skipped; the `internal` class keeps everything (the
101
107
  in-process skip); a fault throws and is never an empty answer; an undeclared
102
108
  kind is a consumer bug, loud.
109
+ - `policy-check.ts` — the one query-engine verb a unit asks, "is this policy
110
+ held", answered by the evaluator for a person by account id or for any other
111
+ object; handed to units as the composition's `authorizationQueries` under
112
+ the built-in posture. Contextual policies and userset principals are refused.
103
113
  - `posture.ts` — the three postures, named once for the composition root and the
104
- boot log.
114
+ boot log, and `kindsWithoutRows`: the served kinds the built-in posture could
115
+ not read, which refuses the boot of an edition above open source until each
116
+ has a reader.
105
117
 
106
118
  ## Proof
107
119
 
@@ -115,12 +115,16 @@ const SEEDED_KINDS: ReadonlyArray<ApiResourceKind> = [
115
115
  afterAll(dropPostgresFixture);
116
116
 
117
117
  describe("NOT_FOUND_EXEMPT_KINDS", () => {
118
- it("is the cloud's probe exemption restricted to the kinds this edition serves — identity_account, iam_policy and platform_client", () => {
118
+ it("is the cloud's probe exemption: accounts, policies and platform clients, and the platform, providers, invitations and teams a wider edition serves", () => {
119
119
  expect([...NOT_FOUND_EXEMPT_KINDS].sort()).toEqual(
120
120
  [
121
+ ApiResourceKind.platform,
121
122
  ApiResourceKind.identity_account,
123
+ ApiResourceKind.identity_provider,
122
124
  ApiResourceKind.iam_policy,
123
125
  ApiResourceKind.platform_client,
126
+ ApiResourceKind.invitation,
127
+ ApiResourceKind.team,
124
128
  ].sort(),
125
129
  );
126
130
  });
@@ -379,6 +379,30 @@ describe.each(driverFixtures(SEEDED_KINDS))(
379
379
  ).toEqual([]);
380
380
  });
381
381
 
382
+ it("derives the organization's affiliated tuple from each role row the person holds there, in the same read", async () => {
383
+ const affiliated = async (person: Person) =>
384
+ (
385
+ await sourceFor(person).tuplesOf(
386
+ parseObjectRef("organization:acme"),
387
+ "affiliated",
388
+ )
389
+ ).map(formatTuple);
390
+ expect(await affiliated(ROOT)).toEqual([
391
+ "organization:acme#affiliated@identity_account:ida_root",
392
+ ]);
393
+ expect(await affiliated(DAVE)).toEqual([
394
+ "organization:acme#affiliated@identity_account:ida_dave",
395
+ ]);
396
+ // The userset row (a partner organization's members as viewers)
397
+ // is structure, not a role the person holds: no affiliation.
398
+ expect(
399
+ await sourceFor(ROOT).tuplesOf(
400
+ parseObjectRef("organization:partner"),
401
+ "affiliated",
402
+ ),
403
+ ).toEqual([]);
404
+ });
405
+
382
406
  it("answers the person's own rows on the organization, and nobody else's", async () => {
383
407
  const source = sourceFor(ROOT);
384
408
  expect(
@@ -736,6 +760,7 @@ describe.each(driverFixtures(SEEDED_KINDS))(
736
760
  expect(
737
761
  (await sourceFor(DAVE).personTuples()).map(formatTuple).sort(),
738
762
  ).toEqual([
763
+ "organization:acme#affiliated@identity_account:ida_dave",
739
764
  "organization:acme#member@identity_account:ida_dave",
740
765
  "team:tm_core#member@identity_account:ida_dave",
741
766
  ]);
@@ -778,6 +803,7 @@ describe.each(driverFixtures(SEEDED_KINDS))(
778
803
  const policies = newResourceIamPolicyStore(opened.store);
779
804
  await grant(policies, orgRole(ROOT.accountId, "owner", "acme"));
780
805
  await grant(policies, orgRole(DAVE.accountId, "member", "acme"));
806
+ await grant(policies, orgRole(CAROL.accountId, "member", "acme"));
781
807
  await seed("organization", "acme", {
782
808
  org: "",
783
809
  visibility: ApiResourceVisibility.visibility_private,
@@ -73,9 +73,12 @@ async function allowed(
73
73
  }
74
74
 
75
75
  describe("a person against a direct tuple", () => {
76
+ // carol holds a role on acme, so her account carries the organization's
77
+ // `affiliated` tuple the model bounds every direct grant with.
76
78
  const source = newInMemoryTupleSource([
77
79
  tuple("agent:a#organization@organization:acme"),
78
80
  tuple("agent:a#owner@identity_account:auth0|carol"),
81
+ tuple("organization:acme#affiliated@identity_account:ida_carol"),
79
82
  ]);
80
83
 
81
84
  it("matches on any alias, so a row stamped with the 3.14 issuer subject is still its creator's", async () => {
@@ -256,6 +259,7 @@ describe("the walk itself", () => {
256
259
  // role AND still one of the organization's viewers.
257
260
  const source = newInMemoryTupleSource([
258
261
  tuple("organization:acme#viewer@identity_account:ida_vic"),
262
+ tuple("organization:acme#affiliated@identity_account:ida_vic"),
259
263
  tuple("team:sre#organization@organization:acme"),
260
264
  tuple("team:sre#member@identity_account:ida_vic"),
261
265
  tuple("team:sre#member@identity_account:ida_left"),
@@ -618,22 +618,28 @@ describe.each(driverFixtures(SEEDED_KINDS))(
618
618
  expect(storeReads).toEqual({ rows: 0, scans: 0 });
619
619
  });
620
620
 
621
- it("an unprovisioned subject is their raw subject and nothing else: the 3.14-stamped row is theirs, the organization's rows are not", async () => {
622
- // `agt_legacy` is stamped with LEGACY's raw subject; a caller
623
- // who IS that subject and holds no account reaches it through
624
- // the alias, and reaches nothing the organization holds.
621
+ it("an unprovisioned subject holds no role, so it reaches nothing an organization holds, the row its 3.14 subject stamped included", async () => {
622
+ // `agt_legacy` is stamped with LEGACY's raw subject. A caller who
623
+ // IS that subject but holds no account holds no role on the
624
+ // organization, and every direct grant, authorship included, is
625
+ // bounded by the organization's `affiliated`: the row becomes
626
+ // theirs again once they sign in and their roles are assigned
627
+ // (the next case).
625
628
  expect(
626
629
  await listAs(idpShaped(LEGACY_SUBJECT), ApiResourceKind.agent, [
627
630
  rows.get(ApiResourceKind.agent)!.get("agt_legacy")!,
628
631
  rows.get(ApiResourceKind.agent)!.get("agt_org")!,
629
632
  ]),
630
- ).toEqual(["agt_legacy"]);
633
+ ).toEqual([]);
631
634
  expect(
632
635
  await listAs(idpShaped(FRESH_SUBJECT), ApiResourceKind.agent),
633
636
  ).toEqual([]);
634
637
  });
635
638
 
636
639
  it("a provisioned account whose idp subject stamped the row still owns it — the alias comparison the 3.14 rows need, on the list verb", async () => {
640
+ // Provisioned: the membership rules gave the account whose
641
+ // subject stamped rows a role at its first sign-in.
642
+ await grant(orgRole(LEGACY, "member", ORG));
637
643
  expect(
638
644
  await listAs(resolved(LEGACY), ApiResourceKind.agent, [
639
645
  rows.get(ApiResourceKind.agent)!.get("agt_legacy")!,
@@ -51,8 +51,9 @@ const DOCUMENTS = [
51
51
  "agent-instance-creation.fga.yaml",
52
52
  "agent-share-owner.fga.yaml",
53
53
  "artifact-org-and-owner.fga.yaml",
54
+ "blueprint-editor.fga.yaml",
54
55
  "blueprint-private-visibility.fga.yaml",
55
- "channel-app-owner.fga.yaml",
56
+ "channel-app-administration.fga.yaml",
56
57
  "channel-participation.fga.yaml",
57
58
  "channel-session-visibility.fga.yaml",
58
59
  "credit-issuer.fga.yaml",
@@ -65,6 +66,7 @@ const DOCUMENTS = [
65
66
  "oauth-app-administration.fga.yaml",
66
67
  "org-admin-owner-inheritance.fga.yaml",
67
68
  "org-shared-environment.fga.yaml",
69
+ "organization-affiliation-bound.fga.yaml",
68
70
  "organization-role-assignment.fga.yaml",
69
71
  "plan-catalog-manager.fga.yaml",
70
72
  "platform-client-administration.fga.yaml",