@nocobase/app-plugin-releases 0.1.0-beta.6 → 0.1.0-beta.7
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.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @nocobase/app-plugin-releases
|
|
2
2
|
|
|
3
|
+
## 0.1.0-beta.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 22717d7: Support synchronous custom driver factories alongside existing configuration objects in `drive.disks`. Create drivers lazily through the shared application Drive provider, preserve Flydrive caching and fakes, and reject factory references where release artifacts require serializable Host configuration. Ship the `nocobase-drive` Skill with filesystem, S3, native Aliyun OSS, and custom driver guides, and direct application guidance to that shared documentation. Consumers reading disk configuration fields must narrow out factory functions first.
|
|
8
|
+
- Updated dependencies [22717d7]
|
|
9
|
+
- @nocobase/drive@0.1.0-beta.7
|
|
10
|
+
- @nocobase/app-server@2.0.0-beta.9
|
|
11
|
+
- @nocobase/app-plugin-authentication@2.0.0-beta.10
|
|
12
|
+
|
|
3
13
|
## 0.1.0-beta.6
|
|
4
14
|
|
|
5
15
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -65,6 +65,8 @@ The plugin copies referenced disk configuration without changing `drive.disks`.
|
|
|
65
65
|
|
|
66
66
|
Applications composing services directly with `createReleases({ config, drive, ... })` pass the final `AppDriveConfig` as the optional `drive` argument when `config.artifact` references a named disk. Existing callers with a complete artifact disk configuration need no changes.
|
|
67
67
|
|
|
68
|
+
Drive also accepts synchronous driver factories in `drive.disks`, but release artifact references require serializable disk configuration objects for the Hosts. Referencing a factory fails before Host initialization without invoking the factory. Configure an object disk for release artifacts; factories remain available for application file storage.
|
|
69
|
+
|
|
68
70
|
## CI and API keys with a scope
|
|
69
71
|
|
|
70
72
|
The plugin has no keys of its own. The API is authenticated by the application, which accepts a person's session or an API key, and opts into scoped keys (`auth.required({ scopedKeys: true })`). A request made with a scoped key (or any key of a service account) carries the key's `KeyScope` on its identity, and `callerOf` turns it into a `key` caller: its permissions are cut down to what the scope covers, and the Apps it reaches to the ones the scope picked (`keyScope.objects('rel.apps')`), for listing as well as every App check.
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -24,9 +24,12 @@ export function resolveArtifact(artifact, drive) {
|
|
|
24
24
|
const prefix = rawPrefix.replace(/\/{2,}/gu, '/').replace(/\/+$/u, '');
|
|
25
25
|
if (!drive?.disks || !Object.hasOwn(drive.disks, name))
|
|
26
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.`);
|
|
27
30
|
let disk;
|
|
28
31
|
try {
|
|
29
|
-
disk = parseDriveDiskConfig(
|
|
32
|
+
disk = parseDriveDiskConfig(definition);
|
|
30
33
|
}
|
|
31
34
|
catch (error) {
|
|
32
35
|
if (!(error instanceof DriveDiskConfigError))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-config.js","sourceRoot":"","sources":["../../server/artifact-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAGrB,MAAM,iBAAiB,CAAC;AASzB,qGAAqG;AACrG,MAAM,UAAU,eAAe,CAC7B,QAA0C,EAC1C,KAAsB;IAEtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEjE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,UAAkB,EAAS,EAAE,CAC5C,IAAI,KAAK,CACP,WAAW,UAAU,8BAA8B,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CACjH,CAAC;IACJ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAC1C,MAAM,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,CAAC;QACzE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvE,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CACxB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAChE;QAED,MAAM,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QACpD,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B,IAAI,
|
|
1
|
+
{"version":3,"file":"artifact-config.js","sourceRoot":"","sources":["../../server/artifact-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAGrB,MAAM,iBAAiB,CAAC;AASzB,qGAAqG;AACrG,MAAM,UAAU,eAAe,CAC7B,QAA0C,EAC1C,KAAsB;IAEtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEjE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,UAAkB,EAAS,EAAE,CAC5C,IAAI,KAAK,CACP,WAAW,UAAU,8BAA8B,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CACjH,CAAC;IACJ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAC1C,MAAM,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,CAAC;QACzE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvE,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1B,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CACxB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAChE;QAED,MAAM,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QACpD,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,OAAO,UAAU,KAAK,UAAU;QAClC,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sIAAsI,CAClL,CAAC;IACJ,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,oBAAoB,CAAC;YAAE,MAAM,KAAK,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,EAC1F,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,2GAA2G;IAC3G,kHAAkH;IAClH,wFAAwF;IACxF,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAC/B,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kFAAkF,CAC9H,CAAC;IACJ,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@nocobase/app-plugin-releases",
|
|
3
3
|
"displayName": "Release management",
|
|
4
4
|
"description": "Apps, releases, environments and deployments through pluggable deployment drivers.",
|
|
5
|
-
"version": "0.1.0-beta.
|
|
5
|
+
"version": "0.1.0-beta.7",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"prettier": "@nocobase/dev-config/prettier",
|
|
8
8
|
"engines": {
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"yaml": "^2.8.1",
|
|
63
63
|
"zod": "^4.6.5",
|
|
64
64
|
"@nocobase/app-host": "^0.1.0-beta.16",
|
|
65
|
-
"@nocobase/drive": "^0.1.0-beta.
|
|
65
|
+
"@nocobase/drive": "^0.1.0-beta.7",
|
|
66
66
|
"@nocobase/logging": "^0.1.0-beta.7",
|
|
67
67
|
"@nocobase/secrets": "^0.1.0-beta.1"
|
|
68
68
|
},
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"@nocobase/app-host-docker": "^0.1.0-beta.1",
|
|
79
79
|
"@nocobase/app-plugin-authentication": "^2.0.0-beta.10",
|
|
80
80
|
"@nocobase/app-plugin-authorization": "^1.0.0-beta.28",
|
|
81
|
-
"@nocobase/app-server": "^2.0.0-beta.
|
|
81
|
+
"@nocobase/app-server": "^2.0.0-beta.9",
|
|
82
82
|
"@nocobase/authorization": "^1.0.0-beta.14",
|
|
83
83
|
"@nocobase/config": "^0.1.0-beta.3",
|
|
84
84
|
"@nocobase/db": "^1.0.0-beta.21",
|