Release v1.6.0-next.0
@backstage/plugin-azure-devops@0.2.0-next.0
Minor Changes
-
6c1c59b96e: Added README card
EntityAzureReadmeCardfor Azure Devops.To get the README component working you'll need to do the following two steps:
-
First we need to add the @backstage/plugin-azure-devops package to your frontend app:
From your Backstage root directoryyarn add --cwd packages/app @backstage/plugin-azure-devops -
Second we need to add the
EntityAzureReadmeCardextension to the entity page in your app:// In packages/app/src/components/catalog/EntityPage.tsx
import {
EntityAzureReadmeCard,
isAzureDevOpsAvailable,
} from '@backstage/plugin-azure-devops';
// As it is a card, you can customize it the way you prefer
// For example in the Service section
const overviewContent = (
<Grid container spacing={3} alignItems="stretch">
<EntitySwitch>
<EntitySwitch.Case if={isAzureDevOpsAvailable}>
<Grid item md={6}>
...
</Grid>
<Grid item md={6}>
<EntityAzureReadmeCard maxHeight={350} />
</Grid>
</EntitySwitch.Case>
</EntitySwitch>
</Grid>
);
Notes:
- You'll need to add the
EntitySwitch.Caseabove from step 2 to all the entity sections you want to see Readme in. For example if you wanted to see Readme when looking at Website entities then you would need to add this to thewebsiteEntityPagesection. - The
ifprop is optional on theEntitySwitch.Case, you can remove it if you always want to see the tab even if the entity being viewed does not have the needed annotation - The
maxHeightproperty on theEntityAzureReadmeCardwill set the maximum screen size you would like to see, if not set it will default to 100%
-
Patch Changes
- 3f739be9d9: Minor API signatures cleanup
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/plugin-azure-devops-common@0.3.0-next.0
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/plugin-catalog-react@1.1.4-next.0
@backstage/plugin-azure-devops-common@0.3.0-next.0
Minor Changes
-
6c1c59b96e: Added README card
EntityAzureReadmeCardfor Azure Devops.To get the README component working you'll need to do the following two steps:
-
First we need to add the @backstage/plugin-azure-devops package to your frontend app:
From your Backstage root directoryyarn add --cwd packages/app @backstage/plugin-azure-devops -
Second we need to add the
EntityAzureReadmeCardextension to the entity page in your app:// In packages/app/src/components/catalog/EntityPage.tsx
import {
EntityAzureReadmeCard,
isAzureDevOpsAvailable,
} from '@backstage/plugin-azure-devops';
// As it is a card, you can customize it the way you prefer
// For example in the Service section
const overviewContent = (
<Grid container spacing={3} alignItems="stretch">
<EntitySwitch>
<EntitySwitch.Case if={isAzureDevOpsAvailable}>
<Grid item md={6}>
...
</Grid>
<Grid item md={6}>
<EntityAzureReadmeCard maxHeight={350} />
</Grid>
</EntitySwitch.Case>
</EntitySwitch>
</Grid>
);
Notes:
- You'll need to add the
EntitySwitch.Caseabove from step 2 to all the entity sections you want to see Readme in. For example if you wanted to see Readme when looking at Website entities then you would need to add this to thewebsiteEntityPagesection. - The
ifprop is optional on theEntitySwitch.Case, you can remove it if you always want to see the tab even if the entity being viewed does not have the needed annotation - The
maxHeightproperty on theEntityAzureReadmeCardwill set the maximum screen size you would like to see, if not set it will default to 100%
-
Patch Changes
- 3f739be9d9: Minor API signatures cleanup
@backstage/plugin-dynatrace@0.2.0-next.0
Minor Changes
-
e44c0b3811: New features:
- Some visual improvements to the table that displays Problems
- Added support for viewing recent Synthetics results using
- Added some additional linking to the configured Dynatrace instance
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/plugin-catalog-react@1.1.4-next.0
@backstage/plugin-scaffolder@1.6.0-next.0
Minor Changes
- 3424a8075d: Added support for
asyncvalidation for thenextversion of the plugin - 192d856495: Implementing review step for the scaffolder under
create/next
Patch Changes
- 9ffb75616d: Fix bug with empty strings in
EntityPicker - 3f739be9d9: Minor API signatures cleanup
- 9097278df2: Updated dependency
json-schema-libraryto^7.0.0. - bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/catalog-client@1.0.5-next.0
- @backstage/integration-react@1.1.4-next.0
- @backstage/integration@1.3.1-next.0
- @backstage/plugin-scaffolder-common@1.2.0-next.0
- @backstage/plugin-catalog-react@1.1.4-next.0
- @backstage/plugin-permission-react@0.4.5-next.0
- @backstage/plugin-catalog-common@1.0.6-next.0
@backstage/plugin-scaffolder-backend@1.6.0-next.0
Minor Changes
-
ea2eee9e6a: Add the option for a homepage when using the
github:publishaction -
8872cc735d: Fixed a bug in plugin-scaffolder-backend where it ignores the skip migration database options.
To use this new implementation you need to create the instance of
DatabaseTaskStoreusing thePluginDatabaseManagerinstead ofKnex;import { DatabaseManager, getRootLogger, loadBackendConfig } from '@backstage/backend-common';
import { DatabaseTaskStore } from '@backstage/plugin-scaffolder-backend';
const config = await loadBackendConfig({ argv: process.argv, logger: getRootLogger() });
const databaseManager = DatabaseManager.fromConfig(config, { migrations: { skip: true } });
const databaseTaskStore = await DatabaseTaskStore.create(databaseManager); -
1ff817b3f0: add entity metadata to the template info type
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - 2df9955f4a: Removed the depreacated
publish:fileaction, use the template editor to test templates instead. - ef9ab322de: Minor API signatures cleanup
- Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/plugin-catalog-backend@1.3.2-next.0
- @backstage/backend-plugin-api@0.1.2-next.0
- @backstage/catalog-client@1.0.5-next.0
- @backstage/integration@1.3.1-next.0
- @backstage/plugin-scaffolder-common@1.2.0-next.0
- @backstage/plugin-catalog-node@1.0.2-next.0
@backstage/plugin-scaffolder-common@1.2.0-next.0
Minor Changes
- 1ff817b3f0: add entity metadata to the template info type
@backstage/plugin-search-backend-module-pg@0.4.0-next.0
Minor Changes
-
8872cc735d: Fixed a bug in search-backend-module-pg where it ignores the skip migration database options when using the database.
To use this new implementation you need to create the instance of
DatabaseDocumentStoreusing thePluginDatabaseManagerinstead ofKnex;import { DatabaseManager, getRootLogger, loadBackendConfig } from '@backstage/backend-common';
import { DatabaseDocumentStore } from '@backstage/plugin-search-backend-module-pg';
const config = await loadBackendConfig({ argv: process.argv, logger: getRootLogger() });
const databaseManager = DatabaseManager.fromConfig(config, { migrations: { skip: true } });
const databaseDocumentStore = await DatabaseDocumentStore.create(databaseManager);
Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/plugin-search-backend-node@1.0.2-next.0
- @backstage/plugin-search-common@1.0.1-next.0
@backstage/app-defaults@1.0.6-next.0
Patch Changes
- Updated dependencies
- @backstage/core-app-api@1.0.6-next.0
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/plugin-permission-react@0.4.5-next.0
@backstage/backend-app-api@0.2.1-next.0
Patch Changes
- de3347ca74: Updated usages of
ServiceFactory. - Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/backend-tasks@0.3.5-next.0
- @backstage/backend-plugin-api@0.1.2-next.0
- @backstage/plugin-permission-node@0.6.5-next.0
@backstage/backend-common@0.15.1-next.0
Patch Changes
- 399286d7dd: Workaround support for
swcinstead ofsucrase - bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/config-loader@1.1.4-next.0
- @backstage/integration@1.3.1-next.0
@backstage/backend-defaults@0.1.1-next.0
Patch Changes
- de3347ca74: Updated usages of
ServiceFactory. - Updated dependencies
- @backstage/backend-plugin-api@0.1.2-next.0
- @backstage/backend-app-api@0.2.1-next.0
@backstage/backend-plugin-api@0.1.2-next.0
Patch Changes
- eef91a2558: Simplified the
ServiceFactorytype and removedAnyServiceFactory. - 68513f169a: When defining a new
ServiceRefyou can now also include adefaultFactory, which will be used to construct instances of the service in case there is no explicit factory defined. - Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/backend-tasks@0.3.5-next.0
- @backstage/plugin-permission-common@0.6.4-next.0
@backstage/backend-tasks@0.3.5-next.0
Patch Changes
- 243533ecdc: Added support to mysql on some raw queries
- 8872cc735d: Fixed a bug where the database option to skip migrations was ignored.
- Updated dependencies
- @backstage/backend-common@0.15.1-next.0
@backstage/backend-test-utils@0.1.28-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - de3347ca74: Updated usages of
ServiceFactory. - Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/cli@0.18.2-next.0
- @backstage/backend-plugin-api@0.1.2-next.0
- @backstage/backend-app-api@0.2.1-next.0
@backstage/catalog-client@1.0.5-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - ef9ab322de: Minor API signatures cleanup
@backstage/cli@0.18.2-next.0
Patch Changes
-
6ae0f6a719: Switch out
sucraseforswcfor transpilation.sucraseis a little more relaxed when it comes to supporting the ways of mocking injest. You might have to make some changes to your tests to meet thejeststandard and spec if your tests seems to start failing.Mocks that look like this are invalid, and they will throw a reference error in line with the
jestdocumentation here on example 3const mockCommandExists = jest.fn();
jest.mock('command-exists', () => mockCommandExists);You might need to update these mocks to look a little like the following to defer the call to the
jest.fn()spy until the mock is called.const mockCommandExists = jest.fn();
jest.mock(
'command-exists',
() =>
(...args: any[]) =>
commandExists(...args),
);Also, imports are immutable. So it means that you might get some errors when trying to use
jest.spyOnwith starred imports. You might see an error like this:TypeError: Cannot redefine property: executeFrameHandlerStrategy
at Function.defineProperty (<anonymous>)
20 | import { AuthResolverContext } from '../types';
21 |
> 22 | const mockFrameHandler = jest.spyOn(
| ^
23 | helpers,
24 | 'executeFrameHandlerStrategy',
25 | ) as unknown as jest.MockedFunction<This happens when you try to do
import * as something from './something'and thenjest.spyOn(something, 'test). You will need to add ajest.mockcall to mock out the required starred import to returnjest.fn()functions from the start. Something like this fixes the above test:jest.mock('../../helpers', () => ({
executeFrameHandlerStrategy: jest.fn(),
}));You can also remove any occurrence of
hot(App)and any import ofreact-hot-loaderif you're using the that package locally, as all this has now been replaced with React Refresh which you will get out of the box with the new CLI.Note If you're experiencing difficulties with running tests after the migration, please reach out to us on Discord to see if we can help, or raise an issue. But in the meantime you can switch back to the existing behaviour by using the following config in your root
package.json."jest": {
"transform": {
"\\.(js|jsx|ts|tsx|mjs|cjs)$": "@backstage/cli/config/jestSucraseTransform.js",
"\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$": "@backstage/cli/config/jestFileTransform.js",
"\\.(yaml)$": "jest-transform-yaml"
}
} -
bf5e9030eb: Updated dependency
mswto^0.45.0. -
Updated dependencies
- @backstage/config-loader@1.1.4-next.0
- @backstage/release-manifests@0.0.6-next.0
@backstage/config-loader@1.1.4-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0.
@backstage/core-app-api@1.0.6-next.0
Patch Changes
- 744fea158b: Added
getSystemIcons()function to theAppContextavailable throughuseAppthat will pull a list of all the icons that have been registered in the App. - bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
@backstage/core-components@0.11.1-next.0
Patch Changes
- b29c44d895: Adds code to generate ids for headers parsed through the MarkdownContent component.
- bf5e9030eb: Updated dependency
mswto^0.45.0. - c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings
- Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
@backstage/core-plugin-api@1.0.6-next.0
Patch Changes
- 744fea158b: Added
getSystemIcons()function to theAppContextavailable throughuseAppthat will pull a list of all the icons that have been registered in the App. - bf5e9030eb: Updated dependency
mswto^0.45.0. - ef9ab322de: Minor API signatures cleanup
@backstage/create-app@0.4.31-next.0
Patch Changes
-
e83de28e36: Fix typo in the documentation
-
208d6780c9: The
packages/backend/Dockerfilereceived a couple of updates, it now looks as follows:FROM node:16-bullseye-slim
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
RUN apt-get update && \
apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \
rm -rf /var/lib/apt/lists/* && \
yarn config set python /usr/bin/python3
# From here on we use the least-privileged `node` user to run the backend.
USER node
WORKDIR /app
# This switches many Node.js dependencies to production mode.
ENV NODE_ENV production
# Copy repo skeleton first, to avoid unnecessary docker cache invalidation.
# The skeleton contains the package.json of each package in the monorepo,
# and along with yarn.lock and the root package.json, that's enough to run yarn install.
COPY yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./
RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz
RUN yarn install --frozen-lockfile --production --network-timeout 300000 && rm -rf "$(yarn cache dir)"
# Then copy the rest of the backend bundle, along with any other files we might want.
COPY packages/backend/dist/bundle.tar.gz app-config*.yaml ./
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz
CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]The two notable changes are that a
USER nodeinstruction has been added and the ordering of instructions has been changed accordingly. This means that the app will now be running using the least-privilegednodeuser. In order for this to work we now need to make sure that all app files are owned by thenodeuser, which we do by adding the--chown=node:nodeoption to theCOPYinstructions.The second change is the addition of
ENV NODE_ENV production, which ensured that all Node.js modules run in production mode. If you apply this change to an existing app, note that one of the more significant changes is that this switches the log formatting to use the default production format, JSON. Rather than your log lines looking like this:2022-08-10T11:36:05.478Z catalog info Performing database migration type=pluginThey will now look like this:
{"level":"info","message":"Performing database migration","plugin":"catalog","service":"backstage","type":"plugin"}If you wish to keep the existing format, you can override this change by applying the following change to
packages/backend/src/index.ts:getRootLogger,
+ setRootLogger,
+ createRootLogger,
+ coloredFormat,
useHotMemoize,
...
ServerTokenManager,
} from '@backstage/backend-common';
...
async function main() {
+ setRootLogger(createRootLogger({ format: coloredFormat }));
+
const config = await loadBackendConfig({ -
c0a08fd08c: Added
EntityLinksCardto the systemEntityPage.For an existing installation where you want to display the links card for entity pages of kind
systemyou should make the following adjustment topackages/app/src/components/catalog/EntityPage.tsxconst systemPage = (
...
<Grid item md={6} xs={12}>
<EntityCatalogGraphCard variant="gridItem" height={400} />
</Grid>
+ <Grid item md={4} xs={12}>
+ <EntityLinksCard />
+ </Grid>
- <Grid item md={6}>
+ <Grid item md={8}>
<EntityHasComponentsCard variant="gridItem" />
</Grid>
...
);
@backstage/dev-utils@1.0.6-next.0
Patch Changes
- 4c5e85ddf3: Removed the dependency and setup of
react-hot-loader, since the@backstage/clinow usesswcwithReact Refreshinstead. - Updated dependencies
- @backstage/core-app-api@1.0.6-next.0
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/integration-react@1.1.4-next.0
- @backstage/test-utils@1.1.4-next.0
- @backstage/plugin-catalog-react@1.1.4-next.0
- @backstage/app-defaults@1.0.6-next.0
@backstage/integration@1.3.1-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0.
@backstage/integration-react@1.1.4-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/integration@1.3.1-next.0
@backstage/release-manifests@0.0.6-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0.
@techdocs/cli@1.2.1-next.0
Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/plugin-techdocs-node@1.3.1-next.0
@backstage/test-utils@1.1.4-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/core-app-api@1.0.6-next.0
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/plugin-permission-common@0.6.4-next.0
- @backstage/plugin-permission-react@0.4.5-next.0
@backstage/plugin-adr@0.2.1-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings
- Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/integration-react@1.1.4-next.0
- @backstage/plugin-catalog-react@1.1.4-next.0
- @backstage/plugin-search-react@1.0.2-next.0
- @backstage/plugin-adr-common@0.2.1-next.0
- @backstage/plugin-search-common@1.0.1-next.0
@backstage/plugin-adr-backend@0.2.1-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/catalog-client@1.0.5-next.0
- @backstage/integration@1.3.1-next.0
- @backstage/plugin-adr-common@0.2.1-next.0
- @backstage/plugin-search-common@1.0.1-next.0
@backstage/plugin-adr-common@0.2.1-next.0
Patch Changes
- Updated dependencies
- @backstage/integration@1.3.1-next.0
- @backstage/plugin-search-common@1.0.1-next.0
@backstage/plugin-airbrake@0.3.9-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/test-utils@1.1.4-next.0
- @backstage/dev-utils@1.0.6-next.0
- @backstage/plugin-catalog-react@1.1.4-next.0
@backstage/plugin-airbrake-backend@0.2.9-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/backend-common@0.15.1-next.0
@backstage/plugin-allure@0.1.25-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/plugin-catalog-react@1.1.4-next.0
@backstage/plugin-analytics-module-ga@0.1.20-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
@backstage/plugin-apache-airflow@0.2.2-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings
- Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
@backstage/plugin-api-docs@0.8.9-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - ef9ab322de: Minor API signatures cleanup
- c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings
- Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
- @backstage/plugin-catalog-react@1.1.4-next.0
- @backstage/plugin-catalog@1.5.1-next.0
@backstage/plugin-apollo-explorer@0.1.2-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - ef9ab322de: Minor API signatures cleanup
- Updated dependencies
- @backstage/core-plugin-api@1.0.6-next.0
- @backstage/core-components@0.11.1-next.0
@backstage/plugin-app-backend@0.3.36-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - 8872cc735d: Fixed a bug where the database option to skip migrations was ignored.
- Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/config-loader@1.1.4-next.0
@backstage/plugin-auth-backend@0.15.2-next.0
Patch Changes
- bf5e9030eb: Updated dependency
mswto^0.45.0. - Updated dependencies
- @backstage/backend-common@0.15.1-next.0
- @backstage/catalog-client@1.0.5-next.0
- @backstage/plugin-auth-node@0.2.5-next.0