@nocobase/app-plugin-releases 0.1.0-beta.6 → 0.1.0-beta.8

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,48 @@
1
1
  # @nocobase/app-plugin-releases
2
2
 
3
+ ## 0.1.0-beta.8
4
+
5
+ ### Patch Changes
6
+
7
+ - 1952789: Require explicitly declared realtime topics and authorize dynamic resources before subscription and delivery. Isolate the server core behind a broker contract, retain the application adapter and service tokens, and handle asynchronous publication throughout plugins and examples. Add acknowledged browser subscriptions, bounded recovery and heartbeat handling, shared React refresh helpers, original-session revalidation, transport limits, and usage documentation. The included adapter remains in-process; events are transient and clients recover by refetching after acknowledgement.
8
+ - 7afd595: Remove Refine from the client runtime
9
+
10
+ The application shell no longer mounts Refine. `@nocobase/app-client` drops `app.refine`, `app.refineConfig`, `AppClientRefineConfig`, `AppClientRefineRegistry`, `AppClientRefineSetters`, `AppClientRefineSetterValue` and the provider-context methods `runWithProviderContext` and `runWithProviderContextAsync`, which existed only to attribute Refine settings to the provider that made them. Nothing in the repository read what was registered there: a title set through `app.refine.setOptions` never reached the page, and Refine resources never produced a menu entry.
11
+
12
+ Refine also created the TanStack Query cache that pages read through `useQueryClient()`; `AppClientProviders` now creates it in the same place, the same way, so pages and plugins behave as before. `@tanstack/react-query` becomes a peer dependency of `@nocobase/app-client` and joins the identity-sensitive packages that plugins must declare as peers.
13
+
14
+ `@nocobase/i18n/client` drops `createRefineI18nProvider`, `CreateRefineI18nProviderOptions` and `RefineI18nProvider`. `@nocobase/app-plugin-repository-example` drops its Client ServiceProvider and the `./client/providers` export, which only registered Refine resources.
15
+
16
+ `nocobase build` builds the client with `vite build` instead of `refine build`, and `@nocobase/app-cli` no longer lists `@refinedev/cli` as an optional peer. The Default and Examples templates remove every `@refinedev/*` development dependency. The development and plugin Skills no longer mention Refine, and the upgrade Skill explains how an existing application removes its `this.app.refine` calls and Refine packages.
17
+
18
+ - Updated dependencies [1952789]
19
+ - Updated dependencies [1952789]
20
+ - Updated dependencies [1952789]
21
+ - Updated dependencies [1952789]
22
+ - Updated dependencies [1952789]
23
+ - Updated dependencies [7afd595]
24
+ - @nocobase/app-client@4.0.0-beta.0
25
+ - @nocobase/app-host@0.1.0-beta.17
26
+ - @nocobase/app-host-docker@0.1.0-beta.2
27
+ - @nocobase/app-plugin-authentication@2.0.0-beta.11
28
+ - @nocobase/app-plugin-authorization@1.0.0-beta.29
29
+ - @nocobase/app-server@3.0.0-beta.0
30
+ - @nocobase/i18n@2.0.0-beta.0
31
+ - @nocobase/authorization@1.0.0-beta.14
32
+ - @nocobase/config@0.1.0-beta.3
33
+ - @nocobase/db@1.0.0-beta.21
34
+ - @nocobase/service-provider@0.0.2-beta.2
35
+
36
+ ## 0.1.0-beta.7
37
+
38
+ ### Patch Changes
39
+
40
+ - 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.
41
+ - Updated dependencies [22717d7]
42
+ - @nocobase/drive@0.1.0-beta.7
43
+ - @nocobase/app-server@2.0.0-beta.9
44
+ - @nocobase/app-plugin-authentication@2.0.0-beta.10
45
+
3
46
  ## 0.1.0-beta.6
4
47
 
5
48
  ### 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,CAgDlB"}
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(drive.disks[name]);
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":"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"}
1
+ {"version":3,"file":"artifact-config.js","sourceRoot":"","sources":["../../server/artifact-config.ts"],"names":[],"mappings":"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"}
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.6",
5
+ "version": "0.1.0-beta.8",
6
6
  "type": "module",
7
7
  "prettier": "@nocobase/dev-config/prettier",
8
8
  "engines": {
@@ -61,8 +61,8 @@
61
61
  "tar": "^7.5.22",
62
62
  "yaml": "^2.8.1",
63
63
  "zod": "^4.6.5",
64
- "@nocobase/app-host": "^0.1.0-beta.16",
65
- "@nocobase/drive": "^0.1.0-beta.6",
64
+ "@nocobase/app-host": "^0.1.0-beta.17",
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
  },
@@ -74,15 +74,15 @@
74
74
  "lucide-react": "^0.487.0",
75
75
  "react": "^19.0.0",
76
76
  "react-router": "^7.0.2",
77
- "@nocobase/app-client": "^3.0.0-beta.2",
78
- "@nocobase/app-host-docker": "^0.1.0-beta.1",
79
- "@nocobase/app-plugin-authentication": "^2.0.0-beta.10",
80
- "@nocobase/app-plugin-authorization": "^1.0.0-beta.28",
81
- "@nocobase/app-server": "^2.0.0-beta.8",
77
+ "@nocobase/app-client": "^4.0.0-beta.0",
78
+ "@nocobase/app-host-docker": "^0.1.0-beta.2",
79
+ "@nocobase/app-plugin-authorization": "^1.0.0-beta.29",
80
+ "@nocobase/app-plugin-authentication": "^2.0.0-beta.11",
81
+ "@nocobase/app-server": "^3.0.0-beta.0",
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",
85
- "@nocobase/i18n": "^1.0.0-beta.7",
85
+ "@nocobase/i18n": "^2.0.0-beta.0",
86
86
  "@nocobase/service-provider": "^0.0.2-beta.2"
87
87
  },
88
88
  "devDependencies": {
@@ -98,9 +98,9 @@
98
98
  "tsx": "^4.21.0",
99
99
  "typescript": "^6.0.3",
100
100
  "vitest": "^4.1.10",
101
- "@nocobase/app-testing": "0.1.0-beta.4",
102
101
  "@nocobase/db-sqlite": "0.1.0-beta.6",
103
- "@nocobase/dev-config": "0.1.0-beta.23"
102
+ "@nocobase/app-testing": "0.1.0-beta.5",
103
+ "@nocobase/dev-config": "0.1.0-beta.24"
104
104
  },
105
105
  "peerDependenciesMeta": {
106
106
  "@nocobase/app-host-docker": {