Merge pull request #33836 from backstage/rugvip/explore-standard-schema-decoupling

frontend-plugin-api: decouple zod dependency using Standard Schema
This commit is contained in:
Patrik Oldsberg
2026-04-14 12:27:53 +02:00
committed by GitHub
49 changed files with 2258 additions and 951 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-app': patch
---
Migrated `AppLanguageApi` extension to use the new `configSchema` option.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-graph': patch
---
Updated `README-alpha.md` extension examples to use current APIs.
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
Migrated alpha entity blueprints to use the new `configSchema` option with zod v4 schema values.
@@ -0,0 +1,5 @@
---
'@backstage/filter-predicates': patch
---
Added `createZodV4FilterPredicateSchema` as a zod v4 counterpart to `createZodV3FilterPredicateSchema`.
@@ -1,5 +1,5 @@
---
'@backstage/frontend-plugin-api': patch
'@backstage/frontend-plugin-api': minor
---
Refactored the internal `createSchemaFromZod` helper to use a schema-first generic pattern, replacing the `ZodSchema<TOutput, ZodTypeDef, TInput>` constraint with `TSchema extends ZodType`. This avoids "excessively deep" type inference errors when multiple Zod copies are resolved.
**BREAKING**: Removed the deprecated `createSchemaFromZod` helper. Use the new `configSchema` option instead. See the [1.50 migration documentation](https://backstage.io/docs/frontend-system/architecture/migrations#150) for more information.
@@ -0,0 +1,5 @@
---
'@backstage/frontend-plugin-api': patch
---
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.