Releases: backstage/backstage
v0.33.3
Properly release @backstage/codemods as a publicly available package
v0.33.2
Release @backstage/codemods package
v0.33.1
Release new @backstage/plugin-catalog-backend-module-msgraph package containing the MicrosoftGraphOrgReaderProcessor, which was previously part of the @backstage/plugin-catalog-backend package.
v0.33.0
@backstage/create-app@0.3.27
Patch Changes
- Updated dependencies
- @backstage/plugin-scaffolder-backend@0.12.2
@backstage/plugin-scaffolder-backend@0.12.2
Patch Changes
- b492221: Keep the empty string as empty string in
inputrather than replacing withundefinedto make empty values ok forcookiecutter
v0.32.0
@backstage/plugin-api-docs@0.5.0
Minor Changes
- 2ebc430: Rework
ApiExplorerPageto utilizeEntityListProviderto provide a consistent UI with theCatalogIndexPagewhich now exposes support for starring entities, pagination, and customizing columns.
Patch Changes
- 14ce64b: Add pagination to ApiExplorerTable
- Updated dependencies
- @backstage/plugin-catalog-react@0.2.3
- @backstage/plugin-catalog@0.6.3
- @backstage/catalog-model@0.8.3
- @backstage/core@0.7.13
@backstage/backend-common@0.8.3
Patch Changes
-
e5cdf05: Provide a more clear error message when database connection fails.
-
772dbdb: Deprecates
SingleConnectionDatabaseManagerand provides an API compatible database
connection manager,DatabaseManager, which allows developers to configure database
connections on a per plugin basis.The
backend.databaseconfig path allows you to setprefixto use an
alternate prefix for automatically generated database names, the default is
backstage_plugin_. Usebackend.database.plugin.<pluginId>to set plugin
specific database connection configuration, e.g.backend: database: client: 'pg', prefix: 'custom_prefix_' connection: host: 'localhost' user: 'foo' password: 'bar' plugin: catalog: connection: database: 'database_name_overriden' scaffolder: client: 'sqlite3' connection: ':memory:'
Migrate existing backstage installations by swapping out the database manager in the
packages/backend/src/index.tsfile as shown below:import { - SingleConnectionDatabaseManager, + DatabaseManager, } from '@backstage/backend-common'; // ... function makeCreateEnv(config: Config) { // ... - const databaseManager = SingleConnectionDatabaseManager.fromConfig(config); + const databaseManager = DatabaseManager.fromConfig(config); // ... } -
Updated dependencies
- @backstage/config-loader@0.6.4
@backstage/backend-test-utils@0.1.3
Patch Changes
-
772dbdb: Deprecates
SingleConnectionDatabaseManagerand provides an API compatible database
connection manager,DatabaseManager, which allows developers to configure database
connections on a per plugin basis.The
backend.databaseconfig path allows you to setprefixto use an
alternate prefix for automatically generated database names, the default is
backstage_plugin_. Usebackend.database.plugin.<pluginId>to set plugin
specific database connection configuration, e.g.backend: database: client: 'pg', prefix: 'custom_prefix_' connection: host: 'localhost' user: 'foo' password: 'bar' plugin: catalog: connection: database: 'database_name_overriden' scaffolder: client: 'sqlite3' connection: ':memory:'
Migrate existing backstage installations by swapping out the database manager in the
packages/backend/src/index.tsfile as shown below:import { - SingleConnectionDatabaseManager, + DatabaseManager, } from '@backstage/backend-common'; // ... function makeCreateEnv(config: Config) { // ... - const databaseManager = SingleConnectionDatabaseManager.fromConfig(config); + const databaseManager = DatabaseManager.fromConfig(config); // ... } -
Updated dependencies
- @backstage/backend-common@0.8.3
- @backstage/cli@0.7.1
@backstage/catalog-model@0.8.3
Patch Changes
- 1d2ed78: Removed unused
typescript-json-schemadependency.
@backstage/cli@0.7.1
Patch Changes
-
3108ff7: Make
yarn devin newly created backend plugins respect thePLUGIN_PORTenvironment variable.You can achieve the same in your created backend plugins by making sure to properly call the port and CORS methods on your service builder. Typically in a file named
src/service/standaloneServer.tsinside your backend plugin package, replace the following:const service = createServiceBuilder(module) .enableCors({ origin: 'http://localhost:3000' }) .addRouter('/my-plugin', router);
With something like the following:
let service = createServiceBuilder(module) .setPort(options.port) .addRouter('/my-plugin', router); if (options.enableCors) { service = service.enableCors({ origin: 'http://localhost:3000' }); }
-
Updated dependencies
- @backstage/config-loader@0.6.4
@backstage/config-loader@0.6.4
Patch Changes
- f004937: Removed workaround for breaking change in typescript 4.3 and bump
typescript-json-schemainstead. This should again allow the usage of@items.visibility <value>to set the visibility of array items.
@backstage/core@0.7.13
Patch Changes
- d4644f5: Use the Backstage
Linkcomponent in theButton
@backstage/core-components@0.1.3
Patch Changes
- d2c31b1: Add title prop in SupportButton component
- d4644f5: Use the Backstage
Linkcomponent in theButton
@backstage/create-app@0.3.26
Patch Changes
-
5db7445: Adding .DS_Store pattern to .gitignore in Scaffolded Backstage App. To migrate an existing app that pattern should be added manually.
+# macOS +.DS_Store
-
b45e294: This release enables the new catalog processing engine which is a major milestone for the catalog!
This update makes processing more scalable across multiple instances, adds support for deletions and ui flagging of entities that are no longer referenced by a location.
Changes Required to
catalog.ts-import { useHotCleanup } from '@backstage/backend-common'; import { CatalogBuilder, - createRouter, - runPeriodically + createRouter } from '@backstage/plugin-catalog-backend'; import { Router } from 'express'; import { PluginEnvironment } from '../types'; export default async function createPlugin(env: PluginEnvironment): Promise<Router> { - const builder = new CatalogBuilder(env); + const builder = await CatalogBuilder.create(env); const { entitiesCatalog, locationsCatalog, - higherOrderOperation, + locationService, + processingEngine, locationAnalyzer, } = await builder.build(); - useHotCleanup( - module, - runPeriodically(() => higherOrderOperation.refreshAllLocations(), 100000), - ); + await processingEngine.start(); return await createRouter({ entitiesCatalog, locationsCatalog, - higherOrderOperation, + locationService, locationAnalyzer, logger: env.logger, config: env.config,
As this is a major internal change we have taken some precaution by still allowing the old catalog to be enabled by keeping your
catalog.tsin it's current state.
If you encounter any issues and have to revert to the previous catalog engine make sure to raise an issue immediately as the old catalog engine is deprecated and will be removed in a future release. -
772dbdb: Deprecates
SingleConnectionDatabaseManagerand provides an API compatible database
connection manager,DatabaseManager, which allows developers to configure database
connections on a per plugin basis.The
backend.databaseconfig path allows you to setprefixto use an
alternate prefix for automatically generated database names, the default is
backstage_plugin_. Usebackend.database.plugin.<pluginId>to set plugin
specific database connection configuration, e.g.backend: database: client: 'pg', prefix: 'custom_prefix_' connection: host: 'localhost' user: 'foo' password: 'bar' plugin: catalog: connection: database: 'database_name_overriden' scaffolder: client: 'sqlite3' connection: ':memory:'
Migrate existing backstage installations by swapping out the database manager in the
packages/backend/src/index.tsfile as shown below:import { - SingleConnectionDatabaseManager, + DatabaseManager, } from '@backstage/backend-common'; // ... function makeCreateEnv(config: Config) { // ... - const databaseManager = SingleConnectionDatabaseManager.fromConfig(config); + const databaseManager = DatabaseManager.fromConfig(config); // ... } -
Updated dependencies
- @backstage/plugin-catalog@0.6.3
- @backstage/plugin-search-backend-node@0.2.1
- @backstage/plugin-catalog-backend@0.10.3
- @backstage/backend-common@0.8.3
- @backstage/cli@0.7.1
- @backstage/plugin-api-docs@0.5.0
- @backstage/plugin-scaffolder-backend@0.12.1
- @backstage/plugin-techdocs@0.9.6
- @backstage/plugin-techdocs-backend@0.8.3
- @backstage/plugin-catalog-import@0.5.10
- @backstage/plugin-app-backend@0.3.14
- @backstage/plugin-proxy-backend@0.2.10
- @backstage/plugin-rollbar-backend@0.1.12
- @backstage/plugin-search-backend@0.2.1
- @backstage/plugin-user-settings@0.2.11
- @backstage/catalog-model@0.8.3
- @backstage/plugin-auth-ba...
v0.31.0
@backstage/cli@0.7.0
Minor Changes
-
9cd3c53: Switch from
ts-jestto@sucrase/jest-plugin, improving performance and aligning transpilation with bundling.In order to switch back to
ts-jest, installts-jest@^26.4.3as a dependency in the root of your repo and add the following in the rootpackage.json:"jest": { "globals": { "ts-jest": { "isolatedModules": true } }, "transform": { "\\.esm\\.js$": "@backstage/cli/config/jestEsmTransform.js", "\\.(js|jsx|ts|tsx)$": "ts-jest", "\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)$": "@backstage/cli/config/jestFileTransform.js", "\\.(yaml)$": "yaml-jest" } }
Note that this will override the default jest transforms included with the
@backstage/cli.It is possible that some test code needs a small migration as a result of this change, which stems from a difference in how
sucraseandts-jesttransform module re-exports.Consider the following code:
import * as utils from './utils'; jest.spyOn(utils, 'myUtility').mockReturnValue(3);
If the
./utilsimport for example refers to an index file that in turn re-exports from./utils/myUtility, you would have to change the code to the following to work around the fact that the exported object from./utilsends up not having configurable properties, thus breakingjest.spyOn.import * as utils from './utils/myUtility'; jest.spyOn(utils, 'myUtility').mockReturnValue(3);
Patch Changes
-
7f74433: Updated dependencies
-
21e8ebe: Fix error message formatting in the packaging process.
error.errors can be undefined which will lead to a TypeError, swallowing the actual error message in the process.
For instance, if you break your tsconfig.json with invalid syntax, backstage-cli will not be able to build anything and it will be very hard to find out why because the underlying error message is hidden behind a TypeError.
@backstage/plugin-scaffolder-backend@0.12.0
Minor Changes
- 66c6bfe: Scaffolding a repository in Bitbucket will now use the apiBaseUrl if it is provided instead of only the host parameter
Patch Changes
-
27a9b50: Introduce conditional steps in scaffolder templates.
A step can now include an
ifproperty that only executes a step if the
condition is truthy. The condition can include handlebar templates.- id: register if: '{{ not parameters.dryRun }}' name: Register action: catalog:register input: repoContentsUrl: '{{ steps.publish.output.repoContentsUrl }}' catalogInfoPath: '/catalog-info.yaml'
Also introduces a
nothelper in handlebar templates that allows to negate
boolean expressions. -
55a253d: Migrating old
backstage.io/v1alpha1templates tobackstage.io/v1beta2Deprecating the
create-react-appTemplate. We're planning on removing thecreate-react-apptemplater, as it's been a little tricky to support and takes 15mins to run in a container. We've currently cached a copy of the output forcreate-react-appand ship that under our sample templates folder. If you want to continue using it, we suggest copying the template out of there and putting it in your own repository as it will be removed in upcoming releases.We also recommend removing this entry from your
app-config.yamlif it exists:- - type: url - target: https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend/sample-templates/create-react-app/template.yaml - rules: - - allow: [Template]
-
f26e600: Add
debug:logaction for debugging. -
4f8cf50: Update gitbeaker past the broken version without a dist folder
-
Updated dependencies [9296377]
-
Updated dependencies [27a9b50]
-
Updated dependencies [70bc30c]
-
Updated dependencies [eda9dbd]
- @backstage/backend-common@0.8.2
- @backstage/catalog-model@0.8.2
- @backstage/catalog-client@0.3.13
- @backstage/integration@0.5.6
@backstage/plugin-search@0.4.0
Minor Changes
-
5aff847: This release represents a move out of a pre-alpha phase of the Backstage Search
plugin, into an alpha phase. With this release, you gain more control over the
layout of your search page on the frontend, as well as the ability to extend
search on the backend to encompass everything Backstage users may want to find.If you are updating to this version of
@backstage/plugin-searchfrom a prior
release, you will need to make the following modifications to your App:In your app package, create a new
searchPagecomponent at, for example,
packages/app/src/components/search/SearchPage.tsxwith contents like the
following:import React from 'react'; import { makeStyles, Theme, Grid, List, Paper } from '@material-ui/core'; import { Content, Header, Lifecycle, Page } from '@backstage/core'; import { CatalogResultListItem } from '@backstage/plugin-catalog'; import { SearchBar, SearchFilter, SearchResult, DefaultResultListItem, } from '@backstage/plugin-search'; const useStyles = makeStyles((theme: Theme) => ({ bar: { padding: theme.spacing(1, 0), }, filters: { padding: theme.spacing(2), }, filter: { '& + &': { marginTop: theme.spacing(2.5), }, }, })); const SearchPage = () => { const classes = useStyles(); return ( <Page themeId="home"> <Header title="Search" subtitle={<Lifecycle alpha />} /> <Content> <Grid container direction="row"> <Grid item xs={12}> <Paper className={classes.bar}> <SearchBar debounceTime={100} /> </Paper> </Grid> <Grid item xs={3}> <Paper className={classes.filters}> <SearchFilter.Select className={classes.filter} name="kind" values={['Component', 'Template']} /> <SearchFilter.Checkbox className={classes.filter} name="lifecycle" values={['experimental', 'production']} /> </Paper> </Grid> <Grid item xs={9}> <SearchResult> {({ results }) => ( <List> {results.map(({ type, document }) => { switch (type) { case 'software-catalog': return ( <CatalogResultListItem key={document.location} result={document} /> ); default: return ( <DefaultResultListItem key={document.location} result={document} /> ); } })} </List> )} </SearchResult> </Grid> </Grid> </Content> </Page> ); }; export const searchPage = <SearchPage />;
Then in
App.tsx, import this newsearchPagecomponent, and set it as a
child of the existing<SearchPage />route so that it looks like this:import { searchPage } from './components/search/SearchPage'; // ... <Route path="/search" element={<SearchPage />}> {searchPage} </Route>;
You will also need to update your backend. For details, check the changeset for
v0.2.0of@backstage/plugin-search-backend.
Patch Changes
-
db1c8f9: The `<Search...Next /> set of components exported by the Search Plugin are now updated to use the Search Backend API. These will be made available as the default non-"next" versions in a follow-up release.
The interfaces for decorators and collators in the Search Backend have also seen minor, breaking revisions ahead of a general release. If you happen to be building on top of these interfaces, check and update your implementations accordingly. The APIs will be considered more stable in a follow-up release.
-
Updated dependencies [27a9b50]
-
Updated dependencies [7028ee1]
-
Updated dependencies [db1c8f9]
- @backstage/catalog-model@0.8.2
- @backstage/plugin-catalog-react@0.2.2
- @backstage/search-common@0.1.2
@backstage/plugin-search-backend@0.2.0
Minor Changes
-
5aff847: This release represents a move out of a pre-alpha phase of the Backstage Search
plugin, into an alpha phase. With this release, you gain more control over the
layout of your search page on the frontend, as well as the ability to extend
search on the backend to encompass everything Backstage users may want to find.If you are updating to version
v0.4.0of@backstage/plugin-searchfrom a
prior release, you will need to make modifications to your app backend.First, navigate to your backend package and install the two related search
backend packages:cd packages/backend yarn add @backstage/plugin-search-backend @backstage/plugin-search-b...
v0.30.1
This adds publishes a new @backstage/codemods package, intended to be a place to collect various codemods that ease migrations efforts. The initial version only has a single codemod, core-imports, which will translates imports from @backstage/core into appropriate new @backstage/core-* imports.
There's more information on the setup in the readme, but essentially people can just run this in a package dir:
npx @backstage/codemods core-imports .I ran it towards the todo plugin so you can see what the changes look like, although note that the package.json changes are currently manual additions.
v0.30.0
@backstage/plugin-tech-radar@0.4.0
Minor Changes
-
90a505a: Migrating the Tech Radar to support using
ApiRefsto load custom data.If you had a
getDatafunction, you'll now need to encapsulate that logic in a class that can override thetechRadarApiRef.// app/src/lib/MyClient.ts import { TechRadarApi, TechRadarLoaderResponse, } from '@backstage/plugin-tech-radar'; class MyOwnClient implements TechRadarApi { async load(): Promise<TechRadarLoaderResponse> { // here's where you would put you logic to load the response that was previously passed into getData } } // app/src/apis.ts import { MyOwnClient } from './lib/MyClient'; import { techRadarApiRef } from '@backstage/plugin-tech-radar'; export const apis: AnyApiFactory[] = [ /* ... */ createApiFactory(techRadarApiRef, new MyOwnClient()), ];
Patch Changes
- Updated dependencies [e7c5e4b]
- Updated dependencies [1cf1d35]
- @backstage/theme@0.2.8
- @backstage/core@0.7.12
@backstage/catalog-model@0.8.1
Patch Changes
- ebe802b: Remove the explicit connection from
EntityEnvelopeandEntity.
@backstage/cli@0.6.14
Patch Changes
- ee4eb5b: Adjust the Webpack
devtoolmodule filename template to correctly resolve via the source maps to the source files. - 8416031: Mark the
create-github-appcommand as ready for use and reveal it in the command list. - 7e7c714: Exclude core packages from package dependency diff.
- e7c5e4b: Update installation instructions in README.
- 2305ab8: chore(deps): bump
@spotify/eslint-config-reactfrom 9.0.0 to 10.0.0 - 054bcd0: Deprecated the
backend:build-imagecommand, pointing to the newerbackend:bundlecommand.
@backstage/core@0.7.12
Patch Changes
- 1cf1d35: Export
CheckboxTreeas we have a storybook for it - Updated dependencies [e7c5e4b]
- Updated dependencies [0160678]
- @backstage/theme@0.2.8
- @backstage/core-api@0.2.21
@backstage/core-api@0.2.21
Patch Changes
- 0160678: Made the
RouteRef*types compatible with the ones exported from@backstage/core-plugin-api. - Updated dependencies [031ccd4]
- Updated dependencies [e7c5e4b]
- @backstage/core-plugin-api@0.1.1
- @backstage/theme@0.2.8
@backstage/core-app-api@0.1.1
Patch Changes
- e7c5e4b: Update installation instructions in README.
- Updated dependencies [031ccd4]
- Updated dependencies [e7c5e4b]
- @backstage/core-plugin-api@0.1.1
- @backstage/core-components@0.1.1
- @backstage/theme@0.2.8
@backstage/core-components@0.1.1
Patch Changes
- e7c5e4b: Update installation instructions in README.
- Updated dependencies [031ccd4]
- Updated dependencies [e7c5e4b]
- @backstage/core-plugin-api@0.1.1
- @backstage/theme@0.2.8
@backstage/core-plugin-api@0.1.1
Patch Changes
- 031ccd4: Made the deprecated
iconfields compatible with theIconComponenttype from@backstage/corein order to smooth out the migration. - e7c5e4b: Update installation instructions in README.
- Updated dependencies [e7c5e4b]
- @backstage/theme@0.2.8
@backstage/create-app@0.3.24
Patch Changes
- 1ddf551: Add CLI output and README how to start app after create-app CLI
- Updated dependencies [7af9cef]
- Updated dependencies [497f4ce]
- Updated dependencies [ee4eb5b]
- Updated dependencies [8416031]
- Updated dependencies [3772de8]
- Updated dependencies [7e7c714]
- Updated dependencies [f430b6c]
- Updated dependencies [2a942cc]
- Updated dependencies [e7c5e4b]
- Updated dependencies [ebe802b]
- Updated dependencies [1cf1d35]
- Updated dependencies [90a505a]
- Updated dependencies [76f99a1]
- Updated dependencies [1157fa3]
- Updated dependencies [6fe1567]
- Updated dependencies [e7a5a34]
- Updated dependencies [2305ab8]
- Updated dependencies [054bcd0]
- Updated dependencies [aad98c5]
- Updated dependencies [63a432e]
- Updated dependencies [f46a9e8]
- @backstage/test-utils@0.1.13
- @backstage/plugin-scaffolder@0.9.7
- @backstage/cli@0.6.14
- @backstage/plugin-catalog@0.6.1
- @backstage/theme@0.2.8
- @backstage/catalog-model@0.8.1
- @backstage/core@0.7.12
- @backstage/plugin-tech-radar@0.4.0
- @backstage/plugin-scaffolder-backend@0.11.5
- @backstage/plugin-catalog-backend@0.10.1
- @backstage/plugin-techdocs@0.9.5
@backstage/dev-utils@0.1.17
Patch Changes
- e7c5e4b: Update installation instructions in README.
- Updated dependencies [7af9cef]
- Updated dependencies [e7c5e4b]
- Updated dependencies [ebe802b]
- Updated dependencies [1cf1d35]
- Updated dependencies [deaba2e]
- Updated dependencies [8e919a6]
- @backstage/test-utils@0.1.13
- @backstage/theme@0.2.8
- @backstage/catalog-model@0.8.1
- @backstage/core@0.7.12
- @backstage/plugin-catalog-react@0.2.1
@backstage/integration@0.5.5
Patch Changes
- 49d7ec1: GitHub App ID can be a string too for environment variables otherwise it will fail validation
@backstage/techdocs-common@0.6.4
Patch Changes
- aad98c5: Fixes multiple XSS and sanitization bypass vulnerabilities in TechDocs.
- 0905947: Support parsing
mkdocs.ymlfiles that are using custom yaml tags like
!!python/name:materialx.emoji.twemoji. - Updated dependencies [ebe802b]
- Updated dependencies [49d7ec1]
- @backstage/catalog-model@0.8.1
- @backstage/integration@0.5.5
@backstage/test-utils@0.1.13
Patch Changes
- 7af9cef: Fix a bug in
MockStorageApiwhere it unhelpfully returned new empty buckets every single time - e7c5e4b: Update installation instructions in README.
- Updated dependencies [e7c5e4b]
- Updated dependencies [0160678]
- @backstage/theme@0.2.8
- @backstage/core-api@0.2.21
@backstage/theme@0.2.8
Patch Changes
- e7c5e4b: Update installation instructions in README.
@backstage/plugin-catalog@0.6.1
Patch Changes
- 2a942cc: invert logic for when to show type column
- f46a9e8: Move dependency to
@microsoft/microsoft-graph-typesfrom@backstage/plugin-catalog
to@backstage/plugin-catalog-backend. - Updated dependencies [e7c5e4b]
- Updated dependencies [ebe802b]
- Updated dependencies [49d7ec1]
- Updated dependencies [1cf1d35]
- Updated dependencies [deaba2e]
- Updated dependencies [8e919a6]
- @backstage/theme@0.2.8
- @backstage/catalog-model@0.8.1
- @backstage/integration@0.5.5
- @backstage/core@0.7.12
- @backstage/plugin-catalog-react@0.2.1
@backstage/plugin-catalog-backend@0.10.1
Patch Changes
- e7a5a34: Only validate the envelope for emitted entities, and defer full validation to when they get processed later on.
- 63a432e: Skip deletion of bootstrap location when running the new catalog.
- f46a9e8: Move dependency to
@microsoft/microsoft-graph-typesfrom@backstage/plugin-catalog
to@backstage/plugin-catalog-backend. - Updated dependencies [ebe802b]
- Updated dependencies [49d7ec1]
- @backstage/catalog-model@0.8.1
- @backstage/integration@0.5.5
@backstage/plugin-catalog-react@0.2.1
Patch Changes
- deaba2e: Sort
EntityTagPickerentries. - 8e919a6: Tweak the
EntityListProviderto do single-cycle updates - Updated dependencies [031ccd4]
- Updated dependencies [e7c5e4b]
- Updated dependencies [ebe802b]
- Updated dependencies [1cf1d35]
- @backstage/core-plugin-api@0.1.1
- @backstage/catalog-model@0.8.1
- @backstage/core@0.7.12
@backstage/plugin-scaffolder@0.9.7
Patch Changes
-
497f4ce: Scaffolder Field Extensions are here! This means you'll now the ability to create custom field extensions and have the Scaffolder use the components when collecting information from the user in the wizard. By default we supply the
RepoUrlPickerand theOwnerPicker, but if you want to provide some more extensions or override the built on ones you will have to change how theScaffolderPageis wired up in yourapp/src/App.tsxto pass in the custom fields to the Scaffolder.You'll need to move this:
<Route path="/create" element={<ScaffolderPage />} />
To this:
import { ScaffolderFieldExtensions, RepoUrlPickerFieldExtension, OwnerPickerFieldExtension, } from '@backstage/plugin-scaffolder'; <Route path="/create" element={<ScaffolderPage />}> <ScaffolderFieldExtensions> <RepoUrlPickerFieldExtension /> <OwnerPickerFieldExtension /> {/*Any other extensions you want to provide*/} </ScaffolderFieldExtensions> </Route>;
More documentation on how to write your own
FieldExtensionsto follow. -
3772de8: Remove the trailing space from a the aria-label of the Template "CHOOSE" button.
-
f430b6c: Don't merge with previous from state on form changes.
-
76f99a1: Export
createScaffolderFieldExtensionto enable the creation of new field extensions. -
1157fa3: Add a
<EntityPicker>field to the scaffolder to pick arbitrary entity kinds, like systems. -
Updated dependencies [e7c5e4b]
-
Updated dependencies [ebe802b]
-
Updated dependencies [49d7ec1]
-
Updated dependencies [1cf1d35]
-
Updated dependencies [deaba2e]
-
Updated depe...
v0.29.2
The @backstage/core package has been split into the following three packages, all published as part of this release.
| Name | Description |
|---|---|
@backstage/core-app-api |
Core app API used by Backstage apps |
@backstage/core-plugin-api |
Core API used by Backstage plugins and apps |
@backstage/core-components |
Core components used by Backstage plugins and apps |
The main purpose of the split is to decouple the plugin API versioning from the app. It is now possible to bring in multiple plugins that depend on different versions of the core API, without any significant overhead.
The existing @backstage/core package still works together with these new packages, meaning that there is no rush to migrate, and we do not recommend that projects are migrated just yet. In general migration will be done by simply replacing usages of @backstage/core with either @backstage/core-plugin-api, @backstage/core-app-api, or @backstage/core-components, depending on what's being imported, but more information will follow!
v0.29.1
Published a new @backstage/backend-test-utils package, which is a package for backend test utilities.