Merge branch 'backstage:master' into master

This commit is contained in:
matteosilv
2022-08-23 09:30:25 +02:00
committed by GitHub
918 changed files with 26280 additions and 6905 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': minor
---
Add the option for a homepage when using the `github:publish` action
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/backend-common': patch
---
Improve `scm/git` wrapper around `isomorphic-git` library :
- Add `checkout` function,
- Add optional `remoteRef` parameter in the `push` function.
+8
View File
@@ -0,0 +1,8 @@
---
'@backstage/plugin-kafka': patch
'@backstage/plugin-kafka-backend': patch
'@backstage/plugin-lighthouse': patch
'@backstage/plugin-proxy-backend': patch
---
Minor API signatures cleanup
+16
View File
@@ -0,0 +1,16 @@
---
'@backstage/plugin-scaffolder-backend': minor
---
Fixed a bug in plugin-scaffolder-backend where it ignores the skip migration database options.
To use this new implementation you need to create the instance of `DatabaseTaskStore` using the `PluginDatabaseManager` instead of `Knex`;
```
import { DatabaseManager, getRootLogger, loadBackendConfig } from '@backstage/backend-common';
import { DatabaseTaskStore } from '@backstage/plugin-scaffolder-backend';
const config = await loadBackendConfig({ argv: process.argv, logger: getRootLogger() });
const databaseManager = DatabaseManager.fromConfig(config, { migrations: { skip: true } });
const databaseTaskStore = await DatabaseTaskStore.create(databaseManager);
```
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-common': minor
---
Added back support for when no branch is provided to the `UrlReader` for Bitbucket Server
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/integration': patch
---
Handle incorrect return type from Octokit paginate plugin to resolve reading URLs from GitHub
+25
View File
@@ -0,0 +1,25 @@
---
'@backstage/plugin-azure-devops': patch
'@backstage/plugin-azure-devops-backend': patch
'@backstage/plugin-azure-devops-common': patch
'@backstage/plugin-cloudbuild': patch
'@backstage/plugin-explore': patch
'@backstage/plugin-fossa': patch
'@backstage/plugin-git-release-manager': patch
'@backstage/plugin-github-actions': patch
'@backstage/plugin-jenkins': patch
'@backstage/plugin-newrelic-dashboard': patch
'@backstage/plugin-pagerduty': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-search-backend-node': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-sonarqube': patch
'@backstage/plugin-tech-insights': patch
'@backstage/plugin-tech-insights-node': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-techdocs-module-addons-contrib': patch
'@backstage/plugin-user-settings': patch
'@backstage/plugin-vault-backend': patch
---
Minor API signatures cleanup
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/core-plugin-api': patch
---
Introduced a new experimental feature that allows you to declare plugin-wide options for your plugin by defining
`__experimentalConfigure` in your `createPlugin` options. See https://backstage.io/docs/plugins/customization.md for more information.
This is an experimental feature and it will have breaking changes in the future.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Add a `publish:gerrit:review` scaffolder action
-15
View File
@@ -1,15 +0,0 @@
---
'@backstage/plugin-catalog': minor
---
Plugin catalog has been modified to use an experimental feature where you can customize the title of the create button.
You can modify it by doing:
```typescript jsx
import { catalogPlugin } from '@backstage/plugin-catalog';
catalogPlugin.__experimentalReconfigure({
createButtonTitle: 'New',
});
```
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/backend-tasks': patch
'@backstage/plugin-catalog-backend': patch
---
Added support to mysql on some raw queries
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/integration': minor
'@backstage/plugin-scaffolder-backend': minor
---
Add support for Basic Auth for Bitbucket Server.
+9
View File
@@ -0,0 +1,9 @@
---
'@backstage/plugin-dynatrace': minor
---
New features:
- Some visual improvements to the table that displays Problems
- Added support for viewing recent Synthetics results using
- Added some additional linking to the configured Dynatrace instance
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-stack-overflow-backend': patch
---
Added API key as separate configuration
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-github': patch
---
New experimental alpha exports for use with the upcoming backend system.
@@ -2,4 +2,4 @@
'@backstage/create-app': patch
---
Bumped create-app version.
Fix typo in the documentation
+71
View File
@@ -0,0 +1,71 @@
---
'@backstage/create-app': patch
---
The `packages/backend/Dockerfile` received a couple of updates, it now looks as follows:
```Dockerfile
FROM node:16-bullseye-slim
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
RUN apt-get update && \
apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \
rm -rf /var/lib/apt/lists/* && \
yarn config set python /usr/bin/python3
# From here on we use the least-privileged `node` user to run the backend.
USER node
WORKDIR /app
# This switches many Node.js dependencies to production mode.
ENV NODE_ENV production
# Copy repo skeleton first, to avoid unnecessary docker cache invalidation.
# The skeleton contains the package.json of each package in the monorepo,
# and along with yarn.lock and the root package.json, that's enough to run yarn install.
COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./
RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz
RUN yarn install --frozen-lockfile --production --network-timeout 300000 && rm -rf "$(yarn cache dir)"
# Then copy the rest of the backend bundle, along with any other files we might want.
COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz
CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
```
The two notable changes are that a `USER node` instruction has been added and the ordering of instructions has been changed accordingly. This means that the app will now be running using the least-privileged `node` user. In order for this to work we now need to make sure that all app files are owned by the `node` user, which we do by adding the `--chown=node:node` option to the `COPY` instructions.
The second change is the addition of `ENV NODE_ENV production`, which ensured that all Node.js modules run in production mode. If you apply this change to an existing app, note that one of the more significant changes is that this switches the log formatting to use the default production format, JSON. Rather than your log lines looking like this:
```log
2022-08-10T11:36:05.478Z catalog info Performing database migration type=plugin
```
They will now look like this:
```log
{"level":"info","message":"Performing database migration","plugin":"catalog","service":"backstage","type":"plugin"}
```
If you wish to keep the existing format, you can override this change by applying the following change to `packages/backend/src/index.ts`:
```diff
getRootLogger,
+ setRootLogger,
+ createRootLogger,
+ coloredFormat,
useHotMemoize,
...
ServerTokenManager,
} from '@backstage/backend-common';
...
async function main() {
+ setRootLogger(createRootLogger({ format: coloredFormat }));
+
const config = await loadBackendConfig({
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-cost-insights': patch
---
The `CostInsightsHeader`component now uses group names if available
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/core-app-api': patch
'@backstage/core-plugin-api': patch
---
Added `getSystemIcons()` function to the `AppContext` available through `useApp` that will pull a list of all the icons that have been registered in the App.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/backend-common': minor
---
- Added `force` and `remoteRef` option to `push` method in `git` actions
- Added `addRemote` and `deleteRemote` methods to `git` actions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-components': patch
---
Adds code to generate ids for headers parsed through the MarkdownContent component.
+16
View File
@@ -0,0 +1,16 @@
---
'@backstage/plugin-search-backend-module-pg': minor
---
Fixed a bug in search-backend-module-pg where it ignores the skip migration database options when using the database.
To use this new implementation you need to create the instance of `DatabaseDocumentStore` using the `PluginDatabaseManager` instead of `Knex`;
```
import { DatabaseManager, getRootLogger, loadBackendConfig } from '@backstage/backend-common';
import { DatabaseDocumentStore } from '@backstage/plugin-search-backend-module-pg';
const config = await loadBackendConfig({ argv: process.argv, logger: getRootLogger() });
const databaseManager = DatabaseManager.fromConfig(config, { migrations: { skip: true } });
const databaseDocumentStore = await DatabaseDocumentStore.create(databaseManager);
```
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-techdocs-node': patch
---
Fix AWS S3 404 NotFound error
When reading an object from the S3 bucket through a stream, the aws-sdk getObject() API may throw a 404 NotFound Error with no error message or, in fact, any sort of HTTP-layer error responses. These fail the @backstage/error's assertError() checks, so they must be wrapped. The test for this case was also updated to match the wrapped error message.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-org': patch
---
Added an edit button to the `UserProfileCard` that is enabled when the `backstage.io/edit-url` is present, this matches how the `GroupProfileCard` works
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': minor
'@backstage/backend-common': patch
---
Add support for Bearer Authorization header / token-based auth at Git commands.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Fixed techdocs sidebar layout bug for medium devices.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Added Backstage version to output of `yarn backstage-cli info` command
-9
View File
@@ -1,9 +0,0 @@
---
'@backstage/backend-common': patch
---
The `ZipArchiveResponse` now correctly handles corrupt ZIP archives.
Before this change, certain corrupt ZIP archives either cause the inflater to throw (as expected), or will hang the parser indefinitely.
By switching out the `zip` parsing library, we now write to a temporary directory, and load from disk which should ensure that the parsing of the `.zip` files are done correctly because `streaming` of `zip` paths is technically impossible without being able to parse the headers at the end of the file.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-kafka': patch
---
Add dashboard URL feature and fix minor styling issues.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-plugin-api': patch
---
Simplified the `ServiceFactory` type and removed `AnyServiceFactory`.
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-aws': patch
---
Deprecate `AwsS3DiscoveryProcessor` in favor of `AwsS3EntityProvider` (since v0.1.4).
You can find a migration guide at
[the release notes for v0.1.4](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/CHANGELOG.md#014).
+151 -175
View File
@@ -2,198 +2,174 @@
"mode": "pre",
"tag": "next",
"initialVersions": {
"example-app": "0.2.73",
"@backstage/app-defaults": "1.0.4",
"example-backend": "0.2.73",
"@backstage/backend-app-api": "0.1.0",
"@backstage/backend-common": "0.14.1",
"example-backend-next": "0.0.1",
"@backstage/backend-plugin-api": "0.1.0",
"@backstage/backend-tasks": "0.3.3",
"@backstage/backend-test-utils": "0.1.26",
"example-app": "0.2.74",
"@backstage/app-defaults": "1.0.5",
"example-backend": "0.2.74",
"@backstage/backend-app-api": "0.2.0",
"@backstage/backend-common": "0.15.0",
"@backstage/backend-defaults": "0.1.0",
"example-backend-next": "0.0.2",
"@backstage/backend-plugin-api": "0.1.1",
"@backstage/backend-tasks": "0.3.4",
"@backstage/backend-test-utils": "0.1.27",
"@backstage/catalog-client": "1.0.4",
"@backstage/catalog-model": "1.1.0",
"@backstage/cli": "0.18.0",
"@backstage/cli": "0.18.1",
"@backstage/cli-common": "0.1.9",
"@backstage/codemods": "0.1.38",
"@backstage/config": "1.0.1",
"@backstage/config-loader": "1.1.3",
"@backstage/core-app-api": "1.0.4",
"@backstage/core-components": "0.10.0",
"@backstage/core-plugin-api": "1.0.4",
"@backstage/create-app": "0.4.29",
"@backstage/dev-utils": "1.0.4",
"@backstage/core-app-api": "1.0.5",
"@backstage/core-components": "0.11.0",
"@backstage/core-plugin-api": "1.0.5",
"@backstage/create-app": "0.4.30",
"@backstage/dev-utils": "1.0.5",
"e2e-test": "0.2.0",
"@backstage/errors": "1.1.0",
"@backstage/integration": "1.2.2",
"@backstage/integration-react": "1.1.2",
"@backstage/integration": "1.3.0",
"@backstage/integration-react": "1.1.3",
"@backstage/release-manifests": "0.0.5",
"@techdocs/cli": "1.1.3",
"techdocs-cli-embedded-app": "0.2.72",
"@backstage/test-utils": "1.1.2",
"@techdocs/cli": "1.2.0",
"techdocs-cli-embedded-app": "0.2.73",
"@backstage/test-utils": "1.1.3",
"@backstage/theme": "0.2.16",
"@backstage/types": "1.0.0",
"@backstage/version-bridge": "1.0.1",
"@backstage/plugin-adr": "0.1.2",
"@backstage/plugin-adr-backend": "0.1.2",
"@backstage/plugin-adr-common": "0.1.2",
"@backstage/plugin-airbrake": "0.3.7",
"@backstage/plugin-airbrake-backend": "0.2.7",
"@backstage/plugin-allure": "0.1.23",
"@backstage/plugin-analytics-module-ga": "0.1.18",
"@backstage/plugin-apache-airflow": "0.2.0",
"@backstage/plugin-api-docs": "0.8.7",
"@backstage/plugin-adr": "0.2.0",
"@backstage/plugin-adr-backend": "0.2.0",
"@backstage/plugin-adr-common": "0.2.0",
"@backstage/plugin-airbrake": "0.3.8",
"@backstage/plugin-airbrake-backend": "0.2.8",
"@backstage/plugin-allure": "0.1.24",
"@backstage/plugin-analytics-module-ga": "0.1.19",
"@backstage/plugin-apache-airflow": "0.2.1",
"@backstage/plugin-api-docs": "0.8.8",
"@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.0",
"@backstage/plugin-apollo-explorer": "0.1.0",
"@backstage/plugin-app-backend": "0.3.34",
"@backstage/plugin-auth-backend": "0.15.0",
"@backstage/plugin-auth-node": "0.2.3",
"@backstage/plugin-azure-devops": "0.1.23",
"@backstage/plugin-azure-devops-backend": "0.3.13",
"@backstage/plugin-apollo-explorer": "0.1.1",
"@backstage/plugin-app-backend": "0.3.35",
"@backstage/plugin-auth-backend": "0.15.1",
"@backstage/plugin-auth-node": "0.2.4",
"@backstage/plugin-azure-devops": "0.1.24",
"@backstage/plugin-azure-devops-backend": "0.3.14",
"@backstage/plugin-azure-devops-common": "0.2.4",
"@backstage/plugin-badges": "0.2.31",
"@backstage/plugin-badges-backend": "0.1.28",
"@backstage/plugin-bazaar": "0.1.22",
"@backstage/plugin-bazaar-backend": "0.1.18",
"@backstage/plugin-bitbucket-cloud-common": "0.1.1",
"@backstage/plugin-bitrise": "0.1.34",
"@backstage/plugin-catalog": "1.4.0",
"@backstage/plugin-catalog-backend": "1.3.0",
"@backstage/plugin-catalog-backend-module-aws": "0.1.7",
"@backstage/plugin-catalog-backend-module-azure": "0.1.5",
"@backstage/plugin-catalog-backend-module-bitbucket": "0.2.1",
"@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.1",
"@backstage/plugin-catalog-backend-module-gerrit": "0.1.2",
"@backstage/plugin-catalog-backend-module-github": "0.1.5",
"@backstage/plugin-catalog-backend-module-gitlab": "0.1.5",
"@backstage/plugin-catalog-backend-module-ldap": "0.5.1",
"@backstage/plugin-catalog-backend-module-msgraph": "0.4.0",
"@backstage/plugin-catalog-backend-module-openapi": "0.1.0",
"@backstage/plugin-catalog-common": "1.0.4",
"@backstage/plugin-catalog-graph": "0.2.19",
"@backstage/plugin-catalog-graphql": "0.3.11",
"@backstage/plugin-catalog-import": "0.8.10",
"@backstage/plugin-catalog-node": "1.0.0",
"@backstage/plugin-catalog-react": "1.1.2",
"@backstage/plugin-cicd-statistics": "0.1.9",
"@backstage/plugin-cicd-statistics-module-gitlab": "0.1.3",
"@backstage/plugin-circleci": "0.3.7",
"@backstage/plugin-cloudbuild": "0.3.7",
"@backstage/plugin-code-climate": "0.1.7",
"@backstage/plugin-code-coverage": "0.2.0",
"@backstage/plugin-code-coverage-backend": "0.2.0",
"@backstage/plugin-codescene": "0.1.2",
"@backstage/plugin-config-schema": "0.1.30",
"@backstage/plugin-cost-insights": "0.11.29",
"@backstage/plugin-cost-insights-common": "0.1.0",
"@backstage/plugin-dynatrace": "0.1.1",
"@internal/plugin-todo-list": "1.0.3",
"@internal/plugin-todo-list-backend": "1.0.3",
"@backstage/plugin-badges": "0.2.32",
"@backstage/plugin-badges-backend": "0.1.29",
"@backstage/plugin-bazaar": "0.1.23",
"@backstage/plugin-bazaar-backend": "0.1.19",
"@backstage/plugin-bitbucket-cloud-common": "0.1.2",
"@backstage/plugin-bitrise": "0.1.35",
"@backstage/plugin-catalog": "1.5.0",
"@backstage/plugin-catalog-backend": "1.3.1",
"@backstage/plugin-catalog-backend-module-aws": "0.1.8",
"@backstage/plugin-catalog-backend-module-azure": "0.1.6",
"@backstage/plugin-catalog-backend-module-bitbucket": "0.2.2",
"@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.2",
"@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.0",
"@backstage/plugin-catalog-backend-module-gerrit": "0.1.3",
"@backstage/plugin-catalog-backend-module-github": "0.1.6",
"@backstage/plugin-catalog-backend-module-gitlab": "0.1.6",
"@backstage/plugin-catalog-backend-module-ldap": "0.5.2",
"@backstage/plugin-catalog-backend-module-msgraph": "0.4.1",
"@backstage/plugin-catalog-backend-module-openapi": "0.1.1",
"@backstage/plugin-catalog-common": "1.0.5",
"@internal/plugin-catalog-customized": "0.0.1",
"@backstage/plugin-catalog-graph": "0.2.20",
"@backstage/plugin-catalog-graphql": "0.3.12",
"@backstage/plugin-catalog-import": "0.8.11",
"@backstage/plugin-catalog-node": "1.0.1",
"@backstage/plugin-catalog-react": "1.1.3",
"@backstage/plugin-cicd-statistics": "0.1.10",
"@backstage/plugin-cicd-statistics-module-gitlab": "0.1.4",
"@backstage/plugin-circleci": "0.3.8",
"@backstage/plugin-cloudbuild": "0.3.8",
"@backstage/plugin-code-climate": "0.1.8",
"@backstage/plugin-code-coverage": "0.2.1",
"@backstage/plugin-code-coverage-backend": "0.2.1",
"@backstage/plugin-codescene": "0.1.3",
"@backstage/plugin-config-schema": "0.1.31",
"@backstage/plugin-cost-insights": "0.11.30",
"@backstage/plugin-cost-insights-common": "0.1.1",
"@backstage/plugin-dynatrace": "0.1.2",
"@internal/plugin-todo-list": "1.0.4",
"@internal/plugin-todo-list-backend": "1.0.4",
"@internal/plugin-todo-list-common": "1.0.3",
"@backstage/plugin-explore": "0.3.38",
"@backstage/plugin-explore-react": "0.0.19",
"@backstage/plugin-firehydrant": "0.1.24",
"@backstage/plugin-fossa": "0.2.39",
"@backstage/plugin-gcalendar": "0.3.3",
"@backstage/plugin-gcp-projects": "0.3.26",
"@backstage/plugin-git-release-manager": "0.3.20",
"@backstage/plugin-github-actions": "0.5.7",
"@backstage/plugin-github-deployments": "0.1.38",
"@backstage/plugin-github-pull-requests-board": "0.1.1",
"@backstage/plugin-gitops-profiles": "0.3.25",
"@backstage/plugin-gocd": "0.1.13",
"@backstage/plugin-graphiql": "0.2.39",
"@backstage/plugin-graphql-backend": "0.1.24",
"@backstage/plugin-home": "0.4.23",
"@backstage/plugin-ilert": "0.1.33",
"@backstage/plugin-jenkins": "0.7.6",
"@backstage/plugin-jenkins-backend": "0.1.24",
"@backstage/plugin-jenkins-common": "0.1.6",
"@backstage/plugin-kafka": "0.3.7",
"@backstage/plugin-kafka-backend": "0.2.27",
"@backstage/plugin-kubernetes": "0.7.0",
"@backstage/plugin-kubernetes-backend": "0.7.0",
"@backstage/plugin-kubernetes-common": "0.4.0",
"@backstage/plugin-lighthouse": "0.3.7",
"@backstage/plugin-newrelic": "0.3.25",
"@backstage/plugin-newrelic-dashboard": "0.2.0",
"@backstage/plugin-org": "0.5.7",
"@backstage/plugin-pagerduty": "0.5.0",
"@backstage/plugin-periskop": "0.1.5",
"@backstage/plugin-periskop-backend": "0.1.5",
"@backstage/plugin-permission-backend": "0.5.9",
"@backstage/plugin-explore": "0.3.39",
"@backstage/plugin-explore-react": "0.0.20",
"@backstage/plugin-firehydrant": "0.1.25",
"@backstage/plugin-fossa": "0.2.40",
"@backstage/plugin-gcalendar": "0.3.4",
"@backstage/plugin-gcp-projects": "0.3.27",
"@backstage/plugin-git-release-manager": "0.3.21",
"@backstage/plugin-github-actions": "0.5.8",
"@backstage/plugin-github-deployments": "0.1.39",
"@backstage/plugin-github-issues": "0.1.0",
"@backstage/plugin-github-pull-requests-board": "0.1.2",
"@backstage/plugin-gitops-profiles": "0.3.26",
"@backstage/plugin-gocd": "0.1.14",
"@backstage/plugin-graphiql": "0.2.40",
"@backstage/plugin-graphql-backend": "0.1.25",
"@backstage/plugin-home": "0.4.24",
"@backstage/plugin-ilert": "0.1.34",
"@backstage/plugin-jenkins": "0.7.7",
"@backstage/plugin-jenkins-backend": "0.1.25",
"@backstage/plugin-jenkins-common": "0.1.7",
"@backstage/plugin-kafka": "0.3.8",
"@backstage/plugin-kafka-backend": "0.2.28",
"@backstage/plugin-kubernetes": "0.7.1",
"@backstage/plugin-kubernetes-backend": "0.7.1",
"@backstage/plugin-kubernetes-common": "0.4.1",
"@backstage/plugin-lighthouse": "0.3.8",
"@backstage/plugin-newrelic": "0.3.26",
"@backstage/plugin-newrelic-dashboard": "0.2.1",
"@backstage/plugin-org": "0.5.8",
"@backstage/plugin-pagerduty": "0.5.1",
"@backstage/plugin-periskop": "0.1.6",
"@backstage/plugin-periskop-backend": "0.1.6",
"@backstage/plugin-permission-backend": "0.5.10",
"@backstage/plugin-permission-common": "0.6.3",
"@backstage/plugin-permission-node": "0.6.3",
"@backstage/plugin-permission-react": "0.4.3",
"@backstage/plugin-proxy-backend": "0.2.28",
"@backstage/plugin-rollbar": "0.4.7",
"@backstage/plugin-rollbar-backend": "0.1.31",
"@backstage/plugin-scaffolder": "1.4.0",
"@backstage/plugin-scaffolder-backend": "1.4.0",
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-rails": "0.4.2",
"@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.7",
"@backstage/plugin-permission-node": "0.6.4",
"@backstage/plugin-permission-react": "0.4.4",
"@backstage/plugin-proxy-backend": "0.2.29",
"@backstage/plugin-rollbar": "0.4.8",
"@backstage/plugin-rollbar-backend": "0.1.32",
"@backstage/plugin-scaffolder": "1.5.0",
"@backstage/plugin-scaffolder-backend": "1.5.0",
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.10",
"@backstage/plugin-scaffolder-backend-module-rails": "0.4.3",
"@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.8",
"@backstage/plugin-scaffolder-common": "1.1.2",
"@backstage/plugin-search": "1.0.0",
"@backstage/plugin-search-backend": "1.0.0",
"@backstage/plugin-search-backend-module-elasticsearch": "1.0.0",
"@backstage/plugin-search-backend-module-pg": "0.3.5",
"@backstage/plugin-search-backend-node": "1.0.0",
"@backstage/plugin-search": "1.0.1",
"@backstage/plugin-search-backend": "1.0.1",
"@backstage/plugin-search-backend-module-elasticsearch": "1.0.1",
"@backstage/plugin-search-backend-module-pg": "0.3.6",
"@backstage/plugin-search-backend-node": "1.0.1",
"@backstage/plugin-search-common": "1.0.0",
"@backstage/plugin-search-react": "1.0.0",
"@backstage/plugin-sentry": "0.4.0",
"@backstage/plugin-shortcuts": "0.2.8",
"@backstage/plugin-sonarqube": "0.3.7",
"@backstage/plugin-splunk-on-call": "0.3.31",
"@backstage/plugin-stack-overflow": "0.1.3",
"@backstage/plugin-stack-overflow-backend": "0.1.3",
"@backstage/plugin-tech-insights": "0.2.3",
"@backstage/plugin-tech-insights-backend": "0.5.0",
"@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.18",
"@backstage/plugin-tech-insights-common": "0.2.5",
"@backstage/plugin-tech-insights-node": "0.3.2",
"@backstage/plugin-tech-radar": "0.5.14",
"@backstage/plugin-techdocs": "1.3.0",
"@backstage/plugin-techdocs-addons-test-utils": "1.0.2",
"@backstage/plugin-techdocs-backend": "1.2.0",
"@backstage/plugin-techdocs-module-addons-contrib": "1.0.2",
"@backstage/plugin-techdocs-node": "1.2.0",
"@backstage/plugin-techdocs-react": "1.0.2",
"@backstage/plugin-todo": "0.2.9",
"@backstage/plugin-todo-backend": "0.1.31",
"@backstage/plugin-user-settings": "0.4.6",
"@backstage/plugin-vault": "0.1.1",
"@backstage/plugin-vault-backend": "0.2.0",
"@backstage/plugin-xcmetrics": "0.2.27",
"@internal/plugin-catalog-customized": "0.0.0"
"@backstage/plugin-search-react": "1.0.1",
"@backstage/plugin-sentry": "0.4.1",
"@backstage/plugin-shortcuts": "0.3.0",
"@backstage/plugin-sonarqube": "0.4.0",
"@backstage/plugin-sonarqube-backend": "0.1.0",
"@backstage/plugin-splunk-on-call": "0.3.32",
"@backstage/plugin-stack-overflow": "0.1.4",
"@backstage/plugin-stack-overflow-backend": "0.1.4",
"@backstage/plugin-tech-insights": "0.2.4",
"@backstage/plugin-tech-insights-backend": "0.5.1",
"@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.19",
"@backstage/plugin-tech-insights-common": "0.2.6",
"@backstage/plugin-tech-insights-node": "0.3.3",
"@backstage/plugin-tech-radar": "0.5.15",
"@backstage/plugin-techdocs": "1.3.1",
"@backstage/plugin-techdocs-addons-test-utils": "1.0.3",
"@backstage/plugin-techdocs-backend": "1.2.1",
"@backstage/plugin-techdocs-module-addons-contrib": "1.0.3",
"@backstage/plugin-techdocs-node": "1.3.0",
"@backstage/plugin-techdocs-react": "1.0.3",
"@backstage/plugin-todo": "0.2.10",
"@backstage/plugin-todo-backend": "0.1.32",
"@backstage/plugin-user-settings": "0.4.7",
"@backstage/plugin-vault": "0.1.2",
"@backstage/plugin-vault-backend": "0.2.1",
"@backstage/plugin-xcmetrics": "0.2.28"
},
"changesets": [
"calm-clocks-drum",
"create-app-1658824524",
"dull-pumas-hope",
"dull-starfishes-chew",
"famous-bikes-brush",
"fast-panthers-fold",
"few-berries-deny",
"fresh-hounds-argue",
"friendly-sheep-flash",
"khaki-meals-hammer",
"loud-panthers-arrive",
"metal-points-itch",
"mighty-penguins-tap",
"modern-shrimps-wave",
"nine-mails-crash",
"odd-adults-smash",
"olive-tips-camp",
"pretty-gifts-do",
"purple-apricots-build",
"renovate-15030f1",
"renovate-5b7b62b",
"short-trains-roll",
"silver-poets-push",
"strange-crabs-confess",
"thick-readers-invite",
"violet-mayflies-mix",
"violet-trees-play"
]
"changesets": []
}
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/integration': patch
---
Avoid double encoding of the file path in `getBitbucketDownloadUrl`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-common': patch
---
The config prop `ensureExists` now applies to schema creation when `pluginDivisionMode` is set to `schema`. This means schemas will no longer accidentally be automatically created when `ensureExists` is set to `false`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Updated dependencies `@svgr/*` to `6.3.x`.
-17
View File
@@ -1,17 +0,0 @@
---
'@backstage/backend-common': patch
'@backstage/backend-tasks': patch
'@backstage/integration': patch
'@backstage/plugin-cicd-statistics': patch
'@backstage/plugin-code-climate': patch
'@backstage/plugin-gocd': patch
'@backstage/plugin-kubernetes-backend': patch
'@backstage/plugin-periskop': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-splunk-on-call': patch
'@backstage/plugin-tech-insights-common': patch
'@backstage/plugin-tech-insights-node': patch
'@backstage/plugin-xcmetrics': patch
---
Updated dependency `@types/luxon` to `^3.0.0`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': patch
---
Updated dependency `json-schema-library` to `^7.0.0`.
+108
View File
@@ -0,0 +1,108 @@
---
'@backstage/backend-common': patch
'@backstage/backend-test-utils': patch
'@backstage/catalog-client': patch
'@backstage/cli': patch
'@backstage/config-loader': patch
'@backstage/core-app-api': patch
'@backstage/core-components': patch
'@backstage/core-plugin-api': patch
'@backstage/integration-react': patch
'@backstage/integration': patch
'@backstage/release-manifests': patch
'@backstage/test-utils': patch
'@backstage/plugin-adr-backend': patch
'@backstage/plugin-adr': patch
'@backstage/plugin-airbrake-backend': patch
'@backstage/plugin-airbrake': patch
'@backstage/plugin-allure': patch
'@backstage/plugin-analytics-module-ga': patch
'@backstage/plugin-apache-airflow': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-apollo-explorer': patch
'@backstage/plugin-app-backend': patch
'@backstage/plugin-auth-backend': patch
'@backstage/plugin-auth-node': patch
'@backstage/plugin-azure-devops-backend': patch
'@backstage/plugin-azure-devops': patch
'@backstage/plugin-badges': patch
'@backstage/plugin-bitbucket-cloud-common': patch
'@backstage/plugin-bitrise': patch
'@backstage/plugin-catalog-backend-module-azure': patch
'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
'@backstage/plugin-catalog-backend-module-bitbucket': patch
'@backstage/plugin-catalog-backend-module-gerrit': patch
'@backstage/plugin-catalog-backend-module-github': patch
'@backstage/plugin-catalog-backend-module-gitlab': patch
'@backstage/plugin-catalog-backend-module-msgraph': patch
'@backstage/plugin-catalog-backend': patch
'@backstage/plugin-catalog-graphql': patch
'@backstage/plugin-catalog-import': patch
'@backstage/plugin-circleci': patch
'@backstage/plugin-cloudbuild': patch
'@backstage/plugin-code-climate': patch
'@backstage/plugin-code-coverage-backend': patch
'@backstage/plugin-code-coverage': patch
'@backstage/plugin-codescene': patch
'@backstage/plugin-config-schema': patch
'@backstage/plugin-cost-insights': patch
'@backstage/plugin-dynatrace': patch
'@backstage/plugin-explore-react': patch
'@backstage/plugin-explore': patch
'@backstage/plugin-firehydrant': patch
'@backstage/plugin-fossa': patch
'@backstage/plugin-gcalendar': patch
'@backstage/plugin-gcp-projects': patch
'@backstage/plugin-git-release-manager': patch
'@backstage/plugin-github-actions': patch
'@backstage/plugin-github-deployments': patch
'@backstage/plugin-github-issues': patch
'@backstage/plugin-github-pull-requests-board': patch
'@backstage/plugin-gitops-profiles': patch
'@backstage/plugin-gocd': patch
'@backstage/plugin-graphiql': patch
'@backstage/plugin-graphql-backend': patch
'@backstage/plugin-home': patch
'@backstage/plugin-ilert': patch
'@backstage/plugin-jenkins-backend': patch
'@backstage/plugin-jenkins': patch
'@backstage/plugin-kafka': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-lighthouse': patch
'@backstage/plugin-newrelic': patch
'@backstage/plugin-org': patch
'@backstage/plugin-pagerduty': patch
'@backstage/plugin-periskop-backend': patch
'@backstage/plugin-periskop': patch
'@backstage/plugin-permission-backend': patch
'@backstage/plugin-permission-common': patch
'@backstage/plugin-permission-node': patch
'@backstage/plugin-proxy-backend': patch
'@backstage/plugin-rollbar-backend': patch
'@backstage/plugin-rollbar': patch
'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
'@backstage/plugin-scaffolder-backend': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-search': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-shortcuts': patch
'@backstage/plugin-sonarqube-backend': patch
'@backstage/plugin-sonarqube': patch
'@backstage/plugin-splunk-on-call': patch
'@backstage/plugin-stack-overflow': patch
'@backstage/plugin-tech-insights': patch
'@backstage/plugin-tech-radar': patch
'@backstage/plugin-techdocs-addons-test-utils': patch
'@backstage/plugin-techdocs-backend': patch
'@backstage/plugin-techdocs-module-addons-contrib': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-todo-backend': patch
'@backstage/plugin-todo': patch
'@backstage/plugin-user-settings': patch
'@backstage/plugin-vault-backend': patch
'@backstage/plugin-vault': patch
'@backstage/plugin-xcmetrics': patch
---
Updated dependency `msw` to `^0.45.0`.
+9
View File
@@ -0,0 +1,9 @@
---
'@backstage/backend-tasks': patch
'@backstage/plugin-app-backend': patch
'@backstage/plugin-bazaar-backend': patch
'@backstage/plugin-code-coverage-backend': patch
'@backstage/plugin-tech-insights-backend': patch
---
Fixed a bug where the database option to skip migrations was ignored.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': minor
---
Added support for `async` validation for the `next` version of the plugin
+39
View File
@@ -0,0 +1,39 @@
---
'@backstage/plugin-azure-devops-backend': patch
---
`createRouter` now requires an additional reader: `UrlReader` argument
```diff
export default async function createPlugin(
env: PluginEnvironment,
): Promise<Router> {
return createRouter({
logger: env.logger,
config: env.config,
+ reader: env.reader,
});
}
```
Remember to check if you have already provided these settings previously.
#### [Azure DevOps]
```yaml
# app-config.yaml
azureDevOps:
host: dev.azure.com
token: my-token
organization: my-company
```
#### [Azure Integrations]
```yaml
# app-config.yaml
integrations:
azure:
- host: dev.azure.com
token: ${AZURE_TOKEN}
```
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': minor
---
User Bearer Authorization header at Git commands with token-based auth at Bitbucket Server.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Removed the depreacated `publish:file` action, use the template editor to test templates instead.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-github-pull-requests-board': patch
---
Fixed rendering when PR contains references to deleted Github accounts
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-ldap': patch
---
Now the `searchStream` method in LDAP client awaits the callbacks
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/backend-app-api': patch
'@backstage/backend-defaults': patch
'@backstage/backend-test-utils': patch
---
Updated usages of `ServiceFactory`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Add missing `res.end()` in scaffolder backend `EventStream` usage
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-catalog-backend': patch
'@backstage/plugin-catalog-node': patch
---
The experimental `CatalogProcessingExtensionPoint` now accepts multiple providers and processors at once.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-plugin-api': patch
---
When defining a new `ServiceRef` you can now also include a `defaultFactory`, which will be used to construct instances of the service in case there is no explicit factory defined.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-techdocs': patch
---
Always update the title and sub-title when the location changes on a `TechDocs` reader page.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': minor
---
Updated `publish:gitlab:merge-request` action to allow commit updates and deletes
+19
View File
@@ -0,0 +1,19 @@
---
'@backstage/catalog-client': patch
'@backstage/core-plugin-api': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-apollo-explorer': patch
'@backstage/plugin-azure-devops-backend': patch
'@backstage/plugin-badges': patch
'@backstage/plugin-badges-backend': patch
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-circleci': patch
'@backstage/plugin-cloudbuild': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-scaffolder-backend': patch
'@backstage/plugin-search-backend-module-elasticsearch': patch
'@backstage/plugin-sonarqube-backend': patch
'@backstage/plugin-techdocs': patch
---
Minor API signatures cleanup
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-techdocs-react': patch
---
Add `toLowerEntityRefMaybe()` helper function for handling `techdocs.legacyUseCaseSensitiveTripletPaths` flag.
Pass modified `entityRef` to `TechDocsReaderPageContext` to handle the `techdocs.legacyUseCaseSensitiveTripletPaths` flag.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': minor
---
Implementing review step for the scaffolder under `create/next`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-msgraph': patch
---
Adjust references in deprecation warnings to point to stable URL/document.
-14
View File
@@ -1,14 +0,0 @@
---
'@backstage/plugin-shortcuts': minor
---
Internal observable replaced with a mapping from the storage API. This fixes shortcuts initialization when using firestore.
`ShortcutApi.get` method, that returns an immediate snapshot of shortcuts, made public.
Example of how to get and observe `shortcuts`:
```typescript
const shortcutApi = useApi(shortcutsApiRef);
const shortcuts = useObservable(shortcutApi.shortcut$(), shortcutApi.get());
```
+49
View File
@@ -0,0 +1,49 @@
---
'@backstage/plugin-azure-devops': minor
'@backstage/plugin-azure-devops-common': minor
---
Added README card `EntityAzureReadmeCard` for Azure Devops.
To get the README component working you'll need to do the following two steps:
1. First we need to add the @backstage/plugin-azure-devops package to your frontend app:
```bash
# From your Backstage root directory
yarn add --cwd packages/app @backstage/plugin-azure-devops
```
2. Second we need to add the `EntityAzureReadmeCard` extension to the entity page in your app:
```tsx
// In packages/app/src/components/catalog/EntityPage.tsx
import {
EntityAzureReadmeCard,
isAzureDevOpsAvailable,
} from '@backstage/plugin-azure-devops';
// As it is a card, you can customize it the way you prefer
// For example in the Service section
const overviewContent = (
<Grid container spacing={3} alignItems="stretch">
<EntitySwitch>
<EntitySwitch.Case if={isAzureDevOpsAvailable}>
<Grid item md={6}>
...
</Grid>
<Grid item md={6}>
<EntityAzureReadmeCard maxHeight={350} />
</Grid>
</EntitySwitch.Case>
</EntitySwitch>
</Grid>
);
```
**Notes:**
- You'll need to add the `EntitySwitch.Case` above from step 2 to all the entity sections you want to see Readme in. For example if you wanted to see Readme when looking at Website entities then you would need to add this to the `websiteEntityPage` section.
- The `if` prop is optional on the `EntitySwitch.Case`, you can remove it if you always want to see the tab even if the entity being viewed does not have the needed annotation
- The `maxHeight` property on the `EntityAzureReadmeCard` will set the maximum screen size you would like to see, if not set it will default to 100%
+8
View File
@@ -0,0 +1,8 @@
---
'@backstage/core-components': patch
'@backstage/plugin-adr': patch
'@backstage/plugin-apache-airflow': patch
'@backstage/plugin-api-docs': patch
---
Minor cleanup of the public API surface to reduce the number of warnings
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-msgraph': patch
---
Fix typo
+4
View File
@@ -281,8 +281,11 @@ serializable
Serverless
shoutout
siloed
SIG
SIGs
Sinon
Snyk
Sonarqube
sourcemaps
sparklines
Splunk
@@ -310,6 +313,7 @@ Talkdesk
tasklist
techdocs
Telenor
telus
templated
templater
Templater
+3 -1
View File
@@ -1,4 +1,4 @@
name: Build and push Docker Hub image
name: Build and push Docker image
on:
repository_dispatch:
types: [release-published]
@@ -87,3 +87,5 @@ jobs:
tags: |
ghcr.io/${{ github.repository_owner }}/backstage:latest
ghcr.io/${{ github.repository_owner }}/backstage:${{ github.event.client_payload.version }}
labels: |
org.opencontainers.image.description=Docker image generated from the latest Backstage release; this contains what you would get out of the box by running npx @backstage/create-app and building a Docker image from the generated source. This is meant to ease the process of evaluating Backstage for the first time, but also has the severe limitation that there is no way to install additional plugins relevant to your infrastructure.
+13 -4
View File
@@ -28,7 +28,6 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi
| [Lunar](https://lunar.app) | [Jacob Valdemar](https://github.com/JacobValdemar) | Internal developer portal for service overview and insights, API documentation, technical guides, onboarding guides and RFC's. |
| [Trendyol](https://trendyol.com) | [Gamze Senturk](https://github.com/gmzsenturk), [Mert Can Bilgic](https://github.com/mertcb) | The Developer Portal has been called `Pandora`. Provides an overview of Trendyol tech ecosystem. TechDocs, Catalog, Custom Plugins and Theme. |
| [Peloton](https://www.onepeloton.com/) | [Matt Waldron](https://github.com/daftgopher) | Creating our first developer portal and tech-docs. Exploring Service Catalog, Tech Insights and Cost Insights as well. |
| [TELUS](https://telus.com) | [Seb Barre](https://github.com/sbarre) | The Go-to place to find answers about development and delivery at TELUS. |
| [Brex](https://www.brex.com/) | [Vamsi Chitters](https://github.com/vamsikc) | A centralized UI to understand how a service fits in the whole Brex architecture and manage a teams engineering dependencies. |
| [Oriflame](https://www.oriflame.com/) | [Oriflame](https://github.com/oriflame) | Internal developer portal for services, single page apps and packages overview, API documentation, technical guides, tech-radar and more. |
| [Booz Allen Hamilton](https://www.boozallen.com/) | [Jason Miller](https://github.com/JasonMiller-BAH) | Developer portal for a full-stack software development ecosystem that accelerates consistent and repeatable Modern Software Development practices for internal innovation and investments. |
@@ -168,7 +167,7 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi
| [Forto](https://forto.com) | [Rodolfo Matos](mailto:rodolfo.matos@forto.com) | Still in a experimental phase/assessing the organisational fit. We will be using it mostly a developer portal -- pretty standard use case. |
| [BetterUp](https://betterup.com) | [Jordan Hochenbaum](mailto:jordan.hochenbaum@betterup.co) | We're starting to use Backstage as the central hub for service discovery, documentation, and develop experience. |
| [warung pintar](https://warungpintar.co.id/) | [Muhammad Rafly Andrianza](mailto:rafly.andrianza@warungpintar.co) | Initial Work Developer Portal with TechRadar, Service Catalogue, TechDocs, anything about platform & infrastructure resources. |
| [RaiaDrogasil](https://rd.com.br/) | [Michael Lima](mailto:midsilva@rd.com.br) | We are building our developer portal. Software catalog, Tech Radar and Scaffolding are among the initial features. |
| [RaiaDrogasil](https://rd.com.br/) | [Michael Lima](mailto:midsilva@rd.com.br) | We are building our developer portal. Software catalog, Tech Radar and Scaffolding are among the initial features. |
| [AEB](https://www.aeb.com/) | [David Fankhänel](mailto:dfl@aeb.com) | Central developer platform for creating new apps via templates, getting an overview via software catalog, etc |
| [SALTO Systems](https://saltosystems.com) | [Ian Cowley](mailto:i.cowley@saltosystems.com) | Currently using Backstage as an internal documentation portal. |
| [Lummo](https://lummo.com) | [Anjul Sahu](mailto:anjul@lummo.com) | We are building the internal developer portal using Backstage and bringing up all integrations and service information at one place. |
@@ -196,6 +195,16 @@ _You can do this by using the [Adopter form](https://form.typeform.com/to/zcOaKi
| [Adaptavist](https://adaptavist.com) | [Lilly Holden](mailto:lholden@adaptavist.com) | Developer portal, service catalog, documentation and self-service platform |
| [Shipshape](https://shipshape.io) | [Chuck Carpenter](mailto:chuck@shipshape.io) | We are a consultancy helping teams implement and customize Backstage. |
| [Backbase](https://backbase.com) | [Nicolas Torres](mailto:ntorres.dev@gmail.com) | To catalog components and teams |
| [https://www.clear.sale](https://www.clear.sale) | [Paulo Baima](mailto:paulo.filho@clear.sale) | Central Hub for all the company modules, enabling the track of ownership of components and resources and how they relate to each other. |
| [www.leroymerlin.com.br](https://www.leroymerlin.com.br) | [Rodrigo Franzoni](mailto:rfranzoni@leroymerlin.com.br) | Our engineers use the Backstage to solve problems around ownership and visibility of our applications, access service catalog, documentation, observability and infrastructure. |
| [clearSale](https://www.clear.sale) | [Paulo Baima](mailto:paulo.filho@clear.sale) | Central Hub for all the company modules, enabling the track of ownership of components and resources and how they relate to each other. |
| [LeroyMerlin](https://www.leroymerlin.com.br) | [Rodrigo Franzoni](mailto:rfranzoni@leroymerlin.com.br) | Our engineers use the Backstage to solve problems around ownership and visibility of our applications, access service catalog, documentation, observability and infrastructure. |
| [Intility](https://intility.no/en/) | [@daniwk](https://github.com/daniwk) | We are creating a developer portal powered by Backstage, with software catalog, documentation, templates and integrations to our infrastructure and internal tools. |
| [ImmobiliareLabs](https://labs.immobiliare.it/) | [@JellyBellyDev](https://github.com/JellyBellyDev) | Centralized portal with our internal services, infrastructures, relationships between systems, technical documentation, templates, monitoring and custom integrations with our own DX tools. |
| [Skillz](https://skillz.com/) | [Peiman Jafari](https://github.com/peimanja) | Internal developers portal for technical documentations, components ownership and relationship, software templates and integrations with internal tools |
| [Telus](https://www.telus.com/en/) | [Leo Li](mailto:leo.li@telus.com), [Laurent Robichaud](mailto:laurent.robichaud@telus.com), [Seb Barre](https://github.com/sbarre) | Simplifying the developer experience through centralized team member portals. Our current focus includes the adoption of Tech Docs, Software Catalog, Software Templates, the plethora of plugins, and contributing features back to Backstage. 🤖 |
| [Fidelity Investments](https://fidelity.com) | [Ankita Upadhyay](mailto:ankita.upadhyay@fmr.com) | Getting started with the adoption for Monorepo projects |
| [Verisk](https://verisk.com) | [Callen Barton](mailto:cbarton@verisk.com) | Developer portal to quickly create and deploy microservices. |
| [iodigital](https://iodigital.com) | [Jan-Willem Mulder](mailto:jan-willem.mulder@iodigital.com) | Internal developer portal for discovery of applications, projects and teams. Using several plugins like the Software Catalog and Tech Insights for promoting best practices and supporting our SDLC toolchain |
| [Fanatics](https://www.fanaticsinc.com/) | [Rory Scott](mailto:rscott@fanatics.com) | Internal Portal consolidating documentation, making it easier to manage applications, internal developer community platform, and self-service cloud infrastructure + pipelines. |
| [Appfolio](https://appfolio.com) | [Andy Vaughn](mailto:andy.vaughn@appfolio.com) | Internal software catalog, tech radar, documentation portal to disambiguate software and domain ownership, foster exploration of available developer platform services and tools, improve communication, democratize documentation and knowledge sharing, and coordinate the software lifecycle; all in service of a best-in-class developer experience. |
| [isaac](https://isaac.com.br/) | [Leonardo Borges](mailto:leonardo.borges@isaac.com.br), [Ordilei Souza](mailto:ordilei.souza@isaac.com.br) | We're using Backstage as our Internal Developer Portal and main microservices catalog for mapping ownership, health and metrics for each one. |
| [Paraná Banco](https://site.paranabanco.com.br/) | [Joao Antunes](mailto:joaopma@pbtech.net.br) | Internal software catalog, documentation and ownership, improve communication, democratize documentation and knowledge sharing, and coordinate the software lifecycle; all in service of a best-in-class developer experience. |
-2
View File
@@ -1,7 +1,5 @@
![headline](docs/assets/headline.png)
> 🏖 From July 7th due to Summer Vacations for some of the maintainers, expect the project to move a little slower than normal, and support to be limited. Normal service will resume on August 8th 🏝
# [Backstage](https://backstage.io)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
+1 -3
View File
@@ -2,9 +2,7 @@
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 0.x | :white_check_mark: |
See our [Release & Versioning Policy](https://backstage.io/docs/overview/versioning-policy#release-versioning-policy).
## Reporting a Vulnerability
+1 -1
View File
@@ -39,7 +39,7 @@ backend:
store: memory
cors:
origin: http://localhost:3000
methods: [GET, POST, PUT, DELETE]
methods: [GET, HEAD, PATCH, POST, PUT, DELETE]
credentials: true
csp:
connect-src: ["'self'", 'http:', 'https:']
@@ -1,11 +0,0 @@
FROM alpine:3.16
RUN apk add --update \
git \
python \
python-dev \
py-pip \
g++ && \
pip install cookiecutter jinja2_custom_filters_extension && \
apk del g++ py-pip python-dev && \
rm -rf /var/cache/apk/*
@@ -51,7 +51,7 @@ steps:
imageName: 'foo/custom-built-cookiecutter-image-with-extensions'
```
See for example, the [`Dockerfile`](./Dockerfile) in this directory.
For example, you can `pip install jinja2_custom_filters_extension` as part of your cookiecutter Dockerfile.
### Instructing Cookiecutter to use the extension
@@ -1,33 +0,0 @@
FROM node:14-buster
WORKDIR /usr/src/app
# (workaround) Install cookiecutter and mkdocs to avoid the need to run docker in docker
RUN cd /tmp && curl -O https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz && \
tar -xvf Python-3.8.2.tar.xz && \
cd Python-3.8.2 && \
./configure --enable-optimizations && \
make -j 4 && \
make altinstall
RUN apt update
RUN apt install -y mkdocs
RUN pip3.8 install mkdocs-techdocs-core
RUN pip3.8 install cookiecutter && \
apt remove -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev g++ python-pip python-dev && \
rm -rf /var/cache/apt/* /tmp/Python-3.8.2
# Copy repo skeleton first, to avoid unnecessary docker cache invalidation.
# The skeleton contains the package.json of each package in the monorepo,
# and along with yarn.lock and the root package.json, that's enough to run yarn install.
ADD yarn.lock package.json skeleton.tar ./
RUN yarn install --frozen-lockfile --production
# This will copy the contents of the dist-workspace when running the build-image command.
# Do not use this Dockerfile outside of that command, as it will copy in the source code instead.
COPY . .
CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.development.yaml"]
@@ -1,13 +0,0 @@
# Example backend Dockerfile
This Dockerfile will build the example backend with certain additional binaries needed to workaround
the docker requirement in the scaffolder and techdocs.
# Usage
```bash
yarn docker-build -f <absolute_path_to_the_dockerfile> --tag <your_tag>
```
> The absolute path is necessary as this directory is not copied to the build workspace when building
> the docker image.
@@ -1 +1,3 @@
# Basic Kubernetes example with Helm
Note that these examples aim to show a minimal setup and do not include best practices for secure Kubernetes deployments. See the [Kubernetes documentation](https://kubernetes.io/docs/concepts/security/) for more information, or resources provided by your own organization.
+15 -15
View File
@@ -40,14 +40,14 @@
lodash.once "^4.1.1"
"@types/node@*":
version "18.0.6"
resolved "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz#0ba49ac517ad69abe7a1508bc9b3a5483df9d5d7"
integrity sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==
version "18.7.6"
resolved "https://registry.npmjs.org/@types/node/-/node-18.7.6.tgz#31743bc5772b6ac223845e18c3fc26f042713c83"
integrity sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A==
"@types/node@^14.14.31":
version "14.18.22"
resolved "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz#fd2a15dca290fc9ad565b672fde746191cd0c6e6"
integrity sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw==
version "14.18.24"
resolved "https://registry.npmjs.org/@types/node/-/node-14.18.24.tgz#406b220dc748947e1959d8a38a75979e87166704"
integrity sha512-aJdn8XErcSrfr7k8ZDDfU6/2OgjZcB2Fu9d+ESK8D7Oa5mtsv8Fa8GpcwTA0v60kuZBaalKPzuzun4Ov1YWO/w==
"@types/sinonjs__fake-timers@8.1.1":
version "8.1.1"
@@ -304,9 +304,9 @@ cross-spawn@^7.0.0:
which "^2.0.1"
cypress@^10.0.0:
version "10.3.1"
resolved "https://registry.npmjs.org/cypress/-/cypress-10.3.1.tgz#7fab4ef43481c05a9a17ebe9a0ec860e15b95a19"
integrity sha512-As9HrExjAgpgjCnbiQCuPdw5sWKx5HUJcK2EOKziu642akwufr/GUeqL5UnCPYXTyyibvEdWT/pSC2qnGW/e5w==
version "10.6.0"
resolved "https://registry.npmjs.org/cypress/-/cypress-10.6.0.tgz#13f46867febf2c3715874ed5dce9c2e946b175fe"
integrity sha512-6sOpHjostp8gcLO34p6r/Ci342lBs8S5z9/eb3ZCQ22w2cIhMWGUoGKkosabPBfKcvRS9BE4UxybBtlIs8gTQA==
dependencies:
"@cypress/request" "^2.88.10"
"@cypress/xvfb" "^1.2.4"
@@ -359,9 +359,9 @@ dashdash@^1.12.0:
assert-plus "^1.0.0"
dayjs@^1.10.4:
version "1.11.4"
resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.4.tgz#3b3c10ca378140d8917e06ebc13a4922af4f433e"
integrity sha512-Zj/lPM5hOvQ1Bf7uAvewDaUcsJoI6JmNqmHhHl3nyumwe0XHwt8sWdOVAPACJzCebL8gQCi+K49w7iKWnGwX9g==
version "1.11.5"
resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz#00e8cc627f231f9499c19b38af49f56dc0ac5e93"
integrity sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==
debug@^3.1.0:
version "3.2.7"
@@ -415,9 +415,9 @@ escape-string-regexp@^1.0.5:
integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
eventemitter2@^6.4.3:
version "6.4.6"
resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.6.tgz#92d56569cc147a4d9b9da9e942e89b20ce236b0a"
integrity sha512-OHqo4wbHX5VbvlbB6o6eDwhYmiTjrpWACjF8Pmof/GTD6rdBNdZFNck3xlhqOiQFGCOoq3uzHvA0cQpFHIGVAQ==
version "6.4.7"
resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d"
integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
execa@4.1.0:
version "4.1.0"
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

-13
View File
@@ -84,19 +84,6 @@ Now the backend is ready to serve auth requests on the
frontend sign-in mechanism to poll that endpoint through Cloudflare Access, on
the user's behalf.
## Frontend Changes
It is recommended to use the `ProxiedSignInPage` for this provider, which is
installed in `packages/app/src/App.tsx` like this:
```diff
+import { ProxiedSignInPage } from '@backstage/core-components';
const app = createApp({
components: {
+ SignInPage: props => <ProxiedSignInPage {...props} provider="cfaccess" />,
```
## Adding the provider to the Backstage frontend
It is recommended to use the `ProxiedSignInPage` for this provider, which is
+23 -11
View File
@@ -58,24 +58,30 @@ Once the host build is complete, we are ready to build our image. The following
```Dockerfile
FROM node:16-bullseye-slim
WORKDIR /app
# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
RUN apt-get update && \
apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \
rm -rf /var/lib/apt/lists/* && \
yarn config set python /usr/bin/python3
# From here on we use the least-privileged `node` user to run the backend.
USER node
WORKDIR /app
# This switches many Node.js dependencies to production mode.
ENV NODE_ENV production
# Copy repo skeleton first, to avoid unnecessary docker cache invalidation.
# The skeleton contains the package.json of each package in the monorepo,
# and along with yarn.lock and the root package.json, that's enough to run yarn install.
COPY yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./
COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./
RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz
RUN yarn install --frozen-lockfile --production --network-timeout 300000 && rm -rf "$(yarn cache dir)"
# Then copy the rest of the backend bundle, along with any other files we might want.
COPY packages/backend/dist/bundle.tar.gz app-config.yaml ./
COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz
CMD ["node", "packages/backend", "--config", "app-config.yaml"]
@@ -176,26 +182,32 @@ RUN yarn --cwd packages/backend build
# Stage 3 - Build the actual backend image and install production dependencies
FROM node:16-bullseye-slim
WORKDIR /app
# install sqlite3 dependencies, you can skip this if you don't use sqlite3 in the image
# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
RUN apt-get update && \
apt-get install -y --no-install-recommends libsqlite3-dev python3 build-essential && \
rm -rf /var/lib/apt/lists/* && \
yarn config set python /usr/bin/python3
# From here on we use the least-privileged `node` user to run the backend.
USER node
WORKDIR /app
# This switches many Node.js dependencies to production mode.
ENV NODE_ENV production
# Copy the install dependencies from the build stage and context
COPY --from=build /app/yarn.lock /app/package.json /app/packages/backend/dist/skeleton.tar.gz ./
COPY --from=build --chown=node:node /app/yarn.lock /app/package.json /app/packages/backend/dist/skeleton.tar.gz ./
RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz
RUN yarn install --frozen-lockfile --production --network-timeout 600000 && rm -rf "$(yarn cache dir)"
# Copy the built packages from the build stage
COPY --from=build /app/packages/backend/dist/bundle.tar.gz .
COPY --from=build --chown=node:node /app/packages/backend/dist/bundle.tar.gz .
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz
# Copy any other files that we need at runtime
COPY app-config.yaml ./
COPY --chown=node:node app-config.yaml ./
CMD ["node", "packages/backend", "--config", "app-config.yaml"]
```
+20 -4
View File
@@ -31,6 +31,10 @@ kubernetes:
dashboardUrl: http://127.0.0.1:64713 # url copied from running the command: minikube service kubernetes-dashboard -n kubernetes-dashboard
dashboardApp: standard
caData: ${K8S_CONFIG_CA_DATA}
customResources:
- group: 'argoproj.io'
apiVersion: 'v1alpha1'
plural: 'rollouts'
- url: http://127.0.0.2:9999
name: aws-cluster-1
authProvider: 'aws'
@@ -236,10 +240,12 @@ kubernetes:
##### `clusters.\*.caData` (optional)
PEM-encoded certificate authority certificates.
Base64-encoded certificate authority bundle in PEM format. The Kubernetes client
will verify that TLS certificate presented by the API server is signed by this
CA.
This values could be obtained via inspecting the Kubernetes config file (usually
at `~/.kube/config`) under `clusters.cluster.certificate-authority-data`. For
This value could be obtained via inspecting the kubeconfig file (usually
at `~/.kube/config`) under `clusters[*].cluster.certificate-authority-data`. For
GKE, execute the following command to obtain the value
```
@@ -252,6 +258,11 @@ See also
https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication#environments-without-gcloud
for complete docs about GKE without `gcloud`.
##### `clusters.\*.customResources` (optional)
Configures which [custom resources][3] to look for when returning an entity's
Kubernetes resources belonging to the cluster. Same specification as [`customResources`](#customresources-optional)
#### `gke`
This cluster locator is designed to work with Kubernetes clusters running in
@@ -325,9 +336,13 @@ it is also possible to implement a
### `customResources` (optional)
Configures which [custom resources][3] to look for when returning an entity's
Configures which [custom resources][3] to look for by default when returning an entity's
Kubernetes resources.
**Notes:**
- The optional `kubernetes.customResources` property is overrode by `customResources` at the [clusters level](#clusterscustomresources-optional).
Defaults to empty array. Example:
```yaml
@@ -395,6 +410,7 @@ rules:
- horizontalpodautoscalers
- ingresses
- statefulsets
- limitranges
verbs:
- get
- list
+4
View File
@@ -21,6 +21,10 @@ Backstage Search lets you find the right information you are looking for in the
See the more detailed [architecture](./architecture.md) and [tech stack](./architecture.md#tech-stack).
## Project roadmap
No current plans.
## Supported
The following sections show the plugins and search engines currently supported by Backstage Search.
@@ -377,6 +377,10 @@ import {
export class SystemXReaderProcessor implements CatalogProcessor {
constructor(private readonly reader: UrlReader) {}
getProcessorName(): string {
return 'SystemXReaderProcessor';
}
async readLocation(
location: LocationSpec,
_optional: boolean,
+9 -4
View File
@@ -30,16 +30,15 @@ Today, it is one of the core products in Spotifys developer experience offeri
### Now
With the Backstage 1.2 release, we have introduced the [TechDocs Addon Framework](https://backstage.io/blog/2022/05/13/techdocs-addon-framework) for augmenting the TechDocs experience at read-time.
In addition to the framework itself, we have open sourced a **ReportIssue** Addon, helping you to create a feedback loop that drives up documentation quality and foster a documentation culture at your organization.
No current plans.
### Next
What can we do in TechDocs to help drive up documentation quality? We have many ideas, for example, a Trust Card with associated Trust Score and automatic triggering of documentation maintenance notifications.
No current plans.
### Someday/Maybe
- What can we do in TechDocs to help drive up documentation quality? We have many ideas, for example, a Trust Card with associated Trust Score and automatic triggering of documentation maintenance notifications.
- Contribute to and deploy from a marketplace of TechDocs Addons
- Addon: MDX (allows you to use JSX in your Markdown content)
- Can we go static site generator agnostic?
@@ -129,3 +128,9 @@ TechDocs packages:
- @backstage/plugin-techdocs-backend
- @backstage/plugin-techdocs-node
- @techdocs/cli
**TechDocs Addon Framework**
With the Backstage 1.2 release, we introduced the [TechDocs Addon Framework](https://backstage.io/blog/2022/05/13/techdocs-addon-framework) for augmenting the TechDocs experience at read-time.
In addition to the framework itself, we open sourced a **ReportIssue** Addon, helping you to create a feedback loop that drives up documentation quality and foster a documentation culture at your organization.
+2
View File
@@ -83,6 +83,8 @@ Serve a documentation project locally in a Backstage app-like environment
Options:
-i, --docker-image <DOCKER_IMAGE> The mkdocs docker container to use (default: "spotify/techdocs")
--docker-entrypoint <DOCKER_ENTRYPOINT> Override the image entrypoint
--docker-option <DOCKER_OPTION...> Extra options to pass to the docker run command, e.g. "--add-host=internal.host:192.168.11.12"
(can be added multiple times).
--no-docker Do not use Docker, use MkDocs executable in current user environment.
--mkdocs-port <PORT> Port for MkDocs server to use (default: "8000")
-v --verbose Enable verbose output. (default: false)
+1 -4
View File
@@ -278,10 +278,7 @@ Note: We recommend Python version 3.7 or higher.
> Caveat: Please install the `mkdocs-techdocs-core` package after all other
> Python packages. The order is important to make sure we get correct version of
> some of the dependencies. For example, we want `Markdown` version to be
> [3.2.2](https://github.com/backstage/backstage/blob/f9f70c225548017b6a14daea75b00fbd399c11eb/packages/techdocs-container/techdocs-core/requirements.txt#L11).
> You can also explicitly install `Markdown==3.2.2` after installing all other
> Python packages.
> some of the dependencies.
## Running Backstage locally
+141 -9
View File
@@ -136,15 +136,27 @@ const myTheme = createTheme({
fontFamily: 'Comic Sans MS',
/* below drives the header colors */
pageTheme: {
home: genPageTheme(['#8c4351', '#343b58'], shapes.wave),
documentation: genPageTheme(['#8c4351', '#343b58'], shapes.wave2),
tool: genPageTheme(['#8c4351', '#343b58'], shapes.round),
service: genPageTheme(['#8c4351', '#343b58'], shapes.wave),
website: genPageTheme(['#8c4351', '#343b58'], shapes.wave),
library: genPageTheme(['#8c4351', '#343b58'], shapes.wave),
other: genPageTheme(['#8c4351', '#343b58'], shapes.wave),
app: genPageTheme(['#8c4351', '#343b58'], shapes.wave),
apis: genPageTheme(['#8c4351', '#343b58'], shapes.wave),
home: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave }),
documentation: genPageTheme({
colors: ['#8c4351', '#343b58'],
shape: shapes.wave2,
}),
tool: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.round }),
service: genPageTheme({
colors: ['#8c4351', '#343b58'],
shape: shapes.wave,
}),
website: genPageTheme({
colors: ['#8c4351', '#343b58'],
shape: shapes.wave,
}),
library: genPageTheme({
colors: ['#8c4351', '#343b58'],
shape: shapes.wave,
}),
other: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave }),
app: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave }),
apis: genPageTheme({ colors: ['#8c4351', '#343b58'], shape: shapes.wave }),
},
});
```
@@ -261,6 +273,126 @@ const LogoFull = () => {
};
```
## Icons
So far you've seen how to create your own theme and add your own logo, in the following sections you'll be shown how to override the existing icons and how to add more icons
### Custom Icons
You can also customize the Project's _default_ icons.
You can change the following [icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx).
#### Requirements
- Files in `.svg` format
- React components created for the icons
#### Create React Component
In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory and `CustomIcons.tsx` file.
> Another example [here](https://github.com/backstage/backstage/blob/master/plugins/azure-devops/src/components/AzurePipelinesIcon/AzurePipelinesIcon.tsx), if you want to ensure proper behavior in light and dark themes.
```tsx
// customIcons.tsx
import { SvgIcon, SvgIconProps } from '@material-ui/core';
import React from 'react';
export const ExampleIcon = (props: SvgIconProps) => (
<SvgIcon {...props} viewBox="0 0 24 24">
<path
fill="currentColor"
width="1em"
height="1em"
display="inline-block"
d="M11.6335 10.8398C11.6335 11.6563 12.065 12.9922 13.0863 12.9922C14.1075 12.9922 14.539 11.6563 14.539 10.8398C14.539 10.0234 14.1075 8.6875 13.0863 8.6875C12.065 8.6875 11.6335 10.0234 11.6335 10.8398V10.8398ZM2.38419e-07 8.86719C2.38419e-07 10.1133 0.126667 11.4336 0.692709 12.5781C2.19292 15.5703 6.3175 15.5 9.27042 15.5C12.2708 15.5 16.6408 15.6055 18.2004 12.5781C18.7783 11.4453 19 10.1133 19 8.86719C19 7.23047 18.4498 5.68359 17.3573 4.42969C17.5631 3.8125 17.6621 3.16406 17.6621 2.52344C17.6621 1.68359 17.4681 1.26172 17.0842 0.5C15.291 0.5 14.1431 0.851562 12.7775 1.90625C11.6296 1.63672 10.45 1.51562 9.26646 1.51562C8.19771 1.51562 7.12104 1.62891 6.08396 1.875C4.73813 0.832031 3.59021 0.5 1.81687 0.5C1.42896 1.26172 1.23896 1.68359 1.23896 2.52344C1.23896 3.16406 1.34188 3.80078 1.54375 4.40625C0.455209 5.67188 2.38419e-07 7.23047 2.38419e-07 8.86719V8.86719ZM2.54521 10.8398C2.54521 9.125 3.60208 7.61328 5.45458 7.61328C6.20271 7.61328 6.91917 7.74609 7.67125 7.84766C8.26104 7.9375 8.85083 7.97266 9.45646 7.97266C10.0581 7.97266 10.6479 7.9375 11.2417 7.84766C11.9819 7.74609 12.7063 7.61328 13.4583 7.61328C15.3108 7.61328 16.3677 9.125 16.3677 10.8398C16.3677 14.2695 13.1852 14.7969 10.4144 14.7969H8.50646C5.72375 14.7969 2.54521 14.2734 2.54521 10.8398V10.8398ZM5.81479 8.6875C6.83604 8.6875 7.2675 10.0234 7.2675 10.8398C7.2675 11.6563 6.83604 12.9922 5.81479 12.9922C4.79354 12.9922 4.36208 11.6563 4.36208 10.8398C4.36208 10.0234 4.79354 8.6875 5.81479 8.6875Z"
/>
</SvgIcon>
);
```
#### Using the custom icon
Supply your custom icon in `packages/app/src/App.tsx`
```diff
+ import { ExampleIcon } from './assets/customIcons'
[...]
const app = createApp({
apis,
components: {
[...]
},
themes: [
[...]
],
+ icons: {
+ github: ExampleIcon,
+ },
bindRoutes({ bind }) {
[...]
}
})
[...]
```
### Adding Icons
You can add more icons, if the [default icons](https://github.com/backstage/backstage/blob/master/packages/app-defaults/src/defaults/icons.tsx) do not fit your needs, so that they can be used in other places like for Links in your entities. For this example we'll be using icons from[Material UI](https://v4.mui.com/components/material-icons/) and specifically the `AlarmIcon`. Here's how to do that:
1. First you will want to open your `App.tsx` in `/packages/app/src`
2. Then you want to import your icon, add this to the rest of your imports: `import AlarmIcon from '@material-ui/icons/Alarm';`
3. Next you want to add the icon like this to your `createApp`:
```diff
const app = createApp({
apis: ...,
plugins: ...,
+ icons: {
+ alert: AlarmIcon,
+ },
themes: ...,
components: ...,
});
```
4. Now we can reference `alert` for our icon in our entity links like this:
```yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: artist-lookup
description: Artist Lookup
links:
- url: https://example.com/alert
title: Alerts
icon: alert
```
And this is the result:
![Example Link with Alert icon](../assets/getting-started/add-icons-links-example.png)
Another way you can use these icons is from the `AppContext` like this:
```ts
import { useApp } from '@backstage/core-plugin-api';
const app = useApp();
const alertIcon = app.getSystemIcon('alert');
```
You might want to use this method if you have an icon you want to use in several locations.
Note: If the icon is not available as one of the default icons or one you've added then it will fall back to Material UI's `LanguageIcon`
## Custom Homepage
In addition to a custom theme, a custom logo, you can also customize the
+1 -1
View File
@@ -96,7 +96,7 @@ To authenticate with a certificate rather than a client secret, you can set the
If deploying to resources that supports Managed Identity, and has identities configured (e.g. Azure App Services, Azure Container Apps), Managed Identity should be picked up without any additional configuration.
If your app has multiple managed identities, you may need to set the `AZURE_CLIENT_ID` environment variable to tell Azure Identity which identity to use.
You will need to grant the same permissions to your identity as described for App Registrations above.
To grant the managed identity the same permissions as mentioned in _App Registration_ above, [please follow this guide](https://docs.microsoft.com/en-us/azure/app-service/tutorial-connect-app-access-microsoft-graph-as-app-javascript?tabs=azure-powershell)
## Filtering imported Users and Groups
+2 -2
View File
@@ -41,7 +41,7 @@ And then add the processor to your catalog builder:
## Self-hosted Bitbucket Server
To use the discovery processor with a self-hosted Bitbucket Server, you'll need
a Bitbucket integration [set up](locations.md) with a `BITBUCKET_TOKEN` and a
a Bitbucket integration [set up](../bitbucketServer/locations.md) with a `BITBUCKET_TOKEN` and a
`BITBUCKET_API_BASE_URL`. Then you can add a location target to the catalog
configuration:
@@ -74,7 +74,7 @@ The target is composed of four parts:
## Bitbucket Cloud
To use the discovery processor with Bitbucket Cloud, you'll need a Bitbucket
integration [set up](locations.md) with a `username` and an `appPassword`. Then
integration [set up](../bitbucketCloud/locations.md) with a `username` and an `appPassword`. Then
you can add a location target to the catalog configuration:
```yaml
@@ -0,0 +1,114 @@
---
id: discovery
title: Bitbucket Server Discovery
sidebar_label: Discovery
# prettier-ignore
description: Automatically discovering catalog entities from repositories in Bitbucket Server
---
The Bitbucket Server integration has a special entity provider for discovering
catalog files located in Bitbucket Server.
The provider will search your Bitbucket Server account and register catalog files matching the configured path
as Location entity and via following processing steps add all contained catalog entities.
This can be useful as an alternative to static locations or manually adding things to the catalog.
## Installation
You will have to add the entity provider in the catalog initialization code of your
backend. The provider is not installed by default, therefore you have to add a
dependency to `@backstage/plugin-catalog-backend-module-bitbucket-server` to your backend
package.
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-bitbucket-server
```
And then add the entity provider to your catalog builder:
```diff
// In packages/backend/src/plugins/catalog.ts
+ import { BitbucketServerEntityProvider } from '@backstage/plugin-catalog-backend-module-bitbucket-server';
export default async function createPlugin(
env: PluginEnvironment,
): Promise<Router> {
const builder = await CatalogBuilder.create(env);
+ builder.addEntityProvider(
+ BitbucketServerEntityProvider.fromConfig(env.config, {
+ logger: env.logger,
+ schedule: env.scheduler.createScheduledTaskRunner({
+ frequency: { minutes: 30 },
+ timeout: { minutes: 3 },
+ }),
+ }),
+ );
// [...]
}
```
## Configuration
To use the entity provider, you'll need a [Bitbucket Server integration set up](locations.md).
Additionally, you need to configure your entity provider instance(s):
```yaml
# app-config.yaml
catalog:
providers:
bitbucketServer:
yourProviderId: # identifies your ingested dataset
host: 'bitbucket.mycompany.com'
catalogPath: /catalog-info.yaml # default value
filters: # optional
projectKey: '^apis-.*$' # optional; RegExp
repoSlug: '^service-.*$' # optional; RegExp
```
- **host**:
The host of the Bitbucket Server instance, **note**: the host needs to registered as an integration as well, see [location](locations.md).
- **`catalogPath`** _(optional)_:
Default: `/catalog-info.yaml`.
Path where to look for `catalog-info.yaml` files.
When started with `/`, it is an absolute path from the repo root.
- **filters** _(optional)_:
- **`projectKey`** _(optional)_:
Regular expression used to filter results based on the project key.
- **repoSlug** _(optional)_:
Regular expression used to filter results based on the repo slug.
## Custom location processing
The Bitbucket Server Entity Provider will by default emit a location for each
matching repository. However, it is possible to override this functionality and take full control of how each
matching repository is processed.
`BitbucketServerEntityProvider.fromConfig` takes an optional parameter
`options.parser` where you can set your own parser to be used for each matched
repository.
```typescript
const provider = BitbucketServerEntityProvider.fromConfig(env.config, {
logger: env.logger,
schedule: env.scheduler.createScheduledTaskRunner({
frequency: { minutes: 30 },
timeout: { minutes: 3 },
}),
parser: async function* customLocationParser(options: {
location: LocationSpec,
client: BitbucketServerClient,
}) {
// Custom logic for interpreting the matching repository
// See defaultBitbucketServerLocationParser for an example
}
);
```
## Alternative
_Deprecated!_ Please raise issues for use cases not covered by the entity provider.
[You can use the `BitbucketDiscoveryProcessor`.](../bitbucket/discovery.md#self-hosted-bitbucket-server)
@@ -1,28 +1,25 @@
---
id: locations
title: Bitbucket Locations
title: Bitbucket Server Locations
sidebar_label: Locations
# prettier-ignore
description: Integrating source code stored in Bitbucket into the Backstage catalog
description: Integrating source code stored in Bitbucket Server into the Backstage catalog
---
The Bitbucket integration supports loading catalog entities from bitbucket.org (Bitbucket Cloud)
or Bitbucket Server. Entities can be added to
The Bitbucket Server integration supports loading catalog entities from Bitbucket Server.
Entities can be added to
[static catalog configuration](../../features/software-catalog/configuration.md),
or registered with the
[catalog-import](https://github.com/backstage/backstage/tree/master/plugins/catalog-import)
plugin.
## Bitbucket Cloud
Please see [the Bitbucket Cloud documentation](../bitbucketCloud/locations.md).
## Bitbucket Server
## Configuration
```yaml
integrations:
bitbucketServer:
- host: bitbucket.company.com
- host: bitbucket.mycompany.com
apiBaseUrl: https://bitbucket.mycompany.com/rest/api/1.0
token: ${BITBUCKET_SERVER_TOKEN}
```
@@ -32,6 +29,7 @@ or with Basic Auth
integrations:
bitbucketServer:
- host: bitbucket.company.com
apiBaseUrl: https://bitbucket.mycompany.com/rest/api/1.0
username: ${BITBUCKET_SERVER_USERNAME}
password: ${BITBUCKET_SERVER_PASSWORD}
```
@@ -40,13 +38,14 @@ Directly under the `bitbucketServer` key is a list of provider configurations, w
you can list the Bitbucket Server providers you want to fetch data from. Each entry is
a structure with the following elements:
- `host`: The host of the Bitbucket Server instance, e.g. `bitbucket.company.com`.
- `host`: The host of the Bitbucket Server instance, e.g. `bitbucket.mycompany.com`.
- `token` (optional):
An [personal access token](https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html)
A [personal access token](https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html)
as expected by Bitbucket Server.
- `username` (optional):
use for [Basic Auth](https://developer.atlassian.com/server/bitbucket/how-tos/command-line-rest/#authentication) for Bitbucket Server.
- `password` (optional):
use for [Basic Auth](https://developer.atlassian.com/server/bitbucket/how-tos/command-line-rest/#authentication) for Bitbucket Server.
Note: a token can also be used as a substitute for the password, see [HTTP access tokens](https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html).
- `apiBaseUrl` (optional): The URL of the Bitbucket Server API. For self-hosted
installations, it is commonly at `https://<host>/rest/api/1.0`.
+119
View File
@@ -6,6 +6,125 @@ sidebar_label: Discovery
description: Automatically discovering catalog entities from repositories in a GitHub organization
---
## GitHub Provider
The GitHub integration has a discovery provider for discovering catalog
entities within a GitHub organization. The provider will crawl the GitHub
organization and register entities matching the configured path. This can be
useful as an alternative to static locations or manually adding things to the
catalog. This is the prefered method for ingesting entities into the catalog.
## Installation
You will have to add the provider in the catalog initialization code of your
backend. They are not installed by default, therefore you have to add a
dependency on `@backstage/plugin-catalog-backend-module-github` to your backend
package.
```bash
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-github
```
And then add the entity provider to your catalog builder:
```diff
// In packages/backend/src/plugins/catalog.ts
+ import { GitHubEntityProvider } from '@backstage/plugin-catalog-backend-module-github';
export default async function createPlugin(
env: PluginEnvironment,
): Promise<Router> {
const builder = await CatalogBuilder.create(env);
+ builder.addEntityProvider(
+ GitHubEntityProvider.fromConfig(env.config, {
+ logger: env.logger,
+ schedule: env.scheduler.createScheduledTaskRunner({
+ frequency: { minutes: 30 },
+ timeout: { minutes: 3 },
+ }),
+ }),
+ );
// [...]
}
```
## Configuration
To use the discovery provider, you'll need a GitHub integration
[set up](locations.md) with either a [Personal Access Token](../../getting-started/configuration.md#setting-up-a-github-integration) or [GitHub Apps](./github-apps.md).
Then you can add a github config to the catalog providers configuration:
```yaml
catalog:
providers:
github:
# the provider ID can be any camelCase string
providerId:
organization: 'backstage' # string
catalogPath: '/catalog-info.yaml' # string
filters:
branch: 'main' # string
repository: '.*' # Regex
customProviderId:
organization: 'new-org' # string
catalogPath: '/custom/path/catalog-info.yaml' # string
filters: # optional filters
branch: 'develop' # optional string
repository: '.*' # optional Regex
wildcardProviderId:
organization: 'new-org' # string
catalogPath: '/groups/**/*.yaml' # this will search all folders for files that end in .yaml
filters: # optional filters
branch: 'develop' # optional string
repository: '.*' # optional Regex
```
This provider supports multiple organizations via unique provider IDs.
> **Note:** It is possible but certainly not recommended to skip the provider ID level.
> If you do so, `default` will be used as provider ID.
- **`catalogPath`** _(optional)_:
Default: `/catalog-info.yaml`.
Path where to look for `catalog-info.yaml` files.
You can use wildcards - `*` or `**` - to search the path and/or the filename
- **filters** _(optional)_:
- **branch** _(optional)_:
String used to filter results based on the branch name.
- **repository** _(optional)_:
Regular expression used to filter results based on the repository name.
- **organization**:
Name of your organization account/workspace.
If you want to add multiple organizations, you need to add one provider config each.
## GitHub API Rate Limits
GitHub [rate limits](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting) API requests to 5,000 per hour (or more for Enterprise
accounts). The snippet below refreshes the Backstage catalog data every 35 minutes, which issues an API request for each discovered location.
If your requests are too frequent then you may get throttled by
rate limiting. You can change the refresh frequency of the catalog in your `packages/backend/src/plugins/catalog.ts` file:
```typescript
schedule: env.scheduler.createScheduledTaskRunner({
frequency: { minutes: 35 },
timeout: { minutes: 30 },
}),
```
More information about scheduling can be found on the [TaskScheduleDefinition](https://backstage.io/docs/reference/backend-tasks.taskscheduledefinition) page.
Alternatively, or additionally, you can configure [github-apps](github-apps.md) authentication
which carries a much higher rate limit at GitHub.
This is true for any method of adding GitHub entities to the catalog, but
especially easy to hit with automatic discovery.
## GitHub Processor (To Be Deprecated)
The GitHub integration has a special discovery processor for discovering catalog
entities within a GitHub organization. The processor will crawl the GitHub
organization and register entities matching the configured path. This can be
+1
View File
@@ -24,6 +24,7 @@ catalog:
branch: main # Optional. Uses `master` as default
group: example-group # Optional. Group and subgroup (if needed) to look for repositories. If not present the whole project will be scanned
entityFilename: catalog-info.yaml # Optional. Defaults to `catalog-info.yaml`
projectPattern: /[\s\S]*/ # Optional. Filters found projects based on provided patter. Defaults to `/[\s\S]*/`, what means to not filter anything
```
As this provider is not one of the default providers, you will first need to install
@@ -36,6 +36,13 @@ Then make sure the environment variables `GCS_CLIENT_EMAIL` and
Since this integration uses the Google Storage SDK, you can also choose to not
provide any explicit credentials and let the SDK discover them automatically.
Please note that for this method to work you must add an empty `googleGcs` object to the `integrations` section in `app-config.yaml`.
```yaml
integrations:
googleGcs: {}
```
One of these discovery methods is to provide an environment variable called
`GOOGLE_APPLICATION_CREDENTIALS` and set it to the file path of your JSON
service account key.
+2 -2
View File
@@ -38,7 +38,7 @@ In addition, there are a number of hard and soft requirements:
- Scale - It should scale to hundreds of large packages without excessive wait
times
- Reloads - The development flow should support quick on-save hot reloads
- Simple - Usage should simple and configuration should be kept minimal
- Simple - Usage should be simple and configuration should be kept minimal
- Universal - Development towards both web applications, isomorphic packages,
and Node.js
- Modern - The build system targets modern environments
@@ -95,7 +95,7 @@ These are the available roles that are currently supported by the Backstage buil
| Role | Description | Example |
| ---------------------- | -------------------------------------------- | -------------------------------------------- |
| frontend | Bundled frontend application | `package/app` |
| frontend | Bundled frontend application | `packages/app` |
| backend | Bundled backend application | `packages/backend` |
| cli | Package used as a command-line interface | `@backstage/cli`, `@backstage/codemods` |
| web-library | Web library for use by other packages | `@backstage/plugin-catalog-react` |
+4 -16
View File
@@ -12,12 +12,12 @@ and the broader Backstage community.
The Backstage roadmap lays out both [“what's next”](#whats-next) and ["future
work"](#future-work). With "next" we mean features planned for release within
the ongoing quarter from April through June 2022. With "future" we mean
the ongoing quarter from July through September 2022. With "future" we mean
features on the radar, but not yet scheduled.
| [What's next](#whats-next) | [Future work](#future-work) |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [Backstage Search 1.0](#search-1.0) <br/> [Backend Services (MVP)](#backend-services-mvp) <br/> [Backstage Security Audit](#backstage-security-audit) <br/> [Backstage Threat Model](#backstage-threat-model) <br/> [TechDocs Addon Framework](#techdocs-addon-framework) <br/> [Software Catalog pagination](#software-catalog-pagination) <br/> [More SIGs](#more-sigs) | Ease of onboarding <br/> Composable Homepage 1.0 <br/> Creator experience <br/> GraphQL <br/> Telemetry |
| [What's next](#whats-next) | [Future work](#future-work) |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [Backend Services (MVP)](#backend-services-mvp) <br/> [Backstage Security Audit](#backstage-security-audit) <br/> [Backstage Threat Model](#backstage-threat-model) <br/> [Software Catalog pagination](#software-catalog-pagination) <br/> [More SIGs](#more-sigs) | Ease of onboarding <br/> Composable Homepage 1.0 <br/> Creator experience <br/> GraphQL <br/> Telemetry |
The long-term roadmap (12 - 36 months) is not detailed in the public roadmap.
Third-party contributions are also not currently included in the roadmap. Let us
@@ -30,10 +30,6 @@ The feature set below is planned for the ongoing quarter, and grouped by theme.
The list order doesn't necessarily reflect priority, and the development/release
cycle will vary based on maintainer schedules.
### Backstage Search 1.0
Fix the few remaining issues to get Backstage Search platform up to 1.0. For more information, see the [Backstage Search documentation and roadmap page](https://backstage.io/docs/features/search/search-overview).
### Backend Services (MVP)
To better scale and maintain the Backstage instances, a backend services system
@@ -72,14 +68,6 @@ The planned artifacts are:
- Concise high level threat model that will be included as part of the Backstage security documentation.
- Granular threat model created in conjunction with the security audit to inform further security investment areas for Backstage.
### TechDocs Addon Framework
Addons are TechDocs features that are added on top of the base docs-like-code experience. An example would be a feature that showed comments on the page. We plan to add an Addon framework and open source a selection of the Addons that we use internally at Spotify. We encourage the Backstage community to add further Addons.
For more information about the TechDocs Addon Framework, see the documentation page [here](https://backstage.io/docs/features/techdocs/addons).
For general information about TechDocs including roadmap, see [here](https://backstage.io/docs/features/techdocs/techdocs-overview).
### Software Catalog pagination
Today adopters with a big catalog (with several thousands of software components) might not have an ideal end-user experience when viewing the `/catalog` page. The issue is related to how the entities are fetched by the frontend. In order to provide a better end-user experience the pagination of the catalogs entities needs to be enforced. Some experimentation is already completed but in this quarter we plan to continue, and hopefully complete, this relevant enhancement.
+1 -1
View File
@@ -1,6 +1,6 @@
---
id: customization
title: Customization
title: Customization (Experimental)
description: Documentation on adding a customization logic to the plugin
---
File diff suppressed because it is too large Load Diff
+274
View File
@@ -0,0 +1,274 @@
# Release v1.5.0-next.1
## @backstage/integration@1.3.0-next.1
### Minor Changes
- ad35364e97: feat(techdocs): add edit button support for bitbucketServer
### Patch Changes
- 1f27d83933: Fixed bug in getGitLabFileFetchUrl where a target whose path did not contain the
`/-/` scope would result in a fetch URL that did not support
private-token-based authentication.
## @backstage/plugin-catalog@1.5.0-next.1
### Minor Changes
- fe94398418: Allow changing the subtitle of the `CatalogTable` component
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-catalog-common@1.0.5-next.0
- @backstage/plugin-catalog-react@1.1.3-next.1
## @backstage/plugin-scaffolder@1.5.0-next.1
### Minor Changes
- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-catalog-common@1.0.5-next.0
- @backstage/integration@1.3.0-next.1
- @backstage/plugin-catalog-react@1.1.3-next.1
## @backstage/plugin-scaffolder-backend@1.5.0-next.1
### Minor Changes
- c4b452e16a: Starting the implementation of the Wizard page for the `next` scaffolder plugin
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.1
- @backstage/integration@1.3.0-next.1
- @backstage/plugin-catalog-backend@1.3.1-next.1
## @backstage/plugin-sonarqube@0.4.0-next.1
### Minor Changes
- 619b515172: **BREAKING** This plugin now call the `sonarqube-backend` plugin instead of relying on the proxy plugin
The whole proxy's `'/sonarqube':` key can be removed from your configuration files.
Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/master/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances.
### Patch Changes
- f9c310a439: Add ability to provide an optional Sonarqube instance into the annotation in the `catalog-info.yaml` file
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-catalog-react@1.1.3-next.1
## @backstage/plugin-sonarqube-backend@0.1.0-next.0
### Minor Changes
- e2be9ab3a4: Initial creation of the plugin
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.1
## @backstage/plugin-techdocs-node@1.3.0-next.1
### Minor Changes
- ad35364e97: feat(techdocs): add edit button support for bitbucketServer
### Patch Changes
- f833344611: Bump default `TechDocs` image to `v1.1.0`, see the release [here](https://github.com/backstage/techdocs-container/releases/tag/v1.1.0).
- Updated dependencies
- @backstage/backend-common@0.15.0-next.1
- @backstage/integration@1.3.0-next.1
## @backstage/backend-common@0.15.0-next.1
### Patch Changes
- 1732a18a7a: Exported `redactLogLine` function to be able to use it in custom loggers and renamed it to `redactWinstonLogLine`.
- Updated dependencies
- @backstage/integration@1.3.0-next.1
## @backstage/core-components@0.10.1-next.1
### Patch Changes
- a22af3edc8: Adding a `className` prop to the `MarkdownContent` component
## @backstage/create-app@0.4.30-next.1
### Patch Changes
- Bumped create-app version.
## @techdocs/cli@1.1.4-next.1
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.1
- @backstage/plugin-techdocs-node@1.3.0-next.1
## @backstage/plugin-api-docs@0.8.8-next.1
### Patch Changes
- dae12c71cf: Updated dependency `@asyncapi/react-component` to `1.0.0-next.40`.
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-catalog@1.5.0-next.1
- @backstage/plugin-catalog-react@1.1.3-next.1
## @backstage/plugin-catalog-backend@1.3.1-next.1
### Patch Changes
- e3d3018531: Fix issue for conditional decisions based on properties stored as arrays, like tags.
Before this change, having a permission policy returning conditional decisions based on metadata like tags, such like `createCatalogConditionalDecision(permission, catalogConditions.hasMetadata('tags', 'java'),)`, was producing wrong results. The issue occurred when authorizing entities already loaded from the database, for example when authorizing `catalogEntityDeletePermission`.
- Updated dependencies
- @backstage/plugin-catalog-common@1.0.5-next.0
- @backstage/backend-common@0.15.0-next.1
- @backstage/integration@1.3.0-next.1
## @backstage/plugin-catalog-backend-module-github@0.1.6-next.1
### Patch Changes
- f48950e34b: Github Entity Provider functionality for adding entities to the catalog.
This provider replaces the GithubDiscoveryProcessor functionality as providers offer more flexibility with scheduling ingestion, removing and preventing orphaned entities.
More information can be found on the [GitHub Discovery](https://backstage.io/docs/integrations/github/discovery) page.
- Updated dependencies
- @backstage/backend-common@0.15.0-next.1
- @backstage/integration@1.3.0-next.1
- @backstage/plugin-catalog-backend@1.3.1-next.1
## @backstage/plugin-catalog-common@1.0.5-next.0
### Patch Changes
- 92103db537: Export aggregated list of all catalog permissions
## @backstage/plugin-catalog-react@1.1.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-catalog-common@1.0.5-next.0
- @backstage/integration@1.3.0-next.1
## @backstage/plugin-home@0.4.24-next.1
### Patch Changes
- df7b9158b8: Add wrap-around for the listing of tools to prevent increasing width with name length.
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-catalog-react@1.1.3-next.1
## @backstage/plugin-jenkins@0.7.7-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-catalog-react@1.1.3-next.1
- @backstage/plugin-jenkins-common@0.1.7-next.0
## @backstage/plugin-jenkins-backend@0.1.25-next.1
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.1
- @backstage/plugin-jenkins-common@0.1.7-next.0
## @backstage/plugin-jenkins-common@0.1.7-next.0
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-common@1.0.5-next.0
## @backstage/plugin-kubernetes@0.7.1-next.1
### Patch Changes
- 860ed68343: Fixed bug in CronJobsAccordions component that causes an error when cronjobs use a kubernetes alias, such as `@hourly` or `@daily` instead of standard cron syntax.
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-catalog-react@1.1.3-next.1
## @backstage/plugin-techdocs@1.3.1-next.1
### Patch Changes
- b86ed4d990: Add highlight to active navigation item and navigation parents.
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/integration@1.3.0-next.1
- @backstage/plugin-techdocs-react@1.0.3-next.1
- @backstage/plugin-catalog-react@1.1.3-next.1
## @backstage/plugin-techdocs-backend@1.2.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-common@1.0.5-next.0
- @backstage/backend-common@0.15.0-next.1
- @backstage/integration@1.3.0-next.1
- @backstage/plugin-techdocs-node@1.3.0-next.1
## @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.1
### Patch Changes
- ad35364e97: feat(techdocs): add edit button support for bitbucketServer
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
- @backstage/integration@1.3.0-next.1
- @backstage/plugin-techdocs-react@1.0.3-next.1
## @backstage/plugin-techdocs-react@1.0.3-next.1
### Patch Changes
- 29d6cf0147: Add `toLowerEntityRefMaybe()` helper function for handling `techdocs.legacyUseCaseSensitiveTripletPaths` flag.
Pass modified `entityRef` to `TechDocsReaderPageContext` to handle the `techdocs.legacyUseCaseSensitiveTripletPaths` flag.
- Updated dependencies
- @backstage/core-components@0.10.1-next.1
## example-app@0.2.74-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-kubernetes@0.7.1-next.1
- @backstage/plugin-home@0.4.24-next.1
- @backstage/core-components@0.10.1-next.1
- @backstage/plugin-scaffolder@1.5.0-next.1
- @backstage/plugin-techdocs@1.3.1-next.1
- @backstage/plugin-catalog-common@1.0.5-next.0
- @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.1
- @backstage/plugin-api-docs@0.8.8-next.1
- @backstage/plugin-techdocs-react@1.0.3-next.1
- @backstage/plugin-catalog-react@1.1.3-next.1
- @backstage/plugin-jenkins@0.7.7-next.1
+791
View File
@@ -0,0 +1,791 @@
# Release v1.5.0-next.2
## @backstage/core-components@0.11.0-next.2
### Minor Changes
- d0eefc499a: Made the `to` prop of `Button` and `Link` more strict, only supporting plain strings. It used to be the case that this prop was unexpectedly too liberal, making it look like we supported the complex `react-router-dom` object form of the parameter as well, which led to unexpected results at runtime.
## @techdocs/cli@1.2.0-next.2
### Minor Changes
- 855952db53: Added CLI option `--docker-option` to allow passing additional options to the `docker run` command executed my `serve` and `serve:mkdocs`.
## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.0-next.0
### Minor Changes
- f7607f9d85: Add new plugin catalog-backend-module-bitbucket-server which adds the `BitbucketServerEntityProvider`.
The entity provider is meant as a replacement for the `BitbucketDiscoveryProcessor` to be used with Bitbucket Server (Bitbucket Cloud already has a replacement).
**Before:**
```typescript
// packages/backend/src/plugins/catalog.ts
builder.addProcessor(
BitbucketDiscoveryProcessor.fromConfig(env.config, { logger: env.logger }),
);
```
```yaml
# app-config.yaml
catalog:
locations:
- type: bitbucket-discovery
target: 'https://bitbucket.mycompany.com/projects/*/repos/*/catalog-info.yaml
```
**After:**
```typescript
// packages/backend/src/plugins/catalog.ts
builder.addEntityProvider(
BitbucketServerEntityProvider.fromConfig(env.config, {
logger: env.logger,
schedule: env.scheduler.createScheduledTaskRunner({
frequency: { minutes: 30 },
timeout: { minutes: 3 },
}),
}),
);
```
```yaml
# app-config.yaml
catalog:
providers:
bitbucketServer:
yourProviderId: # identifies your ingested dataset
catalogPath: /catalog-info.yaml # default value
filters: # optional
projectKey: '.*' # optional; RegExp
repoSlug: '.*' # optional; RegExp
```
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.1-next.2
## @backstage/plugin-github-issues@0.1.0-next.0
### Minor Changes
- ffd5e47fb5: New plugin for displaying GitHub Issues added
### Patch Changes
- b522f49403: Updated dependency `@spotify/prettier-config` to `^14.0.0`.
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-scaffolder-backend@1.5.0-next.2
### Minor Changes
- 692d5d3405: Added `reviewers` and `teamReviewers` parameters to `publish:github:pull-request` action to add reviewers on the pull request created by the action
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.1-next.2
## @backstage/app-defaults@1.0.5-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/cli@0.18.1-next.1
### Patch Changes
- fd68d6f138: Added resolution of `.json` and `.wasm` files to the Webpack configuration in order to match defaults.
## @backstage/create-app@0.4.30-next.2
### Patch Changes
- 0174a0a022: Add `PATCH` and `HEAD` to the `Access-Control-Allow-Methods`.
To apply this change to your Backstage installation make the following change to your `app-config.yaml`
```diff
cors:
origin: http://localhost:3000
- methods: [GET, POST, PUT, DELETE]
+ methods: [GET, POST, PUT, DELETE, PATCH, HEAD]
```
## @backstage/dev-utils@1.0.5-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/app-defaults@1.0.5-next.1
- @backstage/integration-react@1.1.3-next.1
## @backstage/integration-react@1.1.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-adr@0.1.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/integration-react@1.1.3-next.1
- @backstage/plugin-search-react@1.0.1-next.1
## @backstage/plugin-airbrake@0.3.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/dev-utils@1.0.5-next.1
## @backstage/plugin-allure@0.1.24-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-analytics-module-ga@0.1.19-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-apache-airflow@0.2.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-api-docs@0.8.8-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/plugin-catalog@1.5.0-next.2
## @backstage/plugin-apollo-explorer@0.1.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-auth-backend@0.15.1-next.1
### Patch Changes
- 2d7d6028e1: Updated dependency `@google-cloud/firestore` to `^6.0.0`.
## @backstage/plugin-azure-devops@0.1.24-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-badges@0.2.32-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-bazaar@0.1.23-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/cli@0.18.1-next.1
- @backstage/core-components@0.11.0-next.2
- @backstage/plugin-catalog@1.5.0-next.2
## @backstage/plugin-bitrise@0.1.35-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-catalog@1.5.0-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/integration-react@1.1.3-next.1
- @backstage/plugin-search-react@1.0.1-next.1
## @backstage/plugin-catalog-backend@1.3.1-next.2
### Patch Changes
- 059ae348b4: Use the non-deprecated form of table.unique in knex
## @backstage/plugin-catalog-backend-module-github@0.1.6-next.2
### Patch Changes
- 97f0a37378: Improved support for wildcards in `catalogPath`
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.1-next.2
## @backstage/plugin-catalog-backend-module-gitlab@0.1.6-next.1
### Patch Changes
- 24979413a4: Enhancing GitLab provider with filtering projects by pattern RegExp
```yaml
providers:
gitlab:
stg:
host: gitlab.stg.company.io
branch: main
projectPattern: 'john/' # new option
entityFilename: template.yaml
```
With the aforementioned parameter you can filter projects, and keep only who belongs to the namespace "john".
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.1-next.2
## @backstage/plugin-catalog-graph@0.2.20-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-catalog-import@0.8.11-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/integration-react@1.1.3-next.1
## @backstage/plugin-catalog-react@1.1.3-next.2
### Patch Changes
- 44e691a7f9: Modify description column to not use auto width.
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-circleci@0.3.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-cloudbuild@0.3.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-code-climate@0.1.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-code-coverage@0.2.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-codescene@0.1.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-config-schema@0.1.31-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-cost-insights@0.11.30-next.1
### Patch Changes
- b746eca638: Make `products` field optional in the config
- daf4b33e34: Add name property to Group
- Updated dependencies
- @backstage/plugin-cost-insights-common@0.1.1-next.0
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-cost-insights-common@0.1.1-next.0
### Patch Changes
- daf4b33e34: Add name property to Group
## @backstage/plugin-dynatrace@0.1.2-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-explore@0.3.39-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-firehydrant@0.1.25-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-fossa@0.2.40-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-gcalendar@0.3.4-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-gcp-projects@0.3.27-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-git-release-manager@0.3.21-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-github-actions@0.5.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-github-deployments@0.1.39-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/integration-react@1.1.3-next.1
## @backstage/plugin-github-pull-requests-board@0.1.2-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-gitops-profiles@0.3.26-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-gocd@0.1.14-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-graphiql@0.2.40-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-home@0.4.24-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/plugin-stack-overflow@0.1.4-next.1
## @backstage/plugin-ilert@0.1.34-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-jenkins@0.7.7-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-kafka@0.3.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-kubernetes@0.7.1-next.2
### Patch Changes
- f563b86a5b: Adds namespace column to Kubernetes error reporting table
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-kubernetes-backend@0.7.1-next.1
### Patch Changes
- 0cd87cf30d: Added a new `customResources` field to the ClusterDetails interface, in order to specify (override) custom resources per cluster
## @backstage/plugin-lighthouse@0.3.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-newrelic@0.3.26-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-newrelic-dashboard@0.2.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-org@0.5.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-pagerduty@0.5.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-periskop@0.1.6-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-rollbar@0.4.8-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-scaffolder@1.5.0-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/integration-react@1.1.3-next.1
## @backstage/plugin-search@1.0.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/plugin-search-react@1.0.1-next.1
## @backstage/plugin-search-react@1.0.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-sentry@0.4.1-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-shortcuts@0.3.0-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-sonarqube@0.4.0-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-splunk-on-call@0.3.32-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-stack-overflow@0.1.4-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
- @backstage/plugin-home@0.4.24-next.2
## @backstage/plugin-tech-insights@0.2.4-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-tech-radar@0.5.15-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-techdocs@1.3.1-next.2
### Patch Changes
- 8acb22205c: Scroll techdocs navigation into focus and expand any nested navigation items.
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/integration-react@1.1.3-next.1
- @backstage/plugin-search-react@1.0.1-next.1
- @backstage/plugin-techdocs-react@1.0.3-next.2
## @backstage/plugin-techdocs-addons-test-utils@1.0.3-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-techdocs@1.3.1-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/integration-react@1.1.3-next.1
- @backstage/plugin-catalog@1.5.0-next.2
- @backstage/plugin-search-react@1.0.1-next.1
- @backstage/plugin-techdocs-react@1.0.3-next.2
## @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.2
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
- @backstage/integration-react@1.1.3-next.1
- @backstage/plugin-techdocs-react@1.0.3-next.2
## @backstage/plugin-techdocs-react@1.0.3-next.2
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-todo@0.2.10-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-user-settings@0.4.7-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-vault@0.1.2-next.1
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/core-components@0.11.0-next.2
## @backstage/plugin-xcmetrics@0.2.28-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
## example-app@0.2.74-next.2
### Patch Changes
- Updated dependencies
- @backstage/plugin-kubernetes@0.7.1-next.2
- @backstage/plugin-catalog-react@1.1.3-next.2
- @backstage/plugin-cost-insights@0.11.30-next.1
- @backstage/cli@0.18.1-next.1
- @backstage/plugin-techdocs@1.3.1-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/app-defaults@1.0.5-next.1
- @backstage/integration-react@1.1.3-next.1
- @backstage/plugin-airbrake@0.3.8-next.1
- @backstage/plugin-apache-airflow@0.2.1-next.1
- @backstage/plugin-api-docs@0.8.8-next.2
- @backstage/plugin-azure-devops@0.1.24-next.1
- @backstage/plugin-badges@0.2.32-next.1
- @backstage/plugin-catalog-graph@0.2.20-next.1
- @backstage/plugin-catalog-import@0.8.11-next.1
- @backstage/plugin-circleci@0.3.8-next.1
- @backstage/plugin-cloudbuild@0.3.8-next.1
- @backstage/plugin-code-coverage@0.2.1-next.1
- @backstage/plugin-dynatrace@0.1.2-next.1
- @backstage/plugin-explore@0.3.39-next.1
- @backstage/plugin-gcalendar@0.3.4-next.1
- @backstage/plugin-gcp-projects@0.3.27-next.1
- @backstage/plugin-github-actions@0.5.8-next.1
- @backstage/plugin-gocd@0.1.14-next.1
- @backstage/plugin-graphiql@0.2.40-next.1
- @backstage/plugin-home@0.4.24-next.2
- @backstage/plugin-jenkins@0.7.7-next.2
- @backstage/plugin-kafka@0.3.8-next.1
- @backstage/plugin-lighthouse@0.3.8-next.1
- @backstage/plugin-newrelic@0.3.26-next.1
- @backstage/plugin-newrelic-dashboard@0.2.1-next.1
- @backstage/plugin-org@0.5.8-next.1
- @backstage/plugin-pagerduty@0.5.1-next.1
- @backstage/plugin-rollbar@0.4.8-next.1
- @backstage/plugin-scaffolder@1.5.0-next.2
- @backstage/plugin-search@1.0.1-next.1
- @backstage/plugin-search-react@1.0.1-next.1
- @backstage/plugin-sentry@0.4.1-next.1
- @backstage/plugin-shortcuts@0.3.0-next.1
- @backstage/plugin-stack-overflow@0.1.4-next.1
- @backstage/plugin-tech-insights@0.2.4-next.1
- @backstage/plugin-tech-radar@0.5.15-next.1
- @backstage/plugin-techdocs-module-addons-contrib@1.0.3-next.2
- @backstage/plugin-techdocs-react@1.0.3-next.2
- @backstage/plugin-todo@0.2.10-next.1
- @backstage/plugin-user-settings@0.4.7-next.1
## techdocs-cli-embedded-app@0.2.73-next.1
### Patch Changes
- Updated dependencies
- @backstage/cli@0.18.1-next.1
- @backstage/plugin-techdocs@1.3.1-next.2
- @backstage/core-components@0.11.0-next.2
- @backstage/app-defaults@1.0.5-next.1
- @backstage/integration-react@1.1.3-next.1
- @backstage/plugin-catalog@1.5.0-next.2
- @backstage/plugin-techdocs-react@1.0.3-next.2
## @internal/plugin-todo-list@1.0.4-next.1
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.11.0-next.2
+48
View File
@@ -0,0 +1,48 @@
# Release v1.5.0-next.3
## @backstage/plugin-adr@0.2.0-next.2
### Minor Changes
- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem`
BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents
### Patch Changes
- Updated dependencies
- @backstage/plugin-adr-common@0.2.0-next.1
## @backstage/plugin-adr-backend@0.2.0-next.1
### Minor Changes
- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem`
BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents
### Patch Changes
- Updated dependencies
- @backstage/plugin-adr-common@0.2.0-next.1
- @backstage/backend-common@0.15.0-next.2
## @backstage/plugin-adr-common@0.2.0-next.1
### Minor Changes
- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem`
BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents
## @backstage/backend-common@0.15.0-next.2
### Patch Changes
- 5e4dc173f7: Added a second validation to the `dir()` method of ZIP archive responses returned from `readTree()` that ensures that extracted files do not fall outside the target directory.
## @backstage/create-app@0.4.30-next.3
### Patch Changes
- Bumped create-app version.
+60
View File
@@ -0,0 +1,60 @@
---
id: v1.5.0
title: v1.5.0
description: Backstage Release v1.5.0
---
These are the release notes for the v1.5.0 release of [Backstage](https://backstage.io/).
A huge thanks to the whole team of maintainers and contributors as well as the amazing Backstage Community for the hard work in getting this release developed and done.
## Highlights
### GitHub Entity Provider
Added a new `GitHubEntityProvider` ([documentation](https://backstage.io/docs/integrations/github/discovery)), which allows for automatic discovery of catalog entity definition files out of your GitHub projects. This is an improvement upon the `GithubDiscoveryProcessor` that existed before, and we recommend using entity providers rather than processors for discovery and ingestion when possible. Contributed by [@brentg-telus](https://github.com/brentg-telus) [#12822](https://github.com/backstage/backstage/pull/12822)
### Experimental Plugin Reconfiguration
This release adds an experimental API that allows plugin authors to define plugin wide options. These options can then be used by adopters of the plugin to reconfigure it to fit their app. Check out the [plugin customization](https://backstage.io/docs/plugins/customization) docs for more information on how to get started. Feedback is welcome on this new feature! Contributed by [@acierto](https://github.com/acierto) [#11404](https://github.com/backstage/backstage/pull/11404)
### Experimental Backend System Evolution
This release adds the new `@backstage/backend-defaults` package, part of the [evolution of the backend system](https://github.com/backstage/backstage/issues/11611). This package is highly experimental and we do not recommend using it for any purpose, yet.
### New plugin: `@aws/aws-proton-plugin-for-backstage`
Interact with AWS Proton in Backstage. Contributed by [@clareliguori](https://github.com/clareliguori) [#12193](https://github.com/backstage/backstage/pull/12193)
### New plugin: `@backstage/plugin-github-issues`
This new plugin can be used to display GitHub issues for your entities. Contributed by [@mrwolny](https://github.com/mrwolny) [#12875](https://github.com/backstage/backstage/pull/12875)
### New plugin: `@backstage/plugin-sonarqube-backend`
This new backend for `@backstage/plugin-sonarqube` replaces the Sonarqube proxy configuration; once it is installed, you can remove the `/sonarqube` proxy entry. For more information, see the plugin [README.md](https://github.com/backstage/backstage/blob/master/plugins/sonarqube-backend/README.md). Contributed by [@Neemys](https://github.com/Neemys) [#11925](https://github.com/backstage/backstage/pull/11925)
### New module: `@backstage/plugin-catalog-backend-module-bitbucket-server`
This new module for the catalog backend adds the `BitbucketServerEntityProvider`, which allows discovery of entities out of Bitbucket Server installations. Contributed by [@ONordander](https://github.com/ONordander) [#12835](https://github.com/backstage/backstage/pull/12835)
## Security Fixes
This release does not contain any security fixes.
## Upgrade path
We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for [keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated).
## Links and References
Below you can find a list of links and references to help you learn about and start using this new release.
- [Backstage official website](https://backstage.io/), [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/)
- [GitHub repository](https://github.com/backstage/backstage)
- Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy)
- [Community Discord](https://discord.gg/bFESRKVt) for discussions and support
- [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.5.0-changelog.md)
- Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins)
Sign up for our [newsletter](https://mailchi.mp/spotify/backstage-community) if you want to be informed about what is happening in the world of Backstage.
@@ -86,3 +86,16 @@ backend:
+ # ca: # if you have a CA file and want to verify it you can uncomment this section
+ # $file: <file-path>/ca/server.crt
```
### Using a single database
By default, each plugin will get its own logical database, to ensure that there's no conflict in table names throughout the plugins that you install and to keep their concerns separate for other use cases further down the line. If you are limited in that you can only make use of a single database, you can use a special option `pluginDivisionMode` with `client: pg` in the config to create separate [PostgreSQL Schemas](https://www.postgresql.org/docs/current/ddl-schemas.html) instead of creating separate databases.
You can enable this using the following config:
```yaml
backend:
database:
client: pg
pluginDivisionMode: schema # defaults to database, but changing this to schema means plugins will be given their own schema (in the specified/default database)
```
+1 -1
View File
@@ -1,7 +1,7 @@
---
title: Adopters Community Sessions
date: July 20, 2022
category: Upcoming
category: Meetup
description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
youtubeUrl: https://youtu.be/4VFNlPxWcx8
youtubeImgUrl: https://backstage.io/img/b-sessions.png
+2 -2
View File
@@ -1,9 +1,9 @@
---
title: Contributor Community Sessions
date: July 27, 2022
category: Upcoming
category: Meetup
description: Join the maintainers and contributors for the Contributor Community Sessions
youtubeUrl: https://youtu.be/4VFNlPxWcx8
youtubeUrl: https://youtu.be/pNLLrNN_hkE
youtubeImgUrl: https://backstage.io/img/b-sessions.png
rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
eventUrl: https://github.com/backstage/community/issues/52
+9
View File
@@ -0,0 +1,9 @@
---
title: Adopters Community Sessions
date: August 17, 2022
category: Upcoming
description: Adopters Community Session ✨. It's the monthly meetup where we all come together to listen to the latest maintainer updates, learn from each other about adopting, share exciting new demos or discuss any relevant topic like developer effectiveness, developer experience, developer portals, etc.
youtubeUrl: https://youtu.be/qYnvc8ge1kg
youtubeImgUrl: https://backstage.io/img/b-sessions.png
rsvpUrl: https://calendar.google.com/calendar/embed?src=c_qup9gbhn9sqpuao6trttd8mk5s@group.calendar.google.com
eventUrl: https://github.com/backstage/community/issues/54

Some files were not shown because too many files have changed in this diff Show More