@aeolus-fleet/core 0.27.0 → 0.28.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 (452) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/crypto/account-token-signatures.d.ts +12 -0
  3. package/dist/adapters/crypto/account-token-signatures.js +104 -0
  4. package/dist/adapters/crypto/account-token-signatures.js.map +1 -0
  5. package/dist/adapters/http/request-credentials.d.ts +7 -1
  6. package/dist/adapters/http/request-credentials.js +18 -5
  7. package/dist/adapters/http/request-credentials.js.map +1 -1
  8. package/dist/adapters/http/server.js +4 -2
  9. package/dist/adapters/http/server.js.map +1 -1
  10. package/dist/adapters/prisma/event-log.js +13 -1
  11. package/dist/adapters/prisma/event-log.js.map +1 -1
  12. package/dist/adapters/prisma/generated/browser.d.ts +36 -0
  13. package/dist/adapters/prisma/generated/client.d.ts +36 -0
  14. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +150 -0
  15. package/dist/adapters/prisma/generated/enums.d.ts +33 -0
  16. package/dist/adapters/prisma/generated/enums.js +29 -1
  17. package/dist/adapters/prisma/generated/enums.js.map +1 -1
  18. package/dist/adapters/prisma/generated/internal/class.d.ts +55 -0
  19. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  20. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  21. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +463 -8
  22. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +45 -10
  23. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  24. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +47 -7
  25. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +45 -10
  26. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  27. package/dist/adapters/prisma/generated/models/AccountCutOff.d.ts +944 -0
  28. package/dist/adapters/prisma/generated/models/AccountCutOff.js +2 -0
  29. package/dist/adapters/prisma/generated/models/AccountCutOff.js.map +1 -0
  30. package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +59 -1
  31. package/dist/adapters/prisma/generated/models/Event.d.ts +426 -1
  32. package/dist/adapters/prisma/generated/models/Fleet.d.ts +1270 -116
  33. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.d.ts +1031 -0
  34. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js +2 -0
  35. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js.map +1 -0
  36. package/dist/adapters/prisma/generated/models/Label.d.ts +113 -39
  37. package/dist/adapters/prisma/generated/models/Lease.d.ts +60 -1
  38. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.d.ts +1133 -0
  39. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js +2 -0
  40. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js.map +1 -0
  41. package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +24 -223
  42. package/dist/adapters/prisma/generated/models/PluginConnection.d.ts +1180 -0
  43. package/dist/adapters/prisma/generated/models/PluginConnection.js +2 -0
  44. package/dist/adapters/prisma/generated/models/PluginConnection.js.map +1 -0
  45. package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +1 -40
  46. package/dist/adapters/prisma/generated/models/Ship.d.ts +1072 -6
  47. package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +39 -1
  48. package/dist/adapters/prisma/generated/models/VerifiedFacts.d.ts +1325 -0
  49. package/dist/adapters/prisma/generated/models/VerifiedFacts.js +2 -0
  50. package/dist/adapters/prisma/generated/models/VerifiedFacts.js.map +1 -0
  51. package/dist/adapters/prisma/generated/models.d.ts +5 -0
  52. package/dist/adapters/prisma/history.js +5 -2
  53. package/dist/adapters/prisma/history.js.map +1 -1
  54. package/dist/adapters/prisma/identity.d.ts +3 -1
  55. package/dist/adapters/prisma/identity.js +41 -8
  56. package/dist/adapters/prisma/identity.js.map +1 -1
  57. package/dist/adapters/prisma/messaging.js +5 -2
  58. package/dist/adapters/prisma/messaging.js.map +1 -1
  59. package/dist/adapters/prisma/network.d.ts +7 -2
  60. package/dist/adapters/prisma/network.js +92 -62
  61. package/dist/adapters/prisma/network.js.map +1 -1
  62. package/dist/adapters/prisma/overdue.js +4 -3
  63. package/dist/adapters/prisma/overdue.js.map +1 -1
  64. package/dist/adapters/prisma/plugin-connections.d.ts +4 -0
  65. package/dist/adapters/prisma/plugin-connections.js +20 -0
  66. package/dist/adapters/prisma/plugin-connections.js.map +1 -0
  67. package/dist/adapters/prisma/registry.js +22 -16
  68. package/dist/adapters/prisma/registry.js.map +1 -1
  69. package/dist/adapters/prisma/rows.d.ts +9 -4
  70. package/dist/adapters/prisma/rows.js +77 -19
  71. package/dist/adapters/prisma/rows.js.map +1 -1
  72. package/dist/adapters/prisma/unit-of-work.d.ts +5 -2
  73. package/dist/adapters/prisma/unit-of-work.js +7 -2
  74. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  75. package/dist/adapters/prisma/verified-facts.d.ts +4 -0
  76. package/dist/adapters/prisma/verified-facts.js +65 -0
  77. package/dist/adapters/prisma/verified-facts.js.map +1 -0
  78. package/dist/adapters/rest/rest-api.js +2 -2
  79. package/dist/adapters/rest/rest-api.js.map +1 -1
  80. package/dist/adapters/trpc/console.d.ts +3 -1
  81. package/dist/adapters/trpc/context.d.ts +28 -6
  82. package/dist/adapters/trpc/fleet.d.ts +314 -51
  83. package/dist/adapters/trpc/fleet.js +137 -75
  84. package/dist/adapters/trpc/fleet.js.map +1 -1
  85. package/dist/adapters/trpc/installation-token.d.ts +7 -0
  86. package/dist/adapters/trpc/installation-token.js +10 -0
  87. package/dist/adapters/trpc/installation-token.js.map +1 -0
  88. package/dist/adapters/trpc/installation.d.ts +32 -2
  89. package/dist/adapters/trpc/installation.js +14 -10
  90. package/dist/adapters/trpc/installation.js.map +1 -1
  91. package/dist/adapters/trpc/router.d.ts +435 -42
  92. package/dist/adapters/trpc/ship-contract.js +6 -3
  93. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  94. package/dist/adapters/trpc/ship-protocol.js +1 -1
  95. package/dist/adapters/trpc/ship-protocol.js.map +1 -1
  96. package/dist/adapters/trpc/ship.d.ts +117 -1
  97. package/dist/adapters/trpc/ship.js +52 -6
  98. package/dist/adapters/trpc/ship.js.map +1 -1
  99. package/dist/adapters/trpc/trpc.d.ts +43 -17
  100. package/dist/adapters/trpc/trpc.js +131 -31
  101. package/dist/adapters/trpc/trpc.js.map +1 -1
  102. package/dist/app.d.ts +2 -0
  103. package/dist/app.js +22 -0
  104. package/dist/app.js.map +1 -1
  105. package/dist/config.d.ts +5 -0
  106. package/dist/config.js +3 -1
  107. package/dist/config.js.map +1 -1
  108. package/dist/domain/identity/authenticate-account.d.ts +35 -0
  109. package/dist/domain/identity/authenticate-account.js +54 -0
  110. package/dist/domain/identity/authenticate-account.js.map +1 -0
  111. package/dist/domain/identity/authenticate-installation.d.ts +23 -0
  112. package/dist/domain/identity/authenticate-installation.js +20 -0
  113. package/dist/domain/identity/authenticate-installation.js.map +1 -0
  114. package/dist/domain/identity/authenticate.d.ts +2 -2
  115. package/dist/domain/identity/console-session.d.ts +6 -3
  116. package/dist/domain/identity/console-session.js.map +1 -1
  117. package/dist/domain/identity/cut-off-account.d.ts +29 -0
  118. package/dist/domain/identity/cut-off-account.js +37 -0
  119. package/dist/domain/identity/cut-off-account.js.map +1 -0
  120. package/dist/domain/identity/dismiss-notice.d.ts +2 -2
  121. package/dist/domain/identity/issue-sign-in-ticket.d.ts +9 -3
  122. package/dist/domain/identity/issue-sign-in-ticket.js +8 -2
  123. package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -1
  124. package/dist/domain/identity/ports.d.ts +52 -5
  125. package/dist/domain/identity/read-account.d.ts +8 -4
  126. package/dist/domain/identity/read-account.js +1 -1
  127. package/dist/domain/identity/read-account.js.map +1 -1
  128. package/dist/domain/identity/read-guide.d.ts +2 -2
  129. package/dist/domain/identity/read-notices.d.ts +2 -2
  130. package/dist/domain/identity/record-guide-progress.d.ts +2 -2
  131. package/dist/domain/identity/redeem-sign-in-ticket.d.ts +2 -1
  132. package/dist/domain/identity/redeem-sign-in-ticket.js +3 -2
  133. package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -1
  134. package/dist/domain/identity/set-theme.d.ts +2 -2
  135. package/dist/domain/identity/sign-in-ticket.d.ts +3 -1
  136. package/dist/domain/identity/sign-in.d.ts +2 -2
  137. package/dist/domain/identity/sign-in.js +2 -0
  138. package/dist/domain/identity/sign-in.js.map +1 -1
  139. package/dist/domain/identity/sign-out.d.ts +2 -2
  140. package/dist/domain/identity/sign-out.js +1 -1
  141. package/dist/domain/identity/sign-out.js.map +1 -1
  142. package/dist/domain/identity/start-console-session.d.ts +4 -2
  143. package/dist/domain/identity/start-console-session.js +6 -4
  144. package/dist/domain/identity/start-console-session.js.map +1 -1
  145. package/dist/domain/identity/start-viewer-session.js +1 -0
  146. package/dist/domain/identity/start-viewer-session.js.map +1 -1
  147. package/dist/domain/messaging/delivery.d.ts +11 -3
  148. package/dist/domain/messaging/delivery.js +23 -15
  149. package/dist/domain/messaging/delivery.js.map +1 -1
  150. package/dist/domain/messaging/dismiss-delivery.d.ts +2 -2
  151. package/dist/domain/messaging/hand-over-delivery.d.ts +1 -0
  152. package/dist/domain/messaging/hand-over-delivery.js +1 -0
  153. package/dist/domain/messaging/hand-over-delivery.js.map +1 -1
  154. package/dist/domain/messaging/message.d.ts +3 -1
  155. package/dist/domain/messaging/message.js +1 -1
  156. package/dist/domain/messaging/message.js.map +1 -1
  157. package/dist/domain/messaging/overdue.d.ts +2 -0
  158. package/dist/domain/messaging/overdue.js +3 -0
  159. package/dist/domain/messaging/overdue.js.map +1 -1
  160. package/dist/domain/messaging/ping-ship.d.ts +2 -2
  161. package/dist/domain/messaging/ping-ship.js +1 -1
  162. package/dist/domain/messaging/ping-ship.js.map +1 -1
  163. package/dist/domain/messaging/ports.d.ts +2 -0
  164. package/dist/domain/messaging/push-receive-deliveries.d.ts +4 -1
  165. package/dist/domain/messaging/push-receive-deliveries.js +5 -3
  166. package/dist/domain/messaging/push-receive-deliveries.js.map +1 -1
  167. package/dist/domain/messaging/receive-deliveries.d.ts +21 -0
  168. package/dist/domain/messaging/receive-deliveries.js +5 -3
  169. package/dist/domain/messaging/receive-deliveries.js.map +1 -1
  170. package/dist/domain/messaging/receive-reply.d.ts +32 -0
  171. package/dist/domain/messaging/receive-reply.js +25 -0
  172. package/dist/domain/messaging/receive-reply.js.map +1 -0
  173. package/dist/domain/messaging/resend-delivery.d.ts +2 -2
  174. package/dist/domain/messaging/resend-delivery.js +1 -0
  175. package/dist/domain/messaging/resend-delivery.js.map +1 -1
  176. package/dist/domain/messaging/send-message.d.ts +3 -3
  177. package/dist/domain/messaging/send-message.js +1 -0
  178. package/dist/domain/messaging/send-message.js.map +1 -1
  179. package/dist/domain/registry/apply-network-rules.d.ts +32 -0
  180. package/dist/domain/registry/apply-network-rules.js +33 -0
  181. package/dist/domain/registry/apply-network-rules.js.map +1 -0
  182. package/dist/domain/registry/assign-crew.d.ts +2 -2
  183. package/dist/domain/registry/assign-crew.js +3 -2
  184. package/dist/domain/registry/assign-crew.js.map +1 -1
  185. package/dist/domain/registry/assign-label.d.ts +7 -5
  186. package/dist/domain/registry/assign-label.js +16 -6
  187. package/dist/domain/registry/assign-label.js.map +1 -1
  188. package/dist/domain/registry/change-label-values.d.ts +1 -1
  189. package/dist/domain/registry/change-label-values.js +4 -3
  190. package/dist/domain/registry/change-label-values.js.map +1 -1
  191. package/dist/domain/registry/check-reach.d.ts +49 -24
  192. package/dist/domain/registry/check-reach.js +77 -42
  193. package/dist/domain/registry/check-reach.js.map +1 -1
  194. package/dist/domain/registry/clear-request.d.ts +1 -1
  195. package/dist/domain/registry/clear-request.js +1 -1
  196. package/dist/domain/registry/clear-request.js.map +1 -1
  197. package/dist/domain/registry/commission-ship.d.ts +26 -13
  198. package/dist/domain/registry/commission-ship.js +199 -22
  199. package/dist/domain/registry/commission-ship.js.map +1 -1
  200. package/dist/domain/registry/confirm-crew-release.d.ts +2 -2
  201. package/dist/domain/registry/confirm-crew-release.js +3 -2
  202. package/dist/domain/registry/confirm-crew-release.js.map +1 -1
  203. package/dist/domain/registry/confirm-worktree-cleared.d.ts +2 -2
  204. package/dist/domain/registry/confirm-worktree-cleared.js +3 -2
  205. package/dist/domain/registry/confirm-worktree-cleared.js.map +1 -1
  206. package/dist/domain/registry/connect-plugin.d.ts +31 -0
  207. package/dist/domain/registry/connect-plugin.js +34 -0
  208. package/dist/domain/registry/connect-plugin.js.map +1 -0
  209. package/dist/domain/registry/crew-request.d.ts +2 -2
  210. package/dist/domain/registry/crew-request.js.map +1 -1
  211. package/dist/domain/registry/declare-network-rules.d.ts +9 -6
  212. package/dist/domain/registry/declare-network-rules.js +13 -8
  213. package/dist/domain/registry/declare-network-rules.js.map +1 -1
  214. package/dist/domain/registry/declare-scopes.d.ts +2 -2
  215. package/dist/domain/registry/declared-network-rules.d.ts +30 -21
  216. package/dist/domain/registry/declared-network-rules.js +46 -22
  217. package/dist/domain/registry/declared-network-rules.js.map +1 -1
  218. package/dist/domain/registry/define-label.d.ts +1 -1
  219. package/dist/domain/registry/define-label.js +5 -5
  220. package/dist/domain/registry/define-label.js.map +1 -1
  221. package/dist/domain/registry/delete-label.d.ts +1 -1
  222. package/dist/domain/registry/delete-label.js +4 -3
  223. package/dist/domain/registry/delete-label.js.map +1 -1
  224. package/dist/domain/registry/discard-network-rules-draft.d.ts +23 -0
  225. package/dist/domain/registry/discard-network-rules-draft.js +24 -0
  226. package/dist/domain/registry/discard-network-rules-draft.js.map +1 -0
  227. package/dist/domain/registry/discover.d.ts +12 -10
  228. package/dist/domain/registry/discover.js +11 -5
  229. package/dist/domain/registry/discover.js.map +1 -1
  230. package/dist/domain/registry/explain-crew-request.d.ts +2 -2
  231. package/dist/domain/registry/explain-crew-request.js +3 -2
  232. package/dist/domain/registry/explain-crew-request.js.map +1 -1
  233. package/dist/domain/registry/explain-reach.d.ts +22 -14
  234. package/dist/domain/registry/explain-reach.js +53 -53
  235. package/dist/domain/registry/explain-reach.js.map +1 -1
  236. package/dist/domain/registry/get-ship.d.ts +2 -2
  237. package/dist/domain/registry/get-starting-prompt.d.ts +4 -2
  238. package/dist/domain/registry/get-starting-prompt.js +7 -5
  239. package/dist/domain/registry/get-starting-prompt.js.map +1 -1
  240. package/dist/domain/registry/give-back-crew-request.d.ts +2 -2
  241. package/dist/domain/registry/give-back-crew-request.js +3 -2
  242. package/dist/domain/registry/give-back-crew-request.js.map +1 -1
  243. package/dist/domain/registry/grant-scopes.d.ts +8 -5
  244. package/dist/domain/registry/grant-scopes.js +14 -5
  245. package/dist/domain/registry/grant-scopes.js.map +1 -1
  246. package/dist/domain/registry/label.d.ts +69 -18
  247. package/dist/domain/registry/label.js +79 -28
  248. package/dist/domain/registry/label.js.map +1 -1
  249. package/dist/domain/registry/lease.d.ts +1 -1
  250. package/dist/domain/registry/leases.d.ts +6 -3
  251. package/dist/domain/registry/leases.js +7 -5
  252. package/dist/domain/registry/leases.js.map +1 -1
  253. package/dist/domain/registry/list-fleet.d.ts +2 -0
  254. package/dist/domain/registry/list-fleet.js +1 -0
  255. package/dist/domain/registry/list-fleet.js.map +1 -1
  256. package/dist/domain/registry/list-scopes.d.ts +2 -1
  257. package/dist/domain/registry/list-scopes.js +2 -1
  258. package/dist/domain/registry/list-scopes.js.map +1 -1
  259. package/dist/domain/registry/managed-or-assigned.d.ts +12 -4
  260. package/dist/domain/registry/managed-or-assigned.js +25 -7
  261. package/dist/domain/registry/managed-or-assigned.js.map +1 -1
  262. package/dist/domain/registry/network-rules-draft.d.ts +45 -0
  263. package/dist/domain/registry/network-rules-draft.js +41 -0
  264. package/dist/domain/registry/network-rules-draft.js.map +1 -0
  265. package/dist/domain/registry/network-settings.d.ts +96 -115
  266. package/dist/domain/registry/network-settings.js +101 -150
  267. package/dist/domain/registry/network-settings.js.map +1 -1
  268. package/dist/domain/registry/plugin-connection.d.ts +48 -0
  269. package/dist/domain/registry/plugin-connection.js +35 -0
  270. package/dist/domain/registry/plugin-connection.js.map +1 -0
  271. package/dist/domain/registry/ports.d.ts +60 -12
  272. package/dist/domain/registry/reach-refusal.d.ts +18 -4
  273. package/dist/domain/registry/read-assigned-crew-requests.d.ts +2 -2
  274. package/dist/domain/registry/read-built-in-rules.d.ts +5 -4
  275. package/dist/domain/registry/read-built-in-rules.js +9 -7
  276. package/dist/domain/registry/read-built-in-rules.js.map +1 -1
  277. package/dist/domain/registry/read-clear-requests.d.ts +2 -2
  278. package/dist/domain/registry/read-clear-requests.js.map +1 -1
  279. package/dist/domain/registry/read-declared-network-rules.d.ts +5 -5
  280. package/dist/domain/registry/read-declared-network-rules.js +4 -4
  281. package/dist/domain/registry/read-declared-network-rules.js.map +1 -1
  282. package/dist/domain/registry/read-network-rules-draft-changes.d.ts +22 -0
  283. package/dist/domain/registry/read-network-rules-draft-changes.js +53 -0
  284. package/dist/domain/registry/read-network-rules-draft-changes.js.map +1 -0
  285. package/dist/domain/registry/read-network-rules.d.ts +30 -0
  286. package/dist/domain/registry/read-network-rules.js +18 -0
  287. package/dist/domain/registry/read-network-rules.js.map +1 -0
  288. package/dist/domain/registry/read-on-behalf.d.ts +3 -3
  289. package/dist/domain/registry/read-on-behalf.js.map +1 -1
  290. package/dist/domain/registry/read-reach-refusals.d.ts +6 -5
  291. package/dist/domain/registry/read-reach-refusals.js +13 -8
  292. package/dist/domain/registry/read-reach-refusals.js.map +1 -1
  293. package/dist/domain/registry/read-reach.d.ts +10 -10
  294. package/dist/domain/registry/read-reach.js +26 -16
  295. package/dist/domain/registry/read-reach.js.map +1 -1
  296. package/dist/domain/registry/recrew-ship.d.ts +2 -2
  297. package/dist/domain/registry/recrew-ship.js +5 -3
  298. package/dist/domain/registry/recrew-ship.js.map +1 -1
  299. package/dist/domain/registry/release-ship.d.ts +7 -4
  300. package/dist/domain/registry/release-ship.js +8 -4
  301. package/dist/domain/registry/release-ship.js.map +1 -1
  302. package/dist/domain/registry/remove-crew-request.d.ts +2 -2
  303. package/dist/domain/registry/remove-crew-request.js +4 -3
  304. package/dist/domain/registry/remove-crew-request.js.map +1 -1
  305. package/dist/domain/registry/rename-ship.d.ts +1 -1
  306. package/dist/domain/registry/rename-ship.js +4 -3
  307. package/dist/domain/registry/rename-ship.js.map +1 -1
  308. package/dist/domain/registry/report-crew-status.d.ts +2 -2
  309. package/dist/domain/registry/report-crew-status.js +3 -2
  310. package/dist/domain/registry/report-crew-status.js.map +1 -1
  311. package/dist/domain/registry/request-crew.d.ts +3 -3
  312. package/dist/domain/registry/request-crew.js +4 -3
  313. package/dist/domain/registry/request-crew.js.map +1 -1
  314. package/dist/domain/registry/request-worktree-clear.d.ts +2 -2
  315. package/dist/domain/registry/request-worktree-clear.js +4 -3
  316. package/dist/domain/registry/request-worktree-clear.js.map +1 -1
  317. package/dist/domain/registry/retire-ship.d.ts +17 -12
  318. package/dist/domain/registry/retire-ship.js +30 -21
  319. package/dist/domain/registry/retire-ship.js.map +1 -1
  320. package/dist/domain/registry/save-network-rules-draft.d.ts +31 -0
  321. package/dist/domain/registry/save-network-rules-draft.js +27 -0
  322. package/dist/domain/registry/save-network-rules-draft.js.map +1 -0
  323. package/dist/domain/registry/scope-grant.d.ts +19 -19
  324. package/dist/domain/registry/scope-grant.js +8 -9
  325. package/dist/domain/registry/scope-grant.js.map +1 -1
  326. package/dist/domain/registry/set-built-in-rule.d.ts +3 -3
  327. package/dist/domain/registry/set-built-in-rule.js +5 -9
  328. package/dist/domain/registry/set-built-in-rule.js.map +1 -1
  329. package/dist/domain/registry/set-owner.d.ts +9 -6
  330. package/dist/domain/registry/set-owner.js +14 -8
  331. package/dist/domain/registry/set-owner.js.map +1 -1
  332. package/dist/domain/registry/set-verified-facts.d.ts +36 -0
  333. package/dist/domain/registry/set-verified-facts.js +58 -0
  334. package/dist/domain/registry/set-verified-facts.js.map +1 -0
  335. package/dist/domain/registry/ship.d.ts +55 -17
  336. package/dist/domain/registry/ship.js +107 -16
  337. package/dist/domain/registry/ship.js.map +1 -1
  338. package/dist/domain/registry/statement.d.ts +2 -2
  339. package/dist/domain/registry/statement.js +2 -2
  340. package/dist/domain/registry/statement.js.map +1 -1
  341. package/dist/domain/registry/turn.d.ts +2 -2
  342. package/dist/domain/registry/turn.js +2 -2
  343. package/dist/domain/registry/turn.js.map +1 -1
  344. package/dist/domain/registry/unassign-label.d.ts +8 -5
  345. package/dist/domain/registry/unassign-label.js +17 -6
  346. package/dist/domain/registry/unassign-label.js.map +1 -1
  347. package/dist/domain/registry/verified-facts.d.ts +75 -0
  348. package/dist/domain/registry/verified-facts.js +107 -0
  349. package/dist/domain/registry/verified-facts.js.map +1 -0
  350. package/dist/domain/registry/whoami.d.ts +2 -2
  351. package/dist/domain/shared/caller.d.ts +40 -6
  352. package/dist/domain/shared/caller.js +20 -0
  353. package/dist/domain/shared/caller.js.map +1 -1
  354. package/dist/domain/shared/delivery-way.d.ts +9 -5
  355. package/dist/domain/shared/delivery-way.js +17 -5
  356. package/dist/domain/shared/delivery-way.js.map +1 -1
  357. package/dist/domain/shared/errors.d.ts +1 -1
  358. package/dist/domain/shared/errors.js.map +1 -1
  359. package/dist/domain/shared/events.d.ts +13 -2
  360. package/dist/domain/shared/events.js.map +1 -1
  361. package/dist/domain/shared/health.d.ts +3 -1
  362. package/dist/domain/shared/health.js +5 -3
  363. package/dist/domain/shared/health.js.map +1 -1
  364. package/dist/domain/shared/history.d.ts +5 -1
  365. package/dist/domain/shared/history.js.map +1 -1
  366. package/dist/domain/shared/read-fleet-limits.d.ts +2 -2
  367. package/dist/domain/shared/read-health.d.ts +4 -3
  368. package/dist/domain/shared/read-health.js +9 -3
  369. package/dist/domain/shared/read-health.js.map +1 -1
  370. package/dist/domain/shared/read-inbox.d.ts +2 -2
  371. package/dist/domain/shared/read-message.d.ts +2 -2
  372. package/dist/domain/shared/read-needs-attention.d.ts +2 -2
  373. package/dist/domain/shared/read-sent-message.d.ts +31 -0
  374. package/dist/domain/shared/read-sent-message.js +28 -0
  375. package/dist/domain/shared/read-sent-message.js.map +1 -0
  376. package/dist/domain/shared/read-ship-messages.d.ts +2 -2
  377. package/dist/domain/shared/read-ship-timeline.d.ts +2 -2
  378. package/dist/domain/shared/read-ship-way.d.ts +2 -2
  379. package/dist/domain/shared/read-ship-way.js +1 -1
  380. package/dist/domain/shared/read-ship-way.js.map +1 -1
  381. package/dist/domain/shared/stuck.js +4 -2
  382. package/dist/domain/shared/stuck.js.map +1 -1
  383. package/dist/start.js +1 -0
  384. package/dist/start.js.map +1 -1
  385. package/dist/testing/account-token-issuer.d.ts +30 -0
  386. package/dist/testing/account-token-issuer.js +48 -0
  387. package/dist/testing/account-token-issuer.js.map +1 -0
  388. package/dist/testing/container-images.d.ts +14 -0
  389. package/dist/testing/container-images.js +18 -0
  390. package/dist/testing/container-images.js.map +1 -0
  391. package/dist/testing/database.d.ts +14 -0
  392. package/dist/testing/database.js +48 -0
  393. package/dist/testing/database.js.map +1 -0
  394. package/dist/testing/fleet.d.ts +13 -0
  395. package/dist/testing/fleet.js +17 -0
  396. package/dist/testing/fleet.js.map +1 -0
  397. package/dist/testing/index.d.ts +12 -0
  398. package/dist/testing/index.js +12 -0
  399. package/dist/testing/index.js.map +1 -0
  400. package/dist/testing/keys.d.ts +1 -0
  401. package/dist/testing/keys.js +7 -0
  402. package/dist/testing/keys.js.map +1 -0
  403. package/dist/testing/migrate-lock.d.ts +12 -0
  404. package/dist/testing/migrate-lock.js +51 -0
  405. package/dist/testing/migrate-lock.js.map +1 -0
  406. package/dist/testing/migrated-template.d.ts +12 -0
  407. package/dist/testing/migrated-template.js +29 -0
  408. package/dist/testing/migrated-template.js.map +1 -0
  409. package/dist/testing/postgres-container.d.ts +16 -0
  410. package/dist/testing/postgres-container.js +30 -0
  411. package/dist/testing/postgres-container.js.map +1 -0
  412. package/dist/testing/postgres-global-setup.d.ts +15 -0
  413. package/dist/testing/postgres-global-setup.js +20 -0
  414. package/dist/testing/postgres-global-setup.js.map +1 -0
  415. package/dist/testing/prisma-cli.d.ts +5 -0
  416. package/dist/testing/prisma-cli.js +15 -0
  417. package/dist/testing/prisma-cli.js.map +1 -0
  418. package/dist/testing/result.d.ts +5 -0
  419. package/dist/testing/result.js +15 -0
  420. package/dist/testing/result.js.map +1 -0
  421. package/dist/wiring.d.ts +27 -6
  422. package/dist/wiring.js +44 -11
  423. package/dist/wiring.js.map +1 -1
  424. package/package.json +26 -3
  425. package/src/adapters/prisma/migrations/20261018250000_scope_catalogue/migration.sql +8 -7
  426. package/src/adapters/prisma/migrations/20261019100000_on_behalf_scope/migration.sql +3 -1
  427. package/src/adapters/prisma/migrations/20261019130000_plugin_connections/migration.sql +54 -0
  428. package/src/adapters/prisma/migrations/20261019150000_network_plugin_registered_at/migration.sql +23 -0
  429. package/src/adapters/prisma/migrations/20261019160000_lease_waker/migration.sql +4 -0
  430. package/src/adapters/prisma/migrations/20261019200000_account_cut_offs/migration.sql +10 -0
  431. package/src/adapters/prisma/migrations/20261019210000_event_actors/migration.sql +32 -0
  432. package/src/adapters/prisma/migrations/20261020090000_argos_jobs_as_scopes/migration.sql +65 -0
  433. package/src/adapters/prisma/migrations/20261020100000_installation_labels/migration.sql +7 -0
  434. package/src/adapters/prisma/migrations/20261020110000_installation_declared_network_rules/migration.sql +10 -0
  435. package/src/adapters/prisma/migrations/20261020120000_commissioning_actors/migration.sql +14 -0
  436. package/src/adapters/prisma/migrations/20261020130000_console_sign_in_accounts/migration.sql +4 -0
  437. package/src/adapters/prisma/migrations/20261020140000_event_signed_in_accounts/migration.sql +4 -0
  438. package/src/adapters/prisma/migrations/20261020150000_account_cut_off_ends_console_sessions/migration.sql +2 -0
  439. package/src/adapters/prisma/migrations/20261020160000_network_in_core/migration.sql +30 -0
  440. package/src/adapters/prisma/migrations/20261020170000_verify_scope/migration.sql +64 -0
  441. package/src/adapters/prisma/migrations/20261020180000_verified_facts/migration.sql +21 -0
  442. package/src/adapters/prisma/migrations/20261020190000_verified_facts_by_writer/migration.sql +3 -0
  443. package/src/adapters/prisma/schema.prisma +160 -22
  444. package/dist/domain/registry/register-network-plugin.d.ts +0 -28
  445. package/dist/domain/registry/register-network-plugin.js +0 -26
  446. package/dist/domain/registry/register-network-plugin.js.map +0 -1
  447. package/dist/domain/registry/set-network-rules.d.ts +0 -31
  448. package/dist/domain/registry/set-network-rules.js +0 -27
  449. package/dist/domain/registry/set-network-rules.js.map +0 -1
  450. package/dist/domain/registry/unregister-network-plugin.d.ts +0 -27
  451. package/dist/domain/registry/unregister-network-plugin.js +0 -25
  452. package/dist/domain/registry/unregister-network-plugin.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import { idSchema } from '@aeolus-fleet/common';
2
2
  import { initTRPC, TRPCError } from '@trpc/server';
3
- import { hasScope, isCrew } from '../../domain/shared/caller.js';
3
+ import { hasScope, isCrew, isShipCaller } from '../../domain/shared/caller.js';
4
4
  import { isFleetBusy } from '../prisma/fleet-busy.js';
5
+ import { INSTALLATION_TOKEN_HEADER, isInstallationToken } from './installation-token.js';
5
6
  /** All a caller learns of a server failure, with the request's id; the log keeps the rest under that id. */
6
7
  export const INTERNAL_ERROR_MESSAGE = 'Internal error';
7
8
  /** What a caller reads when the database was too busy for the call: it stored nothing and can be made again. */
@@ -36,6 +37,8 @@ const t = initTRPC.context().meta().create({
36
37
  });
37
38
  export const router = t.router;
38
39
  const ERROR_CODES = {
40
+ ACCOUNT_TOKEN_ENDED: 'UNAUTHORIZED',
41
+ ACCOUNT_TOKEN_INVALID: 'UNAUTHORIZED',
39
42
  DELIVERY_HELD_BY_ANOTHER_SHIP: 'FORBIDDEN',
40
43
  DELIVERY_NOT_FOUND: 'NOT_FOUND',
41
44
  DELIVERY_NOT_A_PING: 'CONFLICT',
@@ -43,6 +46,7 @@ const ERROR_CODES = {
43
46
  CLEAR_REQUEST_LIMIT_REACHED: 'FORBIDDEN',
44
47
  CLEAR_REQUEST_NOT_FOUND: 'NOT_FOUND',
45
48
  NOT_A_TRIERARCH: 'BAD_REQUEST',
49
+ NOT_AN_AGENT_SHIP: 'BAD_REQUEST',
46
50
  CREW_REQUEST_ALREADY_ASSIGNED: 'CONFLICT',
47
51
  CREW_REQUEST_NOT_ASSIGNED_TO_CALLER: 'FORBIDDEN',
48
52
  CREW_REQUEST_NOT_FOUND: 'NOT_FOUND',
@@ -64,6 +68,7 @@ const ERROR_CODES = {
64
68
  FLEET_LIMIT_REACHED: 'FORBIDDEN',
65
69
  FLEET_NOT_FOUND: 'NOT_FOUND',
66
70
  FLEET_HAS_NO_VIEWER: 'NOT_FOUND',
71
+ VIEWER_TICKET_NAMES_NO_ACCOUNT: 'BAD_REQUEST',
67
72
  FORCE_NOT_ALLOWED: 'FORBIDDEN',
68
73
  NOTICE_NOT_FOUND: 'NOT_FOUND',
69
74
  NOTICE_NOT_DISMISSIBLE: 'BAD_REQUEST',
@@ -101,6 +106,7 @@ const ERROR_CODES = {
101
106
  // The crew token belonged to that lease: it no longer authenticates anyone.
102
107
  LABEL_CARRIED: 'CONFLICT',
103
108
  LABEL_KEY_TAKEN: 'CONFLICT',
109
+ ACCOUNT_OWNS_NO_LABEL: 'FORBIDDEN',
104
110
  INVALID_SCOPE: 'BAD_REQUEST',
105
111
  INVALID_SCOPE_DESCRIPTION: 'BAD_REQUEST',
106
112
  CORE_NAMESPACE: 'BAD_REQUEST',
@@ -110,7 +116,6 @@ const ERROR_CODES = {
110
116
  SCOPE_HELD: 'CONFLICT',
111
117
  SCOPE_NOT_DECLARED: 'BAD_REQUEST',
112
118
  SCOPE_NOT_HELD: 'FORBIDDEN',
113
- PLUGIN_SCOPE_NOT_YOURS: 'FORBIDDEN',
114
119
  BASE_SCOPE: 'BAD_REQUEST',
115
120
  SHIP_SCOPES_FIXED: 'FORBIDDEN',
116
121
  OWN_SHIP_SCOPES: 'FORBIDDEN',
@@ -122,11 +127,10 @@ const ERROR_CODES = {
122
127
  NOT_THE_LABEL_OWNER: 'FORBIDDEN',
123
128
  NOT_YOUR_SHIP_TO_LABEL: 'FORBIDDEN',
124
129
  NOT_REACHABLE: 'FORBIDDEN',
125
- NOT_THE_NETWORK_PLUGIN: 'FORBIDDEN',
126
130
  BUILT_IN_RULE_FIXED: 'FORBIDDEN',
127
- NETWORK_PLUGIN_REGISTERED: 'CONFLICT',
131
+ NETWORK_SETTINGS_CHANGED: 'CONFLICT',
132
+ NO_NETWORK_RULES_DRAFT: 'NOT_FOUND',
128
133
  INVALID_OWNER: 'BAD_REQUEST',
129
- KIND_COMMISSIONED_BY_ARGO_ONLY: 'FORBIDDEN',
130
134
  NOT_THE_OPERATOR_SHIP: 'FORBIDDEN',
131
135
  OPERATOR_EMAIL_TAKEN: 'CONFLICT',
132
136
  OPERATOR_HAS_NO_PASSWORD: 'CONFLICT',
@@ -293,12 +297,13 @@ async function crewOf(ctx, bearer) {
293
297
  return undefined;
294
298
  }
295
299
  /**
296
- * Resolves the caller from the crew token or the console session. A bearer
297
- * crew token wins over the cookie, and a wrong one fails rather than falling
298
- * back. The ship secret is no bearer: it works only for `register` (ADR 0015).
299
- * Using a console session keeps it, and its cookie, valid for another 30 days.
300
+ * Resolves the ship calling from the crew token or the console session. A
301
+ * bearer crew token wins over the cookie, and a wrong one fails rather than
302
+ * falling back. The ship secret is no bearer: it works only for `register`
303
+ * (ADR 0015). Using a console session keeps it, and its cookie, valid for
304
+ * another 30 days.
300
305
  */
301
- async function resolveCaller(ctx) {
306
+ async function resolveShip(ctx) {
302
307
  const { bearer, sessionToken } = ctx.credentials;
303
308
  if (bearer !== undefined) {
304
309
  return crewOf(ctx, bearer);
@@ -313,6 +318,50 @@ async function resolveCaller(ctx) {
313
318
  }
314
319
  return undefined;
315
320
  }
321
+ /**
322
+ * The account of an account token (decision 0058), checked on every call. A
323
+ * bearer crew token beside it names the ship that presented it, and a wrong
324
+ * one fails rather than being left out.
325
+ */
326
+ async function accountOf(ctx, accountToken) {
327
+ const { bearer } = ctx.credentials;
328
+ const through = bearer === undefined ? null : await crewOf(ctx, bearer);
329
+ if (through === undefined) {
330
+ throw new TRPCError({ code: 'UNAUTHORIZED', message: CALL_WITH_CREW_TOKEN });
331
+ }
332
+ return okOrThrow(await ctx.useCases.authenticateAccount(accountToken, { through }));
333
+ }
334
+ /**
335
+ * The installation acting in the fleet the `Aeolus-Fleet` header names
336
+ * (decision 0057), with the installation token, as the installation
337
+ * procedures take it: none on a server without one.
338
+ */
339
+ async function installationIn(ctx, fleet) {
340
+ const { configured, presented } = ctx.installation;
341
+ if (configured === undefined || !isInstallationToken({ configured, presented })) {
342
+ throw new TRPCError({ code: 'UNAUTHORIZED', message: `The Aeolus-Fleet header goes with the installation token in ${INSTALLATION_TOKEN_HEADER}` });
343
+ }
344
+ const fleetId = idSchema('fleet').safeParse(fleet);
345
+ if (!fleetId.success) {
346
+ throw new TRPCError({ code: 'BAD_REQUEST', message: 'The Aeolus-Fleet header names no fleet id' });
347
+ }
348
+ return okOrThrow(await ctx.useCases.authenticateInstallation({ fleetId: fleetId.data }));
349
+ }
350
+ /**
351
+ * Resolves the actor of a fleet call (decision 0057): the account of an
352
+ * account token, the installation with the fleet it acts in, or else the
353
+ * ship of the crew token or the console session.
354
+ */
355
+ async function resolveCaller(ctx) {
356
+ const { accountToken, fleet } = ctx.credentials;
357
+ if (accountToken !== undefined) {
358
+ return accountOf(ctx, accountToken);
359
+ }
360
+ if (fleet !== undefined) {
361
+ return installationIn(ctx, fleet);
362
+ }
363
+ return resolveShip(ctx);
364
+ }
316
365
  /**
317
366
  * Refuses a console session a sign-in elsewhere ended, saying so: signing in
318
367
  * somewhere else is no failure, and the console says so calmly.
@@ -327,26 +376,47 @@ export async function refuseIfSignedInElsewhere(ctx, sessionToken) {
327
376
  }
328
377
  }
329
378
  /**
330
- * Refuses a live subscription whose caller no longer holds: its console
331
- * session ended, or its crew's lease did. A subscription outlives the call
332
- * that opened it, so it asks again each time it has news.
379
+ * The caller of a live subscription as it stands now, read from the server
380
+ * again: refused once its console session or its crew's lease ended, or once
381
+ * it lost the scope the subscription needs; a plugin reading on behalf of a
382
+ * ship reads as that ship again, so a revoked fleet:on-behalf ends it too
383
+ * (decision 0046). A subscription outlives the call that opened it, so it
384
+ * asks again each time it has news.
333
385
  */
334
- export async function checkCallerStillHolds(ctx) {
335
- if (!(await resolveCaller(ctx))) {
386
+ export async function callerStillHolding(ctx, scope) {
387
+ const caller = await resolveCaller(ctx);
388
+ if (!caller) {
336
389
  throw new TRPCError({ code: 'UNAUTHORIZED', message: 'Sign in, or call with the crew token register gave you' });
337
390
  }
391
+ if (!hasScope(caller, scope)) {
392
+ throw new TRPCError({ code: 'FORBIDDEN', message: `This call needs the ${scope} scope` });
393
+ }
394
+ return readerOf(ctx, caller);
338
395
  }
339
396
  /** What a caller without a valid crew token is told, at a door for ships and for a crew procedure. */
340
397
  const CALL_WITH_CREW_TOKEN = 'Call with the crew token register gave you';
341
398
  /**
342
- * A procedure for any caller, whatever its scopes: the base of every scoped
343
- * procedure, and `whoami`, which tells a caller about itself. The caller comes
344
- * from the server, never from the request. Only a fleet:read read takes the
399
+ * A procedure for any ship, whatever its scopes: `whoami`, which tells a ship
400
+ * about itself, and the console's own. The caller comes from the server,
401
+ * never from the request: the crew token or the console session alone, so an
402
+ * account token makes no caller here. Only a fleet:read read takes the
345
403
  * `Aeolus-On-Behalf-Of` header (decision 0034); any other call refuses it.
346
404
  */
347
- export const authenticatedProcedure = callerProcedure({ isOnBehalfRead: false });
348
- /** The base of a fleet:read read, which a plugin may make on behalf of a named ship. */
349
- const readingProcedure = callerProcedure({ isOnBehalfRead: true });
405
+ export const authenticatedProcedure = callerProcedure({ isOnBehalfRead: false, resolve: resolveShip }).use(({ ctx, next }) => next({ ctx: { caller: shipOf(ctx.caller) } }));
406
+ /** The base of a fleet call for any actor (decision 0057), and of a fleet:read read, which a plugin may make on behalf of a named ship. */
407
+ const actorProcedure = callerProcedure({ isOnBehalfRead: false, resolve: resolveCaller });
408
+ const readingProcedure = callerProcedure({ isOnBehalfRead: true, resolve: resolveCaller });
409
+ /**
410
+ * The caller as a ship: a call that sends, receives or stores something on
411
+ * the calling ship is a ship's alone (decision 0057). An agent ship can make
412
+ * each of them, so no right is an account's or the installation's alone.
413
+ */
414
+ function shipOf(caller) {
415
+ if (!isShipCaller(caller)) {
416
+ throw new TRPCError({ code: 'FORBIDDEN', message: 'Only a ship makes this call' });
417
+ }
418
+ return caller;
419
+ }
350
420
  function refuseOnBehalfHeader(ctx) {
351
421
  if (ctx.credentials.onBehalfOf !== undefined) {
352
422
  throw new TRPCError({ code: 'BAD_REQUEST', message: 'Only a fleet:read read takes the Aeolus-On-Behalf-Of header' });
@@ -362,6 +432,9 @@ async function readerOf(ctx, caller) {
362
432
  if (onBehalfOf === undefined) {
363
433
  return caller;
364
434
  }
435
+ if (!isShipCaller(caller)) {
436
+ throw new TRPCError({ code: 'BAD_REQUEST', message: 'Only a ship reads on behalf of another' });
437
+ }
365
438
  const shipId = idSchema('ship').safeParse(onBehalfOf);
366
439
  if (!shipId.success) {
367
440
  throw new TRPCError({ code: 'BAD_REQUEST', message: 'The Aeolus-On-Behalf-Of header names no ship id' });
@@ -383,7 +456,7 @@ function callerProcedure(options) {
383
456
  if ((type === 'mutation' || type === 'subscription') && bearer === undefined && sessionToken !== undefined) {
384
457
  checkConsoleOrigin(ctx);
385
458
  }
386
- const caller = await resolveCaller(ctx);
459
+ const caller = await options.resolve(ctx);
387
460
  if (!caller) {
388
461
  const message = ctx.canUseConsoleSession ? 'Sign in, or call with the crew token register gave you' : CALL_WITH_CREW_TOKEN;
389
462
  throw new TRPCError({ code: 'UNAUTHORIZED', message });
@@ -420,32 +493,59 @@ export function scopedCrewProcedure(scope) {
420
493
  });
421
494
  }
422
495
  /**
423
- * A procedure that needs the given scope. The caller and its scopes come from
424
- * the server, never from the request, and are checked before any use case runs.
496
+ * A fleet call any actor makes (decision 0057), needing the given scope. The
497
+ * caller and its scopes come from the server or the checked token, never from
498
+ * the request, and are checked before any use case runs, the same way for a
499
+ * ship, an account or the installation.
425
500
  */
426
- export function scopedProcedure(scope) {
427
- return (scope === 'fleet:read' ? readingProcedure : authenticatedProcedure)
428
- .use(async ({ ctx, next }) => {
501
+ export function actorScopedProcedure(scope) {
502
+ return (scope === 'fleet:read' ? readingProcedure : actorProcedure).use(async ({ ctx, next }) => {
429
503
  if (!hasScope(ctx.caller, scope)) {
430
504
  throw new TRPCError({ code: 'FORBIDDEN', message: `This call needs the ${scope} scope` });
431
505
  }
432
506
  return next({ ctx: { caller: await readerOf(ctx, ctx.caller) } });
433
507
  });
434
508
  }
509
+ /** A call a ship alone makes (see shipOf), needing the given scope, checked as for any actor first. */
510
+ export function scopedProcedure(scope) {
511
+ return actorScopedProcedure(scope).use(({ ctx, next }) => next({ ctx: { caller: shipOf(ctx.caller) } }));
512
+ }
435
513
  /**
436
- * A procedure that needs any one of the given scopes: the few fleet calls a
514
+ * A fleet call any actor makes with any one of the given scopes: the few a
437
515
  * trierarch makes with `crew:run` beside the scope the console uses
438
516
  * (decision 0029). Checked before any use case runs, as for one scope.
439
517
  */
440
- export function anyScopeProcedure(...scopes) {
441
- return (scopes.includes('fleet:read') ? readingProcedure : authenticatedProcedure)
442
- .use(async ({ ctx, next }) => {
518
+ export function actorAnyScopeProcedure(...scopes) {
519
+ return (scopes.includes('fleet:read') ? readingProcedure : actorProcedure).use(async ({ ctx, next }) => {
443
520
  if (!scopes.some((scope) => hasScope(ctx.caller, scope))) {
444
521
  throw new TRPCError({ code: 'FORBIDDEN', message: `This call needs the ${scopes.join(' or ')} scope` });
445
522
  }
446
523
  return next({ ctx: { caller: await readerOf(ctx, ctx.caller) } });
447
524
  });
448
525
  }
526
+ /**
527
+ * A call on a ship that an actor makes with any one of the given scopes, or
528
+ * an account makes on its own person ship with no scope for it (decision
529
+ * 0052): getting a starting prompt for it and releasing it, so the app it uses
530
+ * crews it. The use case checks that the ship is its person ship. With
531
+ * `isShipCallOtherwise`, only a ship makes the call by its scopes.
532
+ */
533
+ export function ownPersonShipOrAnyScopeProcedure(options, ...scopes) {
534
+ return actorProcedure.use(async ({ ctx, next }) => {
535
+ const { caller } = ctx;
536
+ if (caller.kind === 'account' && caller.personShipId !== null) {
537
+ return next({ ctx: { caller } });
538
+ }
539
+ if (!scopes.some((scope) => hasScope(caller, scope))) {
540
+ throw new TRPCError({ code: 'FORBIDDEN', message: `This call needs the ${scopes.join(' or ')} scope` });
541
+ }
542
+ return next({ ctx: { caller: options.isShipCallOtherwise ? shipOf(caller) : caller } });
543
+ });
544
+ }
545
+ /** A call a ship alone makes with any one of the given scopes. */
546
+ export function anyScopeProcedure(...scopes) {
547
+ return actorAnyScopeProcedure(...scopes).use(({ ctx, next }) => next({ ctx: { caller: shipOf(ctx.caller) } }));
548
+ }
449
549
  /**
450
550
  * A procedure for a caller that crews its ship under a lease, with every given
451
551
  * scope: argo's inbox, which its console session calls. A console session
@@ -1 +1 @@
1
- {"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/adapters/trpc/trpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/adapters/trpc/trpc.ts"],"names":[],"mappings":"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"}
package/dist/app.d.ts CHANGED
@@ -23,6 +23,8 @@ export interface AppOptions {
23
23
  installationToken?: string;
24
24
  /** How often the 10 and 60 minute clocks pass; every 30 seconds unless a test says otherwise. */
25
25
  overduePassMs?: number;
26
+ /** pagasae's URL, the issuer whose account tokens core trusts (decision 0058); unset, it trusts none. */
27
+ accountTokenIssuer?: string;
26
28
  }
27
29
  /**
28
30
  * Wires adapters to use cases and returns the HTTP server, not yet listening.
package/dist/app.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { buildHttpServer } from './adapters/http/server.js';
2
+ import { createAccountTokenSignatures } from './adapters/crypto/account-token-signatures.js';
2
3
  import { checkDatabase, createPrismaClient, latestMigration } from './adapters/prisma/client.js';
3
4
  import { listenForPendingDeliveries } from './adapters/prisma/delivery-notices.js';
4
5
  import { failureForLog } from './adapters/prisma/failure-log.js';
@@ -8,6 +9,26 @@ import { repeatPass } from './repeating-pass.js';
8
9
  import { createUseCases, systemClock } from './wiring.js';
9
10
  /** How often core runs the 10 and 60 minute clocks: argo hears of an overdue delivery within this of its clock running out. */
10
11
  const OVERDUE_PASS_MS = 30_000;
12
+ /** How long core waits for pagasae's key set before it goes on with the keys it holds. */
13
+ const KEY_SET_FETCH_TIMEOUT_MS = 5_000;
14
+ /** Checks account tokens with the keys pagasae publishes at its `/.well-known/jwks.json`; none without an issuer. */
15
+ function accountTokenSignaturesOf(issuer, clock) {
16
+ if (issuer === undefined) {
17
+ return undefined;
18
+ }
19
+ const keySetUrl = `${issuer.replace(/\/$/, '')}/.well-known/jwks.json`;
20
+ return createAccountTokenSignatures({
21
+ issuer,
22
+ now: () => clock.now(),
23
+ fetchKeySet: async () => {
24
+ const response = await fetch(keySetUrl, { signal: AbortSignal.timeout(KEY_SET_FETCH_TIMEOUT_MS) });
25
+ if (!response.ok) {
26
+ throw new Error(`pagasae answered ${String(response.status)} for its key set`);
27
+ }
28
+ return response.json();
29
+ },
30
+ });
31
+ }
11
32
  /**
12
33
  * Wires adapters to use cases and returns the HTTP server, not yet listening.
13
34
  * The delivery listener starts at once and wakes waiting receives and live
@@ -25,6 +46,7 @@ export function createApp(options) {
25
46
  wakeups,
26
47
  fleetEventWakeups: fleetEventWakeupsOf(fleetEvents),
27
48
  receiveWaitMs: options.receiveWaitMs,
49
+ accountTokenSignatures: accountTokenSignaturesOf(options.accountTokenIssuer, clock),
28
50
  });
29
51
  const server = buildHttpServer({
30
52
  useCases,
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -21,6 +21,11 @@ export interface Config {
21
21
  * self-hosted server.
22
22
  */
23
23
  installationToken: string | undefined;
24
+ /**
25
+ * pagasae's URL, the issuer whose account tokens core trusts, its keys
26
+ * fetched over HTTPS (decision 0058). Unset: no account token is trusted.
27
+ */
28
+ accountTokenIssuer: string | undefined;
24
29
  }
25
30
  export declare class ConfigError extends Error {
26
31
  name: string;
package/dist/config.js CHANGED
@@ -30,6 +30,7 @@ const environmentSchema = z.object({
30
30
  .transform((origin) => new URL(origin).origin)
31
31
  .optional(),
32
32
  INSTALLATION_TOKEN: z.string().min(INSTALLATION_TOKEN_MIN_LENGTH, `must be at least ${String(INSTALLATION_TOKEN_MIN_LENGTH)} characters`).optional(),
33
+ ACCOUNT_TOKEN_ISSUER: z.url({ protocol: /^https$/, error: 'must be an https:// URL' }).optional(),
33
34
  });
34
35
  /** What `aeolus-core migrate` reads: the database alone. */
35
36
  const databaseEnvironmentSchema = environmentSchema.pick({ DATABASE_URL: true });
@@ -59,7 +60,7 @@ export function loadConfig(environment) {
59
60
  if (!result.success) {
60
61
  throw configErrorOf(result.error);
61
62
  }
62
- const { DATABASE_URL, PUBLIC_URL, HOST, PORT, LOG_LEVEL, TRUST_PROXY, COOKIE_DOMAIN, CONSOLE_ORIGIN, INSTALLATION_TOKEN } = result.data;
63
+ const { DATABASE_URL, PUBLIC_URL, HOST, PORT, LOG_LEVEL, TRUST_PROXY, COOKIE_DOMAIN, CONSOLE_ORIGIN, INSTALLATION_TOKEN, ACCOUNT_TOKEN_ISSUER } = result.data;
63
64
  return {
64
65
  databaseUrl: DATABASE_URL,
65
66
  publicUrl: PUBLIC_URL,
@@ -70,6 +71,7 @@ export function loadConfig(environment) {
70
71
  cookieDomain: COOKIE_DOMAIN,
71
72
  consoleOrigin: CONSOLE_ORIGIN ?? new URL(PUBLIC_URL).origin,
72
73
  installationToken: INSTALLATION_TOKEN,
74
+ accountTokenIssuer: ACCOUNT_TOKEN_ISSUER,
73
75
  };
74
76
  }
75
77
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sFAAsF;AACtF,MAAM,WAAW,GAAG,oEAAoE,CAAC;AAEzF,yGAAyG;AACzG,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,GAAG,CAAC,QAAQ,KAAK,EAAE;QACnB,GAAG,CAAC,QAAQ,KAAK,EAAE;QACnB,GAAG,CAAC,QAAQ,KAAK,GAAG;QACpB,GAAG,CAAC,MAAM,KAAK,EAAE;QACjB,GAAG,CAAC,IAAI,KAAK,EAAE;QACf,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CACrB,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEzC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;IACzG,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;IACxF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9D,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjG,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC3F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,wCAAwC,CAAC,CAAC,QAAQ,EAAE;IACjG,cAAc,EAAE,CAAC;SACd,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;SAC7E,MAAM,CAAC,QAAQ,EAAE,oEAAoE,CAAC;SACtF,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;SAC7C,QAAQ,EAAE;IACb,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,6BAA6B,EAAE,oBAAoB,MAAM,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;CACrJ,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AA2BjF,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,GAAG,aAAa,CAAC;CAC/B;AAED,8DAA8D;AAC9D,SAAS,aAAa,CAAC,KAAiB;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5F,OAAO,IAAI,WAAW,CAAC,2BAA2B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,eAAe,CAAC,WAA+C;IAC7E,MAAM,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,WAA+C;IACxE,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IACxI,OAAO;QACL,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,SAAS;QACnB,gBAAgB,EAAE,WAAW,KAAK,MAAM;QACxC,YAAY,EAAE,aAAa;QAC3B,aAAa,EAAE,cAAc,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM;QAC3D,iBAAiB,EAAE,kBAAkB;KACtC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAmD;IACjF,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAC9E,OAAO;QACL,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC;QAChD,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC;KACnF,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { AccountCaller, ShipCaller } from '../shared/caller.js';
2
+ import type { Clock } from '../shared/clock.js';
3
+ import { type DomainError } from '../shared/errors.js';
4
+ import { type Result } from '../shared/result.js';
5
+ import type { AccountCutOffLookup, AccountTokenSignatures, HostedFleets } from './ports.js';
6
+ /** How long pagasae's account token lives (decision 0058). */
7
+ export declare const ACCOUNT_TOKEN_LIFE_MS: number;
8
+ /** The allowance between core's clock and pagasae's, on a token's end and issue (decision 0058). */
9
+ export declare const ACCOUNT_TOKEN_CLOCK_ALLOWANCE_MS = 30000;
10
+ /**
11
+ * Why an account token makes no caller: it ended, so whoever presented it
12
+ * fetches a fresh one; or it is not to be trusted here at all, one refusal
13
+ * that names no reason, so a forger learns nothing.
14
+ */
15
+ export type AccountTokenRefusal = DomainError<'ACCOUNT_TOKEN_ENDED' | 'ACCOUNT_TOKEN_INVALID'>;
16
+ export type AuthenticateAccount = (token: string, presented: {
17
+ through: ShipCaller | null;
18
+ }) => Promise<Result<AccountCaller, AccountTokenRefusal>>;
19
+ /**
20
+ * Use case: turns an account token into the account as the caller (decision
21
+ * 0058), checked on every call. pagasae's key signed it, naming pagasae (the
22
+ * signatures port); it is for this fleet: the fleet of the ship that
23
+ * presented it, or with none, a fleet this installation hosts; it has not
24
+ * ended, with 30 seconds of allowance; it lives no longer than the 10
25
+ * minutes pagasae gives one, so a misconfigured issuer cannot widen a
26
+ * leaver's window, and was not issued later than now, so it cannot outlive
27
+ * a cut-off; and its account was not cut off after it was issued. Core
28
+ * stores nothing of the account.
29
+ */
30
+ export declare function createAuthenticateAccount(deps: {
31
+ signatures: AccountTokenSignatures;
32
+ cutOffs: AccountCutOffLookup;
33
+ fleets: HostedFleets;
34
+ clock: Clock;
35
+ }): AuthenticateAccount;
@@ -0,0 +1,54 @@
1
+ import { refuse } from '../shared/errors.js';
2
+ import { ok } from '../shared/result.js';
3
+ /** How long pagasae's account token lives (decision 0058). */
4
+ export const ACCOUNT_TOKEN_LIFE_MS = 10 * 60_000;
5
+ /** The allowance between core's clock and pagasae's, on a token's end and issue (decision 0058). */
6
+ export const ACCOUNT_TOKEN_CLOCK_ALLOWANCE_MS = 30_000;
7
+ /**
8
+ * Use case: turns an account token into the account as the caller (decision
9
+ * 0058), checked on every call. pagasae's key signed it, naming pagasae (the
10
+ * signatures port); it is for this fleet: the fleet of the ship that
11
+ * presented it, or with none, a fleet this installation hosts; it has not
12
+ * ended, with 30 seconds of allowance; it lives no longer than the 10
13
+ * minutes pagasae gives one, so a misconfigured issuer cannot widen a
14
+ * leaver's window, and was not issued later than now, so it cannot outlive
15
+ * a cut-off; and its account was not cut off after it was issued. Core
16
+ * stores nothing of the account.
17
+ */
18
+ export function createAuthenticateAccount(deps) {
19
+ return async (token, { through }) => {
20
+ const claims = await deps.signatures.verify(token);
21
+ if (!claims || !(await isForThisFleet(deps.fleets, { claims, through }))) {
22
+ return refuseInvalid();
23
+ }
24
+ const now = deps.clock.now().getTime();
25
+ if (now > claims.endsAt.getTime() + ACCOUNT_TOKEN_CLOCK_ALLOWANCE_MS) {
26
+ return refuse('ACCOUNT_TOKEN_ENDED', 'This account token has ended; present a fresh one');
27
+ }
28
+ const life = claims.endsAt.getTime() - claims.issuedAt.getTime();
29
+ if (life > ACCOUNT_TOKEN_LIFE_MS + ACCOUNT_TOKEN_CLOCK_ALLOWANCE_MS || claims.issuedAt.getTime() > now + ACCOUNT_TOKEN_CLOCK_ALLOWANCE_MS) {
30
+ return refuseInvalid();
31
+ }
32
+ const cutOffAt = await deps.cutOffs.cutOffAt(claims.accountId, deps.clock.now());
33
+ if (cutOffAt !== undefined && claims.issuedAt < cutOffAt) {
34
+ return refuseInvalid();
35
+ }
36
+ return ok({
37
+ kind: 'account',
38
+ accountId: claims.accountId,
39
+ fleetId: claims.fleetId,
40
+ scopes: claims.scopes,
41
+ groupValues: claims.groupValues,
42
+ personShipId: claims.personShipId,
43
+ throughShipId: through?.shipId ?? null,
44
+ });
45
+ };
46
+ }
47
+ async function isForThisFleet(fleets, token) {
48
+ const { claims, through } = token;
49
+ return through === null ? fleets.isHosted(claims.fleetId) : claims.fleetId === through.fleetId;
50
+ }
51
+ function refuseInvalid() {
52
+ return refuse('ACCOUNT_TOKEN_INVALID', 'Present an account token pagasae signed for this fleet');
53
+ }
54
+ //# sourceMappingURL=authenticate-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticate-account.js","sourceRoot":"","sources":["../../../src/domain/identity/authenticate-account.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAGtD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,MAAM,CAAC;AAEjD,oGAAoG;AACpG,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAWvD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAKzC;IACC,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO,aAAa,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,gCAAgC,EAAE,CAAC;YACrE,OAAO,MAAM,CAAC,qBAAqB,EAAE,mDAAmD,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjE,IAAI,IAAI,GAAG,qBAAqB,GAAG,gCAAgC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,gCAAgC,EAAE,CAAC;YAC1I,OAAO,aAAa,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;YACzD,OAAO,aAAa,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,CAAC;YACR,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI;SACvC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAoB,EAAE,KAAiE;IACnH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAClC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;AACjG,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,MAAM,CAAC,uBAAuB,EAAE,wDAAwD,CAAC,CAAC;AACnG,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { FleetId, Scope } from '@aeolus-fleet/common';
2
+ import type { InstallationCaller } from '../shared/caller.js';
3
+ import { type DomainError } from '../shared/errors.js';
4
+ import { type Result } from '../shared/result.js';
5
+ import type { HostedFleets } from './ports.js';
6
+ /**
7
+ * The scopes the installation holds in every fleet it hosts (decision 0020):
8
+ * what its jobs need of the catalogue, in its order (decision 0053): reading
9
+ * the fleet, managing, defining and assigning labels, commissioning person
10
+ * ships. Until a call lets argo change them, they are the same in every fleet.
11
+ */
12
+ export declare const INSTALLATION_SCOPES: readonly Scope[];
13
+ export type AuthenticateInstallation = (call: {
14
+ fleetId: FleetId;
15
+ }) => Promise<Result<InstallationCaller, DomainError<'FLEET_NOT_FOUND'>>>;
16
+ /**
17
+ * Use case: the installation, whose token the API adapter checked, acts in
18
+ * one fleet it hosts through the same fleet calls as any actor (decision
19
+ * 0057), with its scopes there and its built-in manage rule.
20
+ */
21
+ export declare function createAuthenticateInstallation(deps: {
22
+ fleets: HostedFleets;
23
+ }): AuthenticateInstallation;
@@ -0,0 +1,20 @@
1
+ import { refuse } from '../shared/errors.js';
2
+ import { ok } from '../shared/result.js';
3
+ /**
4
+ * The scopes the installation holds in every fleet it hosts (decision 0020):
5
+ * what its jobs need of the catalogue, in its order (decision 0053): reading
6
+ * the fleet, managing, defining and assigning labels, commissioning person
7
+ * ships. Until a call lets argo change them, they are the same in every fleet.
8
+ */
9
+ export const INSTALLATION_SCOPES = ['fleet:read', 'fleet:manage', 'labels:define', 'labels:assign', 'fleet:person', 'labels:any'];
10
+ /**
11
+ * Use case: the installation, whose token the API adapter checked, acts in
12
+ * one fleet it hosts through the same fleet calls as any actor (decision
13
+ * 0057), with its scopes there and its built-in manage rule.
14
+ */
15
+ export function createAuthenticateInstallation(deps) {
16
+ return async ({ fleetId }) => (await deps.fleets.isHosted(fleetId))
17
+ ? ok({ kind: 'installation', fleetId, scopes: INSTALLATION_SCOPES })
18
+ : refuse('FLEET_NOT_FOUND', `This installation hosts no fleet ${fleetId}`);
19
+ }
20
+ //# sourceMappingURL=authenticate-installation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticate-installation.js","sourceRoot":"","sources":["../../../src/domain/identity/authenticate-installation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqB,CAAC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;AAIpJ;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAA8B;IAC3E,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC3B,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QACpE,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,OAAO,EAAE,CAAC,CAAC;AACjF,CAAC"}