@nocobase/app-plugin-releases 0.1.0-beta.2 → 0.1.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/CHANGELOG.md +349 -0
  2. package/LICENSE.txt +129 -0
  3. package/README.md +91 -16
  4. package/dist/client/components/environment-form.d.ts +1 -1
  5. package/dist/client/components/environment-form.d.ts.map +1 -1
  6. package/dist/client/components/environment-form.js +9 -2
  7. package/dist/client/components/environment-form.js.map +1 -1
  8. package/dist/client/components/page-container.js +1 -1
  9. package/dist/client/components/page-container.js.map +1 -1
  10. package/dist/client/components/page-header.d.ts.map +1 -1
  11. package/dist/client/components/page-header.js +1 -1
  12. package/dist/client/components/page-header.js.map +1 -1
  13. package/dist/client/components/release-badges.d.ts.map +1 -1
  14. package/dist/client/components/release-badges.js +13 -1
  15. package/dist/client/components/release-badges.js.map +1 -1
  16. package/dist/client/components/route-overlay.d.ts +4 -1
  17. package/dist/client/components/route-overlay.d.ts.map +1 -1
  18. package/dist/client/components/route-overlay.js +32 -3
  19. package/dist/client/components/route-overlay.js.map +1 -1
  20. package/dist/client/components/runtime-policy-fields.d.ts +7 -1
  21. package/dist/client/components/runtime-policy-fields.d.ts.map +1 -1
  22. package/dist/client/components/runtime-policy-fields.js +19 -5
  23. package/dist/client/components/runtime-policy-fields.js.map +1 -1
  24. package/dist/client/components/runtime-state.d.ts +6 -0
  25. package/dist/client/components/runtime-state.d.ts.map +1 -0
  26. package/dist/client/components/runtime-state.js +67 -0
  27. package/dist/client/components/runtime-state.js.map +1 -0
  28. package/dist/client/components/shared-host.d.ts +20 -0
  29. package/dist/client/components/shared-host.d.ts.map +1 -0
  30. package/dist/client/components/shared-host.js +88 -0
  31. package/dist/client/components/shared-host.js.map +1 -0
  32. package/dist/client/components/ui/progress.d.ts +9 -0
  33. package/dist/client/components/ui/progress.d.ts.map +1 -0
  34. package/dist/client/components/ui/progress.js +20 -0
  35. package/dist/client/components/ui/progress.js.map +1 -0
  36. package/dist/client/components/use-route-overlay.d.ts +2 -9
  37. package/dist/client/components/use-route-overlay.d.ts.map +1 -1
  38. package/dist/client/components/use-route-overlay.js +5 -3
  39. package/dist/client/components/use-route-overlay.js.map +1 -1
  40. package/dist/client/components/variable-alerts.d.ts.map +1 -1
  41. package/dist/client/components/variable-alerts.js +6 -18
  42. package/dist/client/components/variable-alerts.js.map +1 -1
  43. package/dist/client/hooks/use-app-summary.d.ts +1 -1
  44. package/dist/client/hooks/use-app-summary.d.ts.map +1 -1
  45. package/dist/client/hooks/use-app-summary.js +4 -1
  46. package/dist/client/hooks/use-app-summary.js.map +1 -1
  47. package/dist/client/hooks/use-releases.d.ts +4 -1
  48. package/dist/client/hooks/use-releases.d.ts.map +1 -1
  49. package/dist/client/hooks/use-releases.js +6 -2
  50. package/dist/client/hooks/use-releases.js.map +1 -1
  51. package/dist/client/lib/app-state.d.ts +2 -2
  52. package/dist/client/lib/app-state.d.ts.map +1 -1
  53. package/dist/client/lib/app-state.js +10 -3
  54. package/dist/client/lib/app-state.js.map +1 -1
  55. package/dist/client/lib/errors.d.ts.map +1 -1
  56. package/dist/client/lib/errors.js +7 -0
  57. package/dist/client/lib/errors.js.map +1 -1
  58. package/dist/client/lib/format.d.ts +2 -0
  59. package/dist/client/lib/format.d.ts.map +1 -1
  60. package/dist/client/lib/format.js +7 -0
  61. package/dist/client/lib/format.js.map +1 -1
  62. package/dist/client/lib/paths.d.ts +5 -0
  63. package/dist/client/lib/paths.d.ts.map +1 -1
  64. package/dist/client/lib/paths.js +10 -0
  65. package/dist/client/lib/paths.js.map +1 -1
  66. package/dist/client/lib/permissions.d.ts +5 -0
  67. package/dist/client/lib/permissions.d.ts.map +1 -1
  68. package/dist/client/lib/permissions.js +8 -0
  69. package/dist/client/lib/permissions.js.map +1 -1
  70. package/dist/client/lib/runtime-state.d.ts +25 -0
  71. package/dist/client/lib/runtime-state.d.ts.map +1 -0
  72. package/dist/client/lib/runtime-state.js +58 -0
  73. package/dist/client/lib/runtime-state.js.map +1 -0
  74. package/dist/client/locales/de-DE.d.ts +5 -0
  75. package/dist/client/locales/de-DE.d.ts.map +1 -0
  76. package/dist/client/locales/de-DE.js +876 -0
  77. package/dist/client/locales/de-DE.js.map +1 -0
  78. package/dist/client/locales/en-US.d.ts +83 -9
  79. package/dist/client/locales/en-US.d.ts.map +1 -1
  80. package/dist/client/locales/en-US.js +80 -9
  81. package/dist/client/locales/en-US.js.map +1 -1
  82. package/dist/client/locales/es-ES.d.ts +5 -0
  83. package/dist/client/locales/es-ES.d.ts.map +1 -0
  84. package/dist/client/locales/es-ES.js +882 -0
  85. package/dist/client/locales/es-ES.js.map +1 -0
  86. package/dist/client/locales/fr-FR.d.ts +5 -0
  87. package/dist/client/locales/fr-FR.d.ts.map +1 -0
  88. package/dist/client/locales/fr-FR.js +882 -0
  89. package/dist/client/locales/fr-FR.js.map +1 -0
  90. package/dist/client/locales/id-ID.d.ts +5 -0
  91. package/dist/client/locales/id-ID.d.ts.map +1 -0
  92. package/dist/client/locales/id-ID.js +876 -0
  93. package/dist/client/locales/id-ID.js.map +1 -0
  94. package/dist/client/locales/index.d.ts.map +1 -1
  95. package/dist/client/locales/index.js +10 -0
  96. package/dist/client/locales/index.js.map +1 -1
  97. package/dist/client/locales/ja-JP.d.ts +5 -0
  98. package/dist/client/locales/ja-JP.d.ts.map +1 -0
  99. package/dist/client/locales/ja-JP.js +876 -0
  100. package/dist/client/locales/ja-JP.js.map +1 -0
  101. package/dist/client/locales/ko-KR.d.ts +5 -0
  102. package/dist/client/locales/ko-KR.d.ts.map +1 -0
  103. package/dist/client/locales/ko-KR.js +879 -0
  104. package/dist/client/locales/ko-KR.js.map +1 -0
  105. package/dist/client/locales/pt-BR.d.ts +5 -0
  106. package/dist/client/locales/pt-BR.d.ts.map +1 -0
  107. package/dist/client/locales/pt-BR.js +882 -0
  108. package/dist/client/locales/pt-BR.js.map +1 -0
  109. package/dist/client/locales/ru-RU.d.ts +5 -0
  110. package/dist/client/locales/ru-RU.d.ts.map +1 -0
  111. package/dist/client/locales/ru-RU.js +891 -0
  112. package/dist/client/locales/ru-RU.js.map +1 -0
  113. package/dist/client/locales/vi-VN.d.ts +5 -0
  114. package/dist/client/locales/vi-VN.d.ts.map +1 -0
  115. package/dist/client/locales/vi-VN.js +876 -0
  116. package/dist/client/locales/vi-VN.js.map +1 -0
  117. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  118. package/dist/client/locales/zh-CN.js +83 -9
  119. package/dist/client/locales/zh-CN.js.map +1 -1
  120. package/dist/client/locales/zh-TW.d.ts +5 -0
  121. package/dist/client/locales/zh-TW.d.ts.map +1 -0
  122. package/dist/client/locales/zh-TW.js +876 -0
  123. package/dist/client/locales/zh-TW.js.map +1 -0
  124. package/dist/client/pages/app-page.d.ts.map +1 -1
  125. package/dist/client/pages/app-page.js +14 -8
  126. package/dist/client/pages/app-page.js.map +1 -1
  127. package/dist/client/pages/apps-outlet.d.ts +8 -0
  128. package/dist/client/pages/apps-outlet.d.ts.map +1 -0
  129. package/dist/client/pages/apps-outlet.js +9 -0
  130. package/dist/client/pages/apps-outlet.js.map +1 -0
  131. package/dist/client/pages/environment-page.d.ts.map +1 -1
  132. package/dist/client/pages/environment-page.js +112 -24
  133. package/dist/client/pages/environment-page.js.map +1 -1
  134. package/dist/client/pages/environments-page.d.ts +8 -3
  135. package/dist/client/pages/environments-page.d.ts.map +1 -1
  136. package/dist/client/pages/environments-page.js +58 -10
  137. package/dist/client/pages/environments-page.js.map +1 -1
  138. package/dist/client/pages/new-app-page.d.ts +2 -4
  139. package/dist/client/pages/new-app-page.d.ts.map +1 -1
  140. package/dist/client/pages/new-app-page.js +29 -19
  141. package/dist/client/pages/new-app-page.js.map +1 -1
  142. package/dist/client/pages/new-app-redirect.d.ts +7 -0
  143. package/dist/client/pages/new-app-redirect.d.ts.map +1 -0
  144. package/dist/client/pages/new-app-redirect.js +8 -0
  145. package/dist/client/pages/new-app-redirect.js.map +1 -0
  146. package/dist/client/pages/request-page.js +1 -1
  147. package/dist/client/pages.d.ts +6 -2
  148. package/dist/client/pages.d.ts.map +1 -1
  149. package/dist/client/pages.js +8 -4
  150. package/dist/client/pages.js.map +1 -1
  151. package/dist/client/routes.d.ts.map +1 -1
  152. package/dist/client/routes.js +37 -10
  153. package/dist/client/routes.js.map +1 -1
  154. package/dist/database/migrations/.manifest.json +10 -2
  155. package/dist/database/migrations/202610020001_rel_create_tables.js +1 -1
  156. package/dist/database/migrations/202610020001_rel_create_tables.js.map +1 -1
  157. package/dist/database/migrations/202610260002_rel_bound_artifact_keys.d.ts +4 -0
  158. package/dist/database/migrations/202610260002_rel_bound_artifact_keys.d.ts.map +1 -0
  159. package/dist/database/migrations/202610260002_rel_bound_artifact_keys.js +51 -0
  160. package/dist/database/migrations/202610260002_rel_bound_artifact_keys.js.map +1 -0
  161. package/dist/database/migrations/202611020001_rel_environment_purpose.d.ts +8 -0
  162. package/dist/database/migrations/202611020001_rel_environment_purpose.d.ts.map +1 -0
  163. package/dist/database/migrations/202611020001_rel_environment_purpose.js +30 -0
  164. package/dist/database/migrations/202611020001_rel_environment_purpose.js.map +1 -0
  165. package/dist/server/access/caller.d.ts +6 -0
  166. package/dist/server/access/caller.d.ts.map +1 -1
  167. package/dist/server/access/caller.js +36 -0
  168. package/dist/server/access/caller.js.map +1 -1
  169. package/dist/server/artifact-config.d.ts +9 -0
  170. package/dist/server/artifact-config.d.ts.map +1 -0
  171. package/dist/server/artifact-config.js +49 -0
  172. package/dist/server/artifact-config.js.map +1 -0
  173. package/dist/server/composition.d.ts +6 -0
  174. package/dist/server/composition.d.ts.map +1 -1
  175. package/dist/server/composition.js +7 -1
  176. package/dist/server/composition.js.map +1 -1
  177. package/dist/server/config.d.ts +18 -2
  178. package/dist/server/config.d.ts.map +1 -1
  179. package/dist/server/drivers/host/driver.d.ts +13 -2
  180. package/dist/server/drivers/host/driver.d.ts.map +1 -1
  181. package/dist/server/drivers/host/driver.js +427 -81
  182. package/dist/server/drivers/host/driver.js.map +1 -1
  183. package/dist/server/drivers/types.d.ts +79 -1
  184. package/dist/server/drivers/types.d.ts.map +1 -1
  185. package/dist/server/drivers/types.js +6 -0
  186. package/dist/server/drivers/types.js.map +1 -1
  187. package/dist/server/index.d.ts +1 -1
  188. package/dist/server/index.d.ts.map +1 -1
  189. package/dist/server/index.js.map +1 -1
  190. package/dist/server/locales/de-DE.d.ts +5 -0
  191. package/dist/server/locales/de-DE.d.ts.map +1 -0
  192. package/dist/server/locales/de-DE.js +133 -0
  193. package/dist/server/locales/de-DE.js.map +1 -0
  194. package/dist/server/locales/es-ES.d.ts +5 -0
  195. package/dist/server/locales/es-ES.d.ts.map +1 -0
  196. package/dist/server/locales/es-ES.js +133 -0
  197. package/dist/server/locales/es-ES.js.map +1 -0
  198. package/dist/server/locales/fr-FR.d.ts +5 -0
  199. package/dist/server/locales/fr-FR.d.ts.map +1 -0
  200. package/dist/server/locales/fr-FR.js +133 -0
  201. package/dist/server/locales/fr-FR.js.map +1 -0
  202. package/dist/server/locales/id-ID.d.ts +5 -0
  203. package/dist/server/locales/id-ID.d.ts.map +1 -0
  204. package/dist/server/locales/id-ID.js +133 -0
  205. package/dist/server/locales/id-ID.js.map +1 -0
  206. package/dist/server/locales/index.d.ts.map +1 -1
  207. package/dist/server/locales/index.js +10 -0
  208. package/dist/server/locales/index.js.map +1 -1
  209. package/dist/server/locales/ja-JP.d.ts +5 -0
  210. package/dist/server/locales/ja-JP.d.ts.map +1 -0
  211. package/dist/server/locales/ja-JP.js +133 -0
  212. package/dist/server/locales/ja-JP.js.map +1 -0
  213. package/dist/server/locales/ko-KR.d.ts +5 -0
  214. package/dist/server/locales/ko-KR.d.ts.map +1 -0
  215. package/dist/server/locales/ko-KR.js +133 -0
  216. package/dist/server/locales/ko-KR.js.map +1 -0
  217. package/dist/server/locales/pt-BR.d.ts +5 -0
  218. package/dist/server/locales/pt-BR.d.ts.map +1 -0
  219. package/dist/server/locales/pt-BR.js +133 -0
  220. package/dist/server/locales/pt-BR.js.map +1 -0
  221. package/dist/server/locales/ru-RU.d.ts +5 -0
  222. package/dist/server/locales/ru-RU.d.ts.map +1 -0
  223. package/dist/server/locales/ru-RU.js +133 -0
  224. package/dist/server/locales/ru-RU.js.map +1 -0
  225. package/dist/server/locales/vi-VN.d.ts +5 -0
  226. package/dist/server/locales/vi-VN.d.ts.map +1 -0
  227. package/dist/server/locales/vi-VN.js +133 -0
  228. package/dist/server/locales/vi-VN.js.map +1 -0
  229. package/dist/server/locales/zh-TW.d.ts +5 -0
  230. package/dist/server/locales/zh-TW.d.ts.map +1 -0
  231. package/dist/server/locales/zh-TW.js +133 -0
  232. package/dist/server/locales/zh-TW.js.map +1 -0
  233. package/dist/server/providers/releases.d.ts.map +1 -1
  234. package/dist/server/providers/releases.js +12 -5
  235. package/dist/server/providers/releases.js.map +1 -1
  236. package/dist/server/routes/api.d.ts +1 -1
  237. package/dist/server/routes/api.d.ts.map +1 -1
  238. package/dist/server/routes/api.js +120 -20
  239. package/dist/server/routes/api.js.map +1 -1
  240. package/dist/server/routes/index.d.ts.map +1 -1
  241. package/dist/server/routes/index.js +10 -2
  242. package/dist/server/routes/index.js.map +1 -1
  243. package/dist/server/routes/schemas.d.ts +7 -2
  244. package/dist/server/routes/schemas.d.ts.map +1 -1
  245. package/dist/server/routes/schemas.js +320 -89
  246. package/dist/server/routes/schemas.js.map +1 -1
  247. package/dist/server/services/environments.d.ts +2 -2
  248. package/dist/server/services/environments.d.ts.map +1 -1
  249. package/dist/server/services/environments.js +21 -1
  250. package/dist/server/services/environments.js.map +1 -1
  251. package/dist/server/services/releases.d.ts +69 -8
  252. package/dist/server/services/releases.d.ts.map +1 -1
  253. package/dist/server/services/releases.js +574 -128
  254. package/dist/server/services/releases.js.map +1 -1
  255. package/dist/server/services/validation.d.ts +2 -0
  256. package/dist/server/services/validation.d.ts.map +1 -1
  257. package/dist/server/services/validation.js +8 -0
  258. package/dist/server/services/validation.js.map +1 -1
  259. package/dist/server/tokens.d.ts +15 -2
  260. package/dist/server/tokens.d.ts.map +1 -1
  261. package/dist/server/tokens.js.map +1 -1
  262. package/dist/shared/releases.d.ts +94 -3
  263. package/dist/shared/releases.d.ts.map +1 -1
  264. package/dist/shared/releases.js +37 -0
  265. package/dist/shared/releases.js.map +1 -1
  266. package/package.json +18 -18
  267. package/dist/client/pages/apps-page.d.ts +0 -4
  268. package/dist/client/pages/apps-page.d.ts.map +0 -1
  269. package/dist/client/pages/apps-page.js +0 -116
  270. package/dist/client/pages/apps-page.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { defineAppRoutes, } from '@nocobase/app-client/plugins';
2
- import { Boxes, Server } from 'lucide-react';
2
+ import { Server } from 'lucide-react';
3
3
  import { withReleasesPaths } from './lib/paths.js';
4
4
  const page = (id) => ({ resource: { type: 'page', id }, action: 'access' });
5
5
  /** A page loaded with the paths it links to the other pages by. */
@@ -20,19 +20,25 @@ export function appsDefinition(path = '/releases', paths = pathsOf({ appsPath: p
20
20
  path: normalizePath(path),
21
21
  auth: 'required',
22
22
  authz: page('rel-apps'),
23
- navigation: { title: 'ui.nav.apps', icon: Boxes },
24
- componentLoader: loader(() => import('./pages/apps-page.js'), paths),
23
+ // No list and no menu entry of its own: Apps are listed and created on their environment's page, and the address
24
+ // alone leads there (`apps-outlet.tsx`).
25
+ componentLoader: loader(() => import('./pages/apps-outlet.js'), paths),
25
26
  children: [
26
- // Before `:appId`: an App may not be called `new` or `requests`. `requests/:requestId` over the list is kept
27
- // for older links; the App's page opens its requests over itself.
27
+ // Before `:appId`: an App may not be called `new` or `requests`. Create App's old address leads to the
28
+ // environments; `requests/:requestId` is kept for older links; the App's page opens its requests over itself.
28
29
  {
29
30
  name: 'rel-app-new',
30
31
  path: 'new',
31
- componentLoader: loader(() => import('./pages/new-app-page.js'), paths),
32
+ componentLoader: loader(() => import('./pages/new-app-redirect.js'), paths),
32
33
  },
33
34
  {
34
35
  name: 'rel-request',
35
36
  path: 'requests/:requestId',
37
+ presentation: {
38
+ kind: 'dialog',
39
+ title: 'ui.requests.title',
40
+ namespace: '@nocobase/app-plugin-releases',
41
+ },
36
42
  componentLoader: loader(() => import('./pages/request-page.js'), paths),
37
43
  },
38
44
  {
@@ -43,6 +49,11 @@ export function appsDefinition(path = '/releases', paths = pathsOf({ appsPath: p
43
49
  {
44
50
  name: 'rel-app-request',
45
51
  path: 'requests/:requestId',
52
+ presentation: {
53
+ kind: 'dialog',
54
+ title: 'ui.requests.title',
55
+ namespace: '@nocobase/app-plugin-releases',
56
+ },
46
57
  componentLoader: loader(() => import('./pages/request-page.js'), paths),
47
58
  },
48
59
  ],
@@ -55,10 +66,13 @@ export function environmentsDefinition(path = '/release-environments', paths = p
55
66
  name: 'rel-environments',
56
67
  path: normalizePath(path),
57
68
  auth: 'required',
58
- authz: {
59
- resource: { type: 'settings', id: 'rel.environments' },
60
- action: 'read',
61
- },
69
+ // The plugin's entry opens to environment readers (the `rel.environments` `read` setting) and to App readers (the
70
+ // Apps page), who list and create an environment's Apps there, as the server reads environments for either
71
+ // (`EnvironmentService.requireReader`). A route names a single grant, so this one names none and the page decides
72
+ // (`canEnterEnvironments`, `environments-page.tsx`); its menu entry shows to every signed-in user. Each part of the
73
+ // pages keeps its own check: the Apps and Create App the Apps grants, the variables, the connection check and the
74
+ // shared hosts' capacity the setting, on the server and in the page.
75
+ authz: 'skip',
62
76
  navigation: { title: 'ui.nav.environments', icon: Server },
63
77
  componentLoader: loader(() => import('./pages/environments-page.js'), paths),
64
78
  children: [
@@ -66,6 +80,19 @@ export function environmentsDefinition(path = '/release-environments', paths = p
66
80
  name: 'rel-environment',
67
81
  path: ':environmentId',
68
82
  componentLoader: loader(() => import('./pages/environment-page.js'), paths),
83
+ children: [
84
+ // Create App over the environment, the App going to it.
85
+ {
86
+ name: 'rel-environment-app-new',
87
+ path: 'apps/new',
88
+ presentation: {
89
+ kind: 'dialog',
90
+ title: 'ui.apps.create',
91
+ namespace: '@nocobase/app-plugin-releases',
92
+ },
93
+ componentLoader: loader(() => import('./pages/new-app-page.js'), paths),
94
+ },
95
+ ],
69
96
  },
70
97
  ],
71
98
  };
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../client/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../client/routes.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  "version": 1,
3
3
  "files": {
4
4
  "202610020001_rel_create_tables.js": {
5
- "sourceChecksum": "4c3c0a6452d84c2aa5e09e02d12651fda10bf8c8e3f2ece09e0f061566f5c55e",
6
- "artifactChecksum": "9f0ae25315350172469807244ec2708cbf2d6b1db9273cb4f49d5cc130abac60"
5
+ "sourceChecksum": "8cf60abfef1bd6719b7b6b1a90b158dfc355ba0d43c2e4f1727d9bc3c0fe34c9",
6
+ "artifactChecksum": "2f09311e7003bb2eac320dc29ec3b2004fd68825dc1cc9202cdc8ca464f1ee8d"
7
7
  },
8
8
  "202610100001_rel_variables_initial_admin.js": {
9
9
  "sourceChecksum": "b3545236d4efa7fb7b0b41f9597c34595d478058d7eac8b04010542104611757",
@@ -16,6 +16,14 @@
16
16
  "202610210001_rel_protected_requires_approval.js": {
17
17
  "sourceChecksum": "cf59b8ae3971568e2f0ff7500d5e0ffdcb72275c9ecc0c3a399ef6ef0dba3c48",
18
18
  "artifactChecksum": "33b6bc7204de73f59b664803424703cc70754c2d213792bb94a864453b0807aa"
19
+ },
20
+ "202610260002_rel_bound_artifact_keys.js": {
21
+ "sourceChecksum": "e14e3ddbd48aaaafce38e94b613af1c5e72e2b5d10fedb3026fbcd830d5ef2e2",
22
+ "artifactChecksum": "9e534921494cab247f1814dd4b6367b57b7a709052901923a20b992a77300d5a"
23
+ },
24
+ "202611020001_rel_environment_purpose.js": {
25
+ "sourceChecksum": "5742405c15639986f35310e1c3c5e18b141bd54047b39b6a47786733f84dad5f",
26
+ "artifactChecksum": "759d8869360b7bcb158f2fdb0d11219a58b47b061505fc1ab85a0c294a130f2d"
19
27
  }
20
28
  }
21
29
  }
@@ -77,7 +77,7 @@ const migration = defineMigration({
77
77
  c.string('appId', { length: 128 }).notNull();
78
78
  c.string('kind', { length: 16 }).notNull();
79
79
  c.string('version', { length: 255 }).notNull();
80
- c.string('artifactKey', { length: 1024 }).nullable();
80
+ c.string('artifactKey', { length: 172 }).nullable();
81
81
  c.string('checksum', { length: 64 }).notNull();
82
82
  c.bigInt('size').nullable();
83
83
  c.text('configTemplate').nullable();
@@ -1 +1 @@
1
- {"version":3,"file":"202610020001_rel_create_tables.js","sourceRoot":"","sources":["../../../database/migrations/202610020001_rel_create_tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"202610020001_rel_create_tables.js","sourceRoot":"","sources":["../../../database/migrations/202610020001_rel_create_tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA4B,MAAM,cAAc,CAAC;AAEzE;;;GAGG;AACH,MAAM,SAAS,GAAwB,eAAe,CAAC;IACrD,IAAI,EAAE,gCAAgC;IAEtC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;QAClB,MAAM,OAAO,CAAC,iBAAiB,CAAC;YAC9B;gBACE,iHAAiH;gBACjH,iFAAiF;gBACjF,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC5C,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC5B,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACnD,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAClD,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACzD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC9B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAChC,gGAAgG;oBAChG,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC/C,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAChD,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAClD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;gBACtC,CAAC;aACF;YACD;gBACE,0GAA0G;gBAC1G,kDAAkD;gBAClD,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC5C,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC5C,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAClD,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC5B,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;gBACtC,CAAC;aACF;YACD;gBACE,4GAA4G;gBAC5G,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;oBACpD,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpD,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC5C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjC,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC3D,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/B,uEAAuE;oBACvE,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACjD,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACxC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACzC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3B,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACjD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;oBAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;gBACzB,CAAC;aACF;YACD;gBACE,uGAAuG;gBACvG,8DAA8D;gBAC9D,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3C,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/C,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpD,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC5B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3B,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACvD,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC9C,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACjD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/C,CAAC;aACF;YACD;gBACE,wGAAwG;gBACxG,YAAY;gBACZ,IAAI,EAAE,qBAAqB;gBAC3B,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3C,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3C,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/C,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpD,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACjD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC/D,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrB,CAAC;aACF;YACD;gBACE,+EAA+E;gBAC/E,IAAI,EAAE,qBAAqB;gBAC3B,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/C,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpD,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACzD,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBACnC,CAAC;aACF;YACD;gBACE,+BAA+B;gBAC/B,IAAI,EAAE,mBAAmB;gBACzB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAClD,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/C,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrC,CAAC;aACF;YACD;gBACE,oEAAoE;gBACpE,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3C,CAAC,CAAC,MAAM,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAClE,CAAC,CAAC,MAAM,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC5D,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC5C,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACjD,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC3B,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC/C,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,sGAAsG;oBACtG,sDAAsD;oBACtD,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpD,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACtC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC/B,CAAC;aACF;YACD;gBACE,oCAAoC;gBACpC,IAAI,EAAE,mBAAmB;gBACzB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAClD,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAClD,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrC,CAAC;aACF;YACD;gBACE,kEAAkE;gBAClE,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpD,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,mGAAmG;oBACnG,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACvD,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3C,CAAC,CAAC,MAAM,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAClE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC1B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3B,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAClC,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACpD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7B,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;gBACnC,CAAC;aACF;YACD;gBACE,kDAAkD;gBAClD,IAAI,EAAE,kBAAkB;gBACxB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;oBACnD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC9B,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAClC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACjD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACrB,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;QACpB,KAAK,MAAM,IAAI,IAAI;YACjB,kBAAkB;YAClB,uBAAuB;YACvB,mBAAmB;YACnB,gBAAgB;YAChB,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,aAAa;YACb,SAAS;YACT,eAAe;YACf,iBAAiB;SAClB;YACC,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type MigrationDefinition } from '@nocobase/db';
2
+ declare const migration: MigrationDefinition;
3
+ export default migration;
4
+ //# sourceMappingURL=202610260002_rel_bound_artifact_keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"202610260002_rel_bound_artifact_keys.d.ts","sourceRoot":"","sources":["../../../database/migrations/202610260002_rel_bound_artifact_keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEzE,QAAA,MAAM,SAAS,EAAE,mBAuDf,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { defineMigration } from '@nocobase/db';
2
+ const migration = defineMigration({
3
+ name: '202610260002_rel_bound_artifact_keys',
4
+ // The old full-column unique index cannot be restored on MySQL.
5
+ irreversible: true,
6
+ async shouldRun({ builder }) {
7
+ const collection = await builder.getCollection('relReleases');
8
+ return (collection?.fields?.find((field) => field.name === 'artifactKey')
9
+ ?.length !== 172);
10
+ },
11
+ async up({ builder, query, connection }) {
12
+ // A portable character-count check, before any DDL can truncate old data.
13
+ const oversized = await query
14
+ .selectFrom('relReleases')
15
+ .select('id')
16
+ .where('artifactKey', 'like', `${'_'.repeat(173)}%`)
17
+ .limit(1)
18
+ .executeTakeFirst();
19
+ if (oversized)
20
+ throw new Error(`Release "${String(oversized.id)}" has an artifact key longer than 172 characters. Resolve legacy artifact keys before retrying this migration; no keys have been changed.`);
21
+ const collection = await builder.getCollection('relReleases');
22
+ if (collection?.fields?.find((field) => field.name === 'artifactKey')
23
+ ?.length === 172)
24
+ return;
25
+ // SQL Server cannot shrink a column while its unique index depends on it.
26
+ // Rebuild that index in the migration transaction, after validating every key.
27
+ // The physical name depends on the connection's naming configuration.
28
+ const indexName = connection.dialect === 'mssql'
29
+ ? collection?.indexes?.find((index) => index.db?.unique === true &&
30
+ index.fields?.length === 1 &&
31
+ index.fields[0] === 'artifactKey')?.name
32
+ : undefined;
33
+ if (indexName)
34
+ await builder.dropConstraint('relReleases', indexName);
35
+ await builder.alterField('relReleases', 'artifactKey', {
36
+ type: 'string',
37
+ length: 172,
38
+ nullable: true,
39
+ });
40
+ if (indexName)
41
+ await builder.addConstraint('relReleases', {
42
+ type: 'unique',
43
+ fields: ['artifactKey'],
44
+ name: indexName,
45
+ mode: 'index',
46
+ });
47
+ },
48
+ });
49
+ export default migration;
50
+ //# sourceMappingURL=202610260002_rel_bound_artifact_keys.js.map
51
+ // @nocobase/task-manifest v1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"202610260002_rel_bound_artifact_keys.js","sourceRoot":"","sources":["../../../database/migrations/202610260002_rel_bound_artifact_keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA4B,MAAM,cAAc,CAAC;AAEzE,MAAM,SAAS,GAAwB,eAAe,CAAC;IACrD,IAAI,EAAE,sCAAsC;IAC5C,gEAAgE;IAChE,YAAY,EAAE,IAAI;IAClB,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9D,OAAO,CACL,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;YAC/D,EAAE,MAAM,KAAK,GAAG,CACnB,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;QACrC,0EAA0E;QAC1E,MAAM,SAAS,GAAG,MAAM,KAAK;aAC1B,UAAU,CAAC,aAAa,CAAC;aACzB,MAAM,CAAC,IAAI,CAAC;aACZ,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;aACnD,KAAK,CAAC,CAAC,CAAC;aACR,gBAAgB,EAAE,CAAC;QACtB,IAAI,SAAS;YACX,MAAM,IAAI,KAAK,CACb,YAAY,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,2IAA2I,CAC5K,CAAC;QACJ,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9D,IACE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;YAC/D,EAAE,MAAM,KAAK,GAAG;YAElB,OAAO;QACT,0EAA0E;QAC1E,+EAA+E;QAC/E,sEAAsE;QACtE,MAAM,SAAS,GACb,UAAU,CAAC,OAAO,KAAK,OAAO;YAC5B,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CACvB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;gBACzB,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;gBAC1B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,aAAa,CACpC,EAAE,IAAI;YACT,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,SAAS;YAAE,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACtE,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE;YACrD,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,SAAS;YACX,MAAM,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE;gBACzC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,CAAC,aAAa,CAAC;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;IACP,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type MigrationDefinition } from '@nocobase/db';
2
+ /**
3
+ * Adds `relEnvironments.purpose`: what an environment is for, `preview` or `test`. An existing environment holding a
4
+ * pull request preview App (`relApps.previewOf`) is a preview one; every other is a test one. `down` drops the column.
5
+ */
6
+ declare const migration: MigrationDefinition;
7
+ export default migration;
8
+ //# sourceMappingURL=202611020001_rel_environment_purpose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"202611020001_rel_environment_purpose.d.ts","sourceRoot":"","sources":["../../../database/migrations/202611020001_rel_environment_purpose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEzE;;;GAGG;AACH,QAAA,MAAM,SAAS,EAAE,mBA2Bf,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { defineMigration } from '@nocobase/db';
2
+ /**
3
+ * Adds `relEnvironments.purpose`: what an environment is for, `preview` or `test`. An existing environment holding a
4
+ * pull request preview App (`relApps.previewOf`) is a preview one; every other is a test one. `down` drops the column.
5
+ */
6
+ const migration = defineMigration({
7
+ name: '202611020001_rel_environment_purpose',
8
+ async up({ builder, query }) {
9
+ await builder.alterCollection('relEnvironments', (collection) => {
10
+ collection.string('purpose', { length: 16 }).notNull().defaultTo('test');
11
+ });
12
+ await query
13
+ .updateTable('relEnvironments')
14
+ .set({ purpose: 'preview' })
15
+ .where((eb) => eb.exists(eb
16
+ .selectFrom('relApps')
17
+ .select('relApps.id')
18
+ .whereRef('relApps.environmentId', '=', 'relEnvironments.id')
19
+ .where('relApps.previewOf', 'is not', null)))
20
+ .execute();
21
+ },
22
+ async down({ builder }) {
23
+ await builder.alterCollection('relEnvironments', (collection) => {
24
+ collection.dropField('purpose');
25
+ });
26
+ },
27
+ });
28
+ export default migration;
29
+ //# sourceMappingURL=202611020001_rel_environment_purpose.js.map
30
+ // @nocobase/task-manifest v1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"202611020001_rel_environment_purpose.js","sourceRoot":"","sources":["../../../database/migrations/202611020001_rel_environment_purpose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA4B,MAAM,cAAc,CAAC;AAEzE;;;GAGG;AACH,MAAM,SAAS,GAAwB,eAAe,CAAC;IACrD,IAAI,EAAE,sCAAsC;IAE5C,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;QACzB,MAAM,OAAO,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE;YAC9D,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,MAAM,KAAK;aACR,WAAW,CAAC,iBAAiB,CAAC;aAC9B,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACZ,EAAE,CAAC,MAAM,CACP,EAAE;aACC,UAAU,CAAC,SAAS,CAAC;aACrB,MAAM,CAAC,YAAY,CAAC;aACpB,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE,oBAAoB,CAAC;aAC5D,KAAK,CAAC,mBAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAC9C,CACF;aACA,OAAO,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;QACpB,MAAM,OAAO,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE;YAC9D,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -44,6 +44,12 @@ export declare class AccessGuard {
44
44
  callerForUser(userId: string, kind?: ActorKind): Promise<Caller>;
45
45
  scope(caller: Caller, action: AppAction): Scope;
46
46
  canApp(caller: Caller, action: AppAction, app: AppOwnership): Promise<boolean>;
47
+ /**
48
+ * The IDs among `apps` the caller may take `action` on, decided with at most one lookup of related Apps limited to
49
+ * them (`relatedAppIds` with `among`), however many there are; `canApp` asks once per App. An application without
50
+ * `relatedAppIds` is asked per App.
51
+ */
52
+ allowedApps(caller: Caller, action: AppAction, apps: readonly AppOwnership[]): Promise<Set<string>>;
47
53
  requireApp(caller: Caller, action: AppAction, app: AppOwnership): Promise<void>;
48
54
  /**
49
55
  * Refuses a caller who may take none of `actions` on any App. Routes check this before reading their input; the
@@ -1 +1 @@
1
- {"version":3,"file":"caller.d.ts","sourceRoot":"","sources":["../../../server/access/caller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caller.d.ts","sourceRoot":"","sources":["../../../server/access/caller.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,42 @@ export class AccessGuard {
74
74
  return false;
75
75
  return ((await this.access()?.isRelated?.(app.id, scope.users, action)) ?? false);
76
76
  }
77
+ /**
78
+ * The IDs among `apps` the caller may take `action` on, decided with at most one lookup of related Apps limited to
79
+ * them (`relatedAppIds` with `among`), however many there are; `canApp` asks once per App. An application without
80
+ * `relatedAppIds` is asked per App.
81
+ */
82
+ async allowedApps(caller, action, apps) {
83
+ const picked = pickedApps(caller);
84
+ const candidates = picked
85
+ ? apps.filter((app) => picked.includes(app.id))
86
+ : apps;
87
+ const scope = this.scope(caller, action);
88
+ if (scope === 'none' || candidates.length === 0)
89
+ return new Set();
90
+ if (scope === 'all')
91
+ return new Set(candidates.map((app) => app.id));
92
+ const allowed = new Set(candidates
93
+ .filter((app) => reaches(scope, app.createdBy))
94
+ .map((app) => app.id));
95
+ const rest = candidates.filter((app) => !allowed.has(app.id));
96
+ if (rest.length === 0 || scope.users.length === 0)
97
+ return allowed;
98
+ const access = this.access();
99
+ if (access?.relatedAppIds) {
100
+ // An application that ignores `among` answers its whole list, which is matched the same way.
101
+ const related = new Set(await access.relatedAppIds(scope.users, action, rest.map((app) => app.id)));
102
+ for (const app of rest)
103
+ if (related.has(app.id))
104
+ allowed.add(app.id);
105
+ }
106
+ else if (access?.isRelated) {
107
+ for (const app of rest)
108
+ if (await access.isRelated(app.id, scope.users, action))
109
+ allowed.add(app.id);
110
+ }
111
+ return allowed;
112
+ }
77
113
  async requireApp(caller, action, app) {
78
114
  if (await this.canApp(caller, action, app))
79
115
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"caller.js","sourceRoot":"","sources":["../../../server/access/caller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caller.js","sourceRoot":"","sources":["../../../server/access/caller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type AppDriveConfig, type AppDriveDiskConfig } from '@nocobase/drive';
2
+ import type { ReleasesPluginConfig } from './config.js';
3
+ export interface ResolvedArtifact {
4
+ readonly disk: AppDriveDiskConfig;
5
+ readonly prefix: string;
6
+ }
7
+ /** Resolves a serializable disk configuration without sharing or changing the application's disk. */
8
+ export declare function resolveArtifact(artifact: ReleasesPluginConfig['artifact'], drive?: AppDriveConfig): ResolvedArtifact;
9
+ //# sourceMappingURL=artifact-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-config.d.ts","sourceRoot":"","sources":["../../server/artifact-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,qGAAqG;AACrG,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,EAC1C,KAAK,CAAC,EAAE,cAAc,GACrB,gBAAgB,CAqDlB"}
@@ -0,0 +1,49 @@
1
+ import path from 'node:path';
2
+ import { DriveDiskConfigError, parseDriveDiskConfig, } from '@nocobase/drive';
3
+ /** Resolves a serializable disk configuration without sharing or changing the application's disk. */
4
+ export function resolveArtifact(artifact, drive) {
5
+ if (!isRecord(artifact))
6
+ throw new Error('Invalid releases.artifact configuration.');
7
+ if (!('disk' in artifact))
8
+ return { disk: artifact, prefix: '' };
9
+ const name = artifact.disk;
10
+ const invalid = (configPath) => new Error(`Invalid ${configPath} for releases.artifact.disk${typeof name === 'string' ? ` ${JSON.stringify(name)}` : ''}.`);
11
+ if (typeof name !== 'string' || !name.trim())
12
+ throw invalid('releases.artifact.disk');
13
+ if (Object.keys(artifact).some((key) => key !== 'disk' && key !== 'prefix'))
14
+ throw invalid('releases.artifact');
15
+ const rawPrefix = artifact.prefix === undefined ? '' : artifact.prefix;
16
+ if (typeof rawPrefix !== 'string' ||
17
+ path.posix.isAbsolute(rawPrefix) ||
18
+ path.win32.isAbsolute(rawPrefix) ||
19
+ rawPrefix.includes('\\') ||
20
+ /^[a-z]:/i.test(rawPrefix) ||
21
+ rawPrefix.split('/').some((part) => part === '.' || part === '..') ||
22
+ Array.from(rawPrefix).some((char) => char.charCodeAt(0) < 32 || char.charCodeAt(0) === 127))
23
+ throw invalid('releases.artifact.prefix');
24
+ const prefix = rawPrefix.replace(/\/{2,}/gu, '/').replace(/\/+$/u, '');
25
+ if (!drive?.disks || !Object.hasOwn(drive.disks, name))
26
+ throw invalid('drive.disks');
27
+ const definition = drive.disks[name];
28
+ if (typeof definition === 'function')
29
+ throw new Error(`Invalid drive.disks ${JSON.stringify(name)} for releases.artifact.disk: release artifacts require a serializable disk configuration object; driver factories are not supported.`);
30
+ let disk;
31
+ try {
32
+ disk = parseDriveDiskConfig(definition);
33
+ }
34
+ catch (error) {
35
+ if (!(error instanceof DriveDiskConfigError))
36
+ throw error;
37
+ throw new Error(`Invalid drive.disks ${JSON.stringify(name)} for releases.artifact.disk: ${error.message}`, { cause: error });
38
+ }
39
+ // Release archives carry server code and configuration templates, so they must not be readable without the
40
+ // plugin's permission checks. A public disk cannot promise that: on S3 without ACL support the bucket policy, not
41
+ // the per-object visibility, decides who reads a file, and a prefix does not change it.
42
+ if (disk.visibility !== 'private')
43
+ throw new Error(`Invalid drive.disks ${JSON.stringify(name)} for releases.artifact.disk: release artifacts must be stored on a private disk.`);
44
+ return { disk, prefix };
45
+ }
46
+ function isRecord(value) {
47
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
48
+ }
49
+ //# sourceMappingURL=artifact-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-config.js","sourceRoot":"","sources":["../../server/artifact-config.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,11 @@
4
4
  */
5
5
  import type { AuthorizationIdentity } from '@nocobase/authorization/core';
6
6
  import type { DatabaseManager } from '@nocobase/db';
7
+ import type { AppDriveConfig } from '@nocobase/drive';
7
8
  import type { Logger } from '@nocobase/logging';
8
9
  import type { ActorKind } from '../shared/releases.js';
9
10
  import { AccessGuard, type Caller } from './access/caller.js';
11
+ import { type ResolvedArtifact } from './artifact-config.js';
10
12
  import type { ReleasesPluginConfig } from './config.js';
11
13
  import type { DriverRegistry } from './drivers/types.js';
12
14
  import { UploadTicketService } from './services/credentials.js';
@@ -18,6 +20,8 @@ import { DeploymentRequestService } from './services/requests.js';
18
20
  import type { ReleasesSecrets } from './services/secrets.js';
19
21
  import type { ReleasesAccess } from './tokens.js';
20
22
  export interface ReleasesCompositionOptions {
23
+ /** Required only when artifact references a named disk. */
24
+ readonly drive?: AppDriveConfig;
21
25
  readonly database: DatabaseManager;
22
26
  readonly config: Pick<ReleasesPluginConfig, 'artifact' | 'dataDir' | 'maxArtifactSizeMB' | 'logging' | 'uploadTicketTtlSeconds'>;
23
27
  readonly drivers: DriverRegistry;
@@ -49,4 +53,6 @@ export interface Releases {
49
53
  readonly system: Caller;
50
54
  }
51
55
  export declare function createReleases(options: ReleasesCompositionOptions): Releases;
56
+ /** Internal composition shared by the Provider after validating configuration, before it initializes Hosts. */
57
+ export declare function createResolvedReleases(options: ReleasesCompositionOptions, artifact: ResolvedArtifact): Releases;
52
58
  //# sourceMappingURL=composition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../server/composition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,WAAW,EAGX,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,IAAI,CACnB,oBAAoB,EAClB,UAAU,GACV,SAAS,GACT,mBAAmB,GACnB,SAAS,GACT,wBAAwB,CAC3B,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,EAAE,MAAM,cAAc,GAAG,SAAS,CAAC;IAClD,qFAAqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,8GAA8G;IAC9G,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,8FAA8F;IAC9F,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,0BAA0B,GAAG,QAAQ,CA+F5E"}
1
+ {"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../server/composition.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { noPermissions } from '../shared/access.js';
2
2
  import { AccessGuard, SYSTEM_CALLER, narrowedByScope, } from './access/caller.js';
3
+ import { resolveArtifact } from './artifact-config.js';
3
4
  import { UploadTicketService } from './services/credentials.js';
4
5
  import { EnvironmentService } from './services/environments.js';
5
6
  import { ReleasesEventBus } from './services/events.js';
@@ -8,6 +9,10 @@ import { ReleasesService } from './services/releases.js';
8
9
  import { DeploymentRequestService } from './services/requests.js';
9
10
  import { VariableStore } from './services/variables.js';
10
11
  export function createReleases(options) {
12
+ return createResolvedReleases(options, resolveArtifact(options.config.artifact, options.drive));
13
+ }
14
+ /** Internal composition shared by the Provider after validating configuration, before it initializes Hosts. */
15
+ export function createResolvedReleases(options, artifact) {
11
16
  const guard = new AccessGuard(options.access);
12
17
  const events = new ReleasesEventBus(options.logger);
13
18
  const variables = new VariableStore({
@@ -38,7 +43,8 @@ export function createReleases(options) {
38
43
  registries,
39
44
  guard,
40
45
  events,
41
- artifact: options.config.artifact,
46
+ artifact: artifact.disk,
47
+ artifactPrefix: artifact.prefix,
42
48
  dataDir: options.config.dataDir,
43
49
  maxArtifactBytes: options.config.maxArtifactSizeMB === undefined
44
50
  ? undefined
@@ -1 +1 @@
1
- {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../server/composition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../server/composition.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAyB,MAAM,sBAAsB,CAAC;AAG9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA8CxD,MAAM,UAAU,cAAc,CAAC,OAAmC;IAChE,OAAO,sBAAsB,CAC3B,OAAO,EACP,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CACxD,CAAC;AACJ,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,sBAAsB,CACpC,OAAmC,EACnC,QAA0B;IAE1B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,wGAAwG;IACxG,wCAAwC;IACxC,IAAI,QAAqC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC;QAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnD,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7C,SAAS;KACV,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC;QACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,QAAQ,GAAG,IAAI,eAAe,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY;QACZ,UAAU;QACV,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;QAC/B,gBAAgB,EACd,OAAO,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;YAC5C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI;QACpD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;QAC/B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;QAC1C,SAAS;QACT,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC;QAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ;QACR,YAAY;QACZ,KAAK;QACL,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ;QACR,YAAY;QACZ,KAAK;QACL,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,sBAAsB;KACzD,CAAC,CAAC;IACH,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK;QACL,MAAM,EAAE,aAAa;QACrB,KAAK,CAAC,QAAQ,CAAC,QAAQ;YACrB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;gBACpC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,CAAC;YACvE,MAAM,WAAW,GAAG,MAAM;gBACxB,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACtC,CAAC,CAAC,aAAa,EAAE,CAAC;YACpB,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;YAC9B,8GAA8G;YAC9G,0EAA0E;YAC1E,gHAAgH;YAChH,IAAI,QAAQ;gBACV,OAAO;oBACL,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAC7B,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;oBACnE,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC;oBACnD,QAAQ;iBACT,CAAC;YACJ,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC7B,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,OAAO;gBAChD,WAAW;aACZ,CAAC;QACJ,CAAC;QACD,aAAa,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;KACnE,CAAC;AACJ,CAAC"}