@nocobase/app-plugin-releases 0.0.0-stage → 0.1.0-beta.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 (584) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +118 -2
  3. package/dist/client/components/actor-name.d.ts +5 -0
  4. package/dist/client/components/actor-name.d.ts.map +1 -0
  5. package/dist/client/components/actor-name.js +11 -0
  6. package/dist/client/components/actor-name.js.map +1 -0
  7. package/dist/client/components/advanced-section.d.ts +8 -0
  8. package/dist/client/components/advanced-section.d.ts.map +1 -0
  9. package/dist/client/components/advanced-section.js +13 -0
  10. package/dist/client/components/advanced-section.js.map +1 -0
  11. package/dist/client/components/app-settings-card.d.ts +7 -0
  12. package/dist/client/components/app-settings-card.d.ts.map +1 -0
  13. package/dist/client/components/app-settings-card.js +69 -0
  14. package/dist/client/components/app-settings-card.js.map +1 -0
  15. package/dist/client/components/artifacts.d.ts +9 -0
  16. package/dist/client/components/artifacts.d.ts.map +1 -0
  17. package/dist/client/components/artifacts.js +26 -0
  18. package/dist/client/components/artifacts.js.map +1 -0
  19. package/dist/client/components/config-secrets.d.ts +10 -0
  20. package/dist/client/components/config-secrets.d.ts.map +1 -0
  21. package/dist/client/components/config-secrets.js +34 -0
  22. package/dist/client/components/config-secrets.js.map +1 -0
  23. package/dist/client/components/confirm-dialog.d.ts +22 -0
  24. package/dist/client/components/confirm-dialog.d.ts.map +1 -0
  25. package/dist/client/components/confirm-dialog.js +47 -0
  26. package/dist/client/components/confirm-dialog.js.map +1 -0
  27. package/dist/client/components/connection-check.d.ts +13 -0
  28. package/dist/client/components/connection-check.d.ts.map +1 -0
  29. package/dist/client/components/connection-check.js +69 -0
  30. package/dist/client/components/connection-check.js.map +1 -0
  31. package/dist/client/components/data-table.d.ts +27 -0
  32. package/dist/client/components/data-table.d.ts.map +1 -0
  33. package/dist/client/components/data-table.js +41 -0
  34. package/dist/client/components/data-table.js.map +1 -0
  35. package/dist/client/components/driver-settings.d.ts +28 -0
  36. package/dist/client/components/driver-settings.d.ts.map +1 -0
  37. package/dist/client/components/driver-settings.js +158 -0
  38. package/dist/client/components/driver-settings.js.map +1 -0
  39. package/dist/client/components/environment-form.d.ts +18 -0
  40. package/dist/client/components/environment-form.d.ts.map +1 -0
  41. package/dist/client/components/environment-form.js +284 -0
  42. package/dist/client/components/environment-form.js.map +1 -0
  43. package/dist/client/components/image-source-fields.d.ts +16 -0
  44. package/dist/client/components/image-source-fields.d.ts.map +1 -0
  45. package/dist/client/components/image-source-fields.js +53 -0
  46. package/dist/client/components/image-source-fields.js.map +1 -0
  47. package/dist/client/components/labels-editor.d.ts +15 -0
  48. package/dist/client/components/labels-editor.d.ts.map +1 -0
  49. package/dist/client/components/labels-editor.js +40 -0
  50. package/dist/client/components/labels-editor.js.map +1 -0
  51. package/dist/client/components/page-container.d.ts +11 -0
  52. package/dist/client/components/page-container.d.ts.map +1 -0
  53. package/dist/client/components/page-container.js +13 -0
  54. package/dist/client/components/page-container.js.map +1 -0
  55. package/dist/client/components/page-header.d.ts +14 -0
  56. package/dist/client/components/page-header.d.ts.map +1 -0
  57. package/dist/client/components/page-header.js +10 -0
  58. package/dist/client/components/page-header.js.map +1 -0
  59. package/dist/client/components/page-tabs.d.ts +20 -0
  60. package/dist/client/components/page-tabs.d.ts.map +1 -0
  61. package/dist/client/components/page-tabs.js +7 -0
  62. package/dist/client/components/page-tabs.js.map +1 -0
  63. package/dist/client/components/people-picker.d.ts +5 -0
  64. package/dist/client/components/people-picker.d.ts.map +1 -0
  65. package/dist/client/components/people-picker.js +22 -0
  66. package/dist/client/components/people-picker.js.map +1 -0
  67. package/dist/client/components/refresh-button.d.ts +7 -0
  68. package/dist/client/components/refresh-button.d.ts.map +1 -0
  69. package/dist/client/components/refresh-button.js +21 -0
  70. package/dist/client/components/refresh-button.js.map +1 -0
  71. package/dist/client/components/registry-fields.d.ts +20 -0
  72. package/dist/client/components/registry-fields.d.ts.map +1 -0
  73. package/dist/client/components/registry-fields.js +47 -0
  74. package/dist/client/components/registry-fields.js.map +1 -0
  75. package/dist/client/components/release-badges.d.ts +42 -0
  76. package/dist/client/components/release-badges.d.ts.map +1 -0
  77. package/dist/client/components/release-badges.js +100 -0
  78. package/dist/client/components/release-badges.js.map +1 -0
  79. package/dist/client/components/request-decision.d.ts +8 -0
  80. package/dist/client/components/request-decision.d.ts.map +1 -0
  81. package/dist/client/components/request-decision.js +7 -0
  82. package/dist/client/components/request-decision.js.map +1 -0
  83. package/dist/client/components/route-dialog.d.ts +6 -0
  84. package/dist/client/components/route-dialog.d.ts.map +1 -0
  85. package/dist/client/components/route-dialog.js +7 -0
  86. package/dist/client/components/route-dialog.js.map +1 -0
  87. package/dist/client/components/route-overlay.d.ts +21 -0
  88. package/dist/client/components/route-overlay.d.ts.map +1 -0
  89. package/dist/client/components/route-overlay.js +87 -0
  90. package/dist/client/components/route-overlay.js.map +1 -0
  91. package/dist/client/components/row-actions.d.ts +9 -0
  92. package/dist/client/components/row-actions.d.ts.map +1 -0
  93. package/dist/client/components/row-actions.js +16 -0
  94. package/dist/client/components/row-actions.js.map +1 -0
  95. package/dist/client/components/runtime-policy-fields.d.ts +9 -0
  96. package/dist/client/components/runtime-policy-fields.d.ts.map +1 -0
  97. package/dist/client/components/runtime-policy-fields.js +26 -0
  98. package/dist/client/components/runtime-policy-fields.js.map +1 -0
  99. package/dist/client/components/section.d.ts +15 -0
  100. package/dist/client/components/section.d.ts.map +1 -0
  101. package/dist/client/components/section.js +6 -0
  102. package/dist/client/components/section.js.map +1 -0
  103. package/dist/client/components/states.d.ts +21 -0
  104. package/dist/client/components/states.d.ts.map +1 -0
  105. package/dist/client/components/states.js +29 -0
  106. package/dist/client/components/states.js.map +1 -0
  107. package/dist/client/components/tag.d.ts +15 -0
  108. package/dist/client/components/tag.d.ts.map +1 -0
  109. package/dist/client/components/tag.js +15 -0
  110. package/dist/client/components/tag.js.map +1 -0
  111. package/dist/client/components/ui/alert-dialog.d.ts +19 -0
  112. package/dist/client/components/ui/alert-dialog.d.ts.map +1 -0
  113. package/dist/client/components/ui/alert-dialog.js +42 -0
  114. package/dist/client/components/ui/alert-dialog.js.map +1 -0
  115. package/dist/client/components/ui/alert.d.ts +13 -0
  116. package/dist/client/components/ui/alert.d.ts.map +1 -0
  117. package/dist/client/components/ui/alert.js +31 -0
  118. package/dist/client/components/ui/alert.js.map +1 -0
  119. package/dist/client/components/ui/badge.d.ts +11 -0
  120. package/dist/client/components/ui/badge.d.ts.map +1 -0
  121. package/dist/client/components/ui/badge.js +37 -0
  122. package/dist/client/components/ui/badge.js.map +1 -0
  123. package/dist/client/components/ui/button.d.ts +12 -0
  124. package/dist/client/components/ui/button.d.ts.map +1 -0
  125. package/dist/client/components/ui/button.js +38 -0
  126. package/dist/client/components/ui/button.js.map +1 -0
  127. package/dist/client/components/ui/card.d.ts +12 -0
  128. package/dist/client/components/ui/card.d.ts.map +1 -0
  129. package/dist/client/components/ui/card.js +25 -0
  130. package/dist/client/components/ui/card.js.map +1 -0
  131. package/dist/client/components/ui/checkbox.d.ts +5 -0
  132. package/dist/client/components/ui/checkbox.d.ts.map +1 -0
  133. package/dist/client/components/ui/checkbox.js +9 -0
  134. package/dist/client/components/ui/checkbox.js.map +1 -0
  135. package/dist/client/components/ui/collapsible.d.ts +7 -0
  136. package/dist/client/components/ui/collapsible.d.ts.map +1 -0
  137. package/dist/client/components/ui/collapsible.js +13 -0
  138. package/dist/client/components/ui/collapsible.js.map +1 -0
  139. package/dist/client/components/ui/dialog.d.ts +18 -0
  140. package/dist/client/components/ui/dialog.d.ts.map +1 -0
  141. package/dist/client/components/ui/dialog.js +40 -0
  142. package/dist/client/components/ui/dialog.js.map +1 -0
  143. package/dist/client/components/ui/dropdown-menu.d.ts +30 -0
  144. package/dist/client/components/ui/dropdown-menu.d.ts.map +1 -0
  145. package/dist/client/components/ui/dropdown-menu.js +51 -0
  146. package/dist/client/components/ui/dropdown-menu.js.map +1 -0
  147. package/dist/client/components/ui/empty.d.ts +15 -0
  148. package/dist/client/components/ui/empty.d.ts.map +1 -0
  149. package/dist/client/components/ui/empty.js +37 -0
  150. package/dist/client/components/ui/empty.js.map +1 -0
  151. package/dist/client/components/ui/field.d.ts +28 -0
  152. package/dist/client/components/ui/field.d.ts.map +1 -0
  153. package/dist/client/components/ui/field.js +71 -0
  154. package/dist/client/components/ui/field.js.map +1 -0
  155. package/dist/client/components/ui/input-group.d.ts +22 -0
  156. package/dist/client/components/ui/input-group.d.ts.map +1 -0
  157. package/dist/client/components/ui/input-group.js +63 -0
  158. package/dist/client/components/ui/input-group.js.map +1 -0
  159. package/dist/client/components/ui/input.d.ts +4 -0
  160. package/dist/client/components/ui/input.d.ts.map +1 -0
  161. package/dist/client/components/ui/input.js +8 -0
  162. package/dist/client/components/ui/input.js.map +1 -0
  163. package/dist/client/components/ui/label.d.ts +4 -0
  164. package/dist/client/components/ui/label.d.ts.map +1 -0
  165. package/dist/client/components/ui/label.js +7 -0
  166. package/dist/client/components/ui/label.js.map +1 -0
  167. package/dist/client/components/ui/radio-group.d.ts +7 -0
  168. package/dist/client/components/ui/radio-group.d.ts.map +1 -0
  169. package/dist/client/components/ui/radio-group.js +12 -0
  170. package/dist/client/components/ui/radio-group.js.map +1 -0
  171. package/dist/client/components/ui/select.d.ts +16 -0
  172. package/dist/client/components/ui/select.d.ts.map +1 -0
  173. package/dist/client/components/ui/select.js +34 -0
  174. package/dist/client/components/ui/select.js.map +1 -0
  175. package/dist/client/components/ui/separator.d.ts +5 -0
  176. package/dist/client/components/ui/separator.d.ts.map +1 -0
  177. package/dist/client/components/ui/separator.js +8 -0
  178. package/dist/client/components/ui/separator.js.map +1 -0
  179. package/dist/client/components/ui/sheet.d.ts +15 -0
  180. package/dist/client/components/ui/sheet.d.ts.map +1 -0
  181. package/dist/client/components/ui/sheet.js +39 -0
  182. package/dist/client/components/ui/sheet.js.map +1 -0
  183. package/dist/client/components/ui/skeleton.d.ts +4 -0
  184. package/dist/client/components/ui/skeleton.d.ts.map +1 -0
  185. package/dist/client/components/ui/skeleton.js +7 -0
  186. package/dist/client/components/ui/skeleton.js.map +1 -0
  187. package/dist/client/components/ui/spinner.d.ts +4 -0
  188. package/dist/client/components/ui/spinner.d.ts.map +1 -0
  189. package/dist/client/components/ui/spinner.js +11 -0
  190. package/dist/client/components/ui/spinner.js.map +1 -0
  191. package/dist/client/components/ui/table.d.ts +11 -0
  192. package/dist/client/components/ui/table.d.ts.map +1 -0
  193. package/dist/client/components/ui/table.js +28 -0
  194. package/dist/client/components/ui/table.js.map +1 -0
  195. package/dist/client/components/ui/tabs.d.ts +14 -0
  196. package/dist/client/components/ui/tabs.d.ts.map +1 -0
  197. package/dist/client/components/ui/tabs.js +32 -0
  198. package/dist/client/components/ui/tabs.js.map +1 -0
  199. package/dist/client/components/ui/textarea.d.ts +4 -0
  200. package/dist/client/components/ui/textarea.d.ts.map +1 -0
  201. package/dist/client/components/ui/textarea.js +7 -0
  202. package/dist/client/components/ui/textarea.js.map +1 -0
  203. package/dist/client/components/ui/tooltip.d.ts +8 -0
  204. package/dist/client/components/ui/tooltip.d.ts.map +1 -0
  205. package/dist/client/components/ui/tooltip.js +17 -0
  206. package/dist/client/components/ui/tooltip.js.map +1 -0
  207. package/dist/client/components/upload-release-dialog.d.ts +8 -0
  208. package/dist/client/components/upload-release-dialog.d.ts.map +1 -0
  209. package/dist/client/components/upload-release-dialog.js +39 -0
  210. package/dist/client/components/upload-release-dialog.js.map +1 -0
  211. package/dist/client/components/use-route-overlay.d.ts +15 -0
  212. package/dist/client/components/use-route-overlay.d.ts.map +1 -0
  213. package/dist/client/components/use-route-overlay.js +15 -0
  214. package/dist/client/components/use-route-overlay.js.map +1 -0
  215. package/dist/client/components/variable-alerts.d.ts +24 -0
  216. package/dist/client/components/variable-alerts.d.ts.map +1 -0
  217. package/dist/client/components/variable-alerts.js +85 -0
  218. package/dist/client/components/variable-alerts.js.map +1 -0
  219. package/dist/client/components/variable-dialogs.d.ts +30 -0
  220. package/dist/client/components/variable-dialogs.d.ts.map +1 -0
  221. package/dist/client/components/variable-dialogs.js +155 -0
  222. package/dist/client/components/variable-dialogs.js.map +1 -0
  223. package/dist/client/components/variables-table.d.ts +26 -0
  224. package/dist/client/components/variables-table.d.ts.map +1 -0
  225. package/dist/client/components/variables-table.js +374 -0
  226. package/dist/client/components/variables-table.js.map +1 -0
  227. package/dist/client/driver-forms/host.d.ts +3 -0
  228. package/dist/client/driver-forms/host.d.ts.map +1 -0
  229. package/dist/client/driver-forms/host.js +100 -0
  230. package/dist/client/driver-forms/host.js.map +1 -0
  231. package/dist/client/driver-forms/index.d.ts +25 -0
  232. package/dist/client/driver-forms/index.d.ts.map +1 -0
  233. package/dist/client/driver-forms/index.js +40 -0
  234. package/dist/client/driver-forms/index.js.map +1 -0
  235. package/dist/client/driver-forms/mapping.d.ts +56 -0
  236. package/dist/client/driver-forms/mapping.d.ts.map +1 -0
  237. package/dist/client/driver-forms/mapping.js +308 -0
  238. package/dist/client/driver-forms/mapping.js.map +1 -0
  239. package/dist/client/driver-forms/types.d.ts +168 -0
  240. package/dist/client/driver-forms/types.d.ts.map +1 -0
  241. package/dist/client/driver-forms/types.js +16 -0
  242. package/dist/client/driver-forms/types.js.map +1 -0
  243. package/dist/client/hooks/use-connection-check.d.ts +18 -0
  244. package/dist/client/hooks/use-connection-check.d.ts.map +1 -0
  245. package/dist/client/hooks/use-connection-check.js +19 -0
  246. package/dist/client/hooks/use-connection-check.js.map +1 -0
  247. package/dist/client/hooks/use-driver-forms.d.ts +4 -0
  248. package/dist/client/hooks/use-driver-forms.d.ts.map +1 -0
  249. package/dist/client/hooks/use-driver-forms.js +12 -0
  250. package/dist/client/hooks/use-driver-forms.js.map +1 -0
  251. package/dist/client/hooks/use-driver-names.d.ts +14 -0
  252. package/dist/client/hooks/use-driver-names.d.ts.map +1 -0
  253. package/dist/client/hooks/use-driver-names.js +33 -0
  254. package/dist/client/hooks/use-driver-names.js.map +1 -0
  255. package/dist/client/hooks/use-environment-check.d.ts +8 -0
  256. package/dist/client/hooks/use-environment-check.d.ts.map +1 -0
  257. package/dist/client/hooks/use-environment-check.js +28 -0
  258. package/dist/client/hooks/use-environment-check.js.map +1 -0
  259. package/dist/client/hooks/use-notify.d.ts +7 -0
  260. package/dist/client/hooks/use-notify.d.ts.map +1 -0
  261. package/dist/client/hooks/use-notify.js +22 -0
  262. package/dist/client/hooks/use-notify.js.map +1 -0
  263. package/dist/client/hooks/use-registries.d.ts +6 -0
  264. package/dist/client/hooks/use-registries.d.ts.map +1 -0
  265. package/dist/client/hooks/use-registries.js +9 -0
  266. package/dist/client/hooks/use-registries.js.map +1 -0
  267. package/dist/client/hooks/use-registry-check.d.ts +16 -0
  268. package/dist/client/hooks/use-registry-check.d.ts.map +1 -0
  269. package/dist/client/hooks/use-registry-check.js +29 -0
  270. package/dist/client/hooks/use-registry-check.js.map +1 -0
  271. package/dist/client/hooks/use-releases.d.ts +42 -0
  272. package/dist/client/hooks/use-releases.d.ts.map +1 -0
  273. package/dist/client/hooks/use-releases.js +82 -0
  274. package/dist/client/hooks/use-releases.js.map +1 -0
  275. package/dist/client/hooks/use-request-decisions.d.ts +15 -0
  276. package/dist/client/hooks/use-request-decisions.d.ts.map +1 -0
  277. package/dist/client/hooks/use-request-decisions.js +69 -0
  278. package/dist/client/hooks/use-request-decisions.js.map +1 -0
  279. package/dist/client/hooks/use-tab-param.d.ts +5 -0
  280. package/dist/client/hooks/use-tab-param.d.ts.map +1 -0
  281. package/dist/client/hooks/use-tab-param.js +33 -0
  282. package/dist/client/hooks/use-tab-param.js.map +1 -0
  283. package/dist/client/index.d.ts +12 -0
  284. package/dist/client/index.d.ts.map +1 -0
  285. package/dist/client/index.js +13 -0
  286. package/dist/client/index.js.map +1 -0
  287. package/dist/client/lib/actor-names.d.ts +16 -0
  288. package/dist/client/lib/actor-names.d.ts.map +1 -0
  289. package/dist/client/lib/actor-names.js +8 -0
  290. package/dist/client/lib/actor-names.js.map +1 -0
  291. package/dist/client/lib/app-groups.d.ts +20 -0
  292. package/dist/client/lib/app-groups.d.ts.map +1 -0
  293. package/dist/client/lib/app-groups.js +36 -0
  294. package/dist/client/lib/app-groups.js.map +1 -0
  295. package/dist/client/lib/app-origin.d.ts +22 -0
  296. package/dist/client/lib/app-origin.d.ts.map +1 -0
  297. package/dist/client/lib/app-origin.js +10 -0
  298. package/dist/client/lib/app-origin.js.map +1 -0
  299. package/dist/client/lib/app-state.d.ts +7 -0
  300. package/dist/client/lib/app-state.d.ts.map +1 -0
  301. package/dist/client/lib/app-state.js +15 -0
  302. package/dist/client/lib/app-state.js.map +1 -0
  303. package/dist/client/lib/config-secrets.d.ts +12 -0
  304. package/dist/client/lib/config-secrets.d.ts.map +1 -0
  305. package/dist/client/lib/config-secrets.js +16 -0
  306. package/dist/client/lib/config-secrets.js.map +1 -0
  307. package/dist/client/lib/delete-app-impact.d.ts +17 -0
  308. package/dist/client/lib/delete-app-impact.d.ts.map +1 -0
  309. package/dist/client/lib/delete-app-impact.js +10 -0
  310. package/dist/client/lib/delete-app-impact.js.map +1 -0
  311. package/dist/client/lib/errors.d.ts +9 -0
  312. package/dist/client/lib/errors.d.ts.map +1 -0
  313. package/dist/client/lib/errors.js +76 -0
  314. package/dist/client/lib/errors.js.map +1 -0
  315. package/dist/client/lib/format.d.ts +8 -0
  316. package/dist/client/lib/format.d.ts.map +1 -0
  317. package/dist/client/lib/format.js +29 -0
  318. package/dist/client/lib/format.js.map +1 -0
  319. package/dist/client/lib/labels.d.ts +14 -0
  320. package/dist/client/lib/labels.d.ts.map +1 -0
  321. package/dist/client/lib/labels.js +42 -0
  322. package/dist/client/lib/labels.js.map +1 -0
  323. package/dist/client/lib/paths.d.ts +25 -0
  324. package/dist/client/lib/paths.d.ts.map +1 -0
  325. package/dist/client/lib/paths.js +31 -0
  326. package/dist/client/lib/paths.js.map +1 -0
  327. package/dist/client/lib/pending-requests.d.ts +7 -0
  328. package/dist/client/lib/pending-requests.d.ts.map +1 -0
  329. package/dist/client/lib/pending-requests.js +12 -0
  330. package/dist/client/lib/pending-requests.js.map +1 -0
  331. package/dist/client/lib/people-picker.d.ts +19 -0
  332. package/dist/client/lib/people-picker.d.ts.map +1 -0
  333. package/dist/client/lib/people-picker.js +8 -0
  334. package/dist/client/lib/people-picker.js.map +1 -0
  335. package/dist/client/lib/permissions.d.ts +6 -0
  336. package/dist/client/lib/permissions.d.ts.map +1 -0
  337. package/dist/client/lib/permissions.js +14 -0
  338. package/dist/client/lib/permissions.js.map +1 -0
  339. package/dist/client/lib/registry-draft.d.ts +26 -0
  340. package/dist/client/lib/registry-draft.d.ts.map +1 -0
  341. package/dist/client/lib/registry-draft.js +41 -0
  342. package/dist/client/lib/registry-draft.js.map +1 -0
  343. package/dist/client/lib/runtime-policy.d.ts +21 -0
  344. package/dist/client/lib/runtime-policy.d.ts.map +1 -0
  345. package/dist/client/lib/runtime-policy.js +63 -0
  346. package/dist/client/lib/runtime-policy.js.map +1 -0
  347. package/dist/client/lib/system-labels.d.ts +15 -0
  348. package/dist/client/lib/system-labels.d.ts.map +1 -0
  349. package/dist/client/lib/system-labels.js +14 -0
  350. package/dist/client/lib/system-labels.js.map +1 -0
  351. package/dist/client/lib/utils.d.ts +2 -0
  352. package/dist/client/lib/utils.d.ts.map +1 -0
  353. package/dist/client/lib/utils.js +2 -0
  354. package/dist/client/lib/utils.js.map +1 -0
  355. package/dist/client/lib/variables-text.d.ts +67 -0
  356. package/dist/client/lib/variables-text.d.ts.map +1 -0
  357. package/dist/client/lib/variables-text.js +156 -0
  358. package/dist/client/lib/variables-text.js.map +1 -0
  359. package/dist/client/locales/en-US.d.ts +670 -0
  360. package/dist/client/locales/en-US.d.ts.map +1 -0
  361. package/dist/client/locales/en-US.js +655 -0
  362. package/dist/client/locales/en-US.js.map +1 -0
  363. package/dist/client/locales/index.d.ts +4 -0
  364. package/dist/client/locales/index.d.ts.map +1 -0
  365. package/dist/client/locales/index.js +7 -0
  366. package/dist/client/locales/index.js.map +1 -0
  367. package/dist/client/locales/zh-CN.d.ts +4 -0
  368. package/dist/client/locales/zh-CN.d.ts.map +1 -0
  369. package/dist/client/locales/zh-CN.js +650 -0
  370. package/dist/client/locales/zh-CN.js.map +1 -0
  371. package/dist/client/pages/app-page.d.ts +3 -0
  372. package/dist/client/pages/app-page.d.ts.map +1 -0
  373. package/dist/client/pages/app-page.js +532 -0
  374. package/dist/client/pages/app-page.js.map +1 -0
  375. package/dist/client/pages/apps-page.d.ts +4 -0
  376. package/dist/client/pages/apps-page.d.ts.map +1 -0
  377. package/dist/client/pages/apps-page.js +116 -0
  378. package/dist/client/pages/apps-page.js.map +1 -0
  379. package/dist/client/pages/environment-page.d.ts +3 -0
  380. package/dist/client/pages/environment-page.d.ts.map +1 -0
  381. package/dist/client/pages/environment-page.js +147 -0
  382. package/dist/client/pages/environment-page.js.map +1 -0
  383. package/dist/client/pages/environments-page.d.ts +4 -0
  384. package/dist/client/pages/environments-page.d.ts.map +1 -0
  385. package/dist/client/pages/environments-page.js +115 -0
  386. package/dist/client/pages/environments-page.js.map +1 -0
  387. package/dist/client/pages/new-app-page.d.ts +10 -0
  388. package/dist/client/pages/new-app-page.d.ts.map +1 -0
  389. package/dist/client/pages/new-app-page.js +101 -0
  390. package/dist/client/pages/new-app-page.js.map +1 -0
  391. package/dist/client/pages/request-page.d.ts +7 -0
  392. package/dist/client/pages/request-page.d.ts.map +1 -0
  393. package/dist/client/pages/request-page.js +70 -0
  394. package/dist/client/pages/request-page.js.map +1 -0
  395. package/dist/client/pages.d.ts +10 -0
  396. package/dist/client/pages.d.ts.map +1 -0
  397. package/dist/client/pages.js +25 -0
  398. package/dist/client/pages.js.map +1 -0
  399. package/dist/client/plugin.d.ts +12 -0
  400. package/dist/client/plugin.d.ts.map +1 -0
  401. package/dist/client/plugin.js +12 -0
  402. package/dist/client/plugin.js.map +1 -0
  403. package/dist/client/routes.d.ts +19 -0
  404. package/dist/client/routes.d.ts.map +1 -0
  405. package/dist/client/routes.js +89 -0
  406. package/dist/client/routes.js.map +1 -0
  407. package/dist/client/service-provider.d.ts +11 -0
  408. package/dist/client/service-provider.d.ts.map +1 -0
  409. package/dist/client/service-provider.js +14 -0
  410. package/dist/client/service-provider.js.map +1 -0
  411. package/dist/database/migrations/.manifest.json +21 -0
  412. package/dist/database/migrations/202610020001_rel_create_tables.d.ts +8 -0
  413. package/dist/database/migrations/202610020001_rel_create_tables.d.ts.map +1 -0
  414. package/dist/database/migrations/202610020001_rel_create_tables.js +247 -0
  415. package/dist/database/migrations/202610020001_rel_create_tables.js.map +1 -0
  416. package/dist/database/migrations/202610100001_rel_variables_initial_admin.d.ts +16 -0
  417. package/dist/database/migrations/202610100001_rel_variables_initial_admin.d.ts.map +1 -0
  418. package/dist/database/migrations/202610100001_rel_variables_initial_admin.js +94 -0
  419. package/dist/database/migrations/202610100001_rel_variables_initial_admin.js.map +1 -0
  420. package/dist/database/migrations/202610170001_rel_drop_app_preview_values.d.ts +8 -0
  421. package/dist/database/migrations/202610170001_rel_drop_app_preview_values.d.ts.map +1 -0
  422. package/dist/database/migrations/202610170001_rel_drop_app_preview_values.js +25 -0
  423. package/dist/database/migrations/202610170001_rel_drop_app_preview_values.js.map +1 -0
  424. package/dist/database/migrations/202610210001_rel_protected_requires_approval.d.ts +9 -0
  425. package/dist/database/migrations/202610210001_rel_protected_requires_approval.d.ts.map +1 -0
  426. package/dist/database/migrations/202610210001_rel_protected_requires_approval.js +32 -0
  427. package/dist/database/migrations/202610210001_rel_protected_requires_approval.js.map +1 -0
  428. package/dist/package.d.ts +2 -0
  429. package/dist/package.d.ts.map +1 -0
  430. package/dist/package.js +2 -0
  431. package/dist/package.js.map +1 -0
  432. package/dist/server/access/caller.d.ts +74 -0
  433. package/dist/server/access/caller.d.ts.map +1 -0
  434. package/dist/server/access/caller.js +141 -0
  435. package/dist/server/access/caller.js.map +1 -0
  436. package/dist/server/access/key-scope-objects.d.ts +20 -0
  437. package/dist/server/access/key-scope-objects.d.ts.map +1 -0
  438. package/dist/server/access/key-scope-objects.js +42 -0
  439. package/dist/server/access/key-scope-objects.js.map +1 -0
  440. package/dist/server/composition.d.ts +52 -0
  441. package/dist/server/composition.d.ts.map +1 -0
  442. package/dist/server/composition.js +105 -0
  443. package/dist/server/composition.js.map +1 -0
  444. package/dist/server/config.d.ts +127 -0
  445. package/dist/server/config.d.ts.map +1 -0
  446. package/dist/server/config.js +2 -0
  447. package/dist/server/config.js.map +1 -0
  448. package/dist/server/drivers/host/driver.d.ts +87 -0
  449. package/dist/server/drivers/host/driver.d.ts.map +1 -0
  450. package/dist/server/drivers/host/driver.js +636 -0
  451. package/dist/server/drivers/host/driver.js.map +1 -0
  452. package/dist/server/drivers/types.d.ts +221 -0
  453. package/dist/server/drivers/types.d.ts.map +1 -0
  454. package/dist/server/drivers/types.js +27 -0
  455. package/dist/server/drivers/types.js.map +1 -0
  456. package/dist/server/errors.d.ts +20 -0
  457. package/dist/server/errors.d.ts.map +1 -0
  458. package/dist/server/errors.js +44 -0
  459. package/dist/server/errors.js.map +1 -0
  460. package/dist/server/index.d.ts +14 -0
  461. package/dist/server/index.d.ts.map +1 -0
  462. package/dist/server/index.js +13 -0
  463. package/dist/server/index.js.map +1 -0
  464. package/dist/server/locales/en-US.d.ts +6 -0
  465. package/dist/server/locales/en-US.d.ts.map +1 -0
  466. package/dist/server/locales/en-US.js +4 -0
  467. package/dist/server/locales/en-US.js.map +1 -0
  468. package/dist/server/locales/index.d.ts +4 -0
  469. package/dist/server/locales/index.d.ts.map +1 -0
  470. package/dist/server/locales/index.js +6 -0
  471. package/dist/server/locales/index.js.map +1 -0
  472. package/dist/server/locales/zh-CN.d.ts +4 -0
  473. package/dist/server/locales/zh-CN.d.ts.map +1 -0
  474. package/dist/server/locales/zh-CN.js +4 -0
  475. package/dist/server/locales/zh-CN.js.map +1 -0
  476. package/dist/server/plugin.d.ts +4 -0
  477. package/dist/server/plugin.d.ts.map +1 -0
  478. package/dist/server/plugin.js +16 -0
  479. package/dist/server/plugin.js.map +1 -0
  480. package/dist/server/providers/authorization.d.ts +17 -0
  481. package/dist/server/providers/authorization.d.ts.map +1 -0
  482. package/dist/server/providers/authorization.js +60 -0
  483. package/dist/server/providers/authorization.js.map +1 -0
  484. package/dist/server/providers/index.d.ts +4 -0
  485. package/dist/server/providers/index.d.ts.map +1 -0
  486. package/dist/server/providers/index.js +8 -0
  487. package/dist/server/providers/index.js.map +1 -0
  488. package/dist/server/providers/releases.d.ts +23 -0
  489. package/dist/server/providers/releases.d.ts.map +1 -0
  490. package/dist/server/providers/releases.js +219 -0
  491. package/dist/server/providers/releases.js.map +1 -0
  492. package/dist/server/routes/api.d.ts +24 -0
  493. package/dist/server/routes/api.d.ts.map +1 -0
  494. package/dist/server/routes/api.js +1610 -0
  495. package/dist/server/routes/api.js.map +1 -0
  496. package/dist/server/routes/index.d.ts +7 -0
  497. package/dist/server/routes/index.d.ts.map +1 -0
  498. package/dist/server/routes/index.js +39 -0
  499. package/dist/server/routes/index.js.map +1 -0
  500. package/dist/server/routes/schemas.d.ts +184 -0
  501. package/dist/server/routes/schemas.d.ts.map +1 -0
  502. package/dist/server/routes/schemas.js +763 -0
  503. package/dist/server/routes/schemas.js.map +1 -0
  504. package/dist/server/secrets-stores.d.ts +9 -0
  505. package/dist/server/secrets-stores.d.ts.map +1 -0
  506. package/dist/server/secrets-stores.js +80 -0
  507. package/dist/server/secrets-stores.js.map +1 -0
  508. package/dist/server/services/artifact.d.ts +30 -0
  509. package/dist/server/services/artifact.d.ts.map +1 -0
  510. package/dist/server/services/artifact.js +234 -0
  511. package/dist/server/services/artifact.js.map +1 -0
  512. package/dist/server/services/codec.d.ts +15 -0
  513. package/dist/server/services/codec.d.ts.map +1 -0
  514. package/dist/server/services/codec.js +58 -0
  515. package/dist/server/services/codec.js.map +1 -0
  516. package/dist/server/services/config-file.d.ts +26 -0
  517. package/dist/server/services/config-file.d.ts.map +1 -0
  518. package/dist/server/services/config-file.js +154 -0
  519. package/dist/server/services/config-file.js.map +1 -0
  520. package/dist/server/services/config-secrets.d.ts +23 -0
  521. package/dist/server/services/config-secrets.d.ts.map +1 -0
  522. package/dist/server/services/config-secrets.js +269 -0
  523. package/dist/server/services/config-secrets.js.map +1 -0
  524. package/dist/server/services/credentials.d.ts +44 -0
  525. package/dist/server/services/credentials.d.ts.map +1 -0
  526. package/dist/server/services/credentials.js +137 -0
  527. package/dist/server/services/credentials.js.map +1 -0
  528. package/dist/server/services/environments.d.ts +75 -0
  529. package/dist/server/services/environments.d.ts.map +1 -0
  530. package/dist/server/services/environments.js +508 -0
  531. package/dist/server/services/environments.js.map +1 -0
  532. package/dist/server/services/events.d.ts +11 -0
  533. package/dist/server/services/events.d.ts.map +1 -0
  534. package/dist/server/services/events.js +26 -0
  535. package/dist/server/services/events.js.map +1 -0
  536. package/dist/server/services/registries.d.ts +67 -0
  537. package/dist/server/services/registries.d.ts.map +1 -0
  538. package/dist/server/services/registries.js +409 -0
  539. package/dist/server/services/registries.js.map +1 -0
  540. package/dist/server/services/release-artifacts.d.ts +42 -0
  541. package/dist/server/services/release-artifacts.d.ts.map +1 -0
  542. package/dist/server/services/release-artifacts.js +165 -0
  543. package/dist/server/services/release-artifacts.js.map +1 -0
  544. package/dist/server/services/releases.d.ts +417 -0
  545. package/dist/server/services/releases.d.ts.map +1 -0
  546. package/dist/server/services/releases.js +2725 -0
  547. package/dist/server/services/releases.js.map +1 -0
  548. package/dist/server/services/requests.d.ts +54 -0
  549. package/dist/server/services/requests.d.ts.map +1 -0
  550. package/dist/server/services/requests.js +342 -0
  551. package/dist/server/services/requests.js.map +1 -0
  552. package/dist/server/services/secrets.d.ts +11 -0
  553. package/dist/server/services/secrets.d.ts.map +1 -0
  554. package/dist/server/services/secrets.js +36 -0
  555. package/dist/server/services/secrets.js.map +1 -0
  556. package/dist/server/services/validation.d.ts +21 -0
  557. package/dist/server/services/validation.d.ts.map +1 -0
  558. package/dist/server/services/validation.js +111 -0
  559. package/dist/server/services/validation.js.map +1 -0
  560. package/dist/server/services/variables.d.ts +132 -0
  561. package/dist/server/services/variables.d.ts.map +1 -0
  562. package/dist/server/services/variables.js +501 -0
  563. package/dist/server/services/variables.js.map +1 -0
  564. package/dist/server/tokens.d.ts +110 -0
  565. package/dist/server/tokens.d.ts.map +1 -0
  566. package/dist/server/tokens.js +9 -0
  567. package/dist/server/tokens.js.map +1 -0
  568. package/dist/shared/access.d.ts +212 -0
  569. package/dist/shared/access.d.ts.map +1 -0
  570. package/dist/shared/access.js +228 -0
  571. package/dist/shared/access.js.map +1 -0
  572. package/dist/shared/locales/access.en-US.d.ts +137 -0
  573. package/dist/shared/locales/access.en-US.d.ts.map +1 -0
  574. package/dist/shared/locales/access.en-US.js +133 -0
  575. package/dist/shared/locales/access.en-US.js.map +1 -0
  576. package/dist/shared/locales/access.zh-CN.d.ts +4 -0
  577. package/dist/shared/locales/access.zh-CN.d.ts.map +1 -0
  578. package/dist/shared/locales/access.zh-CN.js +127 -0
  579. package/dist/shared/locales/access.zh-CN.js.map +1 -0
  580. package/dist/shared/releases.d.ts +657 -0
  581. package/dist/shared/releases.d.ts.map +1 -0
  582. package/dist/shared/releases.js +56 -0
  583. package/dist/shared/releases.js.map +1 -0
  584. package/package.json +118 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../server/services/variables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * The plugin's service tokens and the ports the assembling application binds. The plugin knows nothing about who the
3
+ * people are or what roles they hold: the application decides each caller's `ReleasesPermissions`
4
+ * (`releasesAccessToken`), may widen what "related" means, resolves approvers and marks agents, registers deployment
5
+ * drivers (`releasesDriversToken`) and hears what happens (`releasesEventsToken`).
6
+ */
7
+ import type { AuthorizationIdentity } from '@nocobase/authorization/core';
8
+ import { type ServiceToken } from '@nocobase/service-provider';
9
+ import type { AppAction, ReleasesPermissions } from '../shared/access.js';
10
+ import type { ActorKind, AppView, DeploymentRequestView, DeploymentView, EnvironmentRecord, ReleaseView } from '../shared/releases.js';
11
+ import type { DriverRegistry } from './drivers/types.js';
12
+ import type { Releases } from './composition.js';
13
+ /**
14
+ * Roles as the plugin needs them. The application keeps the roles and binds this token; unbound, every caller holds
15
+ * nothing.
16
+ */
17
+ export interface ReleasesAccess {
18
+ /** What a signed-in caller may do, decided once per request. */
19
+ permissionsOf(identity: AuthorizationIdentity): Promise<ReleasesPermissions>;
20
+ /**
21
+ * What a user may do when they are not the caller: the issuer of an upload ticket when it is used, and an approver
22
+ * deciding a request.
23
+ */
24
+ permissionsOfUser(userId: string): Promise<ReleasesPermissions>;
25
+ /**
26
+ * Whether the caller is a person or an agent acting for one. Agents are refused `deploy-protected`, `configure`
27
+ * and `delete` whatever they hold, and never decide a deployment request. Defaults to `human`. Asked for a
28
+ * scoped identity too: `agent` makes it an agent's (such as an agent's run bounded by its scope) rather than a key's.
29
+ */
30
+ actorKindOf?(identity: AuthorizationIdentity): 'human' | 'agent';
31
+ /** Apps beyond the ones the users created that count as related to any of them for an action (for listing). */
32
+ relatedAppIds?(userIds: readonly string[], action: AppAction): Promise<readonly string[]>;
33
+ /** Whether one App counts as related to any of the users for an action, beyond the ones they created. */
34
+ isRelated?(appId: string, userIds: readonly string[], action: AppAction): Promise<boolean>;
35
+ /**
36
+ * The user IDs who may decide a deployment request. Defaults to the environment's `approvers` taken as user IDs;
37
+ * with none, anyone holding `deploy-protected` on the App (`deploy` on an unprotected environment), other than the
38
+ * requester, may decide.
39
+ */
40
+ approversOf?(environment: EnvironmentRecord, request: DeploymentRequestView): Promise<readonly string[]>;
41
+ }
42
+ export declare const releasesAccessToken: ServiceToken<ReleasesAccess>;
43
+ /** The deployment drivers environments may name; the plugin registers `host` when its Host runtime is enabled. */
44
+ export declare const releasesDriversToken: ServiceToken<DriverRegistry>;
45
+ /**
46
+ * The local App Host runtime, for an application listener that forwards Host traffic (requests outside its own
47
+ * mount). `proxyTarget` is null while the Host is disabled or not ready.
48
+ */
49
+ export interface ReleasesHostRuntime {
50
+ proxyTarget(): URL | null;
51
+ }
52
+ export declare const releasesHostToken: ServiceToken<ReleasesHostRuntime>;
53
+ /** Who performed an operation, as events report it. */
54
+ export interface ActorRef {
55
+ readonly userId: string | null;
56
+ readonly kind: ActorKind;
57
+ }
58
+ /**
59
+ * What happened, after it was committed. Deployments report once they finish; `deployment.rolledBack` replaces
60
+ * `deployment.succeeded` for a successful rollback. A request event carries the approvers so the application can
61
+ * notify them; the plugin sends no notifications itself.
62
+ */
63
+ export type ReleasesEvent = {
64
+ readonly type: 'app.created';
65
+ readonly app: AppView;
66
+ readonly actor: ActorRef;
67
+ } | {
68
+ readonly type: 'app.removed';
69
+ readonly app: AppView;
70
+ readonly actor: ActorRef;
71
+ } | {
72
+ readonly type: 'release.created';
73
+ readonly app: AppView;
74
+ readonly release: ReleaseView;
75
+ readonly actor: ActorRef;
76
+ } | {
77
+ readonly type: 'deployment.succeeded' | 'deployment.rolledBack';
78
+ readonly app: AppView;
79
+ readonly deployment: DeploymentView;
80
+ readonly release: ReleaseView;
81
+ readonly actor: ActorRef;
82
+ } | {
83
+ readonly type: 'deployment.failed';
84
+ readonly app: AppView;
85
+ readonly deployment: DeploymentView;
86
+ readonly release: ReleaseView;
87
+ readonly error: string;
88
+ readonly actor: ActorRef;
89
+ } | {
90
+ readonly type: 'request.created';
91
+ readonly app: AppView;
92
+ readonly request: DeploymentRequestView;
93
+ readonly approvers: readonly string[];
94
+ readonly actor: ActorRef;
95
+ } | {
96
+ readonly type: 'request.decided';
97
+ readonly app: AppView;
98
+ readonly request: DeploymentRequestView;
99
+ readonly decision: 'approved' | 'rejected' | 'cancelled';
100
+ readonly actor: ActorRef;
101
+ };
102
+ export type ReleasesEventListener = (event: ReleasesEvent) => void | Promise<void>;
103
+ /** Where the application listens; a listener's failure is logged and never undoes the operation. */
104
+ export interface ReleasesEvents {
105
+ subscribe(listener: ReleasesEventListener): () => void;
106
+ }
107
+ export declare const releasesEventsToken: ServiceToken<ReleasesEvents>;
108
+ /** The plugin's services, for an application that calls them in process (a preview service, a CLI command). */
109
+ export declare const releasesToken: ServiceToken<Releases>;
110
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../server/tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { createServiceToken, } from '@nocobase/service-provider';
2
+ export const releasesAccessToken = createServiceToken('@nocobase/app-plugin-releases/access');
3
+ /** The deployment drivers environments may name; the plugin registers `host` when its Host runtime is enabled. */
4
+ export const releasesDriversToken = createServiceToken('@nocobase/app-plugin-releases/drivers');
5
+ export const releasesHostToken = createServiceToken('@nocobase/app-plugin-releases/host');
6
+ export const releasesEventsToken = createServiceToken('@nocobase/app-plugin-releases/events');
7
+ /** The plugin's services, for an application that calls them in process (a preview service, a CLI command). */
8
+ export const releasesToken = createServiceToken('@nocobase/app-plugin-releases/releases');
9
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../server/tokens.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,kBAAkB,GAEnB,MAAM,4BAA4B,CAAC;AAsDpC,MAAM,CAAC,MAAM,mBAAmB,GAC9B,kBAAkB,CAAiB,sCAAsC,CAAC,CAAC;AAE7E,kHAAkH;AAClH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,kBAAkB,CAAiB,uCAAuC,CAAC,CAAC;AAU9E,MAAM,CAAC,MAAM,iBAAiB,GAC5B,kBAAkB,CAAsB,oCAAoC,CAAC,CAAC;AAqEhF,MAAM,CAAC,MAAM,mBAAmB,GAC9B,kBAAkB,CAAiB,sCAAsC,CAAC,CAAC;AAE7E,+GAA+G;AAC/G,MAAM,CAAC,MAAM,aAAa,GACxB,kBAAkB,CAAW,wCAAwC,CAAC,CAAC"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * What this plugin offers to be granted: its pages, settings items and business actions with the levels each offers.
3
+ * The plugin registers its settings items and its businesses (the `rel` resource type, each level of an action its own
4
+ * action: `deploy.related`, `deploy.all`) with the authorization plugin from here; the application that assembles it
5
+ * keeps the roles, stores the grants and tells the plugin each caller's `ReleasesPermissions` through `releasesAccessToken`
6
+ * (`server/tokens.ts`). The client reads the signed-in user's permissions (`GET /api/releases/me`) to show only what the
7
+ * server would allow.
8
+ */
9
+ /** The namespace of every title below, in the plugin's locales (`shared/locales/access.*.ts`). */
10
+ export declare const ACCESS_NAMESPACE = "@nocobase/app-plugin-releases";
11
+ /** A title as the authorization plugin stores it: an i18n key in this plugin's namespace. */
12
+ export declare function accessText(key: string): {
13
+ readonly key: string;
14
+ readonly ns: string;
15
+ };
16
+ /** The authorization workspace subsection (under administration) that lists the settings items. */
17
+ export declare const ACCESS_SECTION = "releases";
18
+ /**
19
+ * The app pages a role may open (`page` grants, action `access`); the client routes are named and authorized by the
20
+ * same ids. `rel-apps` lists Apps and opens their deployments.
21
+ */
22
+ export declare const PAGES: readonly ["rel-apps"];
23
+ export type Page = (typeof PAGES)[number];
24
+ /**
25
+ * Settings items. `rel.environments`: `read` lists environments and their runtime status, `manage` adds, edits and
26
+ * removes them, writes their credentials and marks them protected.
27
+ */
28
+ export declare const SETTINGS_ACTIONS: {
29
+ readonly 'rel.environments': readonly ["read", "manage"];
30
+ };
31
+ export type SettingsItem = keyof typeof SETTINGS_ACTIONS;
32
+ export type SettingsAction<S extends SettingsItem = SettingsItem> = (typeof SETTINGS_ACTIONS)[S][number];
33
+ /** `item/action`, the key of a capability in `ReleasesPermissions.settings`. */
34
+ export type SettingsKey = {
35
+ [S in SettingsItem]: `${S}/${SettingsAction<S>}`;
36
+ }[SettingsItem];
37
+ /**
38
+ * Business actions on Apps, each reaching every App, none, or the Apps related to a set of users (`Scope`). An App is
39
+ * related to the user who created it; the assembling application may relate more (`ReleasesAccess.isRelated`,
40
+ * `ReleasesAccess.relatedAppIds`).
41
+ *
42
+ * | Action | What it allows |
43
+ * | ------------------ | ------------------------------------------------------------------------------------- |
44
+ * | `view` | see the App, its releases and deployment history and its runtime status |
45
+ * | `read-logs` | read the App's runtime logs and its deployment logs |
46
+ * | `create` | create Apps (offers only none or all) |
47
+ * | `configure` | read and change the App's configuration and settings, labels and expiry |
48
+ * | `upload` | upload releases, request upload tickets, promote releases into the App, label releases |
49
+ * | `deploy` | deploy and roll back on an unprotected environment, request a deployment anywhere |
50
+ * | `deploy-protected` | approve deployments to a protected environment that names no approvers; people only |
51
+ * | `operate` | start, stop and restart |
52
+ * | `delete` | delete the App with its data |
53
+ */
54
+ export declare const BUSINESS_ACTIONS: {
55
+ readonly 'rel.apps': readonly ["view", "read-logs", "create", "configure", "upload", "deploy", "deploy-protected", "operate", "delete"];
56
+ };
57
+ export type Business = keyof typeof BUSINESS_ACTIONS;
58
+ export type BusinessAction<B extends Business = Business> = (typeof BUSINESS_ACTIONS)[B][number];
59
+ export type AppAction = BusinessAction<'rel.apps'>;
60
+ /** `business/action`, the key of a scope in `ReleasesPermissions.scopes`. */
61
+ export type BusinessKey = {
62
+ [B in Business]: `${B}/${BusinessAction<B>}`;
63
+ }[Business];
64
+ /**
65
+ * How far a business action reaches for a caller: every App, none, or the Apps related to any of `users`
66
+ * (`RELATIONS`). The application resolves the level a role gives to this; an empty set reaches nothing.
67
+ */
68
+ export type Scope = 'all' | 'none' | {
69
+ readonly users: readonly string[];
70
+ };
71
+ /** Whether `scope` reaches a record related to any of `userIds` (null and undefined relate nothing). */
72
+ export declare function reaches(scope: Scope, ...userIds: readonly (string | null | undefined)[]): boolean;
73
+ /**
74
+ * How an App relates to a user, as the application words it: they created it, or the application relates it to them.
75
+ */
76
+ export type Relation = 'owned';
77
+ /** Each business action's relation; null where the action has no records to relate, so it is held or not. */
78
+ export declare const RELATIONS: Readonly<Record<BusinessKey, Relation | null>>;
79
+ /** The authorization resource type the businesses are registered under; every business id starts with it. */
80
+ export declare const RESOURCE_TYPE = "rel";
81
+ /** The permission workspace subsection (under business) that lists the businesses. */
82
+ export declare const BUSINESS_SECTION = "rel";
83
+ /**
84
+ * The levels an action whose Apps relate to users (`RELATIONS`) is registered at, lowest first, each its own
85
+ * authorization action: `deploy.related` reaches the related Apps, `deploy.all` every one. An action without related
86
+ * records is registered as itself (`create`), held or not. Holding a level reaches at least what the lower ones do, so
87
+ * the application takes the highest one held.
88
+ */
89
+ export declare const ACTION_LEVELS: readonly ["related", "all"];
90
+ export type ActionLevel = (typeof ACTION_LEVELS)[number];
91
+ /** The authorization actions a business action is registered as, lowest level first. */
92
+ export declare function levelActionsOf(key: BusinessKey): readonly {
93
+ readonly level: ActionLevel;
94
+ readonly name: string;
95
+ }[];
96
+ /** The resource a business's actions are granted on. */
97
+ export declare function businessResource(business: Business): {
98
+ readonly type: string;
99
+ readonly id: string;
100
+ };
101
+ /** A business's title or its one-line description (`access.businesses.apps.title`). */
102
+ export declare function businessText(business: Business, part: 'title' | 'description'): {
103
+ readonly key: string;
104
+ readonly ns: string;
105
+ };
106
+ /**
107
+ * A business action's title, its one-line description, the title of one of its levels, or the wording of its `related`
108
+ * level: `relatedLabel`, its short name in a level choice ("in projects I can see"), and `relatedHint`, one line on what
109
+ * it reaches. An application reads the last two beside the `related` level's registered title.
110
+ */
111
+ export declare function actionText(key: BusinessKey, part: 'title' | 'description' | ActionLevel | 'relatedLabel' | 'relatedHint'): {
112
+ readonly key: string;
113
+ readonly ns: string;
114
+ };
115
+ /**
116
+ * Actions an agent or a key may never perform, whatever its grants: the assembling application marks a caller as an
117
+ * agent (`ReleasesAccess.actorKindOf`), a request made with a scoped credential is a key, and the plugin refuses these
118
+ * for both.
119
+ */
120
+ export declare const HUMAN_ONLY_ACTIONS: readonly AppAction[];
121
+ /** What a caller may do, decided once per request by the assembling application. */
122
+ export interface ReleasesPermissions {
123
+ readonly scopes: Readonly<Record<BusinessKey, Scope>>;
124
+ readonly settings: Readonly<Record<SettingsKey, boolean>>;
125
+ readonly pages: Readonly<Record<Page, boolean>>;
126
+ }
127
+ export declare function businessKey<B extends Business>(business: B, action: BusinessAction<B>): BusinessKey;
128
+ export declare function settingsKey<S extends SettingsItem>(item: S, action: SettingsAction<S>): SettingsKey;
129
+ /** Every business action, in declaration order. */
130
+ export declare const BUSINESS_KEYS: readonly {
131
+ readonly business: Business;
132
+ readonly action: BusinessAction;
133
+ readonly key: BusinessKey;
134
+ }[];
135
+ /** Every settings capability, in declaration order. */
136
+ export declare const SETTINGS_KEYS: readonly {
137
+ readonly item: SettingsItem;
138
+ readonly action: SettingsAction;
139
+ readonly key: SettingsKey;
140
+ }[];
141
+ /** Nothing allowed: the start of a new role, and what an unknown caller holds. */
142
+ export declare function noPermissions(): ReleasesPermissions;
143
+ /** Everything allowed, at `all`: what the plugin's own background work acts with. */
144
+ export declare function allPermissions(): ReleasesPermissions;
145
+ /** A permission an API key's scope may cover: a page, a settings action or a business action of this plugin. */
146
+ type KeyScopeAccess = {
147
+ readonly kind: 'page';
148
+ readonly id: Page;
149
+ } | {
150
+ readonly kind: 'settings';
151
+ readonly id: SettingsItem;
152
+ readonly action: string;
153
+ } | {
154
+ readonly kind: 'business';
155
+ readonly id: Business;
156
+ readonly action: AppAction;
157
+ };
158
+ /**
159
+ * The permission groups this plugin offers to API keys with a scope, as data the application hands to the API keys
160
+ * plugin (the shape of its `KeyScopeGroupDeclaration`; nothing here imports it). Each level includes the ones before.
161
+ *
162
+ * - `releases.apps`: read sees Apps, their releases, deployments and logs; write also uploads, deploys and starts or
163
+ * stops them — what CI needs. It may be limited to some Apps (`objects`), which the guard enforces. Configuring,
164
+ * creating and deleting Apps are not offered: a key may never configure or delete one (`HUMAN_ONLY_ACTIONS`), and
165
+ * CI has no need to create them.
166
+ * - `releases.environments`: read lists the environments, write manages them.
167
+ *
168
+ * Whatever its scope, a key never deploys directly to a protected environment, and nobody else does either; it may ask
169
+ * for a deployment there (a deployment request) when it may deploy the App.
170
+ */
171
+ export declare const KEY_SCOPE_GROUPS: readonly {
172
+ readonly id: string;
173
+ readonly category: 'business' | 'administration' | 'account';
174
+ readonly title: {
175
+ readonly key: string;
176
+ readonly ns: string;
177
+ };
178
+ readonly description?: {
179
+ readonly key: string;
180
+ readonly ns: string;
181
+ };
182
+ readonly levels: Readonly<Partial<Record<'read' | 'write' | 'admin', readonly KeyScopeAccess[]>>>;
183
+ readonly objects?: {
184
+ readonly business: Business;
185
+ readonly title: {
186
+ readonly key: string;
187
+ readonly ns: string;
188
+ };
189
+ };
190
+ }[];
191
+ /**
192
+ * Presets for a key's scope, for the Apps chosen and 90 days: "CI deploy" uploads and deploys (`acme release upload`
193
+ * then `acme deploy`), "CI upload" only uploads.
194
+ */
195
+ export declare const KEY_SCOPE_PRESETS: readonly {
196
+ readonly id: string;
197
+ readonly title: {
198
+ readonly key: string;
199
+ readonly ns: string;
200
+ };
201
+ readonly description?: {
202
+ readonly key: string;
203
+ readonly ns: string;
204
+ };
205
+ readonly groups: Readonly<Record<string, {
206
+ readonly level: 'read' | 'write' | 'admin';
207
+ readonly objects?: 'all' | 'pick';
208
+ }>>;
209
+ readonly expiresInDays?: number | null;
210
+ }[];
211
+ export {};
212
+ //# sourceMappingURL=access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../shared/access.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * What this plugin offers to be granted: its pages, settings items and business actions with the levels each offers.
3
+ * The plugin registers its settings items and its businesses (the `rel` resource type, each level of an action its own
4
+ * action: `deploy.related`, `deploy.all`) with the authorization plugin from here; the application that assembles it
5
+ * keeps the roles, stores the grants and tells the plugin each caller's `ReleasesPermissions` through `releasesAccessToken`
6
+ * (`server/tokens.ts`). The client reads the signed-in user's permissions (`GET /api/releases/me`) to show only what the
7
+ * server would allow.
8
+ */
9
+ /** The namespace of every title below, in the plugin's locales (`shared/locales/access.*.ts`). */
10
+ export const ACCESS_NAMESPACE = '@nocobase/app-plugin-releases';
11
+ /** A title as the authorization plugin stores it: an i18n key in this plugin's namespace. */
12
+ export function accessText(key) {
13
+ return { key: `access.${key}`, ns: ACCESS_NAMESPACE };
14
+ }
15
+ /** The authorization workspace subsection (under administration) that lists the settings items. */
16
+ export const ACCESS_SECTION = 'releases';
17
+ /**
18
+ * The app pages a role may open (`page` grants, action `access`); the client routes are named and authorized by the
19
+ * same ids. `rel-apps` lists Apps and opens their deployments.
20
+ */
21
+ export const PAGES = ['rel-apps'];
22
+ /**
23
+ * Settings items. `rel.environments`: `read` lists environments and their runtime status, `manage` adds, edits and
24
+ * removes them, writes their credentials and marks them protected.
25
+ */
26
+ export const SETTINGS_ACTIONS = {
27
+ 'rel.environments': ['read', 'manage'],
28
+ };
29
+ /**
30
+ * Business actions on Apps, each reaching every App, none, or the Apps related to a set of users (`Scope`). An App is
31
+ * related to the user who created it; the assembling application may relate more (`ReleasesAccess.isRelated`,
32
+ * `ReleasesAccess.relatedAppIds`).
33
+ *
34
+ * | Action | What it allows |
35
+ * | ------------------ | ------------------------------------------------------------------------------------- |
36
+ * | `view` | see the App, its releases and deployment history and its runtime status |
37
+ * | `read-logs` | read the App's runtime logs and its deployment logs |
38
+ * | `create` | create Apps (offers only none or all) |
39
+ * | `configure` | read and change the App's configuration and settings, labels and expiry |
40
+ * | `upload` | upload releases, request upload tickets, promote releases into the App, label releases |
41
+ * | `deploy` | deploy and roll back on an unprotected environment, request a deployment anywhere |
42
+ * | `deploy-protected` | approve deployments to a protected environment that names no approvers; people only |
43
+ * | `operate` | start, stop and restart |
44
+ * | `delete` | delete the App with its data |
45
+ */
46
+ export const BUSINESS_ACTIONS = {
47
+ 'rel.apps': [
48
+ 'view',
49
+ 'read-logs',
50
+ 'create',
51
+ 'configure',
52
+ 'upload',
53
+ 'deploy',
54
+ 'deploy-protected',
55
+ 'operate',
56
+ 'delete',
57
+ ],
58
+ };
59
+ /** Whether `scope` reaches a record related to any of `userIds` (null and undefined relate nothing). */
60
+ export function reaches(scope, ...userIds) {
61
+ if (scope === 'all')
62
+ return true;
63
+ if (scope === 'none')
64
+ return false;
65
+ return userIds.some((id) => !!id && scope.users.includes(id));
66
+ }
67
+ /** Each business action's relation; null where the action has no records to relate, so it is held or not. */
68
+ export const RELATIONS = {
69
+ 'rel.apps/view': 'owned',
70
+ 'rel.apps/read-logs': 'owned',
71
+ 'rel.apps/create': null,
72
+ 'rel.apps/configure': 'owned',
73
+ 'rel.apps/upload': 'owned',
74
+ 'rel.apps/deploy': 'owned',
75
+ 'rel.apps/deploy-protected': 'owned',
76
+ 'rel.apps/operate': 'owned',
77
+ 'rel.apps/delete': 'owned',
78
+ };
79
+ /** The authorization resource type the businesses are registered under; every business id starts with it. */
80
+ export const RESOURCE_TYPE = 'rel';
81
+ /** The permission workspace subsection (under business) that lists the businesses. */
82
+ export const BUSINESS_SECTION = 'rel';
83
+ /**
84
+ * The levels an action whose Apps relate to users (`RELATIONS`) is registered at, lowest first, each its own
85
+ * authorization action: `deploy.related` reaches the related Apps, `deploy.all` every one. An action without related
86
+ * records is registered as itself (`create`), held or not. Holding a level reaches at least what the lower ones do, so
87
+ * the application takes the highest one held.
88
+ */
89
+ export const ACTION_LEVELS = ['related', 'all'];
90
+ /** The authorization actions a business action is registered as, lowest level first. */
91
+ export function levelActionsOf(key) {
92
+ const action = key.slice(key.indexOf('/') + 1);
93
+ return RELATIONS[key]
94
+ ? ACTION_LEVELS.map((level) => ({ level, name: `${action}.${level}` }))
95
+ : [{ level: 'all', name: action }];
96
+ }
97
+ /** The resource a business's actions are granted on. */
98
+ export function businessResource(business) {
99
+ return { type: RESOURCE_TYPE, id: business };
100
+ }
101
+ const camel = (name) => name.replace(/-([a-z])/gu, (_, letter) => letter.toUpperCase());
102
+ const localName = (business) => business.slice(business.indexOf('.') + 1);
103
+ /** A business's title or its one-line description (`access.businesses.apps.title`). */
104
+ export function businessText(business, part) {
105
+ return accessText(`businesses.${localName(business)}.${part}`);
106
+ }
107
+ /**
108
+ * A business action's title, its one-line description, the title of one of its levels, or the wording of its `related`
109
+ * level: `relatedLabel`, its short name in a level choice ("in projects I can see"), and `relatedHint`, one line on what
110
+ * it reaches. An application reads the last two beside the `related` level's registered title.
111
+ */
112
+ export function actionText(key, part) {
113
+ const [business = '', action = ''] = key.split('/');
114
+ return accessText(`businesses.${localName(business)}.actions.${camel(action)}.${part}`);
115
+ }
116
+ /**
117
+ * Actions an agent or a key may never perform, whatever its grants: the assembling application marks a caller as an
118
+ * agent (`ReleasesAccess.actorKindOf`), a request made with a scoped credential is a key, and the plugin refuses these
119
+ * for both.
120
+ */
121
+ export const HUMAN_ONLY_ACTIONS = [
122
+ 'deploy-protected',
123
+ 'delete',
124
+ 'configure',
125
+ ];
126
+ export function businessKey(business, action) {
127
+ return `${business}/${action}`;
128
+ }
129
+ export function settingsKey(item, action) {
130
+ return `${item}/${action}`;
131
+ }
132
+ /** Every business action, in declaration order. */
133
+ export const BUSINESS_KEYS = Object.entries(BUSINESS_ACTIONS).flatMap(([business, actions]) => actions.map((action) => ({
134
+ business: business,
135
+ action: action,
136
+ key: `${business}/${action}`,
137
+ })));
138
+ /** Every settings capability, in declaration order. */
139
+ export const SETTINGS_KEYS = Object.entries(SETTINGS_ACTIONS).flatMap(([item, actions]) => actions.map((action) => ({
140
+ item: item,
141
+ action: action,
142
+ key: `${item}/${action}`,
143
+ })));
144
+ /** Nothing allowed: the start of a new role, and what an unknown caller holds. */
145
+ export function noPermissions() {
146
+ return {
147
+ scopes: Object.fromEntries(BUSINESS_KEYS.map(({ key }) => [key, 'none'])),
148
+ settings: Object.fromEntries(SETTINGS_KEYS.map(({ key }) => [key, false])),
149
+ pages: Object.fromEntries(PAGES.map((page) => [page, false])),
150
+ };
151
+ }
152
+ /** Everything allowed, at `all`: what the plugin's own background work acts with. */
153
+ export function allPermissions() {
154
+ return {
155
+ scopes: Object.fromEntries(BUSINESS_KEYS.map(({ key }) => [key, 'all'])),
156
+ settings: Object.fromEntries(SETTINGS_KEYS.map(({ key }) => [key, true])),
157
+ pages: Object.fromEntries(PAGES.map((page) => [page, true])),
158
+ };
159
+ }
160
+ /**
161
+ * The permission groups this plugin offers to API keys with a scope, as data the application hands to the API keys
162
+ * plugin (the shape of its `KeyScopeGroupDeclaration`; nothing here imports it). Each level includes the ones before.
163
+ *
164
+ * - `releases.apps`: read sees Apps, their releases, deployments and logs; write also uploads, deploys and starts or
165
+ * stops them — what CI needs. It may be limited to some Apps (`objects`), which the guard enforces. Configuring,
166
+ * creating and deleting Apps are not offered: a key may never configure or delete one (`HUMAN_ONLY_ACTIONS`), and
167
+ * CI has no need to create them.
168
+ * - `releases.environments`: read lists the environments, write manages them.
169
+ *
170
+ * Whatever its scope, a key never deploys directly to a protected environment, and nobody else does either; it may ask
171
+ * for a deployment there (a deployment request) when it may deploy the App.
172
+ */
173
+ export const KEY_SCOPE_GROUPS = [
174
+ {
175
+ id: 'releases.apps',
176
+ category: 'business',
177
+ title: accessText('keyScopes.apps.title'),
178
+ description: accessText('keyScopes.apps.description'),
179
+ levels: {
180
+ read: [
181
+ { kind: 'page', id: 'rel-apps' },
182
+ { kind: 'business', id: 'rel.apps', action: 'view' },
183
+ { kind: 'business', id: 'rel.apps', action: 'read-logs' },
184
+ ],
185
+ // Uploading is apart from deploying: a CI that only builds holds `write`, one that also ships holds `admin`.
186
+ write: [{ kind: 'business', id: 'rel.apps', action: 'upload' }],
187
+ admin: [
188
+ { kind: 'business', id: 'rel.apps', action: 'deploy' },
189
+ { kind: 'business', id: 'rel.apps', action: 'operate' },
190
+ ],
191
+ },
192
+ objects: {
193
+ business: 'rel.apps',
194
+ title: accessText('keyScopes.apps.objects'),
195
+ },
196
+ },
197
+ {
198
+ id: 'releases.environments',
199
+ category: 'administration',
200
+ title: accessText('keyScopes.environments.title'),
201
+ description: accessText('keyScopes.environments.description'),
202
+ levels: {
203
+ read: [{ kind: 'settings', id: 'rel.environments', action: 'read' }],
204
+ write: [{ kind: 'settings', id: 'rel.environments', action: 'manage' }],
205
+ },
206
+ },
207
+ ];
208
+ /**
209
+ * Presets for a key's scope, for the Apps chosen and 90 days: "CI deploy" uploads and deploys (`acme release upload`
210
+ * then `acme deploy`), "CI upload" only uploads.
211
+ */
212
+ export const KEY_SCOPE_PRESETS = [
213
+ {
214
+ id: 'ci-deploy',
215
+ title: accessText('keyScopes.presets.ciDeploy.title'),
216
+ description: accessText('keyScopes.presets.ciDeploy.description'),
217
+ groups: { 'releases.apps': { level: 'admin', objects: 'pick' } },
218
+ expiresInDays: 90,
219
+ },
220
+ {
221
+ id: 'ci-upload',
222
+ title: accessText('keyScopes.presets.ciUpload.title'),
223
+ description: accessText('keyScopes.presets.ciUpload.description'),
224
+ groups: { 'releases.apps': { level: 'write', objects: 'pick' } },
225
+ expiresInDays: 90,
226
+ },
227
+ ];
228
+ //# sourceMappingURL=access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.js","sourceRoot":"","sources":["../../shared/access.ts"],"names":[],"mappings":"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"}