Releases: backstage/backstage
v0.5.0
@backstage/plugin-scaffolder-backend@0.4.0
Minor Changes
- 5eb8c9b: Fix gitlab scaffolder publisher
Patch Changes
- 7e34517: bug(scaffolder): Ignore the .git folder when adding dot-files to the index
@backstage/plugin-cost-insights@0.5.6
Patch Changes
- 9e9504c: Minor wording change in UI
@backstage/plugin-graphiql@0.2.4
Patch Changes
- 21f6be0: Patch release to force a release for the
esm.js
extension change for dynamically loading chunks
example-backend@0.2.10
Patch Changes
v0.4.4
@backstage/backend-common@0.4.2
Patch Changes
- 5ecd50f: Fix HTTPS certificate generation and add new config switch, enabling it simply by setting
backend.https = true
. Also introduces caching of generated certificates in order to avoid having to add a browser override every time the backend is restarted. - 00042e7: Moving the Git actions to isomorphic-git instead of the node binding version of nodegit
- 0829ff1: Tweaked development log formatter to include extra fields at the end of each log line
- 036a843: Provide support for on-prem azure devops
- Updated dependencies [ad5c56f]
- Updated dependencies [036a843]
- @backstage/config-loader@0.4.1
- @backstage/integration@0.1.5
@backstage/cli@0.4.5
Patch Changes
- 37a7d26: Use consistent file extensions for JS output when building packages.
- 818d45e: Fix detection of external package child directories
- 0588be0: Add
backend:bundle
command for bundling a backend package with dependencies into a deployment archive. - b8abdda: Add color to output from
versions:bump
in order to make it easier to spot changes. Also highlight possible breaking changes and link to changelogs. - Updated dependencies [ad5c56f]
- @backstage/config-loader@0.4.1
@backstage/config-loader@0.4.1
Patch Changes
-
ad5c56f: Deprecate
$data
and replace it with$include
which allows for any type of json value to be read from external files. In addition,$include
can be used without a path, which causes the value at the root of the file to be loaded.Most usages of
$data
can be directly replaced with$include
, except if the referenced value is not a string, in which case the value needs to be changed. For example:# app-config.yaml foo: $data: foo.yaml#myValue # replacing with $include will turn the value into a number $data: bar.yaml#myValue # replacing with $include is safe # foo.yaml myValue: 0xf00 # bar.yaml myValue: bar
@backstage/core-api@0.2.9
Patch Changes
- ab08923: Remove test dependencies from production package list
@backstage/create-app@0.3.2
Patch Changes
-
c2b52d9: Replace
register-component
plugin with newcatalog-import
plugin -
fc6839f: Bump
sqlite3
to v5.To apply this change to an existing app, change the version of
sqlite3
in thedependencies
ofpackages/backend/package.json
:"pg": "^8.3.0", - "sqlite3": "^4.2.0", + "sqlite3": "^5.0.0", "winston": "^3.2.1"
Note that the
sqlite3
dependency may not be preset if you chose to use PostgreSQL when creating the app. -
8d68e4c: Removed the Circle CI sidebar item, since the target page does not exist.
To apply this change to an existing app, remove
"CircleCI"
sidebar item frompackages/app/src/sidebar.tsx
, and theBuildIcon
import if it is unused. -
1773a51: Removed lighthouse plugin from the default set up plugins, as it requires a separate Backend to function.
To apply this change to an existing app, remove the following:
- The
lighthouse
block fromapp-config.yaml
. - The
@backstage/plugin-lighthouse
dependency frompackages/app/package.json
. - The
@backstage/plugin-lighthouse
re-export frompackages/app/src/plugins.ts
. - The Lighthouse sidebar item from
packages/app/src/sidebar.tsx
, and theRuleIcon
import if it is unused.
- The
@backstage/integration@0.1.5
Patch Changes
- 036a843: Provide support for on-prem azure devops
@backstage/techdocs-common@0.3.2
Patch Changes
- 7ec5254: 1. Added option to use AWS S3 as a choice to store the static generated files for TechDocs.
- f8ba88d: Fix for
integration.github.apiBaseUrl
configuration not properly overriding apiBaseUrl used by techdocs - 00042e7: Moving the Git actions to isomorphic-git instead of the node binding version of nodegit
- Updated dependencies [5ecd50f]
- Updated dependencies [00042e7]
- Updated dependencies [0829ff1]
- Updated dependencies [036a843]
- @backstage/backend-common@0.4.2
- @backstage/integration@0.1.5
@backstage/plugin-auth-backend@0.2.9
Patch Changes
-
0289a05: Add support for the majority of the Core configurations for Passport-SAML.
These configuration keys are supported:
- entryPoint
- issuer
- cert
- privateKey
- decryptionPvk
- signatureAlgorithm
- digestAlgorithm
As part of this change, there is also a fix to the redirection behaviour when doing load balancing and HTTPS termination - the application's baseUrl is used to generate the callback URL. For properly configured Backstage installations, no changes are necessary, and the baseUrl is respected.
-
Updated dependencies [5ecd50f]
-
Updated dependencies [00042e7]
-
Updated dependencies [0829ff1]
-
Updated dependencies [036a843]
- @backstage/backend-common@0.4.2
@backstage/plugin-catalog@0.2.10
Patch Changes
- 9c09a36: Remove the unused dependency to
@backstage/plugin-techdocs
. - Updated dependencies [8e083f4]
- Updated dependencies [947d3c2]
- @backstage/plugin-scaffolder@0.3.6
@backstage/plugin-catalog-backend@0.5.2
Patch Changes
- 99be305: Fixed a bug where the catalog would read back all entities when adding a location that already exists.
- 49d2016: Change
location_update_log
columns fromnvarchar(255)
totext
- 73e75ea: Add processor for ingesting AWS accounts from AWS Organizations
- 071711d: Remove
sqlite3
as a dependency. You may need to addsqlite3
as a dependency of your backend if you were relying on this indirect dependency. - Updated dependencies [5ecd50f]
- Updated dependencies [00042e7]
- Updated dependencies [0829ff1]
- Updated dependencies [036a843]
- @backstage/backend-common@0.4.2
@backstage/plugin-catalog-import@0.3.3
Patch Changes
- edb7d07: Create "url" type location when registering using the catalog-import plugin.
- Updated dependencies [99be305]
- Updated dependencies [49d2016]
- Updated dependencies [9c09a36]
- Updated dependencies [73e75ea]
- Updated dependencies [036a843]
- Updated dependencies [071711d]
- @backstage/plugin-catalog-backend@0.5.2
- @backstage/plugin-catalog@0.2.10
- @backstage/integration@0.1.5
@backstage/plugin-cost-insights@0.5.5
Patch Changes
- ab08923: Remove test dependencies from production package list
@backstage/plugin-pagerduty@0.2.5
Patch Changes
- b7a1248: Optimize empty state image size.
@backstage/plugin-rollbar-backend@0.1.6
Patch Changes
- dde4ab3: Bump
axios
from^0.20.0
to^0.21.1
. - Updated dependencies [5ecd50f]
- Updated dependencies [00042e7]
- Updated dependencies [0829ff1]
- Updated dependencies [036a843]
- @backstage/backend-common@0.4.2
@backstage/plugin-scaffolder@0.3.6
Patch Changes
- 8e083f4: Bug fix: User can retry creating a new component if an error occurs, without having to reload the page.
- 947d3c2: You can now maximize the logs into full-screen by clicking the button under each step of the job
- Updated dependencies [9c09a36]
- @backstage/plugin-catalog@0.2.10
@backstage/plugin-scaffolder-backend@0.3.7
Patch Changes
- 37a5244: Add scaffolding support for Bitbucket Cloud and Server.
- 00042e7: Moving the Git actions to isomorphic-git instead of the node binding version of nodegit
- 9efbc55: Add config schema for Bitbucket scaffolder
- Updated dependencies [5ecd50f]
- Updated dependencies [00042e7]
- Updated dependencies [0829ff1]
- Updated dependencies [036a843]
- @backstage/backend-common@0.4.2
- @backstage/integration@0.1.5
@backstage/plugin-search@0.2.5
Patch Changes
- 0170743: Fix Material-UI warning for search filtering
- Updated dependencies [9c09a36]
- @backstage/plugin-catalog@0.2.10
@backstage/plugin-sentry@0.3.2
Patch Changes
- 88da267: Port to new composability API by exporting new
EntitySentryContent
andEntitySentryCard
component extensions. - Updated dependencies [9c09a36]
- @backstage/plugin-catalog@0.2.10
@backstage/plugin-tech-radar@0.3.2
Patch Changes
- ab08923: Remove test dependencies from production package list
- bc90917: Updated example data in
README
.
@backstage/plugin-techdocs-backend@0.5.2
Patch Changes
- 7ec5254: 1. Added option to use AWS S3 as a choice to store the static generated files for TechDocs.
- Updated dependencies [7ec5254]
- Updated dependencies [5ecd50f]
- Updated dependencies [f8ba88d]
- Updated dependencies [00042e7]
- Updated dependencies [0829ff1]
- Updated dependencies [036a843]
- @backstage/techdocs-common@0.3.2
- @backstage/backend-common@0.4.2
example-app@0.2.9
Patch Changes
- Updated dependencies [ab08923]
- Updated dependencies [37a7d26]
- Updated dependencies [8e083f4]
- Updated dependencies [88da267]
- Updated dependencies [9c09a36]
- Updated dependencies [0170743]
- Updated dependencies [edb7d07]
- Updated dependencies [818d45e]
- Updated dependencies [0588be0]
- Updated dependencies [b8abdda]
- Updated dependencies [b7a1248]
- Updated dependencies [bc90917]
- Updated dependencies [947d3c2]
- @backstage/plugin-cost-insights@0.5.5
- @backstage/plugin-tech-radar@0.3.2
- @backstage/cli@0.4.5
- @backstage/...
release-2021-10-04
What
- Introduces an Analytics API in
core-plugin-api
with 4 key concepts:- The API is built on events. Events consist of, at a minimum, an
action
(e.g.click
) and asubject
(e.g.thing-that-was-clicked-on
) - Plugin Devs can capture events using a tracker returned by the hook
useAnalytics()
. - Event capture pulls in metadata from the react tree above it, defined using
<AnalyticsContext />
, whose attributes inherit from any context above. Three "well-known" attributes are provided automatically:pluginId
,routeRef
, andextension
. - The API is optional and does nothing with captured events until an App Integrator provides a concrete implementation.
- The API is built on events. Events consist of, at a minimum, an
- Provides Extension-Based Analytics Contexts, including key metadata like Plugin IDs and Extension Names.
- Instruments
core-app-api
with anavigate
event - Instruments
<Link />
component incore-components
with aclick
event - Adds
@backstage/plugin-analytics-provider-ga
plugin which can be used to send instrumented events to Google Analytics in an idiomatic way.
Why
- Why this API at all: See the need in the RFC (#6432)
- Why navigate/click events: Based on experience internally, having a foundational layer of "what are people looking at" and "what are people clicking on" that can be segmented by plugin is, in 80% of cases, good enough to help understand and prioritize investments in different areas of a Backstage instance. Building these events on a common framework that can be used by Plugin Devs to instrument more specific things enables the remaining 20% of cases.
- Why GA Analytics Provider: Beyond just being useful out the gate, the provider demonstrates how events, event context, and analytics domains can be combined in a way that is useful within the confines of a fairly constrained analytics system (compared with others where simply forwarding all events as JSON objects to an endpoint might be all that's needed).
Follow-Ups
- Add
name
keys to all extensions in the monorepo (matching their export name) [#7435] - Create an issue to manage
<AnalyticsContext />
with version bridge - Create an issue to clean up analytics API in core plugin API (account for routable extensions with data manually attached)
- Create an issue to clean up tracker implementation in core app API (don't duplicate tree traversal, access from app provider instead)
- Create an issue to extend the analytics API so that user-level information can also be captured/tracked
- Create issues (label help wanted) for instrumenting some of the primary actions in the core plugins.
- Document the Analytics API (thoroughly)
- Add the GA Analytics provider to the plugin marketplace
✔️ Checklist
v0.4.3
@backstage/cli@0.4.4
Patch Changes
- d45efbc: Fix typo in .app.listen.port config schema
@backstage/core@0.4.3
Patch Changes
- a08c32c: Add
FlatRoutes
component to replace the top-levelRoutes
component fromreact-router
within apps, removing the need for manually appending/*
to paths or sorting routes. - Updated dependencies [a08c32c]
- Updated dependencies [86c3c65]
- Updated dependencies [27f2af9]
- @backstage/core-api@0.2.8
@backstage/core-api@0.2.8
Patch Changes
- a08c32c: Add
FlatRoutes
component to replace the top-levelRoutes
component fromreact-router
within apps, removing the need for manually appending/*
to paths or sorting routes. - 86c3c65: Deprecate
RouteRef
path parameter and member, and remove deprecatedrouteRef.createSubRouteRef
. - 27f2af9: Delay auth loginPopup close to avoid race condition with callers of authFlowHelpers.
@backstage/create-app@0.3.1
Patch Changes
-
4e0e3b1: Add missing
yarn clean
for app.For users with existing Backstage installations, add the following under the
scripts
section inpackages/app/package.json
, after the "lint" entry:"clean": "backstage-cli clean",
This will add the missing
yarn clean
for the generated frontend. -
352a658: Added
"start-backend"
script to rootpackage.json
.To apply this change to an existing app, add the following script to the root
package.json
:"start-backend": "yarn workspace backend start"
@backstage/dev-utils@0.1.7
Patch Changes
- 696b8ce: Add new
addPage
method for use with extensions, as well as anEntityGridItem
to easily create different test cases for entity overview cards. - Updated dependencies [a08c32c]
- Updated dependencies [7e0b8ca]
- Updated dependencies [87c0c53]
- @backstage/core@0.4.3
- @backstage/plugin-catalog@0.2.9
@backstage/techdocs-common@0.3.1
Patch Changes
-
8804e89: Using @backstage/integration package for GitHub/GitLab/Azure tokens and request options.
Most probably you do not have to make any changes in the app because of this change.
However, if you are using theDirectoryPreparer
orCommonGitPreparer
exported by
@backstage/techdocs-common
package, you now need to add pass in aconfig
(from@backstage/config
)
instance as argument.<!-- Before --> const directoryPreparer = new DirectoryPreparer(logger); const commonGitPreparer = new CommonGitPreparer(logger); <!-- Now --> const directoryPreparer = new DirectoryPreparer(config, logger); const commonGitPreparer = new CommonGitPreparer(config, logger);
@backstage/plugin-api-docs@0.4.2
Patch Changes
- 9161531: Link register API to catalog-import plugin
- Updated dependencies [a08c32c]
- Updated dependencies [7e0b8ca]
- Updated dependencies [87c0c53]
- @backstage/core@0.4.3
- @backstage/plugin-catalog@0.2.9
@backstage/plugin-auth-backend@0.2.8
Patch Changes
- cc04668: fix bug in token expiration date
@backstage/plugin-catalog@0.2.9
Patch Changes
-
7e0b8ca: Add
CatalogIndexPage
andCatalogEntityPage
, two new extensions that replace the existingRouter
component.Add
EntityLayout
to replaceEntityPageLayout
, using children instead of an element property, and allowing for collection of allRouteRef
mount points used within tabs.Add
EntitySwitch
to be used to select components based on entity data, along with accompanyingisKind
,isNamespace
, andisComponentType
filters. -
87c0c53: Add new
EntityProvider
component, which can be used to provide an entity for theuseEntity
hook. -
Updated dependencies [a08c32c]
-
Updated dependencies [359f9d2]
- @backstage/core@0.4.3
- @backstage/plugin-techdocs@0.5.2
@backstage/plugin-cost-insights@0.5.4
Patch Changes
@backstage/plugin-fossa@0.1.1
Patch Changes
- 7afdfef: Bump dependency versions of @backstage/core, cli and test-utils
- Updated dependencies [a08c32c]
- @backstage/core@0.4.3
@backstage/plugin-register-component@0.2.6
Patch Changes
- 1517876: Register component plugin is deprecated in favor of @backstage/plugin-catalog-import
- Updated dependencies [a08c32c]
- Updated dependencies [7e0b8ca]
- Updated dependencies [87c0c53]
- @backstage/core@0.4.3
- @backstage/plugin-catalog@0.2.9
@backstage/plugin-techdocs@0.5.2
Patch Changes
- 359f9d2: Added configuration schema for the commonly used properties of techdocs and techdocs-backend plugins
- Updated dependencies [a08c32c]
- Updated dependencies [7e0b8ca]
- Updated dependencies [8804e89]
- Updated dependencies [87c0c53]
- Updated dependencies [86c3c65]
- Updated dependencies [27f2af9]
- @backstage/core-api@0.2.8
- @backstage/core@0.4.3
- @backstage/plugin-catalog@0.2.9
- @backstage/techdocs-common@0.3.1
@backstage/plugin-techdocs-backend@0.5.1
Patch Changes
-
8804e89: Using @backstage/integration package for GitHub/GitLab/Azure tokens and request options.
Most probably you do not have to make any changes in the app because of this change.
However, if you are using theDirectoryPreparer
orCommonGitPreparer
exported by
@backstage/techdocs-common
package, you now need to add pass in aconfig
(from@backstage/config
)
instance as argument.<!-- Before --> const directoryPreparer = new DirectoryPreparer(logger); const commonGitPreparer = new CommonGitPreparer(logger); <!-- Now --> const directoryPreparer = new DirectoryPreparer(config, logger); const commonGitPreparer = new CommonGitPreparer(config, logger);
-
359f9d2: Added configuration schema for the commonly used properties of techdocs and techdocs-backend plugins
-
Updated dependencies [8804e89]
- @backstage/techdocs-common@0.3.1
v0.4.2
@backstage/create-app@0.3.0
Minor Changes
- 0101c7a: Add search plugin to default template for CLI created apps
Patch Changes
-
a8573e5: techdocs-backend: Simplified file, removing individual preparers and generators.
techdocs-backend: UrlReader is now available to use in preparers.In your Backstage app,
packages/backend/plugins/techdocs.ts
file has now been simplified,
to remove registering individual preparers and generators.Please update the file when upgrading the version of
@backstage/plugin-techdocs-backend
package.const preparers = await Preparers.fromConfig(config, { logger, reader, }); const generators = await Generators.fromConfig(config, { logger, }); const publisher = await Publisher.fromConfig(config, { logger, discovery, });
You should be able to remove unnecessary imports, and just do
import { createRouter, Preparers, Generators, Publisher, } from '@backstage/plugin-techdocs-backend';
@backstage/techdocs-common@0.3.0
Minor Changes
-
a8573e5: techdocs-backend: Simplified file, removing individual preparers and generators.
techdocs-backend: UrlReader is now available to use in preparers.In your Backstage app,
packages/backend/plugins/techdocs.ts
file has now been simplified,
to remove registering individual preparers and generators.Please update the file when upgrading the version of
@backstage/plugin-techdocs-backend
package.const preparers = await Preparers.fromConfig(config, { logger, reader, }); const generators = await Generators.fromConfig(config, { logger, }); const publisher = await Publisher.fromConfig(config, { logger, discovery, });
You should be able to remove unnecessary imports, and just do
import { createRouter, Preparers, Generators, Publisher, } from '@backstage/plugin-techdocs-backend';
@backstage/plugin-techdocs-backend@0.5.0
Minor Changes
-
a8573e5: techdocs-backend: Simplified file, removing individual preparers and generators.
techdocs-backend: UrlReader is now available to use in preparers.In your Backstage app,
packages/backend/plugins/techdocs.ts
file has now been simplified,
to remove registering individual preparers and generators.Please update the file when upgrading the version of
@backstage/plugin-techdocs-backend
package.const preparers = await Preparers.fromConfig(config, { logger, reader, }); const generators = await Generators.fromConfig(config, { logger, }); const publisher = await Publisher.fromConfig(config, { logger, discovery, });
You should be able to remove unnecessary imports, and just do
import { createRouter, Preparers, Generators, Publisher, } from '@backstage/plugin-techdocs-backend';
Patch Changes
- Updated dependencies [a8573e5]
- @backstage/techdocs-common@0.3.0
@backstage/cli@0.4.3
Patch Changes
- 19554f6: Added Github Actions for Create React App, and allow better imports of files inside a module when they're exposed using
files
inpackage.json
- 7d72f9b: Fix for
app.listen.host
configuration not properly overriding listening host.
@backstage/core@0.4.2
Patch Changes
- 1dc445e: Update to use new plugin extension API
- 342270e: Create AboutCard in core and use it in pagerduty and catalog plugin
- Updated dependencies [d681db2]
- Updated dependencies [1dc445e]
- @backstage/core-api@0.2.7
@backstage/core-api@0.2.7
Patch Changes
- d681db2: Fix for GitHub and SAML auth not properly updating session state when already logged in.
- 1dc445e: Introduce new plugin extension API
- Updated dependencies [1dc445e]
- @backstage/test-utils@0.1.6
@backstage/test-utils@0.1.6
Patch Changes
- 1dc445e: Update to use new plugin extension API
- Updated dependencies [d681db2]
- Updated dependencies [1dc445e]
- @backstage/core-api@0.2.7
@backstage/plugin-catalog@0.2.8
Patch Changes
- 342270e: Create AboutCard in core and use it in pagerduty and catalog plugin
- Updated dependencies [19554f6]
- Updated dependencies [1dc445e]
- Updated dependencies [342270e]
- @backstage/plugin-scaffolder@0.3.5
- @backstage/core@0.4.2
- @backstage/plugin-techdocs@0.5.1
@backstage/plugin-catalog-backend@0.5.1
Patch Changes
- 5de26b9: Start warning about usage of deprecated location types, such as
github
- 30d6c78: Added configuration schema for the commonly used properties
- 5084e50: Updated the config schema
@backstage/plugin-github-actions@0.2.6
Patch Changes
- 19554f6: Added Github Actions for Create React App, and allow better imports of files inside a module when they're exposed using
files
inpackage.json
- Updated dependencies [d681db2]
- Updated dependencies [1dc445e]
- Updated dependencies [342270e]
- Updated dependencies [1dc445e]
- @backstage/core-api@0.2.7
- @backstage/core@0.4.2
- @backstage/plugin-catalog@0.2.8
@backstage/plugin-graphiql@0.2.3
Patch Changes
- 1dc445e: Update to use new plugin extension API
- Updated dependencies [1dc445e]
- Updated dependencies [342270e]
- @backstage/core@0.4.2
@backstage/plugin-pagerduty@0.2.4
Patch Changes
- 342270e: Create AboutCard in core and use it in pagerduty and catalog plugin
- Updated dependencies [1dc445e]
- Updated dependencies [342270e]
- @backstage/core@0.4.2
@backstage/plugin-scaffolder@0.3.5
Patch Changes
- 19554f6: Added Github Actions for Create React App, and allow better imports of files inside a module when they're exposed using
files
inpackage.json
- Updated dependencies [1dc445e]
- Updated dependencies [342270e]
- @backstage/core@0.4.2
- @backstage/plugin-catalog@0.2.8
@backstage/plugin-scaffolder-backend@0.3.6
Patch Changes
- 19554f6: Added Github Actions for Create React App, and allow better imports of files inside a module when they're exposed using
files
inpackage.json
- 33a82a7: GitLab preparer uses the right token (primarily the same one as the publisher, falling back to the integrations token)
- aed8f7f: Clearer error message when preparer or publisher type can't be determined.
@backstage/plugin-techdocs@0.5.1
Patch Changes
- Updated dependencies [d681db2]
- Updated dependencies [1dc445e]
- Updated dependencies [342270e]
- Updated dependencies [1dc445e]
- Updated dependencies [a8573e5]
- @backstage/core-api@0.2.7
- @backstage/core@0.4.2
- @backstage/test-utils@0.1.6
- @backstage/plugin-catalog@0.2.8
- @backstage/techdocs-common@0.3.0
example-app@0.2.8
Patch Changes
- Updated dependencies [19554f6]
- Updated dependencies [1dc445e]
- Updated dependencies [342270e]
- Updated dependencies [7d72f9b]
- @backstage/cli@0.4.3
- @backstage/plugin-github-actions@0.2.6
- @backstage/plugin-scaffolder@0.3.5
- @backstage/core@0.4.2
- @backstage/test-utils@0.1.6
- @backstage/plugin-graphiql@0.2.3
- @backstage/plugin-catalog@0.2.8
- @backstage/plugin-pagerduty@0.2.4
- @backstage/plugin-techdocs@0.5.1
example-backend@0.2.8
Patch Changes
- 7cfcd58: use node 14 for backend Dockerfile
- Updated dependencies [19554f6]
- Updated dependencies [33a82a7]
- Updated dependencies [5de26b9]
- Updated dependencies [30d6c78]
- Updated dependencies [5084e50]
- Updated dependencies [a8573e5]
- Updated dependencies [aed8f7f]
- @backstage/plugin-scaffolder-backend@0.3.6
- @backstage/plugin-catalog-backend@0.5.1
- @backstage/plugin-techdocs-backend@0.5.0
- example-app@0.2.8
v0.4.1
@backstage/catalog-model@0.6.0
Minor Changes
- ac3560b: Remove
implementsApis
fromComponent
entities. Deprecation happened in #3449.
UseprovidesApis
instead.
Patch Changes
- c911061: Introduce a
profile
section for group entities that can optional include a
displayName
,email
andpicture
. - 0e6298f: Ignore relations when comparing entities. This stops the refresh loop from rewriting entities over and over.
@backstage/techdocs-common@0.2.0
Minor Changes
-
dae4f39: Breaking changes
-
Added option to use Google Cloud Storage as a choice to store the static generated files for TechDocs.
It can be configured usingtechdocs.publisher.type
option inapp-config.yaml
.
Step-by-step guide to configure GCS is available here https://backstage.io/docs/features/techdocs/using-cloud-storage
Settechdocs.publisher.type
to'local'
if you want to continue using local filesystem to store TechDocs files. -
techdocs.builder
is now required and can be set to'local'
or'external'
. (Set it to'local'
for now, since CI/CD build
workflow for TechDocs will be available soon (in few weeks)).
If builder is set to 'local' and you open a TechDocs page,techdocs-backend
will try to generate the docs, publish to storage and
show the generated docs afterwords.
If builder is set to'external'
,techdocs-backend
will only fetch the docs and will NOT try to generate and publish. In this case of'external'
,
we assume that docs are being built in the CI/CD pipeline of the repository.
TechDocs will not assume a default value fortechdocs.builder
. It is better to explicitly define it in theapp-config.yaml
. -
When configuring TechDocs in your backend, there is a difference in how a new publisher is created.
--- const publisher = new LocalPublish(logger, discovery);
+++ const publisher = Publisher.fromConfig(config, logger, discovery);
Based on the config
techdocs.publisher.type
, the publisher could be either Local publisher or Google Cloud Storage publisher.-
techdocs.storageUrl
is now a required config. Should behttp://localhost:7000/api/techdocs/static/docs
in most setups. -
Parts of
@backstage/plugin-techdocs-backend
have been moved to a new package@backstage/techdocs-common
to generate docs. Also to publish docs
to-and-fro between TechDocs and a storage (either local or external). However, a Backstage app does NOT need to import thetechdocs-common
package -
app should only import@backstage/plugin-techdocs
and@backstage/plugin-techdocs-backend
.
Patch changes
-
See all of TechDocs config options and its documentation https://backstage.io/docs/features/techdocs/configuration
-
Logic about serving static files and metadata retrieval have been abstracted away from the router in
techdocs-backend
to the instance of publisher. -
Removed Material UI Spinner from TechDocs header. Spinners cause unnecessary UX distraction.
Case 1 (when docs are built and are to be served): Spinners appear for a split second before the name of site shows up. This unnecessarily distracts eyes because spinners increase the size of the Header. A dot (.) would do fine. Definitely more can be done.
Case 2 (when docs are being generated): There is already a linear progress bar (which is recommended in Storybook).
-
Patch Changes
- Updated dependencies [c911061]
- Updated dependencies [1d1c286]
- Updated dependencies [0e6298f]
- Updated dependencies [4eafdec]
- Updated dependencies [ac3560b]
- @backstage/catalog-model@0.6.0
- @backstage/backend-common@0.4.1
@backstage/plugin-catalog-backend@0.5.0
Minor Changes
-
6b37c95: Write relations directly as part of batch add / update of entities.
Slight change of the
CommonDatabase
contract:addEntity
removedThis method was unused by the core, and rendered unnecessary when
addEntities
exists.If you were a user of
addEntity
, please calladdEntities
instead, with an
array of one element.DbEntityRequest
has a new fieldrelations
This is the structure that is passed to
addEntities
andupdateEntity
. It
used to be the case that you needed to callsetRelations
separately, but now
this instead happens directly when you calladdEntities
orupdateEntity
.If you were using
addEntities
orupdateEntity
directly, please adapt your
code to add therelations
array to each request. If you were calling
setRelations
separately next to these methods, you no longer need to do so,
after adding the relations to theDbEntityRequest
s. -
ac3560b: Remove
implementsApis
fromComponent
entities. Deprecation happened in #3449.
UseprovidesApis
instead.
Patch Changes
- c6eeefa: Add support for Github Enterprise in GitHubOrgReaderProcessor so you can properly ingest users of a GHE organization.
- fb386b7: Break the refresh loop into several smaller transactions
- 7c3ffc0: Support
profile
of groups includingdisplayName
,email
, andpicture
in
LdapOrgReaderProcessor
. The source fields for them can be configured in the
ldapOrg
provider. - e7496dc: Break out GithubOrgReaderProcessor config into its own file for consistency with the other org processors.
- 8dd0a90: Support
profile
of groups includingdisplayName
andpicture
in
GithubOrgReaderProcessor
. Fixes the import ofdescription
for groups. - 8c31c68: Batch the writing of statuses after refreshes. This reduced the runtime on sqlite from 16s to 0.2s, and on pg from 60s to 1s on my machine, for the huge LDAP set.
- 7b98e7f: Add index to foreign key columns. Postgres (and others) do not do this on the "source" side of a foreign key relation, which was what led to the slowness on large datasets. The full LDAP dataset ingestion now takes two minutes, which is not optimal yet but still a huge improvement over before when it basically never finished :)
- 0097057: Support
profile
of groups includingdisplayName
andemail
in
MicrosoftGraphOrgReaderProcessor
. Importingpicture
doesn't work yet, as
the Microsoft Graph API does not expose them correctly. - Updated dependencies [c911061]
- Updated dependencies [1d1c286]
- Updated dependencies [0e6298f]
- Updated dependencies [4eafdec]
- Updated dependencies [ac3560b]
- @backstage/catalog-model@0.6.0
- @backstage/backend-common@0.4.1
@backstage/plugin-techdocs@0.5.0
Minor Changes
-
dae4f39: Breaking changes
-
Added option to use Google Cloud Storage as a choice to store the static generated files for TechDocs.
It can be configured usingtechdocs.publisher.type
option inapp-config.yaml
.
Step-by-step guide to configure GCS is available here https://backstage.io/docs/features/techdocs/using-cloud-storage
Settechdocs.publisher.type
to'local'
if you want to continue using local filesystem to store TechDocs files. -
techdocs.builder
is now required and can be set to'local'
or'external'
. (Set it to'local'
for now, since CI/CD build
workflow for TechDocs will be available soon (in few weeks)).
If builder is set to 'local' and you open a TechDocs page,techdocs-backend
will try to generate the docs, publish to storage and
show the generated docs afterwords.
If builder is set to'external'
,techdocs-backend
will only fetch the docs and will NOT try to generate and publish. In this case of'external'
,
we assume that docs are being built in the CI/CD pipeline of the repository.
TechDocs will not assume a default value fortechdocs.builder
. It is better to explicitly define it in theapp-config.yaml
. -
When configuring TechDocs in your backend, there is a difference in how a new publisher is created.
--- const publisher = new LocalPublish(logger, discovery);
+++ const publisher = Publisher.fromConfig(config, logger, discovery);
Based on the config
techdocs.publisher.type
, the publisher could be either Local publisher or Google Cloud Storage publisher.-
techdocs.storageUrl
is now a required config. Should behttp://localhost:7000/api/techdocs/static/docs
in most setups. -
Parts of
@backstage/plugin-techdocs-backend
have been moved to a new package@backstage/techdocs-common
to generate docs. Also to publish docs
to-and-fro between TechDocs and a storage (either local or external). However, a Backstage app does NOT need to import thetechdocs-common
package -
app should only import@backstage/plugin-techdocs
and@backstage/plugin-techdocs-backend
.
Patch changes
-
See all of TechDocs config options and its documentation https://backstage.io/docs/features/techdocs/configuration
-
Logic about serving static files and metadata retrieval have been abstracted away from the router in
techdocs-backend
to the instance of publisher. -
Removed Material UI Spinner from TechDocs header. Spinners cause unnecessary UX distraction.
Case 1 (when docs are built and are to be served): Spinners appear for a split second before the name of site shows up. This unnecessarily distracts eyes because spinners increase the size of the Header. A dot (.) would do fine. Definitely more can be done.
Case 2 (when docs are being generated): There is already a linear progress bar (which is recommended in Storybook).
-
Patch Changes
v0.4.0
@backstage/backend-common@0.4.0
Minor Changes
-
12bbd74: Removes the Prometheus integration from
backend-common
.Rational behind this change is to keep the metrics integration of Backstage
generic. Instead of directly relying on Prometheus, Backstage will expose
metrics in a generic way. Integrators can then export the metrics in their
desired format. For example using Prometheus.To keep the existing behavior, you need to integrate Prometheus in your
backend:First, add a dependency on
express-prom-bundle
andprom-client
to your backend.// packages/backend/package.json "dependencies": { + "express-prom-bundle": "^6.1.0", + "prom-client": "^12.0.0",
Then, add a handler for metrics and a simple instrumentation for the endpoints.
// packages/backend/src/metrics.ts import { useHotCleanup } from '@backstage/backend-common'; import { RequestHandler } from 'express'; import promBundle from 'express-prom-bundle'; import prom from 'prom-client'; import * as url from 'url'; const rootRegEx = new RegExp('^/([^/]*)/.*'); const apiRegEx = new RegExp('^/api/([^/]*)/.*'); export function normalizePath(req: any): string { const path = url.parse(req.originalUrl || req.url).pathname || '/'; // Capture /api/ and the plugin name if (apiRegEx.test(path)) { return path.replace(apiRegEx, '/api/$1'); } // Only the first path segment at root level return path.replace(rootRegEx, '/$1'); } /** * Adds a /metrics endpoint, register default runtime metrics and instrument the router. */ export function metricsHandler(): RequestHandler { // We can only initialize the metrics once and have to clean them up between hot reloads useHotCleanup(module, () => prom.register.clear()); return promBundle({ includeMethod: true, includePath: true, // Using includePath alone is problematic, as it will include path labels with high // cardinality (e.g. path params). Instead we would have to template them. However, this // is difficult, as every backend plugin might use different routes. Instead we only take // the first directory of the path, to have at least an idea how each plugin performs: normalizePath, promClient: { collectDefaultMetrics: {} }, }); }
Last, extend your router configuration with the
metricsHandler
:+import { metricsHandler } from './metrics'; ... const service = createServiceBuilder(module) .loadConfig(config) .addRouter('', await healthcheck(healthcheckEnv)) + .addRouter('', metricsHandler()) .addRouter('/api', apiRouter);
Your Prometheus metrics will be available at the
/metrics
endpoint.
Patch Changes
- 38e24db: Move the core url and auth logic to integration for the four major providers
- Updated dependencies [38e24db]
- Updated dependencies [b8ecf6f]
- Updated dependencies [e3bd9fc]
- Updated dependencies [e3bd9fc]
- @backstage/integration@0.1.3
- @backstage/config@0.1.2
@backstage/catalog-model@0.5.0
Minor Changes
-
83b6e0c: Remove the deprecated fields
ancestors
anddescendants
from theGroup
entity.See #3049 and the PRs linked from it for details.
Patch Changes
@backstage/core@0.4.0
Minor Changes
-
ff243ce: Introducing a new optional property within
app-config.yaml
calledauth.environment
to have configurable environment value forauth.providers
Default Value: 'development'
Optional Values: 'production' | 'development'
Migration-steps:
- To override the default value, one could simply introduce the new property
environment
within theauth
section of theconfig.yaml
- re-run the build to reflect the changed configs
- To override the default value, one could simply introduce the new property
Patch Changes
- 2527628: Link
component
prop now accepts any element type. - 1c69d47: Fix React warning of descendant paragraph tag
- 04f26f8: Export the
defaultConfigLoader
implementation - Updated dependencies [b6557c0]
- Updated dependencies [e3bd9fc]
- Updated dependencies [d8d5a17]
- Updated dependencies [1665ae8]
- Updated dependencies [e3bd9fc]
- @backstage/core-api@0.2.5
- @backstage/config@0.1.2
- @backstage/theme@0.2.2
@backstage/plugin-api-docs@0.4.0
Minor Changes
-
246799c: Stop exposing a custom router from the
api-docs
plugin. Instead, use the
widgets exported by the plugin to compose your custom entity pages.Instead of displaying the API definitions directly in the API tab of the
component, it now contains tables linking to the API entities. This also adds
new widgets to display relationships (bot provides & consumes relationships)
between components and APIs.See the changelog of
create-app
for a migration guide.
Patch Changes
- Updated dependencies [2527628]
- Updated dependencies [6011b7d]
- Updated dependencies [1c69d47]
- Updated dependencies [83b6e0c]
- Updated dependencies [1665ae8]
- Updated dependencies [04f26f8]
- Updated dependencies [ff243ce]
- @backstage/core@0.4.0
- @backstage/plugin-catalog@0.2.6
- @backstage/catalog-model@0.5.0
- @backstage/theme@0.2.2
@backstage/plugin-catalog-backend@0.4.0
Minor Changes
-
83b6e0c: Remove the deprecated fields
ancestors
anddescendants
from theGroup
entity.See #3049 and the PRs linked from it for details.
Patch Changes
- 6e8bb3a: leave unknown placeholder-lookalikes untouched in the catalog processing loop
- e708679: refreshAllLocations uses a child logger of the HigherOrderOperation with a meta
component
:catalog-all-locations-refresh
- 047c018: Batch the fetching of relations
- 38d63fb: Fix string template literal
- Updated dependencies [38e24db]
- Updated dependencies [e3bd9fc]
- Updated dependencies [12bbd74]
- Updated dependencies [83b6e0c]
- Updated dependencies [e3bd9fc]
- @backstage/backend-common@0.4.0
- @backstage/config@0.1.2
- @backstage/catalog-model@0.5.0
@backstage/plugin-cost-insights@0.5.0
Minor Changes
-
e3071a0: Add support for multiple types of entity cost breakdown.
This change is backwards-incompatible with plugin-cost-insights 0.3.x; the
entities
field on Entity returned in product cost queries changed fromEntity[]
toRecord<string, Entity[]
. -
d6e8099ed: convert duration + last completed billing date to intervals
-
88ef11b: Remove calendar MoM period option and fix quarter end date logic
Patch Changes
- 90458fe: fix react-hooks/exhaustive-deps error
- Updated dependencies [2527628]
- Updated dependencies [e3bd9fc]
- Updated dependencies [e1f4e24]
- Updated dependencies [1c69d47]
- Updated dependencies [1665ae8]
- Updated dependencies [04f26f8]
- Updated dependencies [ff243ce]
- Updated dependencies [e3bd9fc]
- @backstage/core@0.4.0
- @backstage/config@0.1.2
- @backstage/test-utils@0.1.5
- @backstage/theme@0.2.2
@backstage/plugin-sentry@0.3.0
Minor Changes
-
075d3dc: The plugin uses the
proxy-backend
instead of a customsentry-backend
.
It requires a proxy configuration:app-config.yaml
:proxy: '/sentry/api': target: https://sentry.io/api/ allowedMethods: ['GET'] headers: Authorization: $env: SENTRY_TOKEN # export SENTRY_TOKEN="Bearer <your-sentry-token>"
The
MockApiBackend
is no longer configured by theNODE_ENV
variable.
Instead, the mock backend can be used with an api-override:packages/app/src/apis.ts
:import { createApiFactory } from '@backstage/core'; import { MockSentryApi, sentryApiRef } from '@backstage/plugin-sentry'; export const apis = [ // ... createApiFactory(sentryApiRef, new MockSentryApi()), ];
If you already use the Sentry backend, you must remove it from the backend:
Delete
packages/backend/src/plugins/sentry.ts
.# packages/backend/package.json ... "@backstage/plugin-scaffolder-backend": "^0.3.2", - "@backstage/plugin-sentry-backend": "^0.1.3", "@backstage/plugin-techdocs-backend": "^0.3.0", ...
// packages/backend/src/index.html const apiRouter = Router(); apiRouter.use('/catalog', await catalog(catalogEnv)); apiRouter.use('/rollbar', await rollbar(rollbarEnv)); apiRouter.use('/scaffolder', await scaffolder(scaffolderEnv)); - apiRouter.use('/sentry', await sentry(sentryEnv)); apiRouter.use('/auth', await auth(authEnv)); apiRouter.use('/techdocs', await techdocs(techdocsEnv)); apiRouter.use('/kubernetes', await kubernetes(kubernetesEnv)); apiRouter.use('/proxy', await proxy(proxyEnv)); apiRouter.use('/graphql', await graphql(graphqlEnv)); apiRouter.use(notFoundHandler());
Patch Changes
- Updated dependencies [2527628]
- Updated dependencies [1c69d47]
- Updated dependencies [83b6e0c]
- Updated dependencies [1665ae8]
- Updated dependencies [04f26f8]
- Updated dependencies [ff243ce]
- @backstage/core@0.4.0
- @backstage/catalog-model@0.5.0
- @backstage/theme@0.2.2
@backstage/plugin-sentry-backend@0.2.0
Minor Changes
- 075d3dc: The plugin uses the
proxy-backend
instead of a customsentry-backend
.
It requires a proxy configuration:
...
v0.3.2
@backstage/catalog-model@0.3.0
Minor Changes
- 1166fcc: add kubernetes selector to component model
Patch Changes
-
1185919: Marked the
Group
entity fieldsancestors
anddescendants
for deprecation on Dec 6th, 2020. See #3049 for details.Code that consumes these fields should remove those usages as soon as possible. There is no current or planned replacement for these fields.
The BuiltinKindsEntityProcessor has been updated to inject these fields as empty arrays if they are missing. Therefore, if you are on a catalog instance that uses the updated version of this code, you can start removing the fields from your source catalog-info.yaml data as well, without breaking validation.
After Dec 6th, the fields will be removed from types and classes of the Backstage repository. At the first release after that, they will not be present in released packages either.
If your catalog-info.yaml files still contain these fields after the deletion, they will still be valid and your ingestion will not break, but they won't be visible in the types for consuming code.
@backstage/plugin-kubernetes@0.3.0
Minor Changes
- 1166fcc: add kubernetes selector to component model
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-kubernetes-backend@0.2.0
@backstage/plugin-kubernetes-backend@0.2.0
Minor Changes
- 1166fcc: add kubernetes selector to component model
Patch Changes
- Updated dependencies [1166fcc]
- Updated dependencies [bff3305]
- Updated dependencies [1185919]
- Updated dependencies [b47dce0]
- @backstage/catalog-model@0.3.0
- @backstage/backend-common@0.3.1
@backstage/backend-common@0.3.1
Patch Changes
- bff3305: Added readTree support to AzureUrlReader
- b47dce0: Make integration host and url configurations visible in the frontend
@backstage/catalog-client@0.3.1
Patch Changes
@backstage/cli@0.3.1
Patch Changes
- 29a0cca: The CLI now detects and transforms linked packages. You can link in external packages by adding them to both the
lerna.json
andpackage.json
workspace paths. - faf311c: New lint rule to disallow assertions and promote
as
assertions. - @typescript-eslint/consistent-type-assertions - 31d8b69: Add experimental backend:bundle command
- 9913459: Add new
versions:check
andversions:bump
commands to simplify version management and avoid conflicts
@backstage/core@0.3.2
Patch Changes
- 475fc0a: Clear sidebar search field once a search is executed
@backstage/plugin-api-docs@0.2.2
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-auth-backend@0.2.3
Patch Changes
- Updated dependencies [1166fcc]
- Updated dependencies [bff3305]
- Updated dependencies [1185919]
- Updated dependencies [b47dce0]
- @backstage/catalog-model@0.3.0
- @backstage/backend-common@0.3.1
- @backstage/catalog-client@0.3.1
@backstage/plugin-catalog@0.2.3
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [ef2831d]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-scaffolder@0.3.1
- @backstage/catalog-client@0.3.1
- @backstage/plugin-techdocs@0.2.3
@backstage/plugin-catalog-backend@0.2.2
Patch Changes
-
0c21212: Add support for reading groups and users from the Microsoft Graph API.
-
1185919: Marked the
Group
entity fieldsancestors
anddescendants
for deprecation on Dec 6th, 2020. See #3049 for details.Code that consumes these fields should remove those usages as soon as possible. There is no current or planned replacement for these fields.
The BuiltinKindsEntityProcessor has been updated to inject these fields as empty arrays if they are missing. Therefore, if you are on a catalog instance that uses the updated version of this code, you can start removing the fields from your source catalog-info.yaml data as well, without breaking validation.
After Dec 6th, the fields will be removed from types and classes of the Backstage repository. At the first release after that, they will not be present in released packages either.
If your catalog-info.yaml files still contain these fields after the deletion, they will still be valid and your ingestion will not break, but they won't be visible in the types for consuming code.
-
Updated dependencies [1166fcc]
-
Updated dependencies [bff3305]
-
Updated dependencies [1185919]
-
Updated dependencies [b47dce0]
- @backstage/catalog-model@0.3.0
- @backstage/backend-common@0.3.1
@backstage/plugin-catalog-graphql@0.2.2
Patch Changes
- Updated dependencies [1166fcc]
- Updated dependencies [bff3305]
- Updated dependencies [1185919]
- Updated dependencies [b47dce0]
- @backstage/catalog-model@0.3.0
- @backstage/backend-common@0.3.1
@backstage/plugin-circleci@0.2.2
Patch Changes
- a8de7f5: Improved CircleCI builds table to show more information and relevant links
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-cloudbuild@0.2.2
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-cost-insights@0.4.1
Patch Changes
- 8e6728e: fix product icon configuration
- c93a14b: truncate large percentages > 1000%
- Updated dependencies [475fc0a]
- @backstage/core@0.3.2
@backstage/plugin-github-actions@0.2.2
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-jenkins@0.3.1
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-lighthouse@0.2.3
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-register-component@0.2.2
Patch Changes
- 2a71f4b: Remove catalog link on validate popup
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-rollbar@0.2.3
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-scaffolder@0.3.1
Patch Changes
- ef2831d: Move constructing the catalog-info.yaml URL for scaffolded components to the publishers
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-scaffolder-backend@0.3.2
Patch Changes
- ef2831d: Move constructing the catalog-info.yaml URL for scaffolded components to the publishers
- 5a1d8dc: Fix React entity YAML filename to new standard
- Updated dependencies [1166fcc]
- Updated dependencies [bff3305]
- Updated dependencies [1185919]
- Updated dependencies [b47dce0]
- @backstage/catalog-model@0.3.0
- @backstage/backend-common@0.3.1
@backstage/plugin-search@0.2.1
Patch Changes
- 475fc0a: Using the search field in the sidebar now navigates to the search result page.
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-sentry@0.2.3
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
@backstage/plugin-sonarqube@0.1.4
Patch Changes
- 26484d4: Add configuration schema
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
@backstage/plugin-techdocs@0.2.3
Patch Changes
- Updated dependencies [475fc0a]
- Updated dependencies [1166fcc]
- Updated dependencies [1185919]
- @backstage/core@0.3.2
- @backstage/catalog-model@0.3.0
- @backstage/plugin-catalog@0.2.3
@backstage/plugin-tec...
v0.3.1
@backstage/backend-common@0.3.0
Minor Changes
-
1722cb5: Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
The new
loadConfigSchema
function exported by@backstage/config-loader
allows for the collection and merging of configuration schemas from all nearby dependencies of the project.A configuration schema is declared using the
https://backstage.io/schema/config-v1
JSON Schema meta schema, which is based on draft07. The only difference to the draft07 schema is the customvisibility
keyword, which is used to indicate whether the given config value should be visible in the frontend or not. The possible values arefrontend
,backend
, andsecret
, wherebackend
is the default. A visibility ofsecret
has the same scope at runtime, but it will be treated with more care in certain contexts, and defining bothfrontend
andsecret
for the same value in two different schemas will result in an error during schema merging.Packages that wish to contribute configuration schema should declare it in a root
"configSchema"
field inpackage.json
. The field can either contain an inlined JSON schema, or a relative path to a schema file. Schema files can be in either.json
or.d.ts
format.TypeScript configuration schema files should export a single
Config
type, for example:export interface Config { app: { /** * Frontend root URL * @visibility frontend */ baseUrl: string; }; }
-
8e2effb: Refactored UrlReader.readTree to be required and accept (url, options)
Patch Changes
- 1722cb5: Added configuration schema
- 7b37e68: Added the integration package
- Updated dependencies [1722cb5]
- Updated dependencies [7b37e68]
- @backstage/config-loader@0.3.0
- @backstage/integration@0.1.1
- @backstage/test-utils@0.1.3
@backstage/catalog-client@0.3.0
Minor Changes
- 717e43d: Changed the getEntities interface to (1) nest parameters in an object, (2) support field selection, and (3) return an object with an items field for future extension
@backstage/cli@0.3.0
Minor Changes
-
1722cb5: Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
The new
loadConfigSchema
function exported by@backstage/config-loader
allows for the collection and merging of configuration schemas from all nearby dependencies of the project.A configuration schema is declared using the
https://backstage.io/schema/config-v1
JSON Schema meta schema, which is based on draft07. The only difference to the draft07 schema is the customvisibility
keyword, which is used to indicate whether the given config value should be visible in the frontend or not. The possible values arefrontend
,backend
, andsecret
, wherebackend
is the default. A visibility ofsecret
has the same scope at runtime, but it will be treated with more care in certain contexts, and defining bothfrontend
andsecret
for the same value in two different schemas will result in an error during schema merging.Packages that wish to contribute configuration schema should declare it in a root
"configSchema"
field inpackage.json
. The field can either contain an inlined JSON schema, or a relative path to a schema file. Schema files can be in either.json
or.d.ts
format.TypeScript configuration schema files should export a single
Config
type, for example:export interface Config { app: { /** * Frontend root URL * @visibility frontend */ baseUrl: string; }; }
Patch Changes
- 1722cb5: Added configuration schema
- 9023404: Support specifying listen host/port for frontend
- Updated dependencies [1722cb5]
- @backstage/config-loader@0.3.0
@backstage/config-loader@0.3.0
Minor Changes
-
1722cb5: Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
The new
loadConfigSchema
function exported by@backstage/config-loader
allows for the collection and merging of configuration schemas from all nearby dependencies of the project.A configuration schema is declared using the
https://backstage.io/schema/config-v1
JSON Schema meta schema, which is based on draft07. The only difference to the draft07 schema is the customvisibility
keyword, which is used to indicate whether the given config value should be visible in the frontend or not. The possible values arefrontend
,backend
, andsecret
, wherebackend
is the default. A visibility ofsecret
has the same scope at runtime, but it will be treated with more care in certain contexts, and defining bothfrontend
andsecret
for the same value in two different schemas will result in an error during schema merging.Packages that wish to contribute configuration schema should declare it in a root
"configSchema"
field inpackage.json
. The field can either contain an inlined JSON schema, or a relative path to a schema file. Schema files can be in either.json
or.d.ts
format.TypeScript configuration schema files should export a single
Config
type, for example:export interface Config { app: { /** * Frontend root URL * @visibility frontend */ baseUrl: string; }; }
@backstage/plugin-app-backend@0.3.0
Minor Changes
-
1722cb5: Use new config schema support to automatically inject config with frontend visibility, in addition to the existing env schema injection.
This removes the confusing behavior where configuration was only injected into the app at build time. Any runtime configuration (except for environment config) in the backend used to only apply to the backend itself, and not be injected into the frontend.
Patch Changes
- Updated dependencies [1722cb5]
- Updated dependencies [1722cb5]
- Updated dependencies [7b37e68]
- Updated dependencies [8e2effb]
- @backstage/backend-common@0.3.0
- @backstage/config-loader@0.3.0
@backstage/plugin-cost-insights@0.4.0
Minor Changes
- 4040d4f: remove cost insights currency feature flag
Patch Changes
- 1722cb5: Added configuration schema
- 17a9f48: remove excessive margin from cost overview banner
- f360395: UI improvements: Increase width of first column in product entity dialog table
UI improvement: Display full cost amount in product entity dialog table - 259d848: Fix savings/excess display calculation
- Updated dependencies [1722cb5]
- @backstage/core@0.3.1
- @backstage/test-utils@0.1.3
@backstage/core@0.3.1
Patch Changes
- 1722cb5: Added configuration schema
@backstage/create-app@0.2.2
Patch Changes
-
7d7abd5: Add
app-backend
as a backend plugin, and make a single docker build of the backend the default way to deploy backstage.Note that the
app-backend
currently only is a solution for deployments of the app, it's not a dev server and is not intended for local development.Template changes
As a part of installing the
app-backend
plugin, the below changes where made. The changes are grouped into two steps, installing the plugin, and updating the Docker build and configuration.Installing the
app-backend
plugin in the backendFirst, install the
@backstage/plugin-app-backend
plugin package in your backend. These changes where made forv0.3.0
of the plugin, and the installation process might change in the future. Run the following from the root of the repo:cd packages/backend yarn add @backstage/plugin-app-backend
For the
app-backend
to get access to the static content in the frontend we also need to add the localapp
package as a dependency. Add the following to your"dependencies"
inpackages/backend/package.json
, assuming your app package is still namedapp
and on version0.0.0
:"app": "0.0.0",
Don't worry, this will not cause your entire frontend dependency tree to be added to the app, just double check that
packages/app/package.json
has a"bundled": true
field at top-level. This signals to the backend build process that the package is bundled and that no transitive dependencies should be included.Next, create
packages/backend/src/plugins/app.ts
with the following:import { createRouter } from '@backstage/plugin-app-backend'; import { PluginEnvironment } from '../types'; export default async function createPlugin({ logger, config, }: PluginEnvironment) { return await createRouter({ logger, config, appPackageName: 'app', }); }
In
packages/backend/src/index.ts
, make the following changes:Add an import for the newly created plugin setup file:
import app from './plugins/app';
Setup the following plugin env.
const appEnv = useHotMemoize(module, () => createEnv('app'));
Change service builder setup to include the
app
plugin as follows. Note that theapp
plugin is not installed on the/api
route with most other plugins.const service = createServiceBuilder(module) .loadConfig(config) .addRouter('/api', apiRouter) .addRouter('', await app(appEnv));
You should now have the
app-backend
plugin installed in your backend, ready to serve the frontend bundle!Docker build setup
Since the backend image is now the only one needed for a simple Backstage deployment, the image tag name in the
build-image
script insidepackages/backend/package.json
was changed to th...
v0.3.0
@backstage/core@0.3.0
Minor Changes
- 199237d: New DependencyGraph component added to core package.
Patch Changes
-
7b37d65: Adds the MarkdownContent component to render and display Markdown content with the default
GFM (Github flavored Markdown) dialect.<MarkdownContent content={markdownGithubFlavored} />
To render the Markdown content with plain CommonMark, set the dialect to
common-mark
<MarkdownContent content={markdown} dialect='common-mark />
-
4aca74e: Extend default config loader to read config from the window object.
Config will be read from
window.__APP_CONFIG__
which should be an object. -
e8f69ba: - The BottomLink is now able to handle with internal routes.
- @backstage/core Link component detect whether it's an external link or not, and render accordingly
-
0c0798f: Extend the table to share its current filter state. The filter state can be used together with the new
useQueryParamState
hook to store the current filter state to the browser history and restore it after navigating to other routes. -
0c0798f: Make the selected state of Select and CheckboxTree controllable from outside.
-
6627b62: Fix divider prop not respected on InfoCard
-
Updated dependencies [c5bab94]
-
Updated dependencies [4577e37]
- @backstage/core-api@0.2.1
- @backstage/theme@0.2.1
@backstage/plugin-cost-insights@0.3.0
Minor Changes
- 0703ede: rename: Tooltip -> BarChartTooltip
rename: TooltipItem -> BarChartTooltipItem
Deprecate BarChartData in favor of BarChartOptions
Export BarChartLegend component
Update BarChart props to accept options prop
Deprecate ProductCost type in favor of Entity. Update CostInsightsApi
Patch Changes
- 9a29457: Fix styling issue on Cost Insights product panels with no cost
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
@backstage/plugin-jenkins@0.3.0
Minor Changes
- a41730c: Add tooltip for Jenkins rerun button
Patch Changes
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- Updated dependencies [2d0bd1b]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
- @backstage/plugin-catalog@0.2.1
@backstage/plugin-scaffolder@0.3.0
Minor Changes
-
59166e5:
createRouter
of scaffolder backend will now require additional option asentityClient
which could be generated byCatalogEntityClient
inplugin-scaffolder-backend
package. Here is example to generateentityClient
.import { CatalogEntityClient } from '@backstage/plugin-scaffolder-backend'; import { SingleHostDiscovery } from '@backstage/backend-common'; const discovery = SingleHostDiscovery.fromConfig(config); const entityClient = new CatalogEntityClient({ discovery });
- Scaffolder's API
/v1/jobs
will accepttemplateName
instead oftemplate
Entity.
- Scaffolder's API
Patch Changes
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- Updated dependencies [2d0bd1b]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
- @backstage/plugin-catalog@0.2.1
@backstage/plugin-scaffolder-backend@0.3.0
Minor Changes
-
59166e5:
createRouter
of scaffolder backend will now require additional option asentityClient
which could be generated byCatalogEntityClient
inplugin-scaffolder-backend
package. Here is example to generateentityClient
.import { CatalogEntityClient } from '@backstage/plugin-scaffolder-backend'; import { SingleHostDiscovery } from '@backstage/backend-common'; const discovery = SingleHostDiscovery.fromConfig(config); const entityClient = new CatalogEntityClient({ discovery });
- Scaffolder's API
/v1/jobs
will accepttemplateName
instead oftemplate
Entity.
- Scaffolder's API
Patch Changes
- Updated dependencies [33b7300]
- @backstage/backend-common@0.2.1
@backstage/plugin-tech-radar@0.3.0
Minor Changes
- a906f20: Added tech radar blip history backend support and normalized the data structure
Patch Changes
- 3f05616: Make the footer color of the tech-radar work in both light and dark theme.
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
@backstage/backend-common@0.2.1
Patch Changes
- 33b7300: Capture plugin name under the /api/ prefix for http metrics
@backstage/core-api@0.2.1
Patch Changes
-
c5bab94: Updated the AuthApi
.create
methods to configure the default scope of the corresponding 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'], }),
Replaced redundant CreateOptions of each Auth Api with the OAuthApiCreateOptions type.
export type OAuthApiCreateOptions = AuthApiCreateOptions & { oauthRequestApi: OAuthRequestApi; defaultScopes?: string[]; }; export type AuthApiCreateOptions = { discoveryApi: DiscoveryApi; environment?: string; provider?: AuthProvider & { id: string }; };
-
Updated dependencies [4577e37]
- @backstage/theme@0.2.1
@backstage/create-app@0.2.1
Patch Changes
- c56e283: Fix missing api-docs plugin registration in app template
@backstage/dev-utils@0.1.3
Patch Changes
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
@backstage/theme@0.2.1
Patch Changes
- 4577e37: Improve styling of outlined chips in dark mode.
@backstage/plugin-api-docs@0.2.1
Patch Changes
- 0c0798f: Persist table state of the API Explorer to the browser history. This allows to navigate between pages and come back to the previous filter state.
- 84b654d: Use dense table style and outlined chips in the API Explorer.
- 803527b: Upgrade @kyma-project/asyncapi-react to 0.14.2
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- Updated dependencies [2d0bd1b]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
- @backstage/plugin-catalog@0.2.1
@backstage/plugin-auth-backend@0.2.1
Patch Changes
- 7528080: Handle non-7-bit safe characters in the posted message data
- 4628763: Encode the OAuth state parameter using URL safe chars only, so that providers have an easier time forming the callback URL.
- Updated dependencies [33b7300]
- @backstage/backend-common@0.2.1
@backstage/plugin-catalog@0.2.1
Patch Changes
- 2d0bd1b: Improved the edit link to open the component yaml in edit mode in corresponding SCM. Broke out logic for createEditLink to be reused.
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- Updated dependencies [59166e5]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
- @backstage/plugin-scaffolder@0.3.0
- @backstage/plugin-techdocs@0.2.1
@backstage/plugin-circleci@0.2.1
Patch Changes
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- Updated dependencies [2d0bd1b]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
- @backstage/plugin-catalog@0.2.1
@backstage/plugin-cloudbuild@0.2.1
Patch Changes
- Updated dependencies [7b37d65]
- Updated dependencies [4aca74e]
- Updated dependencies [e8f69ba]
- Updated dependencies [0c0798f]
- Updated dependencies [0c0798f]
- Updated dependencies [199237d]
- Updated dependencies [6627b62]
- Updated dependencies [4577e37]
- Updated dependencies [2d0bd1b]
- @backstage/core@0.3.0
- @backstage/theme@0.2.1
- @backstage/plugin-catalog@0.2.1
@backstage/plugin-explore@0.2.1
Patch Changes
- Updated dependencies [7b37d65]
...