Backstage - release-2022-01-27


@backstage/cli@0.13.0

Minor Changes

  • 1ddf6d9d5a: Removes the previously deprecated remove-plugin command alongside the --lax option to app:build.

Patch Changes

  • c372a5032f: chore(deps): bump jest-transform-yaml from 0.1.1 to 1.0.0
  • 1b4ab0d44c: Updated the dependency warning that is baked into app:serve to only warn about packages that are not allowed to have duplicates.
  • dc46efa2cc: Switched the WebpackDevServer configuration to use client-side detection of the WebSocket protocol.
  • 10086f5873: Upgraded webpack, webpack-dev-server,fork-ts-checker-webpack-plugin, react-dev-utils, and react-hot-loader. Since ForkTsCheckerWebpackPlugin no longer runs ESLint, we now include the ESLintPlugin from eslint-webpack-plugin if the --check flag is passed.

## @backstage/plugin-auth-backend@0.8.0

Minor Changes

  • 67349916ac: The sub claim in Backstage tokens generated by the default Google and OIDC sign-in resolvers are now full entity references of the format <kind>:<namespace>/<name>.

Patch Changes

  • 033493a8af: Running the auth-backend on multiple domains, perhaps different domains depending on the auth.environment, was previously not possible as the domain name of the cookie was taken from backend.baseUrl. This prevented any cookies to be set in the start of the auth flow as the domain of the cookie would not match the domain of the callbackUrl configured in the OAuth app. This change checks if a provider supports custom callbackUrl's to be configured in the application configuration and uses the domain from that, allowing the domain's to match and the cookie to be set.
  • Updated dependencies
    • @backstage/backend-common@0.10.5

## @backstage/plugin-search@0.6.0

Minor Changes

  • 2f0d3d3278: Forwarding classes to HomePageSearchBar instead of using className prop. For custom styles of the HomePageSearchBar, use classes prop instead:

    diff <HomePageSearchBar - className={searchBar} + classes={{ root: classes.searchBar }} placeholder="Search" />

  • 1dbe63ec39: The way labels are controlled on both the <SearchFilter.Checkbox /> and
    <SearchFilter.Select /> components has changed. Previously, the string passed
    on the name prop (which controls the field being filtered on) was also
    rendered as the field label. Now, if you want a label rendered, it must be
    passed on the new label prop. If no label is provided, no label will be
    rendered.

Patch Changes

  • 4aca2a5307: Introduces a <SearchFilter.Autocomplete /> variant, which can be used as either a single- or multi-select autocomplete filter.

    This variant, as well as <SearchFilter.Select />, now also supports loading allowed values asynchronously by passing a function that resolves the list of values to the values prop. (An optional valuesDebounceMs prop may also be provided to control the debounce time).

    Check the search plugin storybook to see how to leverage these new additions.

  • Updated dependencies

    • @backstage/core-components@0.8.6
    • @backstage/search-common@0.2.2

## @backstage/plugin-search-backend@0.4.0

Minor Changes

  • bbfbc755aa: BREAKING Added three additional required properties to createRouter to support filtering search results based on permissions. To make this change to an existing app, add the required parameters to the createRouter call in packages/backend/src/plugins/search.ts:

    ```diff
    export default async function createPlugin({
    logger,
    + permissions,
    discovery,
    config,
    tokenManager,
    }: PluginEnvironment) {
    / ... /

    return await createRouter({
    engine: indexBuilder.getSearchEngine(),
    + types: indexBuilder.getDocumentTypes(),
    + permissions,
    + config,
    logger,
    });
    }
    ```

Patch Changes

  • Updated dependencies
    • @backstage/plugin-search-backend-node@0.4.5
    • @backstage/plugin-auth-backend@0.8.0
    • @backstage/search-common@0.2.2
    • @backstage/backend-common@0.10.5
    • @backstage/plugin-permission-node@0.4.1

## @backstage/backend-common@0.10.5

Patch Changes

  • de9d7eba63: Fixed configuration schema incorrectly declaring backend.listen.address to exist, rather than backend.listen.host, which is the correct key.

## @backstage/backend-test-utils@0.1.15

Patch Changes

  • Updated dependencies
    • @backstage/cli@0.13.0
    • @backstage/backend-common@0.10.5

## @backstage/codemods@0.1.31

Patch Changes

  • Updated dependencies
    • @backstage/core-components@0.8.6
    • @backstage/core-app-api@0.5.1

## @backstage/core-app-api@0.5.1

Patch Changes

  • f959c22787: Asynchronous methods on the identity API can now reliably be called at any time, including early in the bootstrap process or prior to successful sign-in.

    Previously in such situations, a Tried to access IdentityApi before app was loaded error would be thrown. Now, those methods will wait and resolve eventually (as soon as a concrete identity API is provided).

## @backstage/core-components@0.8.6

Patch Changes

  • b97a2460d5: Remove the ignoreChildEvent utility from the sidebar component to avoid conflicts with popovers
  • bdc53553eb: chore(deps): bump react-text-truncate from 0.16.0 to 0.17.0
  • 05f0f44180: chore(deps): bump remark-gfm from 2.0.0 to 3.0.1
  • 15bac1d738: chore(deps): bump react-markdown from 7.1.2 to 8.0.0
  • 7346b5fb96: chore(deps): bump rc-progress from 3.1.4 to 3.2.4
  • 9abb28bb22: Fix issue where component types are not recognized causing the MobileSidebar to not render as intended.
  • 1787694435: Updates styling of Header component by removing flex wrap and add max width of characters for subtitle

## @backstage/create-app@0.4.15

Patch Changes

  • 01b27d547c: Added three additional required properties to the search-backend createRouter function to support filtering search results based on permissions. To make this change to an existing app, add the required parameters to the createRouter call in packages/backend/src/plugins/search.ts:

    ```diff
    export default async function createPlugin({
    logger,
    + permissions,
    discovery,
    config,
    tokenManager,
    }: PluginEnvironment) {
    / ... /

    return await createRouter({
    engine: indexBuilder.getSearchEngine(),
    + types: indexBuilder.getDocumentTypes(),
    + permissions,
    + config,
    logger,
    });
    }
    ```

  • a0d446c8ec: Replaced EntitySystemDiagramCard with EntityCatalogGraphCard

    To make this change to an existing app:

    Add @backstage/catalog-graph-plugin as a dependency in packages/app/package.json

    Apply the following changes to the packages/app/src/components/catalog/EntityPage.tsx file:

    diff + import { + Direction, + EntityCatalogGraphCard, + } from '@backstage/plugin-catalog-graph'; + import { + RELATION_API_CONSUMED_BY, + RELATION_API_PROVIDED_BY, + RELATION_CONSUMES_API, + RELATION_DEPENDENCY_OF, + RELATION_DEPENDS_ON, + RELATION_HAS_PART, + RELATION_PART_OF, + RELATION_PROVIDES_API, + } from '@backstage/catalog-model';

    diff <EntityLayout.Route path="/diagram" title="Diagram"> - <EntitySystemDiagramCard /> + <EntityCatalogGraphCard + variant="gridItem" + direction={Direction.TOP_BOTTOM} + title="System Diagram" + height={700} + relations={[ + RELATION_PART_OF, + RELATION_HAS_PART, + RELATION_API_CONSUMED_BY, + RELATION_API_PROVIDED_BY, + RELATION_CONSUMES_API, + RELATION_PROVIDES_API, + RELATION_DEPENDENCY_OF, + RELATION_DEPENDS_ON, + ]} + unidirectional={false} + /> </EntityLayout.Route>

    diff const cicdContent = ( <Grid item md={6}> <EntityAboutCard variant="gridItem" /> </Grid> + <Grid item md={6} xs={12}> + <EntityCatalogGraphCard variant="gridItem" height={400} /> + </Grid>

    Add the above component in overviewContent, apiPage , systemPage and domainPage` as well.

  • 4aca2a5307: An example instance of a <SearchFilter.Select /> with asynchronously loaded values was added to the composed SearchPage.tsx, allowing searches bound to the techdocs type to be filtered by entity name.

    This is an entirely optional change; if you wish to adopt it, you can make the following (or similar) changes to your search page layout:

    ```diff
    --- a/packages/app/src/components/search/SearchPage.tsx
    +++ b/packages/app/src/components/search/SearchPage.tsx
    @@ -2,6 +2,10 @@ import React from 'react';
    import { makeStyles, Theme, Grid, List, Paper } from '@material-ui/core';

    import { CatalogResultListItem } from '@backstage/plugin-catalog';
    +import {
    + catalogApiRef,
    + CATALOG_FILTER_EXISTS,
    +} from '@backstage/plugin-catalog-react';
    import { DocsResultListItem } from '@backstage/plugin-techdocs';

    import {
    @@ -10,6 +14,7 @@ import {
    SearchResult,
    SearchType,
    DefaultResultListItem,
    + useSearch,
    } from '@backstage/plugin-search';
    import {
    CatalogIcon,
    @@ -18,6 +23,7 @@ import {
    Header,
    Page,
    } from '@backstage/core-components';
    +import { useApi } from '@backstage/core-plugin-api';

    const useStyles = makeStyles((theme: Theme) => ({
    bar: {
    @@ -36,6 +42,8 @@ const useStyles = makeStyles((theme: Theme) => ({

    const SearchPage = () => {
    const classes = useStyles();
    + const { types } = useSearch();
    + const catalogApi = useApi(catalogApiRef);

    return (

    @@ -65,6 +73,27 @@ const SearchPage = () => {
    ]}
    />

    + {types.includes('techdocs') && (
    + {
    + // Return a list of entities which are documented.
    + const { items } = await catalogApi.getEntities({
    + fields: ['metadata.name'],
    + filter: {
    + 'metadata.annotations.backstage.io/techdocs-ref':
    + CATALOG_FILTER_EXISTS,
    + },
    + });
    +
    + const names = items.map(entity => entity.metadata.name);
    + names.sort();
    + return names;
    + }}
    + />
    + )}
    <SearchFilter.Select
    className={classes.filter}
    name="kind"
    ```

  • 1dbe63ec39: A label prop was added to <SearchFilter.* /> components in order to allow
    user-friendly label strings (as well as the option to omit a label). In order
    to maintain labels on your existing filters, add a label prop to them in your
    SearchPage.tsx.

    diff --- a/packages/app/src/components/search/SearchPage.tsx +++ b/packages/app/src/components/search/SearchPage.tsx @@ -96,11 +96,13 @@ const SearchPage = () => { )} <SearchFilter.Select className={classes.filter} + label="Kind" name="kind" values={['Component', 'Template']} /> <SearchFilter.Checkbox className={classes.filter} + label="Lifecycle" name="lifecycle" values={['experimental', 'production']} />

## @backstage/dev-utils@0.2.19

Patch Changes

  • 10086f5873: Bumped react-hot-loader from ^4.12.21 to ^4.13.0.
  • Updated dependencies
    • @backstage/core-components@0.8.6
    • @backstage/core-app-api@0.5.1

## @backstage/search-common@0.2.2

Patch Changes

  • 9a511968b1: - Add optional visibilityPermission property to DocumentCollator type
    • Add new DocumentTypeInfo type for housing information about the document types stored in a search engine.
  • b2e918fa0b: Add optional resourceRef field to the IndexableDocument type for use when authorizing access to documents.
  • 96cbebc629: Add optional query request options containing authorization token to SearchEngine#query.

## @techdocs/cli@0.8.11

Patch Changes

  • 10086f5873: Bumped react-dev-utils from ^12.0.0-next.47 to ^12.0.0-next.60.
  • Updated dependencies
    • @backstage/techdocs-common@0.11.5
    • @backstage/backend-common@0.10.5

## @backstage/techdocs-common@0.11.5

Patch Changes

  • ff93fbeeec: Fix interpolated string for "Failed to generate docs from ..."
  • Updated dependencies
    • @backstage/search-common@0.2.2
    • @backstage/backend-common@0.10.5

## @backstage/plugin-azure-devops@0.1.12

Patch Changes

  • 0f104ecc4d: Updated to support cases where only Azure Pipelines to see Builds. You can use this new feature by adding the dev.azure.com/project and dev.azure.com/build-definition annotations to your catalog-info.yaml files. The Azure DevOps plugin README has more detailed instructions.
  • Updated dependencies
    • @backstage/core-components@0.8.6

## @backstage/plugin-bazaar@0.1.11

Patch Changes

  • Updated dependencies
    • @backstage/core-components@0.8.6
    • @backstage/cli@0.13.0
    • @backstage/plugin-catalog@0.7.10

## @backstage/plugin-catalog@0.7.10

Patch Changes

  • aac316279f: Deprecated EntitySystemDiagramCard
    EntitySystemDiagramCard is replaced by EntityCatalogGraphCard which is imported from @backstage/plugin-catalog-graph. This component will be removed in an upcoming release
  • Updated dependencies
    • @backstage/core-components@0.8.6

## @backstage/plugin-catalog-backend@0.21.1

Patch Changes

  • 4f5bde47e9: Add support for permissions to the DefaultCatalogCollator.
  • Updated dependencies
    • @backstage/search-common@0.2.2
    • @backstage/backend-common@0.10.5
    • @backstage/plugin-permission-node@0.4.1

## @backstage/plugin-catalog-graph@0.2.8

Patch Changes

  • a3c4438abf: Deprecated the external catalogEntity route as this is now imported directly from @backstage/plugin-catalog-react instead.

    This means you can remove the route binding from your App.tsx:

    diff - bind(catalogGraphPlugin.externalRoutes, { - catalogEntity: catalogPlugin.routes.catalogEntity, - });

  • Updated dependencies

    • @backstage/core-components@0.8.6

## @backstage/plugin-explore@0.3.27

Patch Changes

  • a3c4438abf: Deprecated the external catalogEntity route as this is now imported directly from @backstage/plugin-catalog-react instead.

    This means you can remove the route binding from your App.tsx:

    diff - bind(explorePlugin.externalRoutes, { - catalogEntity: catalogPlugin.routes.catalogEntity, - });

  • Updated dependencies

    • @backstage/core-components@0.8.6

## @backstage/plugin-gcp-projects@0.3.15

Patch Changes

  • 977c87a905: Pin the react-router-dom version to 6.0.0-beta.0. This avoids issues caused by newer versions of the package being installed.
  • Updated dependencies
    • @backstage/core-components@0.8.6

## @backstage/plugin-github-actions@0.4.33

Patch Changes

  • a9bede36e1: Update GitHub OAuth documentation to include it must be created as a GitHub Organization OAuth application.
  • Updated dependencies
    • @backstage/core-components@0.8.6

## @backstage/plugin-home@0.4.12

Patch Changes

  • Updated dependencies
    • @backstage/core-components@0.8.6
    • @backstage/plugin-search@0.6.0

## @backstage/plugin-kubernetes-backend@0.4.5

Patch Changes

  • 8fc0d122e8: If serviceAccountToken not provided, use default config file from cluster
  • Updated dependencies
    • @backstage/backend-common@0.10.5

## @backstage/plugin-permission-backend@0.4.1

Patch Changes

  • Updated dependencies
    • @backstage/plugin-auth-backend@0.8.0
    • @backstage/backend-common@0.10.5
    • @backstage/plugin-permission-node@0.4.1

## @backstage/plugin-permission-node@0.4.1

Patch Changes

  • Updated dependencies
    • @backstage/plugin-auth-backend@0.8.0
    • @backstage/backend-common@0.10.5

## @backstage/plugin-scaffolder-backend@0.15.22

Patch Changes

  • b09dd8f43b: chore(deps): bump @gitbeaker/node from 34.6.0 to 35.1.0
  • ac2f1eeec0: This change is for adding the option of inputs on the github:actions:dispatch Backstage Action. This will allow users to pass data from Backstage to the GitHub Action.
  • 0d5e846a78: Expose a new option to provide additional template filters via @backstage/scaffolder-backend's createRouter() function.
  • Updated dependencies
    • @backstage/plugin-catalog-backend@0.21.1
    • @backstage/backend-common@0.10.5

## @backstage/plugin-search-backend-node@0.4.5

Patch Changes

  • f6389e9e5d: Track visibility permissions by document type in IndexBuilder
  • Updated dependencies
    • @backstage/search-common@0.2.2

## @backstage/plugin-sonarqube@0.2.14

Patch Changes

  • 7346b5fb96: chore(deps): bump rc-progress from 3.1.4 to 3.2.4
  • Updated dependencies
    • @backstage/core-components@0.8.6

## @backstage/plugin-tech-insights-backend@0.2.2

Patch Changes

  • bbb6622752: Update README to match config options.
  • Updated dependencies
    • @backstage/backend-common@0.10.5

## @backstage/plugin-techdocs@0.13.1

Patch Changes

  • bdc53553eb: chore(deps): bump react-text-truncate from 0.16.0 to 0.17.0
  • a64f99f734: Code snippets now include a "copy to clipboard" button.
  • Updated dependencies
    • @backstage/core-components@0.8.6
    • @backstage/plugin-search@0.6.0
    • @backstage/plugin-catalog@0.7.10

## @backstage/plugin-techdocs-backend@0.13.1

Patch Changes

  • 4682340457: Add support for permissions to the DefaultTechDocsCollator.
  • Updated dependencies
    • @backstage/search-common@0.2.2
    • @backstage/techdocs-common@0.11.5
    • @backstage/backend-common@0.10.5

## example-app@0.2.62

Patch Changes

  • Updated dependencies
    • @backstage/core-components@0.8.6
    • @backstage/plugin-catalog-graph@0.2.8
    • @backstage/cli@0.13.0
    • @backstage/plugin-techdocs@0.13.1
    • @backstage/plugin-search@0.6.0
    • @backstage/plugin-explore@0.3.27
    • @backstage/search-common@0.2.2
    • @backstage/plugin-azure-devops@0.1.12
    • @backstage/plugin-catalog@0.7.10
    • @backstage/plugin-github-actions@0.4.33
    • @backstage/plugin-gcp-projects@0.3.15
    • @backstage/core-app-api@0.5.1
    • @backstage/plugin-home@0.4.12

## example-backend@0.2.62

Patch Changes

  • Updated dependencies
    • @backstage/plugin-search-backend-node@0.4.5
    • @backstage/plugin-catalog-backend@0.21.1
    • @backstage/plugin-scaffolder-backend@0.15.22
    • @backstage/plugin-kubernetes-backend@0.4.5
    • @backstage/plugin-auth-backend@0.8.0
    • @backstage/plugin-search-backend@0.4.0
    • @backstage/plugin-tech-insights-backend@0.2.2
    • @backstage/plugin-techdocs-backend@0.13.1
    • @backstage/backend-common@0.10.5
    • example-app@0.2.62
    • @backstage/plugin-permission-backend@0.4.1
    • @backstage/plugin-permission-node@0.4.1

## embedded-techdocs-app@0.2.61

Patch Changes

  • Updated dependencies
    • @backstage/core-components@0.8.6
    • @backstage/cli@0.13.0
    • @backstage/plugin-techdocs@0.13.1
    • @backstage/plugin-catalog@0.7.10
    • @backstage/core-app-api@0.5.1

Details

date
Jan. 27, 2022, 1:13 p.m.
name
release-2022-01-27
type
Major
👇
Register or login to:
  • 🔍View and search all Backstage releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google
or