frontend-plugin-api: clarify that zod v3 /v4 subpath does not support configSchema
Update error messages, deprecation warnings, migration docs, release notes, and changelogs to reflect that the zod/v4 subpath export from the Zod v3 package does not support JSON Schema conversion via the Standard Schema interface. Users must fully migrate to the zod v4 package (zod@^4.0.0) to use configSchema. Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com> Made-with: Cursor
This commit is contained in:
@@ -123,7 +123,7 @@ Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.50.0](https://
|
||||
- 4c09967: Fixed the duplicate extension error message in `createFrontendModule` to correctly say "Module" instead of "Plugin".
|
||||
- e4804ab: Added `open` method to `DialogApi` that renders dialogs without any built-in dialog chrome, giving the caller full control over the dialog presentation. This avoids focus trap conflicts that occur when mixing components from different design libraries. The existing `show` and `showModal` methods are now deprecated in favor of `open`.
|
||||
- ddc5247: Fixed `FlattenedMessages` type to avoid excessive type instantiation depth in TypeScript 6 when using `createTranslationRef` with the `translations` option.
|
||||
- a2a6c3b: Added a new `configSchema` option for `createExtension` and `createExtensionBlueprint` that accepts direct schema values from any [Standard Schema](https://github.com/standard-schema/standard-schema) compatible library with JSON Schema support, such as zod v4 or the `zod/v4` subpath from zod v3. The old `config.schema` option is now deprecated. Note that direct zod v3 schemas are not supported by the new `configSchema` option — use `import { z } from 'zod/v4'` from the zod v3 package, or upgrade to zod v4. See the [1.50 migration documentation](https://backstage.io/docs/frontend-system/architecture/migrations#150) for more information.
|
||||
- a2a6c3b: Added a new `configSchema` option for `createExtension` and `createExtensionBlueprint` that accepts direct schema values from any [Standard Schema](https://github.com/standard-schema/standard-schema) compatible library with JSON Schema support, such as zod v4 (`zod@^4.0.0`). The old `config.schema` option is now deprecated. Note that Zod v3 is not supported by the new `configSchema` option, including the `zod/v4` subpath export which does not include JSON Schema conversion support. You must upgrade to the `zod` v4 package. See the [1.50 migration documentation](https://backstage.io/docs/frontend-system/architecture/migrations#150) for more information.
|
||||
- d66a3ec: Added `titleLink` prop to `PageLayoutProps` so the plugin header title can link back to the plugin root.
|
||||
- e220589: Removed the unnecessary need to use `defineParams` callback from `PluginHeaderActionBlueprint`. It still works, but is no longer required.
|
||||
- Updated dependencies
|
||||
|
||||
@@ -20,17 +20,13 @@ To get ownership info for the current user, code should use the `userInfo` core
|
||||
|
||||
The new frontend system now uses [Standard Schema](https://github.com/standard-schema/standard-schema) for extension configuration. A new `configSchema` option has been added to `createExtension`, `createExtensionBlueprint`, as well as the `override` and `makeWithOverrides` methods on extension definitions and blueprints. This option accepts direct schema values from any Standard Schema compatible library with JSON Schema support, replacing the old `config.schema` callback format which is now deprecated.
|
||||
|
||||
To use the new `configSchema` option with Zod, you need Zod v4 or the `zod/v4` subpath export from the Zod v3 package. The `zod/v4` subpath requires a minimum Zod version of **3.25.0** — make sure to update your Zod dependency if needed:
|
||||
To use the new `configSchema` option with Zod, you need Zod v4 (`zod@^4.0.0`):
|
||||
|
||||
```ts
|
||||
// Either use Zod v4 directly (requires zod@^4.0.0):
|
||||
import { z } from 'zod';
|
||||
|
||||
// Or the v4 subpath from the Zod v3 package (requires zod@^3.25.0):
|
||||
import { z } from 'zod/v4';
|
||||
```
|
||||
|
||||
Note that direct Zod v3 schemas are **not** supported by the new `configSchema` option — they only work with the deprecated `config.schema` callback format.
|
||||
Note that neither direct Zod v3 schemas nor the `zod/v4` subpath export from the Zod v3 package are supported by the new `configSchema` option. While the `zod/v4` subpath exposes the Zod v4 API surface, the resulting schema objects do not support the JSON Schema conversion that `configSchema` requires. A full migration to the `zod` v4 package is needed. Direct Zod v3 schemas only work with the deprecated `config.schema` callback format.
|
||||
|
||||
The deprecated `createSchemaFromZod` helper has been removed from `@backstage/frontend-plugin-api`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user