Skip to content

v0.2.0

Compare
Choose a tag to compare
@Rugvip Rugvip released this 29 Dec 11:32
· 48923 commits to master since this release
1832947

@backstage/backend-common@0.2.0

Minor Changes

  • 5249594: Add service discovery interface and implement for single host deployments

    Fixes #1847, #2596

    Went with an interface similar to the frontend DiscoveryApi, since it's dead simple but still provides a lot of flexibility in the implementation.

    Also ended up with two different methods, one for internal endpoint discovery and one for external. The two use-cases are explained a bit more in the docs, but basically it's service-to-service vs callback URLs.

    This did get me thinking about uniqueness and that we're heading towards a global namespace for backend plugin IDs. That's probably fine, but if we're happy with that we should leverage it a bit more to simplify the backend setup. For example we'd have each plugin provide its own ID and not manually mount on paths in the backend.

    Draft until we're happy with the implementation, then I can add more docs and changelog entry. Also didn't go on a thorough hunt for places where discovery can be used, but I don't think there are many since it's been pretty awkward to do service-to-service communication.

  • 56e4eb5: Make CSP configurable to fix app-backend served app not being able to fetch

    See discussion here on discord

  • e37c0a0: Use localhost to fall back to IPv4 if IPv6 isn't available

  • f00ca3c: Auto-create plugin databases

    Relates to #1598.

    This creates databases for plugins before handing off control to plugins.

    The list of plugins currently need to be hard-coded depending on the installed plugins. A later PR will properly refactor the code to provide a factory pattern where plugins specify what they need, and Knex instances will be provided based on the input.

  • 6579769: Add the ability to import components from Bitbucket Server to the service catalog

  • 8c2b76e: BREAKING CHANGE

    The existing loading of additional config files like app-config.development.yaml using APP_ENV or NODE_ENV has been removed.
    Instead, the CLI and backend process now accept one or more --config flags to load config files.

    Without passing any flags, app-config.yaml and, if it exists, app-config.local.yaml will be loaded.
    If passing any --config <path> flags, only those files will be loaded, NOT the default app-config.yaml one.

    The old behaviour of for example APP_ENV=development can be replicated using the following flags:

    --config ../../app-config.yaml --config ../../app-config.development.yaml
  • 8afce08: Use APP_ENV before NODE_ENV for determining what config to load

  • 7bbeb04: Change loadBackendConfig to return the config directly

Patch Changes

  • 440a17b: Added new UrlReader interface for reading opaque data from URLs with different providers.

    This new URL reading system is intended as a replacement for the various integrations towards
    external systems in the catalog, scaffolder, and techdocs. It is configured via a new top-level
    config section called 'integrations'.

    Along with the UrlReader interface is a new UrlReaders class, which exposes static factory
    methods for instantiating readers that can read from many different integrations simultaneously.

  • Updated dependencies [8c2b76e]

  • Updated dependencies [ce5512b]

    • @backstage/config-loader@0.2.0
    • @backstage/test-utils@0.1.2

@backstage/catalog-model@0.2.0

Minor Changes

  • 3a42365: Add handling and docs for entity references

  • e0be86b: Entirely case insensitive read path of entities

  • f70a528: Add the User & Group entities

    A user describes a person, such as an employee, a contractor, or similar. Users belong to Group entities in the catalog.

    A group describes an organizational entity, such as for example a team, a business unit, or a loose collection of people in an interest group. Members of these groups are modeled in the catalog as kind User.

  • 12b5fe9: Add ApiDefinitionAtLocationProcessor that allows to load a API definition from another location

  • a768a07: Add the ability to import users from GitHub Organization into the catalog.

  • 5adfc00: Changes the various kind policies into a new type KindValidator.

    Adds CatalogProcessor#validateEntityKind that makes use of the above
    validators. This moves entity schema validity checking away from entity
    policies and into processors, centralizing the extension points into the
    processor chain.

  • b3d5796: Enable adding locations for config files that does not yet exist by adding a flag to api request

Patch Changes

  • fa56f46: Fix documentation and validation message for tags

@backstage/cli@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • 1d0aec7: Upgrade dependency esbuild@0.7.7

  • 72f6cda: Adds a new BACKSTAGE_CLI_BUILD_PARELLEL environment variable to control
    parallelism for some build steps.

    This is useful in CI to help avoid out of memory issues when using terser. The
    BACKSTAGE_CLI_BUILD_PARELLEL environment variable can be set to
    true | false | [integer] to override the default behaviour. See
    terser-webpack-plugin
    for more details.

  • 8c2b76e: BREAKING CHANGE

    The existing loading of additional config files like app-config.development.yaml using APP_ENV or NODE_ENV has been removed.
    Instead, the CLI and backend process now accept one or more --config flags to load config files.

    Without passing any flags, app-config.yaml and, if it exists, app-config.local.yaml will be loaded.
    If passing any --config <path> flags, only those files will be loaded, NOT the default app-config.yaml one.

    The old behaviour of for example APP_ENV=development can be replicated using the following flags:

    --config ../../app-config.yaml --config ../../app-config.development.yaml
  • 8afce08: Use APP_ENV before NODE_ENV for determining what config to load

Patch Changes

  • 3472c8b: Add codeowners processor

    • Include ESNext.Promise in TypeScript compilation
  • a3840be: Upgrade dependency rollup-plugin-typescript2 to ^0.27.3

  • cba4e4d: Including source maps with all packages

  • 9a3b3db: Fixed duplicate help output, and print help on invalid command

  • 7bbeb04: Change loadBackendConfig to return the config directly

  • Updated dependencies [8c2b76e]

  • Updated dependencies [ce5512b]

    • @backstage/config-loader@0.2.0

@backstage/config-loader@0.2.0

Minor Changes

  • 8c2b76e: BREAKING CHANGE

    The existing loading of additional config files like app-config.development.yaml using APP_ENV or NODE_ENV has been removed.
    Instead, the CLI and backend process now accept one or more --config flags to load config files.

    Without passing any flags, app-config.yaml and, if it exists, app-config.local.yaml will be loaded.
    If passing any --config <path> flags, only those files will be loaded, NOT the default app-config.yaml one.

    The old behaviour of for example APP_ENV=development can be replicated using the following flags:

    --config ../../app-config.yaml --config ../../app-config.development.yaml
  • ce5512b: Added support for new shorthand when defining secrets, where $env: ENV can be used instead of $secret: { env: ENV } etc.

@backstage/core@0.2.0

Minor Changes

  • 819a702: Add SAML login to backstage

  • 482b631: Fix dense in Structured Metadata Table

  • 1c60f71: Added EmptyState component

  • b79017f: Updated the GithubAuth.create method to configure the default scope of the Github Auth Api. As a result the
    default scope is configurable when overwriting the Core Api in the app.

    GithubAuth.create({
      discoveryApi,
      oauthRequestApi,
      defaultScopes: ['read:user', 'repo'],
    }),
    
  • 6d97d2d: The InfoCard variant 'height100' is deprecated. Use variant 'gridItem' instead.

    When the InfoCard is displayed as a grid item within a grid, you may want items to have the same height for all items.
    Set to the 'gridItem' variant to display the InfoCard with full height suitable for Grid:
    <InfoCard variant="gridItem">...</InfoCard>

    Changed the InfoCards in '@backstage/plugin-github-actions', '@backstage/plugin-jenkins', '@backstage/plugin-lighthouse'
    to pass an optional variant to the corresponding card of the plugin.

    As a result the overview content of the EntityPage shows cards with full height suitable for Grid.

Patch Changes

  • ae59833: Fix banner position and color

    This PR closes: #2245

    The "fixed" props added to control the position of the banner. When it is set to true the banner will be shown in bottom of that page and the width will be based on the content of the message.

  • 144c66d: Fixed banner component position in DismissableBanner component

  • 93a3fa3: Add forwardRef to the SidebarItem

  • 782f3b3: add test case for Progress component

  • 2713f28: fix the warning of all the core components test cases

  • 406015b: Update ItemCard headers to pass color contrast standards.

  • 82759d3: rename stories folder top Chip

  • ac8d5d5: update the test cases of CodeSnippet component

  • ebca83d: add test cases for Status components

  • aca7933: update ItemCard component and it's story

  • c0d5242: Proper render boolean values on StructuredMetadataTable component

  • 3beb5c9: make ErrorPage responsive + fix the test case

  • 754e31d: give aria-label attribute to Status Ok, Warning and Error

  • 1611c6d: fix the responsive of page story

  • Updated dependencies [819a702]

  • Updated dependencies [ae59833]

  • Updated dependencies [0d4459c]

  • Updated dependencies [cbbd271]

  • Updated dependencies [b79017f]

  • Updated dependencies [26e69ab]

  • Updated dependencies [cbab5bb]

    • @backstage/core-api@0.2.0
    • @backstage/theme@0.2.0

@backstage/core-api@0.2.0

Minor Changes

  • 819a702: Add SAML login to backstage

  • b79017f: Updated the GithubAuth.create method to configure the default scope of the Github Auth Api. As a result the
    default scope is configurable when overwriting the Core Api in the app.

    GithubAuth.create({
      discoveryApi,
      oauthRequestApi,
      defaultScopes: ['read:user', 'repo'],
    }),
    
  • cbab5bb: Refactored the FeatureFlagsApi to make it easier to re-implement. Existing usage of particularly getUserFlags can be replaced with isActive() or save().

Patch Changes

  • cbbd271: Add initial RouteRefRegistry

    Starting out some work to bring routing back and working as part of the work towards finalizing #1536

    This is some of the groundwork of an experiment we're working on to enable routing via RouteRefs, while letting the app itself look something like this:

    const App = () => (
      <BackstageRoutes>
        <Navigate key="/" to="/catalog" />
        <CatalogRoute path="/catalog">
          {' '}
          // catalogRouteRef
          <EntityPage type="service">
            <OverviewContent path="/">
              <WidgetA />
              <WidgetB />
            </OverviewContent>
            <CICDSwitcher path="/ci-cd" />
            <StatusRoute path="/api-status" /> // statusRouteRef
            <ApiDocsRoute path="/api" />
            <DocsRoute path="/docs" />
          </EntityPage>
          <EntityPage type="website">
            <OverviewContent path="/">
              <WidgetA />
              <WidgetB />
            </OverviewContent>
            <CICDSwitcher path="/ci-cd" />
            <SentryRoute path="/sentry" /> // sentryRouteRef
            <DocsRoute path="/docs" />
          </EntityPage>
          <EntityPage>
            <OverviewContent path="/">
              <WidgetA />
              <WidgetB />
            </OverviewContent>
            <DocsRoute path="/docs" />
          </EntityPage>
        </CatalogRoute>
        <DocsRoute path="/docs" />
        <TechRadarRoute path="/tech-radar" width={1500} height={800} />
        <GraphiQLRoute path="/graphiql" />
        <LighthouseRoute path="/lighthouse" />
      </BackstageRoutes>
    );

    As part of inverting the composition of the app, route refs and routing in general was somewhat broken, intentionally. Right now it's not really possible to easily route to different parts of the app from a plugin, or even different parts of the plugin that are not within the same router.

    The core part of the experiment is to construct a map of ApiRef[] -> path overrides. Each key in the map is the list of route refs to traversed to reach a leaf in the routing tree, and the value is the path override at that point. For example, the above tree would add entries like [techDocsRouteRef] -> '/docs', and [entityRouteRef, apiDocsRouteRef] -> '/api'. By mapping out the entire app in this structure, the idea is that we can navigate to any point in the app using RouteRefs.

    The RouteRefRegistry is an implementation of such a map, and the idea is to add it in master to make it a bit easier to experiment and iterate. This is not an exposed API at this point.

    We've explored a couple of alternatives for how to enable routing, but it's boiled down to either a solution centred around the route map mentioned above, or treating all routes as static and globally unique, with no room for flexibility, customization or conflicts between different plugins. We're starting out pursuing this options 😁. We also expect that a the app-wide routing table will make things like dynamic loading a lot cleaner, as there would be a much more clear handoff between the main chunk and dynamic chunks.

  • 26e69ab: Remove cost insights example client from demo app and export from plugin
    Create cost insights dev plugin using example client
    Make PluginConfig and dependent types public

  • Updated dependencies [ae59833]

  • Updated dependencies [0d4459c]

    • @backstage/theme@0.2.0
    • @backstage/test-utils@0.1.2

@backstage/create-app@0.2.0

Minor Changes

  • 6d29605: Change the default backend plugin mount point to /api

  • 5249594: Add service discovery interface and implement for single host deployments

    Fixes #1847, #2596

    Went with an interface similar to the frontend DiscoveryApi, since it's dead simple but still provides a lot of flexibility in the implementation.

    Also ended up with two different methods, one for internal endpoint discovery and one for external. The two use-cases are explained a bit more in the docs, but basically it's service-to-service vs callback URLs.

    This did get me thinking about uniqueness and that we're heading towards a global namespace for backend plugin IDs. That's probably fine, but if we're happy with that we should leverage it a bit more to simplify the backend setup. For example we'd have each plugin provide its own ID and not manually mount on paths in the backend.

    Draft until we're happy with the implementation, then I can add more docs and changelog entry. Also didn't go on a thorough hunt for places where discovery can be used, but I don't think there are many since it's been pretty awkward to do service-to-service communication.

  • 56e4eb5: Make CSP configurable to fix app-backend served app not being able to fetch

    See discussion here on discord

  • d7873e1: Default to using internal scope for new plugins

  • 6f447b3: Remove identity-backend

    Not used, and we're heading down the route of identities in the catalog

  • 61db1dd: Allow node v14 and add to master build matrix

    • Upgrade sqlite3@^5.0.0 in @backstage/plugin-catalog-backend
    • Add Node 14 to engines in @backstage/create-app
  • a768a07: Add the ability to import users from GitHub Organization into the catalog.

    The token needs to have the scopes user:email, read:user, and read:org.

  • f00ca3c: Auto-create plugin databases

    Relates to #1598.

    This creates databases for plugins before handing off control to plugins.

    The list of plugins currently need to be hard-coded depending on the installed plugins. A later PR will properly refactor the code to provide a factory pattern where plugins specify what they need, and Knex instances will be provided based on the input.

  • 6d97d2d: The InfoCard variant 'height100' is deprecated. Use variant 'gridItem' instead.

    When the InfoCard is displayed as a grid item within a grid, you may want items to have the same height for all items.
    Set to the 'gridItem' variant to display the InfoCard with full height suitable for Grid:
    <InfoCard variant="gridItem">...</InfoCard>

    Changed the InfoCards in '@backstage/plugin-github-actions', '@backstage/plugin-jenkins', '@backstage/plugin-lighthouse'
    to pass an optional variant to the corresponding card of the plugin.

    As a result the overview content of the EntityPage shows cards with full height suitable for Grid.

  • 7aff112: The default mount point for backend plugins have been changed to /api. These changes are done in the backend package itself, so it is recommended that you sync up existing backend packages with this new pattern.

Patch Changes

  • e67d49b: Sync scaffolded backend with example

  • 961414d: Remove discovery api override

  • 440a17b: Bump @backstage/catalog-backend and pass the now required UrlReader interface to the plugin

  • 8c2b76e: BREAKING CHANGE

    The existing loading of additional config files like app-config.development.yaml using APP_ENV or NODE_ENV has been removed.
    Instead, the CLI and backend process now accept one or more --config flags to load config files.

    Without passing any flags, app-config.yaml and, if it exists, app-config.local.yaml will be loaded.
    If passing any --config <path> flags, only those files will be loaded, NOT the default app-config.yaml one.

    The old behaviour of for example APP_ENV=development can be replicated using the following flags:

    --config ../../app-config.yaml --config ../../app-config.development.yaml
  • 5a920c6: Updated naming of environment variables. New pattern [NAME]_TOKEN for Github, Gitlab, Azure & Github enterprise access tokens.

    Detail:

    • Previously we have to export same token for both, catalog & scaffolder
    export GITHUB_ACCESS_TOKEN=foo
    export GITHUB_PRIVATE_TOKEN=foo

    with latest changes, only single export is sufficient.

    export GITHUB_TOKEN=foo
    export GITLAB_TOKEN=foo
    export GHE_TOKEN=foo
    export AZURE_TOKEN=foo

    list:

    Old name New name
    GITHUB_ACCESS_TOKEN GITHUB_TOKEN
    GITHUB_PRIVATE_TOKEN GITHUB_TOKEN
    GITLAB_ACCESS_TOKEN GITLAB_TOKEN
    GITLAB_PRIVATE_TOKEN GITLAB_TOKEN
    AZURE_PRIVATE_TOKEN AZURE_TOKEN
    GHE_PRIVATE_TOKEN GHE_TOKEN
  • 67d76b4: Fix for configured templates using 'url' locations even though it's not supported yet

  • 7bbeb04: Change loadBackendConfig to return the config directly

@backstage/theme@0.2.0

Minor Changes

Patch Changes

  • ae59833: Fix banner position and color

    This PR closes: #2245

    The "fixed" props added to control the position of the banner. When it is set to true the banner will be shown in bottom of that page and the width will be based on the content of the message.

@backstage/plugin-api-docs@0.2.0

Minor Changes

Patch Changes

@backstage/plugin-app-backend@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

  • Updated dependencies [5249594]
  • Updated dependencies [56e4eb5]
  • Updated dependencies [e37c0a0]
  • Updated dependencies [f00ca3c]
  • Updated dependencies [6579769]
  • Updated dependencies [8c2b76e]
  • Updated dependencies [440a17b]
  • Updated dependencies [8afce08]
  • Updated dependencies [ce5512b]
  • Updated dependencies [7bbeb04]
    • @backstage/backend-common@0.2.0
    • @backstage/config-loader@0.2.0

@backstage/plugin-auth-backend@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • 819a702: Add SAML login to backstage

  • 6d29605: Change the default backend plugin mount point to /api

  • 5249594: Add service discovery interface and implement for single host deployments

    Fixes #1847, #2596

    Went with an interface similar to the frontend DiscoveryApi, since it's dead simple but still provides a lot of flexibility in the implementation.

    Also ended up with two different methods, one for internal endpoint discovery and one for external. The two use-cases are explained a bit more in the docs, but basically it's service-to-service vs callback URLs.

    This did get me thinking about uniqueness and that we're heading towards a global namespace for backend plugin IDs. That's probably fine, but if we're happy with that we should leverage it a bit more to simplify the backend setup. For example we'd have each plugin provide its own ID and not manually mount on paths in the backend.

    Draft until we're happy with the implementation, then I can add more docs and changelog entry. Also didn't go on a thorough hunt for places where discovery can be used, but I don't think there are many since it's been pretty awkward to do service-to-service communication.

  • 6f1768c: Initial implementation of catalog user lookup

    This adds a basic catalog client + method for the Google provider to look up users in the catalog. It expects to find a single user entity in the catalog with a google.com/email annotation that matches the email of the Google profile.

    Right now it falls back to the old behavior of splitting the email, since I don't wanna break the sign-in flow for existing apps, not yet anyway x).

    • Added "@backstage/catalog-model@^0.1.1-alpha.23" as a dependency
    • Added "node-fetch@^2.6.1" as a dependency
  • 1687b8f: Lookup user in Google Auth Provider

Patch Changes

  • b4e5466: Move auth provider router creation to router
  • b652bf2: Add OneLogin Identity Provider to Auth Backend
  • e142a27: Better presentation of authentication errors
  • Updated dependencies [3a42365]
  • Updated dependencies [e0be86b]
  • Updated dependencies [f70a528]
  • Updated dependencies [12b5fe9]
  • Updated dependencies [5249594]
  • Updated dependencies [56e4eb5]
  • Updated dependencies [e37c0a0]
  • Updated dependencies [a768a07]
  • Updated dependencies [f00ca3c]
  • Updated dependencies [6579769]
  • Updated dependencies [5adfc00]
  • Updated dependencies [8c2b76e]
  • Updated dependencies [440a17b]
  • Updated dependencies [fa56f46]
  • Updated dependencies [8afce08]
  • Updated dependencies [b3d5796]
  • Updated dependencies [7bbeb04]
    • @backstage/catalog-model@0.2.0
    • @backstage/backend-common@0.2.0

@backstage/plugin-catalog@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • 368fd82: Created EntityNotFound component for catalog which displays the 404 page when entity is not found.

    Fixes #2266

  • 6d97d2d: The InfoCard variant 'height100' is deprecated. Use variant 'gridItem' instead.

    When the InfoCard is displayed as a grid item within a grid, you may want items to have the same height for all items.
    Set to the 'gridItem' variant to display the InfoCard with full height suitable for Grid:
    <InfoCard variant="gridItem">...</InfoCard>

    Changed the InfoCards in '@backstage/plugin-github-actions', '@backstage/plugin-jenkins', '@backstage/plugin-lighthouse'
    to pass an optional variant to the corresponding card of the plugin.

    As a result the overview content of the EntityPage shows cards with full height suitable for Grid.

  • f0aa01b: Add client side paging for catalog table

  • 8b9c819: Locations registered through the catalog client now default to the 'url' type. The type selection dropdown in the register-component form has been removed.

  • 2ebcfac: Add a validate button to the register-component page

    This allows the user to validate his location before adding it.

  • 0b956f2: The URL path for a catalog entity has changed,

    • from: /catalog/:kind/:optionalNamespaceAndName
    • to: /catalog/:namespace/:kind/:name

    Redirects are in place, so disruptions for users should not happen.

Patch Changes

  • 0aecfde: handle the case where no entities are available to show
  • 60d4089: Remove "in default" in component name
  • 97c2cb1: update the EntityNotFound component
  • Updated dependencies [28edd7d]
  • Updated dependencies [819a702]
  • Updated dependencies [3a42365]
  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
  • Updated dependencies [482b631]
  • Updated dependencies [e0be86b]
  • Updated dependencies [f70a528]
  • Updated dependencies [12b5fe9]
  • Updated dependencies [8351ad7]
  • Updated dependencies [fb74f1d]
  • Updated dependencies [1c60f71]
  • Updated dependencies [144c66d]
  • Updated dependencies [a768a07]
  • Updated dependencies [b79017f]
  • Updated dependencies [6d97d2d]
  • Updated dependencies [5adfc00]
  • Updated dependencies [93a3fa3]
  • Updated dependencies [782f3b3]
  • Updated dependencies [c5ef129]
  • Updated dependencies [2713f28]
  • Updated dependencies [406015b]
  • Updated dependencies [82759d3]
  • Updated dependencies [ac8d5d5]
  • Updated dependencies [fa56f46]
  • Updated dependencies [ebca83d]
  • Updated dependencies [aca7933]
  • Updated dependencies [c0d5242]
  • Updated dependencies [b3d5796]
  • Updated dependencies [1c8c437]
  • Updated dependencies [3beb5c9]
  • Updated dependencies [754e31d]
  • Updated dependencies [57b54c8]
  • Updated dependencies [1611c6d]
    • @backstage/plugin-scaffolder@0.2.0
    • @backstage/plugin-techdocs@0.2.0
    • @backstage/core@0.2.0
    • @backstage/catalog-model@0.2.0
    • @backstage/theme@0.2.0

@backstage/plugin-catalog-backend@0.2.0

Minor Changes

  • e0be86b: Entirely case insensitive read path of entities

  • 12b5fe9: Add ApiDefinitionAtLocationProcessor that allows to load a API definition from another location

  • 57d555e: This feature works the same as \$secret does in config - it allows programmatic substitution of values into a document.

    This is particularly useful e.g. for API type entities where you do not want to repeat your entire API spec document inside the catalog-info.yaml file. For those cases, you can instead do something like

    apiVersion: backstage.io/v1alpha1
    kind: API
    metadata:
      name: my-federated-service
    spec:
      type: graphql
      definition:
        $text: ./schema.graphql
    

    The textual content of that file will be injected as the value of definition, during each refresh loop. Both relative and absolute paths are supported, as well as any HTTP/HTTPS URL pointing to a service that returns the relevant data.

    The initial version supports injection of text file data, and structured data from JSON and YAML files. You can add any handler of your own in addition to these.

  • 61db1dd: Allow node v14 and add to master build matrix

    • Upgrade sqlite3@^5.0.0 in @backstage/plugin-catalog-backend
    • Add Node 14 to engines in @backstage/create-app
  • 81cb943: Simplify the read function in processors

  • a768a07: Add the ability to import users from GitHub Organization into the catalog.

    The token needs to have the scopes user:email, read:user, and read:org.

  • ce1f553: Use the new UrlReader in PlaceholderProcessor.
    This allows to use the placeholder processor to include API definitions in API entities.
    Previously it was only possible to do this if the definition comes from the same location type as the entity itself.

  • e6b00e3: Remove the backstage.io/definition-at-location annotation.
    The annotation was superseded by the placeholder processor.

    apiVersion: backstage.io/v1alpha1
    kind: API
    metadata:
      name: spotify
      description: The Spotify web API
      tags:
        - spotify
        - rest
      annotations:
        # Don't use this annotation, but the placeholder $text instead (see below).
        backstage.io/definition-at-location: 'url:https://raw.githubusercontent.com/APIs-guru/openapi-directory/master/APIs/spotify.com/v1/swagger.yaml'
    spec:
      type: openapi
      lifecycle: production
      owner: spotify@example.com
      definition:
        $text: https://raw.githubusercontent.com/APIs-guru/openapi-directory/master/APIs/spotify.com/v1/swagger.yaml
  • 99710b1: The way that wiring together a catalog happens, has changed drastically. Now
    there is a new class CatalogBuilder that does almost all of the heavy lifting
    of how to augment/replace pieces of catalog functionality, such as adding
    support for custom entities or adding additional processors.

    As the builder was added, a lot of the static methods and builders for default
    setups have been removed from classes deep in the hierarchy. Instead, the
    builder contains the knowledge of what the defaults are.

  • 002860e: Filters passed to the /entities endpoint of the catalog has changed format.

    The old way was to pass things on the form ?a=b&c=d; the new way is to pass
    things on the form ?filter=a=b,c=d. See discussion in
    #2910 for details.

    The comma separated items within a single filter have an AND between them. If
    multiple such filters are passed, they have an OR between those item groups.

  • 5adfc00: Changes the various kind policies into a new type KindValidator.

    Adds CatalogProcessor#validateEntityKind that makes use of the above
    validators. This moves entity schema validity checking away from entity
    policies and into processors, centralizing the extension points into the
    processor chain.

  • 948052c: Add ability to dry run adding a new location to the catalog API.

    The location is now added in a transaction and afterwards rolled back.
    This allows users to dry run this operation to see if there entity has issues.
    This is probably done by automated tools in the CI/CD pipeline.

  • 4036ff5: - The CatalogProcessor API was updated to have preProcessEntity and
    postProcessEntity methods, instead of just one processEntity. This makes
    it easier to make processors that have several stages in one, and to make
    different processors more position independent in the list of processors.

    • The EntityPolicy is now given directly to the LocationReaders, instead of
      being enforced inside a policy. We have decided to separate out the act of
      validating an entity to be outside of the processing flow, to make it
      possible to apply more liberally and to evolve it as a separate concept.
    • Because of the above, the EntityPolicyProcessor has been removed.
  • 512d709: Use the new UrlReader in the CodeOwnersProcessor.

  • 2f62e18: Removed the parseData step from catalog processors. Locations readers should emit full entities instead.

  • 36a71d2: Removed support for deprecated catalog.providers config that have been moved to integrations

  • a5cb46b: Renamed the LocationProcessor class to CatalogProcessor.

    Likewise, renamed LocationProcessorResult, LocationProcessorLocationResult,
    LocationProcessorDataResult, LocationProcessorEntityResult,
    LocationProcessorErrorResult, and LocationProcessorEmit to their Catalog*
    counterparts.

  • 49d70cc: Remove the read argument of LocationProcessor.processEntity.
    Instead, pass the UrlReader into the constructor of your LocationProcessor.

  • 440a17b: The catalog backend UrlReaderProcessor now uses a UrlReader from @backstage/backend-common, which must now be supplied to the constructor.

Patch Changes

  • 3472c8b: Add codeowners processor

    • Add codeowners-utils@^1.0.2 as a dependency
    • Add core-js@^3.6.5 as a dependency
    • Added new CodeOwnersProcessor
  • 33454c0: Fix CatalogBuilder#addProcessor.

  • 183e2a3: Add support for fields sub-selection of just parts of an entity when listing
    entities in the catalog backend.

    Example: .../entities?fields=metadata.name,spec.type will return partial
    entity objects with only those exact fields present and the rest cut out.
    Fields do not have to be simple scalars - you can for example do
    fields=metadata.

  • 8bdf0bc: Fix CodeOwnersProcessor to handle non team users

  • 4c4eab8: The CodeOwnersProcessor now handles 'url' locations

  • Updated dependencies [3a42365]

  • Updated dependencies [e0be86b]

  • Updated dependencies [f70a528]

  • Updated dependencies [12b5fe9]

  • Updated dependencies [5249594]

  • Updated dependencies [56e4eb5]

  • Updated dependencies [e37c0a0]

  • Updated dependencies [a768a07]

  • Updated dependencies [f00ca3c]

  • Updated dependencies [6579769]

  • Updated dependencies [5adfc00]

  • Updated dependencies [8c2b76e]

  • Updated dependencies [440a17b]

  • Updated dependencies [fa56f46]

  • Updated dependencies [8afce08]

  • Updated dependencies [b3d5796]

  • Updated dependencies [7bbeb04]

    • @backstage/catalog-model@0.2.0
    • @backstage/backend-common@0.2.0

@backstage/plugin-catalog-graphql@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

@backstage/plugin-circleci@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI
  • 30dd111: Refactor to use DiscoveryApi

Patch Changes

@backstage/plugin-cloudbuild@0.2.0

Minor Changes

  • 2846ef9: Releasing Google Cloud Build Plugin

Patch Changes

@backstage/plugin-cost-insights@0.2.0

Minor Changes

  • cab4737: This PR adds Spotify's Cost Insights Tool. Cost Insights explains costs from cloud services in an understandable way, using software terms familiar to your engineers. This tool helps you and your team make trade-offs between cost optimization efforts and your other priorities.

    Cost Insights features:

    Daily cost graph by team or billing account
    Cost comparison against configurable business metrics
    Insights panels for configurable cloud products your company uses
    Cost alerts and recommendations
    Selectable time periods for month over month, or quarter over quarter cost comparison
    Conversion of cost growth into average engineer cost (configurable) to help optimization trade-off decisions

    plugin-cost-insights

    This PR adds the Cost Insights frontend React plugin with a defined CostInsightsApi. We include an example client with static data in the expected format. This API should talk with a cloud billing backend that aggregates billing data from your cloud provider.

    Fixes #688 💵

  • bb48b98: Added getLastCompleteBillingDate to the CostInsightsApi to reason about completeness of billing data

  • 6a84cb0: Enable custom alert types in Cost Insights

  • e7d4ac7: - getProjectDailyCost and getGroupDailyCost no longer accept a metric as a parameter

    • getDailyMetricData added to API for fetching daily metric data for given interval
    • dailyCost removed as configurable metric
    • default field added to metric configuration for displaying comparison metric data in top panel
    • Metric.kind can no longer be null
    • MetricData type added
  • 0e67c6b: Remove product filters from query parameters

Patch Changes

  • 8d1360a: export test utilities for mocking context
  • 0ee9e9f: migrate type utilities out of type definition files
  • 5c70f3d: expose alerts utilities for export
  • fd8384d: prefer named exports
  • 26e69ab: Remove cost insights example client from demo app and export from plugin
    Create cost insights dev plugin using example client
    Make PluginConfig and dependent types public
  • Updated dependencies [819a702]
  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
  • Updated dependencies [482b631]
  • Updated dependencies [1c60f71]
  • Updated dependencies [144c66d]
  • Updated dependencies [b79017f]
  • Updated dependencies [6d97d2d]
  • Updated dependencies [93a3fa3]
  • Updated dependencies [782f3b3]
  • Updated dependencies [2713f28]
  • Updated dependencies [406015b]
  • Updated dependencies [82759d3]
  • Updated dependencies [ac8d5d5]
  • Updated dependencies [ebca83d]
  • Updated dependencies [aca7933]
  • Updated dependencies [c0d5242]
  • Updated dependencies [3beb5c9]
  • Updated dependencies [754e31d]
  • Updated dependencies [1611c6d]
    • @backstage/core@0.2.0
    • @backstage/theme@0.2.0
    • @backstage/test-utils@0.1.2

@backstage/plugin-explore@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • cab4737: This PR adds Spotify's Cost Insights Tool. Cost Insights explains costs from cloud services in an understandable way, using software terms familiar to your engineers. This tool helps you and your team make trade-offs between cost optimization efforts and your other priorities.

    Cost Insights features:

    Daily cost graph by team or billing account
    Cost comparison against configurable business metrics
    Insights panels for configurable cloud products your company uses
    Cost alerts and recommendations
    Selectable time periods for month over month, or quarter over quarter cost comparison
    Conversion of cost growth into average engineer cost (configurable) to help optimization trade-off decisions

    plugin-cost-insights

    This PR adds the Cost Insights frontend React plugin with a defined CostInsightsApi. We include an example client with static data in the expected format. This API should talk with a cloud billing backend that aggregates billing data from your cloud provider.

    Fixes #688 💵

Patch Changes

@backstage/plugin-gcp-projects@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

@backstage/plugin-github-actions@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • d67c529: Adds a widget to show recent git workflow runs to the github actions plugin. The default setting is the last 5 runs across all branches but both branch and the number of runs are configurable.

  • 6d97d2d: The InfoCard variant 'height100' is deprecated. Use variant 'gridItem' instead.

    When the InfoCard is displayed as a grid item within a grid, you may want items to have the same height for all items.
    Set to the 'gridItem' variant to display the InfoCard with full height suitable for Grid:
    <InfoCard variant="gridItem">...</InfoCard>

    Changed the InfoCards in '@backstage/plugin-github-actions', '@backstage/plugin-jenkins', '@backstage/plugin-lighthouse'
    to pass an optional variant to the corresponding card of the plugin.

    As a result the overview content of the EntityPage shows cards with full height suitable for Grid.

Patch Changes

@backstage/plugin-gitops-profiles@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

@backstage/plugin-graphiql@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

@backstage/plugin-jenkins@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • 6d97d2d: The InfoCard variant 'height100' is deprecated. Use variant 'gridItem' instead.

    When the InfoCard is displayed as a grid item within a grid, you may want items to have the same height for all items.
    Set to the 'gridItem' variant to display the InfoCard with full height suitable for Grid:
    <InfoCard variant="gridItem">...</InfoCard>

    Changed the InfoCards in '@backstage/plugin-github-actions', '@backstage/plugin-jenkins', '@backstage/plugin-lighthouse'
    to pass an optional variant to the corresponding card of the plugin.

    As a result the overview content of the EntityPage shows cards with full height suitable for Grid.

Patch Changes

@backstage/plugin-kubernetes@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

  • Updated dependencies [819a702]
  • Updated dependencies [3a42365]
  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
  • Updated dependencies [482b631]
  • Updated dependencies [e0be86b]
  • Updated dependencies [f70a528]
  • Updated dependencies [12b5fe9]
  • Updated dependencies [1c60f71]
  • Updated dependencies [144c66d]
  • Updated dependencies [a768a07]
  • Updated dependencies [b79017f]
  • Updated dependencies [6d97d2d]
  • Updated dependencies [5adfc00]
  • Updated dependencies [93a3fa3]
  • Updated dependencies [782f3b3]
  • Updated dependencies [2713f28]
  • Updated dependencies [406015b]
  • Updated dependencies [82759d3]
  • Updated dependencies [ac8d5d5]
  • Updated dependencies [fa56f46]
  • Updated dependencies [ebca83d]
  • Updated dependencies [aca7933]
  • Updated dependencies [c0d5242]
  • Updated dependencies [b3d5796]
  • Updated dependencies [3beb5c9]
  • Updated dependencies [754e31d]
  • Updated dependencies [1611c6d]
    • @backstage/core@0.2.0
    • @backstage/catalog-model@0.2.0
    • @backstage/theme@0.2.0
    • @backstage/plugin-kubernetes-backend@0.1.2

@backstage/plugin-lighthouse@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • 6d97d2d: The InfoCard variant 'height100' is deprecated. Use variant 'gridItem' instead.

    When the InfoCard is displayed as a grid item within a grid, you may want items to have the same height for all items.
    Set to the 'gridItem' variant to display the InfoCard with full height suitable for Grid:
    <InfoCard variant="gridItem">...</InfoCard>

    Changed the InfoCards in '@backstage/plugin-github-actions', '@backstage/plugin-jenkins', '@backstage/plugin-lighthouse'
    to pass an optional variant to the corresponding card of the plugin.

    As a result the overview content of the EntityPage shows cards with full height suitable for Grid.

Patch Changes

@backstage/plugin-newrelic@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • 4512b99: The New Relic plugin now uses the Backstage proxy to communicate with New Relic's API.

    Please update your app-config.yaml as follows:

    # Old Config
    newrelic:
      api:
        baseUrl: 'https://api.newrelic.com/v2'
        key: NEW_RELIC_REST_API_KEY
    # New Config
    proxy:
      '/newrelic/apm/api':
        target: https://api.newrelic.com/v2
        headers:
          X-Api-Key:
            $env: NEW_RELIC_REST_API_KEY

Patch Changes

@backstage/plugin-proxy-backend@0.2.0

Minor Changes

  • 5249594: Add service discovery interface and implement for single host deployments

    Fixes #1847, #2596

    Went with an interface similar to the frontend DiscoveryApi, since it's dead simple but still provides a lot of flexibility in the implementation.

    Also ended up with two different methods, one for internal endpoint discovery and one for external. The two use-cases are explained a bit more in the docs, but basically it's service-to-service vs callback URLs.

    This did get me thinking about uniqueness and that we're heading towards a global namespace for backend plugin IDs. That's probably fine, but if we're happy with that we should leverage it a bit more to simplify the backend setup. For example we'd have each plugin provide its own ID and not manually mount on paths in the backend.

    Draft until we're happy with the implementation, then I can add more docs and changelog entry. Also didn't go on a thorough hunt for places where discovery can be used, but I don't think there are many since it's been pretty awkward to do service-to-service communication.

  • 9226c2a: Limit the http headers that are forwarded from the request to a safe set of defaults.
    A user can configure additional headers that should be forwarded if the specific applications needs that.

    proxy:
      '/my-api':
        target: 'https://my-api.com/get'
        allowedHeaders:
          # We need to forward the Authorization header that was provided by the caller
          - Authorization

Patch Changes

@backstage/plugin-register-component@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • 2ebcfac: Add a validate button to the register-component page

    This allows the user to validate his location before adding it.

Patch Changes

  • 8b9c819: Locations registered through the catalog client now default to the 'url' type. The type selection dropdown in the register-component form has been removed.
  • Updated dependencies [28edd7d]
  • Updated dependencies [819a702]
  • Updated dependencies [3a42365]
  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
  • Updated dependencies [482b631]
  • Updated dependencies [e0be86b]
  • Updated dependencies [f70a528]
  • Updated dependencies [12b5fe9]
  • Updated dependencies [368fd82]
  • Updated dependencies [1c60f71]
  • Updated dependencies [144c66d]
  • Updated dependencies [a768a07]
  • Updated dependencies [b79017f]
  • Updated dependencies [6d97d2d]
  • Updated dependencies [5adfc00]
  • Updated dependencies [f0aa01b]
  • Updated dependencies [0aecfde]
  • Updated dependencies [93a3fa3]
  • Updated dependencies [782f3b3]
  • Updated dependencies [8b9c819]
  • Updated dependencies [2713f28]
  • Updated dependencies [406015b]
  • Updated dependencies [82759d3]
  • Updated dependencies [60d4089]
  • Updated dependencies [ac8d5d5]
  • Updated dependencies [2ebcfac]
  • Updated dependencies [fa56f46]
  • Updated dependencies [ebca83d]
  • Updated dependencies [aca7933]
  • Updated dependencies [c0d5242]
  • Updated dependencies [b3d5796]
  • Updated dependencies [0b956f2]
  • Updated dependencies [97c2cb1]
  • Updated dependencies [3beb5c9]
  • Updated dependencies [754e31d]
  • Updated dependencies [1611c6d]
    • @backstage/plugin-catalog@0.2.0
    • @backstage/core@0.2.0
    • @backstage/catalog-model@0.2.0
    • @backstage/theme@0.2.0

@backstage/plugin-rollbar@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

@backstage/plugin-scaffolder@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

  • fb74f1d: Make title meaningful after component creation

    Fixes #2458.

    After the change, the UX should look like this:

    If the component creation was successful:

    successfully-created-component

    If the component creation failed:

    failed-to-create-component

  • c5ef129: fix the accordion details design when job stage fail

  • 1c8c437: The new scaffolder.github.baseUrl config property allows to specify a custom base url for GitHub enterprise instances

  • Updated dependencies [28edd7d]

  • Updated dependencies [819a702]

  • Updated dependencies [3a42365]

  • Updated dependencies [ae59833]

  • Updated dependencies [0d4459c]

  • Updated dependencies [482b631]

  • Updated dependencies [e0be86b]

  • Updated dependencies [f70a528]

  • Updated dependencies [12b5fe9]

  • Updated dependencies [368fd82]

  • Updated dependencies [1c60f71]

  • Updated dependencies [144c66d]

  • Updated dependencies [a768a07]

  • Updated dependencies [b79017f]

  • Updated dependencies [6d97d2d]

  • Updated dependencies [5adfc00]

  • Updated dependencies [f0aa01b]

  • Updated dependencies [0aecfde]

  • Updated dependencies [93a3fa3]

  • Updated dependencies [782f3b3]

  • Updated dependencies [8b9c819]

  • Updated dependencies [2713f28]

  • Updated dependencies [406015b]

  • Updated dependencies [82759d3]

  • Updated dependencies [60d4089]

  • Updated dependencies [ac8d5d5]

  • Updated dependencies [2ebcfac]

  • Updated dependencies [fa56f46]

  • Updated dependencies [ebca83d]

  • Updated dependencies [aca7933]

  • Updated dependencies [c0d5242]

  • Updated dependencies [b3d5796]

  • Updated dependencies [0b956f2]

  • Updated dependencies [97c2cb1]

  • Updated dependencies [3beb5c9]

  • Updated dependencies [754e31d]

  • Updated dependencies [1611c6d]

    • @backstage/plugin-catalog@0.2.0
    • @backstage/core@0.2.0
    • @backstage/catalog-model@0.2.0
    • @backstage/theme@0.2.0

@backstage/plugin-scaffolder-backend@0.2.0

Minor Changes

  • 3e25450: Add Azure DevOps support to the scaffolder backend

    This adds support for Azure DevOps to the scaffolder (preparer & publisher). I thought I should get this in there now since #2426 has been merged. I had a previous PR with only the preparer but I closed that in favor of this one.

    I stayed with the 'azure/api' structure but I guess we should try and go the same way as with GitHub here #2501

Patch Changes

  • 0c370c9: Update SSR template to pass CI

  • 991a950: Added .fromConfig static factories for Preparers and Publishers + read integrations config to support url location types

  • c926765: Allow templates to be located on non-default branch

  • 6840a68: Add authentication token to Scaffolder GitHub Preparer

  • 1c8c437: The new scaffolder.github.baseUrl config property allows to specify a custom base url for GitHub enterprise instances

  • 5e4551e: Added support for configuring the working directory of the Scaffolder:

    backend:
      workingDirectory: /some-dir # Use this to configure a working directory for the scaffolder, defaults to the OS temp-dir
  • e3d063f: Introduce PreparerOptions for PreparerBase

  • Updated dependencies [3a42365]

  • Updated dependencies [e0be86b]

  • Updated dependencies [f70a528]

  • Updated dependencies [12b5fe9]

  • Updated dependencies [5249594]

  • Updated dependencies [56e4eb5]

  • Updated dependencies [e37c0a0]

  • Updated dependencies [a768a07]

  • Updated dependencies [f00ca3c]

  • Updated dependencies [6579769]

  • Updated dependencies [5adfc00]

  • Updated dependencies [8c2b76e]

  • Updated dependencies [440a17b]

  • Updated dependencies [fa56f46]

  • Updated dependencies [8afce08]

  • Updated dependencies [b3d5796]

  • Updated dependencies [7bbeb04]

    • @backstage/catalog-model@0.2.0
    • @backstage/backend-common@0.2.0

@backstage/plugin-sentry@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

@backstage/plugin-tech-radar@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

  • 782f3b3: add test case for Progress component
  • 02c60b5: fix the horizontal scrolling issue in the RadarPage component
  • Updated dependencies [819a702]
  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
  • Updated dependencies [482b631]
  • Updated dependencies [1c60f71]
  • Updated dependencies [144c66d]
  • Updated dependencies [b79017f]
  • Updated dependencies [6d97d2d]
  • Updated dependencies [93a3fa3]
  • Updated dependencies [782f3b3]
  • Updated dependencies [2713f28]
  • Updated dependencies [406015b]
  • Updated dependencies [82759d3]
  • Updated dependencies [ac8d5d5]
  • Updated dependencies [ebca83d]
  • Updated dependencies [aca7933]
  • Updated dependencies [c0d5242]
  • Updated dependencies [3beb5c9]
  • Updated dependencies [754e31d]
  • Updated dependencies [1611c6d]
    • @backstage/core@0.2.0
    • @backstage/theme@0.2.0
    • @backstage/test-utils@0.1.2

@backstage/plugin-techdocs@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

  • 8351ad7: Add a message if techdocs takes long time to load

    Fixes #2416.

    The UI after the change should look like this:

    techdocs-progress-bar

Patch Changes

  • 782f3b3: add test case for Progress component
  • 57b54c8: While techdocs fetches site name and metadata for the component, the page title was displayed as '[object Object] | Backstage'. This has now been fixed to display the component ID if site name is not present or being fetched.
  • Updated dependencies [28edd7d]
  • Updated dependencies [819a702]
  • Updated dependencies [3a42365]
  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
  • Updated dependencies [cbbd271]
  • Updated dependencies [482b631]
  • Updated dependencies [e0be86b]
  • Updated dependencies [f70a528]
  • Updated dependencies [12b5fe9]
  • Updated dependencies [368fd82]
  • Updated dependencies [1c60f71]
  • Updated dependencies [144c66d]
  • Updated dependencies [a768a07]
  • Updated dependencies [b79017f]
  • Updated dependencies [6d97d2d]
  • Updated dependencies [5adfc00]
  • Updated dependencies [f0aa01b]
  • Updated dependencies [0aecfde]
  • Updated dependencies [93a3fa3]
  • Updated dependencies [782f3b3]
  • Updated dependencies [8b9c819]
  • Updated dependencies [2713f28]
  • Updated dependencies [406015b]
  • Updated dependencies [82759d3]
  • Updated dependencies [60d4089]
  • Updated dependencies [ac8d5d5]
  • Updated dependencies [2ebcfac]
  • Updated dependencies [fa56f46]
  • Updated dependencies [ebca83d]
  • Updated dependencies [aca7933]
  • Updated dependencies [c0d5242]
  • Updated dependencies [b3d5796]
  • Updated dependencies [0b956f2]
  • Updated dependencies [26e69ab]
  • Updated dependencies [97c2cb1]
  • Updated dependencies [3beb5c9]
  • Updated dependencies [cbab5bb]
  • Updated dependencies [754e31d]
  • Updated dependencies [1611c6d]
    • @backstage/plugin-catalog@0.2.0
    • @backstage/core-api@0.2.0
    • @backstage/core@0.2.0
    • @backstage/catalog-model@0.2.0
    • @backstage/theme@0.2.0
    • @backstage/test-utils@0.1.2

@backstage/plugin-techdocs-backend@0.2.0

Minor Changes

  • 6d29605: Change the default backend plugin mount point to /api

  • 5249594: Add service discovery interface and implement for single host deployments

    Fixes #1847, #2596

    Went with an interface similar to the frontend DiscoveryApi, since it's dead simple but still provides a lot of flexibility in the implementation.

    Also ended up with two different methods, one for internal endpoint discovery and one for external. The two use-cases are explained a bit more in the docs, but basically it's service-to-service vs callback URLs.

    This did get me thinking about uniqueness and that we're heading towards a global namespace for backend plugin IDs. That's probably fine, but if we're happy with that we should leverage it a bit more to simplify the backend setup. For example we'd have each plugin provide its own ID and not manually mount on paths in the backend.

    Draft until we're happy with the implementation, then I can add more docs and changelog entry. Also didn't go on a thorough hunt for places where discovery can be used, but I don't think there are many since it's been pretty awkward to do service-to-service communication.

  • 5a920c6: Updated naming of environment variables. New pattern [NAME]_TOKEN for Github, Gitlab, Azure & Github enterprise access tokens.

    Detail:

    • Previously we have to export same token for both, catalog & scaffolder
    export GITHUB_ACCESS_TOKEN=foo
    export GITHUB_PRIVATE_TOKEN=foo

    with latest changes, only single export is sufficient.

    export GITHUB_TOKEN=foo
    export GITLAB_TOKEN=foo
    export GHE_TOKEN=foo
    export AZURE_TOKEN=foo

    list:

    Old name New name
    GITHUB_ACCESS_TOKEN GITHUB_TOKEN
    GITHUB_PRIVATE_TOKEN GITHUB_TOKEN
    GITLAB_ACCESS_TOKEN GITLAB_TOKEN
    GITLAB_PRIVATE_TOKEN GITLAB_TOKEN
    AZURE_PRIVATE_TOKEN AZURE_TOKEN
    GHE_PRIVATE_TOKEN GHE_TOKEN

Patch Changes

  • 22ff8fb: Replacing the hard coded baseApiUrl by reading the value from configuration to enable private GitHub setup for TechDocs.
  • Updated dependencies [3a42365]
  • Updated dependencies [e0be86b]
  • Updated dependencies [f70a528]
  • Updated dependencies [12b5fe9]
  • Updated dependencies [5249594]
  • Updated dependencies [56e4eb5]
  • Updated dependencies [e37c0a0]
  • Updated dependencies [a768a07]
  • Updated dependencies [f00ca3c]
  • Updated dependencies [6579769]
  • Updated dependencies [5adfc00]
  • Updated dependencies [8c2b76e]
  • Updated dependencies [440a17b]
  • Updated dependencies [fa56f46]
  • Updated dependencies [8afce08]
  • Updated dependencies [b3d5796]
  • Updated dependencies [7bbeb04]
    • @backstage/catalog-model@0.2.0
    • @backstage/backend-common@0.2.0

@backstage/plugin-user-settings@0.2.0

Minor Changes

  • 4fc1d44: Add settings button to sidebar

Patch Changes

@backstage/plugin-welcome@0.2.0

Minor Changes

  • 28edd7d: Create backend plugin through CLI

Patch Changes

@backstage/dev-utils@0.1.2

Patch Changes

@techdocs/cli@0.1.2

Patch Changes

@backstage/test-utils@0.1.2

Patch Changes

  • Updated dependencies [28edd7d]
  • Updated dependencies [819a702]
  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
  • Updated dependencies [cbbd271]
  • Updated dependencies [3472c8b]
  • Updated dependencies [1d0aec7]
  • Updated dependencies [a3840be]
  • Updated dependencies [b79017f]
  • Updated dependencies [72f6cda]
  • Updated dependencies [8c2b76e]
  • Updated dependencies [cba4e4d]
  • Updated dependencies [8afce08]
  • Updated dependencies [9a3b3db]
  • Updated dependencies [26e69ab]
  • Updated dependencies [cbab5bb]
  • Updated dependencies [7bbeb04]
    • @backstage/cli@0.2.0
    • @backstage/core-api@0.2.0
    • @backstage/theme@0.2.0

@backstage/plugin-graphql-backend@0.1.2

Patch Changes

  • Updated dependencies [28edd7d]
  • Updated dependencies [5249594]
  • Updated dependencies [56e4eb5]
  • Updated dependencies [e37c0a0]
  • Updated dependencies [f00ca3c]
  • Updated dependencies [6579769]
  • Updated dependencies [8c2b76e]
  • Updated dependencies [440a17b]
  • Updated dependencies [8afce08]
  • Updated dependencies [7bbeb04]
    • @backstage/plugin-catalog-graphql@0.2.0
    • @backstage/backend-common@0.2.0

@backstage/plugin-kubernetes-backend@0.1.2

Patch Changes

@backstage/plugin-rollbar-backend@0.1.2

Patch Changes

@backstage/plugin-sentry-backend@0.1.2

Patch Changes

@backstage/plugin-sonarqube@0.1.2

Patch Changes

example-app@0.2.0

Minor Changes

  • 6d97d2d: The InfoCard variant 'height100' is deprecated. Use variant 'gridItem' instead.

    When the InfoCard is displayed as a grid item within a grid, you may want items to have the same height for all items.
    Set to the 'gridItem' variant to display the InfoCard with full height suitable for Grid:
    <InfoCard variant="gridItem">...</InfoCard>

    Changed the InfoCards in '@backstage/plugin-github-actions', '@backstage/plugin-jenkins', '@backstage/plugin-lighthouse'
    to pass an optional variant to the corresponding card of the plugin.

    As a result the overview content of the EntityPage shows cards with full height suitable for Grid.

Patch Changes

  • 65d7224: Add Pull Request tab to components view.
  • 26e69ab: Remove cost insights example client from demo app and export from plugin
    Create cost insights dev plugin using example client
    Make PluginConfig and dependent types public
  • e7f5471: cleaning up because external plugins have already implemented new api for creating
  • Updated dependencies [28edd7d]
  • Updated dependencies [819a702]
  • Updated dependencies [2846ef9]
  • Updated dependencies [3a42365]
  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
  • Updated dependencies [d67c529]
  • Updated dependencies [482b631]
  • Updated dependencies [e0be86b]
  • Updated dependencies [f70a528]
  • Updated dependencies [12b5fe9]
  • Updated dependencies [8351ad7]
  • Updated dependencies [30dd111]
  • Updated dependencies [1297dcb]
  • Updated dependencies [368fd82]
  • Updated dependencies [fb74f1d]
  • Updated dependencies [3472c8b]
  • Updated dependencies [cab4737]
  • Updated dependencies [1d0aec7]
  • Updated dependencies [1c60f71]
  • Updated dependencies [a73979d]
  • Updated dependencies [144c66d]
  • Updated dependencies [a768a07]
  • Updated dependencies [a3840be]
  • Updated dependencies [3396689]
  • Updated dependencies [b79017f]
  • Updated dependencies [6d97d2d]
  • Updated dependencies [5adfc00]
  • Updated dependencies [f0aa01b]
  • Updated dependencies [8d1360a]
  • Updated dependencies [72f6cda]
  • Updated dependencies [0ee9e9f]
  • Updated dependencies [5c70f3d]
  • Updated dependencies [bb48b98]
  • Updated dependencies [fd8384d]
  • Updated dependencies [8c2b76e]
  • Updated dependencies [0aecfde]
  • Updated dependencies [93a3fa3]
  • Updated dependencies [782f3b3]
  • Updated dependencies [c5ef129]
  • Updated dependencies [8b9c819]
  • Updated dependencies [2713f28]
  • Updated dependencies [6a84cb0]
  • Updated dependencies [406015b]
  • Updated dependencies [82759d3]
  • Updated dependencies [60d4089]
  • Updated dependencies [cba4e4d]
  • Updated dependencies [ac8d5d5]
  • Updated dependencies [2ebcfac]
  • Updated dependencies [4fc1d44]
  • Updated dependencies [fa56f46]
  • Updated dependencies [8afce08]
  • Updated dependencies [4512b99]
  • Updated dependencies [ebca83d]
  • Updated dependencies [aca7933]
  • Updated dependencies [c0d5242]
  • Updated dependencies [b3d5796]
  • Updated dependencies [9a3b3db]
  • Updated dependencies [e7d4ac7]
  • Updated dependencies [0b956f2]
  • Updated dependencies [1c8c437]
  • Updated dependencies [0e67c6b]
  • Updated dependencies [26e69ab]
  • Updated dependencies [97c2cb1]
  • Updated dependencies [02c60b5]
  • Updated dependencies [3beb5c9]
  • Updated dependencies [754e31d]
  • Updated dependencies [57b54c8]
  • Updated dependencies [1611c6d]
  • Updated dependencies [7bbeb04]
    • @backstage/cli@0.2.0
    • @backstage/plugin-api-docs@0.2.0
    • @backstage/plugin-catalog@0.2.0
    • @backstage/plugin-circleci@0.2.0
    • @backstage/plugin-explore@0.2.0
    • @backstage/plugin-gcp-projects@0.2.0
    • @backstage/plugin-github-actions@0.2.0
    • @backstage/plugin-gitops-profiles@0.2.0
    • @backstage/plugin-graphiql@0.2.0
    • @backstage/plugin-jenkins@0.2.0
    • @backstage/plugin-kubernetes@0.2.0
    • @backstage/plugin-lighthouse@0.2.0
    • @backstage/plugin-newrelic@0.2.0
    • @backstage/plugin-register-component@0.2.0
    • @backstage/plugin-rollbar@0.2.0
    • @backstage/plugin-scaffolder@0.2.0
    • @backstage/plugin-sentry@0.2.0
    • @backstage/plugin-tech-radar@0.2.0
    • @backstage/plugin-techdocs@0.2.0
    • @backstage/plugin-welcome@0.2.0
    • @backstage/core@0.2.0
    • @backstage/plugin-cloudbuild@0.2.0
    • @backstage/catalog-model@0.2.0
    • @backstage/theme@0.2.0
    • @backstage/plugin-cost-insights@0.2.0
    • @backstage/plugin-user-settings@0.2.0
    • @backstage/test-utils@0.1.2

e2e-test@0.2.0

Minor Changes

  • 7de1004: Converted into a CLI, use yarn e2e-test run to run

example-backend@0.2.0

Patch Changes

  • 440a17b: Bump @backstage/catalog-backend and pass the now required UrlReader interface to the plugin

  • 6840a68: Pass GitHub token into Scaffolder GitHub Preparer

  • 8c2b76e: BREAKING CHANGE

    The existing loading of additional config files like app-config.development.yaml using APP_ENV or NODE_ENV has been removed.
    Instead, the CLI and backend process now accept one or more --config flags to load config files.

    Without passing any flags, app-config.yaml and, if it exists, app-config.local.yaml will be loaded.
    If passing any --config <path> flags, only those files will be loaded, NOT the default app-config.yaml one.

    The old behaviour of for example APP_ENV=development can be replicated using the following flags:

    --config ../../app-config.yaml --config ../../app-config.development.yaml
  • 7bbeb04: Change loadBackendConfig to return the config directly

  • Updated dependencies [28edd7d]

  • Updated dependencies [819a702]

  • Updated dependencies [3a42365]

  • Updated dependencies [3e25450]

  • Updated dependencies [6d29605]

  • Updated dependencies [e0be86b]

  • Updated dependencies [f70a528]

  • Updated dependencies [12b5fe9]

  • Updated dependencies [5249594]

  • Updated dependencies [56e4eb5]

  • Updated dependencies [b4e5466]

  • Updated dependencies [6f1768c]

  • Updated dependencies [e37c0a0]

  • Updated dependencies [3472c8b]

  • Updated dependencies [57d555e]

  • Updated dependencies [61db1dd]

  • Updated dependencies [81cb943]

  • Updated dependencies [1687b8f]

  • Updated dependencies [a768a07]

  • Updated dependencies [a768a07]

  • Updated dependencies [f00ca3c]

  • Updated dependencies [0c370c9]

  • Updated dependencies [ce1f553]

  • Updated dependencies [e6b00e3]

  • Updated dependencies [9226c2a]

  • Updated dependencies [6d97d2d]

  • Updated dependencies [99710b1]

  • Updated dependencies [6579769]

  • Updated dependencies [002860e]

  • Updated dependencies [5adfc00]

  • Updated dependencies [33454c0]

  • Updated dependencies [183e2a3]

  • Updated dependencies [948052c]

  • Updated dependencies [65d7224]

  • Updated dependencies [b652bf2]

  • Updated dependencies [4036ff5]

  • Updated dependencies [991a950]

  • Updated dependencies [512d709]

  • Updated dependencies [8c2b76e]

  • Updated dependencies [8bdf0bc]

  • Updated dependencies [c926765]

  • Updated dependencies [5a920c6]

  • Updated dependencies [2f62e18]

  • Updated dependencies [440a17b]

  • Updated dependencies [fa56f46]

  • Updated dependencies [8afce08]

  • Updated dependencies [4c4eab8]

  • Updated dependencies [22ff8fb]

  • Updated dependencies [36a71d2]

  • Updated dependencies [b3d5796]

  • Updated dependencies [6840a68]

  • Updated dependencies [a5cb46b]

  • Updated dependencies [49d70cc]

  • Updated dependencies [1c8c437]

  • Updated dependencies [26e69ab]

  • Updated dependencies [5e4551e]

  • Updated dependencies [e142a27]

  • Updated dependencies [e7f5471]

  • Updated dependencies [e3d063f]

  • Updated dependencies [440a17b]

  • Updated dependencies [7bbeb04]

    • @backstage/plugin-app-backend@0.2.0
    • @backstage/plugin-auth-backend@0.2.0
    • @backstage/catalog-model@0.2.0
    • @backstage/plugin-scaffolder-backend@0.2.0
    • @backstage/plugin-techdocs-backend@0.2.0
    • @backstage/plugin-catalog-backend@0.2.0
    • @backstage/plugin-proxy-backend@0.2.0
    • @backstage/backend-common@0.2.0
    • example-app@0.2.0
    • @backstage/plugin-graphql-backend@0.1.2
    • @backstage/plugin-kubernetes-backend@0.1.2
    • @backstage/plugin-rollbar-backend@0.1.2
    • @backstage/plugin-sentry-backend@0.1.2

storybook@0.2.0

Patch Changes

  • Updated dependencies [ae59833]
  • Updated dependencies [0d4459c]
    • @backstage/theme@0.2.0