Merge branch 'master' of https://github.com/backstage/backstage into fix-redirect-error-handling

Signed-off-by: Stephen Glass <stephen@stephen.glass>
This commit is contained in:
Stephen Glass
2024-07-29 14:35:31 -04:00
687 changed files with 16823 additions and 2963 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-github': patch
---
Added examples for github:environment:create action and improve its test cases
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Added the Kubernetes plugin to `create-app`
+18
View File
@@ -0,0 +1,18 @@
---
'@backstage/plugin-auth-backend-module-cloudflare-access-provider': patch
'@backstage/plugin-auth-backend-module-vmware-cloud-provider': patch
'@backstage/plugin-auth-backend-module-atlassian-provider': patch
'@backstage/plugin-auth-backend-module-bitbucket-provider': patch
'@backstage/plugin-auth-backend-module-microsoft-provider': patch
'@backstage/plugin-auth-backend-module-onelogin-provider': patch
'@backstage/plugin-auth-backend-module-aws-alb-provider': patch
'@backstage/plugin-auth-backend-module-gcp-iap-provider': patch
'@backstage/plugin-auth-backend-module-github-provider': patch
'@backstage/plugin-auth-backend-module-gitlab-provider': patch
'@backstage/plugin-auth-backend-module-google-provider': patch
'@backstage/plugin-auth-backend-module-oauth2-provider': patch
'@backstage/plugin-auth-backend-module-oidc-provider': patch
'@backstage/plugin-auth-backend-module-okta-provider': patch
---
Add `signIn` to authentication provider configuration schema
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Add frontend-dynamic-container role to eslint config factory
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-events-backend-module-aws-sqs': patch
'@backstage/plugin-catalog-backend-module-aws': patch
'@backstage/backend-common': patch
---
Setup user agent header for AWS sdk clients, this enables users to better track API calls made from Backstage to AWS APIs through things like CloudTrail.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-notifications': patch
---
Add examples for notification:send scaffolder action & improve related tests
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Use ES2022 in CLI bundler
+27
View File
@@ -0,0 +1,27 @@
---
'@backstage/frontend-plugin-api': patch
---
Introduce a new way to encapsulate extension kinds that replaces the extension creator pattern with `createExtensionBlueprint`
This allows the creation of extension instances with the following pattern:
```tsx
// create the extension blueprint which is used to create instances
const EntityCardBlueprint = createExtensionBlueprint({
kind: 'entity-card',
attachTo: { id: 'test', input: 'default' },
output: [coreExtensionData.reactElement],
factory(params: { text: string }) {
return [coreExtensionData.reactElement(<h1>{params.text}</h1>)];
},
});
// create an instance of the extension blueprint with params
const testExtension = EntityCardBlueprint.make({
name: 'foo',
params: {
text: 'Hello World',
},
});
```
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-search-react': patch
'@backstage/plugin-home': patch
---
Updated alpha definitions of extension data references.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-plugin-api': patch
---
The `ExtensionBoundary` now by default infers whether it's routable from whether it outputs a route path.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-components': patch
---
Move the `Link` component to the `RoutedTabs` instead of the `HeaderTabs` component
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
Correct `EntityDisplayName`'s icon alignment with the text.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-react': patch
---
Add ability to customise form fields in the UI by exposing `uiSchema` and `formContext` in `FormProps`
+18
View File
@@ -0,0 +1,18 @@
---
'@backstage/frontend-plugin-api': patch
---
Added a new `IconBundleBlueprint` that lets you create icon bundle extensions that can be installed in an App in order to override or add new app icons.
```tsx
import { IconBundleBlueprint } from '@backstage/frontend-plugin-api';
const exampleIconBundle = IconBundleBlueprint.make({
name: 'example-bundle',
params: {
icons: {
user: MyOwnUserIcon,
},
},
});
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': patch
---
Support icon overriding with the new `IconBundleBlueprint` API.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-rails': patch
---
Add examples for fetch:rails scaffolder action & improve related tests
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-defaults': patch
---
The `createHealthRouter` utility that allows you to create a health check router is now exported via `@backstage/backend-defaults/rootHttpRouter`.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/frontend-test-utils': patch
'@backstage/frontend-app-api': patch
---
Added support for v2 extensions, which declare their inputs and outputs without using a data map.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Allow the `createGitlabProjectVariableAction` to use oauth tokens
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Updated default backend plugin to use `RootConfigService` instead of `Config`. This also removes the dependency on `@backstage/config` as it's no longer used.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-catalog-backend': patch
'@backstage/plugin-catalog-node': patch
---
Added setAllowedLocationTypes while introducing a new extension point called CatalogLocationsExtensionPoint
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-react': minor
---
Add scaffolder option to display object items in separate rows on review page
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-graph': patch
---
Memoize entity graph nodes when applying an `entityFilter` to prevent repeated redraws
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
The experimental module federation build now has the ability to force the use of development versions of `react` and `react-dom` by setting the `FORCE_REACT_DEVELOPMENT` flag.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-msgraph': patch
---
Added option to ingest groups based on their group membership in Azure Entra ID
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-kubernetes': patch
---
Adds support for Backstage's new frontend system, available via the `/alpha` sub-path export.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
Internal refactor to remove unnecessary `routable` prop in the implementation of the `createEntityContentExtension` alpha export.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-techdocs-node': patch
---
Update `patchMkdocsYmlPrebuild` to modify `repo_url` and `edit_uri` independently.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-react': patch
---
support `ajv-errors` for scaffolder validation to allow for customizing the error messages
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/config-loader': patch
---
The `env` option of `ConfigSources.default` now correctly allows undefined members.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-devtools-backend': patch
---
Removed unused code for lockfile analysis.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-microsoft-provider': patch
---
Updated the Microsoft authenticator to accurately define required scopes, but to also omit the required and additional scopes when requesting resource scopes.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/integration': minor
'@backstage/backend-defaults': patch
---
Updated `GitlabUrlReader.readUrl` and `GitlabUrlReader.readTree` to accept a user-provided token, supporting both bearer and private tokens.
+14
View File
@@ -0,0 +1,14 @@
---
'@backstage/backend-common': patch
---
The remaining exports in the package have now been deprecated:
- `cacheToPluginCacheManager`
- `createLegacyAuthAdapters`
- `LegacyCreateRouter`
- `legacyPlugin`
- `loggerToWinstonLogger`
- `makeLegacyPlugin`
Users of these export should fully [migrate to the new backend system](https://backstage.io/docs/backend-system/building-backends/migrating).
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-search-backend-module-pg': patch
---
Removing `@backstage/backend-app-api` dependency
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Remove usage of deprecated functionality from @backstage/config-loader
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend': patch
---
Preserve default `allowedLocationTypes` when `setAllowedLocationTypes()` of `CatalogLocationsExtensionPoint` is not called.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
Fix extra divider displayed on user list picker component
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Added test cases for gitlab:issue:edit examples
+242
View File
@@ -0,0 +1,242 @@
{
"mode": "pre",
"tag": "next",
"initialVersions": {
"example-app": "0.2.99",
"@backstage/app-defaults": "1.5.8",
"example-app-next": "0.0.13",
"app-next-example-plugin": "0.0.13",
"example-backend": "0.0.28",
"@backstage/backend-app-api": "0.8.0",
"@backstage/backend-common": "0.23.3",
"@backstage/backend-defaults": "0.4.0",
"@backstage/backend-dev-utils": "0.1.4",
"@backstage/backend-dynamic-feature-service": "0.2.15",
"example-backend-legacy": "0.2.100",
"@backstage/backend-openapi-utils": "0.1.15",
"@backstage/backend-plugin-api": "0.7.0",
"@backstage/backend-tasks": "0.5.27",
"@backstage/backend-test-utils": "0.4.4",
"@backstage/catalog-client": "1.6.5",
"@backstage/catalog-model": "1.5.0",
"@backstage/cli": "0.26.11",
"@backstage/cli-common": "0.1.14",
"@backstage/cli-node": "0.2.7",
"@backstage/codemods": "0.1.49",
"@backstage/config": "1.2.0",
"@backstage/config-loader": "1.8.1",
"@backstage/core-app-api": "1.14.0",
"@backstage/core-compat-api": "0.2.7",
"@backstage/core-components": "0.14.9",
"@backstage/core-plugin-api": "1.9.3",
"@backstage/create-app": "0.5.17",
"@backstage/dev-utils": "1.0.35",
"e2e-test": "0.2.18",
"@backstage/e2e-test-utils": "0.1.1",
"@backstage/errors": "1.2.4",
"@backstage/eslint-plugin": "0.1.8",
"@backstage/frontend-app-api": "0.7.3",
"@backstage/frontend-plugin-api": "0.6.7",
"@backstage/frontend-test-utils": "0.1.10",
"@backstage/integration": "1.13.0",
"@backstage/integration-aws-node": "0.1.12",
"@backstage/integration-react": "1.1.29",
"@backstage/release-manifests": "0.0.11",
"@backstage/repo-tools": "0.9.4",
"@techdocs/cli": "1.8.16",
"techdocs-cli-embedded-app": "0.2.98",
"@backstage/test-utils": "1.5.8",
"@backstage/theme": "0.5.6",
"@backstage/types": "1.1.1",
"@backstage/version-bridge": "1.0.8",
"yarn-plugin-backstage": "0.0.1",
"@backstage/plugin-api-docs": "0.11.7",
"@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.7",
"@backstage/plugin-app-backend": "0.3.71",
"@backstage/plugin-app-node": "0.1.22",
"@backstage/plugin-app-visualizer": "0.1.8",
"@backstage/plugin-auth-backend": "0.22.9",
"@backstage/plugin-auth-backend-module-atlassian-provider": "0.2.3",
"@backstage/plugin-auth-backend-module-aws-alb-provider": "0.1.14",
"@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.1.5",
"@backstage/plugin-auth-backend-module-bitbucket-provider": "0.1.5",
"@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.1.5",
"@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.2.17",
"@backstage/plugin-auth-backend-module-github-provider": "0.1.19",
"@backstage/plugin-auth-backend-module-gitlab-provider": "0.1.19",
"@backstage/plugin-auth-backend-module-google-provider": "0.1.19",
"@backstage/plugin-auth-backend-module-guest-provider": "0.1.8",
"@backstage/plugin-auth-backend-module-microsoft-provider": "0.1.17",
"@backstage/plugin-auth-backend-module-oauth2-provider": "0.2.3",
"@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.1.15",
"@backstage/plugin-auth-backend-module-oidc-provider": "0.2.3",
"@backstage/plugin-auth-backend-module-okta-provider": "0.0.15",
"@backstage/plugin-auth-backend-module-onelogin-provider": "0.1.3",
"@backstage/plugin-auth-backend-module-pinniped-provider": "0.1.16",
"@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.2.3",
"@backstage/plugin-auth-node": "0.4.17",
"@backstage/plugin-auth-react": "0.1.4",
"@backstage/plugin-bitbucket-cloud-common": "0.2.21",
"@backstage/plugin-catalog": "1.21.1",
"@backstage/plugin-catalog-backend": "1.24.0",
"@backstage/plugin-catalog-backend-module-aws": "0.3.17",
"@backstage/plugin-catalog-backend-module-azure": "0.1.42",
"@backstage/plugin-catalog-backend-module-backstage-openapi": "0.2.5",
"@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.2.9",
"@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.36",
"@backstage/plugin-catalog-backend-module-gcp": "0.1.23",
"@backstage/plugin-catalog-backend-module-gerrit": "0.1.39",
"@backstage/plugin-catalog-backend-module-github": "0.6.5",
"@backstage/plugin-catalog-backend-module-github-org": "0.1.17",
"@backstage/plugin-catalog-backend-module-gitlab": "0.3.21",
"@backstage/plugin-catalog-backend-module-gitlab-org": "0.0.5",
"@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.4.27",
"@backstage/plugin-catalog-backend-module-ldap": "0.7.0",
"@backstage/plugin-catalog-backend-module-logs": "0.0.1",
"@backstage/plugin-catalog-backend-module-msgraph": "0.5.30",
"@backstage/plugin-catalog-backend-module-openapi": "0.1.40",
"@backstage/plugin-catalog-backend-module-puppetdb": "0.1.28",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.1.20",
"@backstage/plugin-catalog-backend-module-unprocessed": "0.4.9",
"@backstage/plugin-catalog-common": "1.0.25",
"@backstage/plugin-catalog-graph": "0.4.7",
"@backstage/plugin-catalog-import": "0.12.1",
"@backstage/plugin-catalog-node": "1.12.4",
"@backstage/plugin-catalog-react": "1.12.2",
"@backstage/plugin-catalog-unprocessed-entities": "0.2.6",
"@backstage/plugin-catalog-unprocessed-entities-common": "0.0.3",
"@backstage/plugin-config-schema": "0.1.57",
"@backstage/plugin-devtools": "0.1.16",
"@backstage/plugin-devtools-backend": "0.3.8",
"@backstage/plugin-devtools-common": "0.1.11",
"@backstage/plugin-events-backend": "0.3.9",
"@backstage/plugin-events-backend-module-aws-sqs": "0.3.8",
"@backstage/plugin-events-backend-module-azure": "0.2.8",
"@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.8",
"@backstage/plugin-events-backend-module-gerrit": "0.2.8",
"@backstage/plugin-events-backend-module-github": "0.2.8",
"@backstage/plugin-events-backend-module-gitlab": "0.2.8",
"@backstage/plugin-events-backend-test-utils": "0.1.32",
"@backstage/plugin-events-node": "0.3.8",
"@internal/plugin-todo-list": "1.0.29",
"@internal/plugin-todo-list-backend": "1.0.29",
"@internal/plugin-todo-list-common": "1.0.20",
"@backstage/plugin-home": "0.7.7",
"@backstage/plugin-home-react": "0.1.15",
"@backstage/plugin-kubernetes": "0.11.12",
"@backstage/plugin-kubernetes-backend": "0.18.3",
"@backstage/plugin-kubernetes-cluster": "0.0.13",
"@backstage/plugin-kubernetes-common": "0.8.1",
"@backstage/plugin-kubernetes-node": "0.1.16",
"@backstage/plugin-kubernetes-react": "0.4.1",
"@backstage/plugin-notifications": "0.2.3",
"@backstage/plugin-notifications-backend": "0.3.3",
"@backstage/plugin-notifications-backend-module-email": "0.1.3",
"@backstage/plugin-notifications-common": "0.0.5",
"@backstage/plugin-notifications-node": "0.2.3",
"@backstage/plugin-org": "0.6.27",
"@backstage/plugin-org-react": "0.1.26",
"@backstage/plugin-permission-backend": "0.5.46",
"@backstage/plugin-permission-backend-module-allow-all-policy": "0.1.19",
"@backstage/plugin-permission-common": "0.8.0",
"@backstage/plugin-permission-node": "0.8.0",
"@backstage/plugin-permission-react": "0.4.24",
"@backstage/plugin-proxy-backend": "0.5.3",
"@backstage/plugin-scaffolder": "1.23.0",
"@backstage/plugin-scaffolder-backend": "1.23.0",
"@backstage/plugin-scaffolder-backend-module-azure": "0.1.14",
"@backstage/plugin-scaffolder-backend-module-bitbucket": "0.2.12",
"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.1.12",
"@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.1.12",
"@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.2.23",
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.46",
"@backstage/plugin-scaffolder-backend-module-gcp": "0.1.0",
"@backstage/plugin-scaffolder-backend-module-gerrit": "0.1.14",
"@backstage/plugin-scaffolder-backend-module-gitea": "0.1.12",
"@backstage/plugin-scaffolder-backend-module-github": "0.4.0",
"@backstage/plugin-scaffolder-backend-module-gitlab": "0.4.4",
"@backstage/plugin-scaffolder-backend-module-notifications": "0.0.5",
"@backstage/plugin-scaffolder-backend-module-rails": "0.4.39",
"@backstage/plugin-scaffolder-backend-module-sentry": "0.1.30",
"@backstage/plugin-scaffolder-backend-module-yeoman": "0.3.6",
"@backstage/plugin-scaffolder-common": "1.5.4",
"@backstage/plugin-scaffolder-node": "0.4.8",
"@backstage/plugin-scaffolder-node-test-utils": "0.1.9",
"@backstage/plugin-scaffolder-react": "1.10.0",
"@backstage/plugin-search": "1.4.14",
"@backstage/plugin-search-backend": "1.5.14",
"@backstage/plugin-search-backend-module-catalog": "0.1.28",
"@backstage/plugin-search-backend-module-elasticsearch": "1.5.3",
"@backstage/plugin-search-backend-module-explore": "0.1.28",
"@backstage/plugin-search-backend-module-pg": "0.5.32",
"@backstage/plugin-search-backend-module-stack-overflow-collator": "0.1.15",
"@backstage/plugin-search-backend-module-techdocs": "0.1.27",
"@backstage/plugin-search-backend-node": "1.2.27",
"@backstage/plugin-search-common": "1.2.13",
"@backstage/plugin-search-react": "1.7.13",
"@backstage/plugin-signals": "0.0.8",
"@backstage/plugin-signals-backend": "0.1.8",
"@backstage/plugin-signals-node": "0.1.8",
"@backstage/plugin-signals-react": "0.0.4",
"@backstage/plugin-techdocs": "1.10.7",
"@backstage/plugin-techdocs-addons-test-utils": "1.0.35",
"@backstage/plugin-techdocs-backend": "1.10.9",
"@backstage/plugin-techdocs-module-addons-contrib": "1.1.12",
"@backstage/plugin-techdocs-node": "1.12.8",
"@backstage/plugin-techdocs-react": "1.2.6",
"@backstage/plugin-user-settings": "0.8.9",
"@backstage/plugin-user-settings-backend": "0.2.21",
"@backstage/plugin-user-settings-common": "0.0.1"
},
"changesets": [
"blue-pumas-cheer",
"bright-trainers-brake",
"chilly-trains-sleep",
"cool-insects-remember",
"cuddly-zebras-crash",
"dry-squids-tap",
"dull-ghosts-double",
"early-trees-dance",
"eighty-mirrors-flow",
"flat-plums-grow",
"forty-ties-agree",
"forty-ties-disagree",
"friendly-feet-refuse",
"gentle-dryers-smile",
"grumpy-owls-suffer",
"heavy-numbers-love",
"hip-hairs-exist",
"late-games-protect",
"light-pianos-exercise",
"little-bulldogs-guess",
"little-suns-fly",
"mighty-dolls-retire",
"modern-parrots-protect",
"neat-gifts-join",
"new-scissors-try",
"nice-peas-retire",
"nine-cherries-decide",
"nine-glasses-nail",
"ninety-icons-smile",
"pink-gorillas-brake",
"plenty-tools-exist",
"rich-mugs-dress",
"selfish-bees-think",
"six-rats-kick",
"slow-toes-jog",
"small-spoons-shout",
"soft-gorillas-refuse",
"spotty-planets-accept",
"strange-papayas-beg",
"strong-otters-compete",
"stupid-dots-relate",
"swift-kings-sparkle",
"thirty-paws-hope",
"tiny-oranges-pretend",
"tough-lies-repair",
"violet-jokes-wave",
"wicked-bobcats-teach",
"wild-eggs-exist",
"witty-bears-behave"
]
}
+57
View File
@@ -0,0 +1,57 @@
---
'@backstage/frontend-plugin-api': patch
---
Extensions have been changed to be declared with an array of inputs and outputs, rather than a map of named data refs. This change was made to reduce confusion around the role of the input and output names, as well as enable more powerful APIs for overriding extensions.
An extension that was previously declared like this:
```tsx
const exampleExtension = createExtension({
name: 'example',
inputs: {
items: createExtensionInput({
element: coreExtensionData.reactElement,
}),
},
output: {
element: coreExtensionData.reactElement,
},
factory({ inputs }) {
return {
element: (
<div>
Example
{inputs.items.map(item => {
return <div>{item.output.element}</div>;
})}
</div>
),
};
},
});
```
Should be migrated to the following:
```tsx
const exampleExtension = createExtension({
name: 'example',
inputs: {
items: createExtensionInput([coreExtensionData.reactElement]),
},
output: [coreExtensionData.reactElement],
factory({ inputs }) {
return [
coreExtensionData.reactElement(
<div>
Example
{inputs.items.map(item => {
return <div>{item.get(coreExtensionData.reactElement)}</div>;
})}
</div>,
),
];
},
});
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-gitlab': patch
---
Adds new optional `excludeRepos` configuration option to the Gitlab catalog provider.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/config-loader': patch
---
Add boolean `allowMissingDefaultConfig` option to `ConfigSources.default` and
`ConfigSources.defaultForTargets`, which results in omission of a ConfigSource
for the default app-config.yaml configuration file if it's not present.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Updated dockerfile and `app-config.production.yaml` to make it easier to get started with example data
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Switched the target from `'ES2022'` to `'es2022'` for better compatibility with older versions of `swc`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Added test cases for gitlab:projectAccessToken:create example
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-home': patch
---
Fixed a bug on the WelcomeTitle component where the welcome message wasn't correct when the language was set to Spanish
+13
View File
@@ -0,0 +1,13 @@
---
'@backstage/cli': minor
---
**BREAKING**: The lockfile (`yarn.lock`) dependency analysis and mutations have been removed from several commands.
The `versions:bump` command will no longer attempt to bump and deduplicate dependencies by modifying the lockfile, it will only update `package.json` files.
The `versions:check` command has been removed, since its only purpose was verification and mutation of the lockfile. We recommend using the `yarn dedupe` command instead, or the `yarn-deduplicate` package if you're using Yarn classic.
The check that was built into the `package start` command has been removed, it will no longer warn about lockfile mismatches.
The packages in the Backstage ecosystem handle package duplications much better now than when these CLI features were first introduced, so the need for these features has diminished. By removing them, we drastically reduce the integration between the Backstage CLI and Yarn, making it much easier to add support for other package managers in the future.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-test-utils': patch
---
The default services for `startTestBackend` and `ServiceFactoryTester` now includes the Root Health Service.
+46
View File
@@ -0,0 +1,46 @@
---
'@backstage/plugin-notifications-backend-module-email': minor
---
**BREAKING** Following `NotificationTemplateRenderer` methods now return a Promise and **must** be awaited: `getSubject`, `getText` and `getHtml`.
Required changes and example usage:
```diff
import { notificationsEmailTemplateExtensionPoint } from '@backstage/plugin-notifications-backend-module-email';
import { Notification } from '@backstage/plugin-notifications-common';
+import { getNotificationSubject, getNotificationTextContent, getNotificationHtmlContent } from 'my-notification-processing-library`
export const notificationsModuleEmailDecorator = createBackendModule({
pluginId: 'notifications',
moduleId: 'email.templates',
register(reg) {
reg.registerInit({
deps: {
emailTemplates: notificationsEmailTemplateExtensionPoint,
},
async init({ emailTemplates }) {
emailTemplates.setTemplateRenderer({
- getSubject(notification) {
+ async getSubject(notification) {
- return `New notification from ${notification.source}`;
+ const subject = await getNotificationSubject(notification);
+ return `New notification from ${subject}`;
},
- getText(notification) {
+ async getText(notification) {
- return notification.content;
+ const text = await getNotificationTextContent(notification);
+ return text;
},
- getHtml(notification) {
+ async getHtml(notification) {
- return `<p>${notification.content}</p>`;
+ const html = await getNotificationHtmlContent(notification);
+ return html;
},
});
},
});
},
});
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': patch
---
Cleaned up codebase of RepoUrlPicker
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Added test cases for gitlab:pipeline:trigger examples
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Add support for dynamic plugins via the EXPERIMENTAL_MODULE_FEDERATION environment variable when running `yarn start`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
---
Add examples for `fetch:cookiecutter` scaffolder action & improve related tests
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-plugin-api': patch
---
Added support to be able to define `zod` config schema in Blueprints, with built in schema merging from the Blueprint and the extension instances.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-aws': patch
---
`AwsOrganizationCloudAccountProcessor` configuration field `roleArn` is deprecated in favor of new field `accountId`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-plugin-api': patch
---
fix typo in `getPluginRequestToken` comments
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Fix scaffolder action `catalog:write` to write to directories that don't already exist
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-app-api': patch
---
The request to delete the session cookie when running the app in protected mode is now done with a plain `fetch` rather than `FetchApi`. This fixes a bug where the app would immediately try to sign-in again when removing the cookie during logout.
+19
View File
@@ -0,0 +1,19 @@
---
'@backstage/frontend-plugin-api': patch
---
Extension data references can now be defined in a way that encapsulates the ID string in the type, in addition to the data type itself. The old way of creating extension data references is deprecated and will be removed in a future release.
For example, the following code:
```ts
export const myExtension = createExtensionDataRef<MyType>('my-plugin.my-data');
```
Should be updated to the following:
```ts
export const myExtension = createExtensionDataRef<MyType>().with({
id: 'my-plugin.my-data',
});
```
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': patch
---
Fix issue with `RepoUrlPicker` not refreshing the credentials for a different host
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Fix for `repo build --all` not properly detecting the experimental public entry point.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-react': patch
---
feat: Hide visibility of CookieAuthRedirect
+10
View File
@@ -0,0 +1,10 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Add custom action for merge request: **auto**
The **Auto** action selects the committed action between _create_ and _update_.
The **Auto** action fetches files using the **/projects/repository/tree endpoint**.
After fetching, it checks if the file exists locally and in the repository. If it does, it chooses **update**; otherwise, it chooses **create**.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/integration': patch
---
Updated functions for `getHarnessEditContentsUrl`, `getHarnessFileContentsUrl`, `getHarnessArchiveUrl`, `getHarnessLatestCommitUrl` and `parseHarnessUrl` to handle account and org level urls
+14
View File
@@ -0,0 +1,14 @@
---
'@backstage/frontend-plugin-api': patch
'@backstage/frontend-test-utils': patch
'@backstage/frontend-app-api': patch
'@backstage/core-compat-api': patch
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-user-settings': patch
'@backstage/plugin-search-react': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-search': patch
---
Added config input type to the extensions
+7 -9
View File
@@ -9,10 +9,10 @@ yarn.lock @backstage/maintainers @backst
*/yarn.lock @backstage/maintainers @backstage-service
/.changeset/*.md
/beps/0001-notifications-system @backstage/maintainers @backstage/notifications-maintainers
/docs/assets/search @backstage/discoverability-maintainers
/docs/features/search @backstage/discoverability-maintainers
/docs/assets/search @backstage/search-maintainers
/docs/features/search @backstage/search-maintainers
/docs/features/techdocs @backstage/techdocs-maintainers
/docs/plugins/integrating-search-into-plugins.md @backstage/discoverability-maintainers
/docs/plugins/integrating-search-into-plugins.md @backstage/search-maintainers
/packages/cli/src/commands/onboard @backstage/sharks
/packages/backend-openapi-utils @backstage/maintainers @backstage/reviewers @backstage/openapi-tooling-maintainers
/packages/techdocs-cli @backstage/techdocs-maintainers
@@ -50,8 +50,8 @@ yarn.lock @backstage/maintainers @backst
/plugins/explore-react @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/fossa @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/git-release-manager @backstage/maintainers @backstage/reviewers @erikengervall
/plugins/home @backstage/discoverability-maintainers
/plugins/home-* @backstage/discoverability-maintainers
/plugins/home @backstage/home-maintainers
/plugins/home-* @backstage/home-maintainers
/plugins/kafka @backstage/maintainers @backstage/reviewers @andrewthauer
/plugins/kafka-backend @backstage/maintainers @backstage/reviewers @andrewthauer
/plugins/kubernetes @backstage/kubernetes-maintainers
@@ -70,13 +70,11 @@ yarn.lock @backstage/maintainers @backst
/plugins/rollbar-backend @backstage/maintainers @backstage/reviewers @andrewthauer
/plugins/scaffolder @backstage/maintainers @backstage/reviewers @backstage/scaffolder-maintainers
/plugins/scaffolder-* @backstage/maintainers @backstage/reviewers @backstage/scaffolder-maintainers
/plugins/search @backstage/discoverability-maintainers
/plugins/search-* @backstage/discoverability-maintainers
/plugins/search @backstage/search-maintainers
/plugins/search-* @backstage/search-maintainers
/plugins/signals @backstage/maintainers @backstage/notifications-maintainers
/plugins/signals-* @backstage/maintainers @backstage/notifications-maintainers
/plugins/sonarqube @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/stack-overflow @backstage/discoverability-maintainers
/plugins/stack-overflow-backend @backstage/discoverability-maintainers
/plugins/techdocs @backstage/techdocs-maintainers
/plugins/techdocs-* @backstage/techdocs-maintainers
/plugins/user-settings-backend @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
+1 -1
View File
@@ -1,6 +1,6 @@
area:techdocs:
- '/(techdocs|tech-docs|tech docs)/i'
area:discoverability:
area:search:
- '/search/i'
area:events:
- '/events/i'
+5 -1
View File
@@ -4,7 +4,11 @@ area:catalog:
- plugins/catalog/**/*
- plugins/catalog-*/**/*
- packages/catalog-*/**/*
area:discoverability: # search + home
area:home:
- changed-files:
- any-glob-to-any-file:
- plugins/home/**/*
area:search:
- changed-files:
- any-glob-to-any-file:
- plugins/search/**/*
@@ -7,6 +7,7 @@ ADRs
airbrake
Airbrake
Airbrakes
ajv
Alaria
Alef
allowlisted
@@ -84,7 +85,9 @@ debounce
Debounce
debuggability
declaratively
deduplicate
deduplicated
deduplication
deliverables
denormalized
dependabot
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
run: git fetch --depth 1 origin ${{ github.base_ref }}
- name: setup-node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/
+3 -3
View File
@@ -35,7 +35,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
@@ -71,7 +71,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
@@ -216,7 +216,7 @@ jobs:
run: git fetch origin ${{ github.event.pull_request.base.ref }}
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
ref: ${{ github.event.client_payload.version && env.RELEASE_VERSION || github.ref }}
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js 18.x
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js 18.x
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/ # Needed for auth
+2 -2
View File
@@ -77,7 +77,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
@@ -161,7 +161,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -67,6 +67,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: 'Upload to code-scanning'
uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10
uses: github/codeql-action/upload-sarif@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 # v3.25.14
with:
sarif_file: results.sarif
+1 -1
View File
@@ -20,7 +20,7 @@ jobs:
fetch-depth: 0
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -19,7 +19,7 @@ jobs:
ref: v${{ github.event.client_payload.version }}
- name: use node.js 18.x
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/ # Needed for auth
@@ -19,7 +19,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js 18.x
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18.x
registry-url: https://registry.npmjs.org/ # Needed for auth
@@ -29,7 +29,7 @@ jobs:
cache-prefix: ${{ runner.os }}-v18.x
- name: Create Snyk report
uses: snyk/actions/node@d406fd286b663eb8c6f8adcced4f7bcd199c0a3f # master
uses: snyk/actions/node@6312a53377a551c0258438bf25fb8f378afbc977 # master
continue-on-error: true # Snyk CLI exits with error when vulnerabilities are found
with:
args: >
+3 -3
View File
@@ -31,7 +31,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Monitor and Synchronize Snyk Policies
uses: snyk/actions/node@d406fd286b663eb8c6f8adcced4f7bcd199c0a3f # master
uses: snyk/actions/node@6312a53377a551c0258438bf25fb8f378afbc977 # master
with:
command: monitor
args: >
@@ -46,7 +46,7 @@ jobs:
# Above we run the `monitor` command, this runs the `test` command which is
# the one that generates the SARIF report that we can upload to GitHub.
- name: Create Snyk report
uses: snyk/actions/node@d406fd286b663eb8c6f8adcced4f7bcd199c0a3f # master
uses: snyk/actions/node@6312a53377a551c0258438bf25fb8f378afbc977 # master
continue-on-error: true # To make sure that SARIF upload gets called
with:
args: >
@@ -58,6 +58,6 @@ jobs:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
NODE_OPTIONS: --max-old-space-size=7168
- name: Upload Snyk report
uses: github/codeql-action/upload-sarif@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10
uses: github/codeql-action/upload-sarif@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 # v3.25.14
with:
sarif_file: snyk.sarif
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Use Node.js 18.x
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18.x
- name: yarn install
+3 -3
View File
@@ -55,7 +55,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10
uses: github/codeql-action/init@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 # v3.25.14
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -66,7 +66,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10
uses: github/codeql-action/autobuild@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 # v3.25.14
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -80,4 +80,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@23acc5c183826b7a8a97bce3cecc52db901f8251 # v3.25.10
uses: github/codeql-action/analyze@5cf07d8b700b67e235fbb65cbc84f69c0cf10464 # v3.25.14
+1 -1
View File
@@ -29,7 +29,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -53,7 +53,7 @@ jobs:
git config --global user.name 'GitHub e2e user'
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -50,7 +50,7 @@ jobs:
git config --global user.name 'GitHub e2e user'
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js 18.x
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18.x
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Use Node.js 18.x
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: 18.x
+1 -1
View File
@@ -37,7 +37,7 @@ jobs:
fetch-depth: 0 # Required to retrieve git history
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1 -1
View File
@@ -36,7 +36,7 @@ jobs:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: use node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ # Needed for auth
+1
View File
@@ -274,3 +274,4 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/
| [Grupo OLX](https://www.olx.com.br/) | [@marciorgb](https://github.com/marciorgb), [@jeffbraga](https://github.com/jeffbraga), [@rogerfernandes](https://github.com/rogerfernandes), [@stockrt](https://github.com/stockrt) | At Grupo OLX, we are using Backstage to reduce friction and enhance developer autonomy by creating Golden Paths, which automate previously manual processes. Additionally, Backstage's catalog integrates various views of our organizational structure and workflows, offering a comprehensive overview of how different components interconnect. |
| [DPG Media](https://www.dpgmediagroup.com) | [@benjidotsh](https://github.com/benjidotsh), [@lvstb](https://github.com/lvstb), [@ssliman](https://github.com/ssliman), [@edewel-beep](https://github.com/edewel-beep) | Access to infrastructure, documentation and internal tooling |
| [Baloise](https://www.baloise.ch) | [@dweber019](https://github.com/dweber019), [@mikevader](https://github.com/mikevader) | We are using Backstage as internal developer protal for use cases like software catalog, documentation, infrastructure. |
| [Cigna](https://www.cigna.com/) / [Evernorth](https://www.evernorth.com/) | [@raphtalia](https://github.com/raphtalia), [Devon Paluso](mailto:Devon.Paluso@evernorth.com), [Bryan Rego](mailto:Bryan.Rego@evernorth.com), [Ian Skillings](mailto:Ian.Skillings@evernorth.com) | Internal developer portal providing TechDocs, software templates, centralized secret management, with information consolidation from ServiceNow, Okta, GitHub, GitLab, and WebEx. |
+15 -3
View File
@@ -32,11 +32,11 @@ Scope: The catalog plugin and catalog model
| Patrik Oldsberg | Spotify | Cubic Belugas | [Rugvip](https://github.com/Rugvip) | `Rugvip#0019` |
| Vincenzo Scamporlino | Spotify | Cubic Belugas | [vinzscam](http://github.com/vinzscam) | `vinzscam#6944` |
### Discoverability
### Home
Team: @backstage/discoverability-maintainers
Team: @backstage/home-maintainers
Scope: Discoverability within Backstage, including the home page, information architecture, and search
Scope: The Backstage home page and information architecture
| Name | Organization | Team | GitHub | Discord |
| ------------------------ | ------------ | -------------- | ---------------------------------------- | ----------------- |
@@ -46,6 +46,18 @@ Scope: Discoverability within Backstage, including the home page, information ar
| Raghunandan Balachandran | Spotify | Infinite Buck$ | [soapraj](http://github.com/soapraj) | raghunandanb#1114 |
| Bailey Brooks | Spotify | Infinite Buck$ | [bailey](http://github.com/bailey) | \_bailey4 |
### Search
Team: @backstage/search-maintainers
Scope: The Backstage Search plugin
| Name | Organization | Team | GitHub | Discord |
| ------------------------ | ------------ | -------------- | --------------------------------------------- | ----------------- |
| Emma Indal | Spotify | Infinite Buck$ | [emmaindal](http://github.com/emmaindal) | emmaindal#7503 |
| Raghunandan Balachandran | Spotify | Infinite Buck$ | [soapraj](http://github.com/soapraj) | raghunandanb#1114 |
| Alex Lorenzi | Spotify | ProTean | [AlexLorenzi](https://github.com/AlexLorenzi) | alexlorenzi |
### Helm Charts
Team: @backstage/helm-chart-maintainers
+1 -9
View File
@@ -1,6 +1,6 @@
---
title: Plugin Metadata
status: implementable
status: implemented
authors:
- '@Rugvip'
owners:
@@ -10,16 +10,8 @@ project-areas:
creation-date: yyyy-mm-dd
---
<!--
**Note:** When your BEP is complete, all these pre-existing comments should be removed
When editing BEPs, aim for tightly-scoped, single-topic PRs to keep discussions focused. If you disagree with what is already in a document, open a new PR with suggested changes.
-->
# BEP: Plugin Metadata
<!-- Before merging the initial BEP PR, create a feature issue and update the below link. You can wait with this step until the BEP is ready to be merged. -->
[**Discussion Issue**](https://github.com/backstage/backstage/issues/25076)
- [Summary](#summary)
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

+1 -6
View File
@@ -12,12 +12,7 @@ access to external resources.
:::note Note
Identity management and the Sign-In page in Backstage is NOT a method for blocking
access for unauthorized users. The identity system only serves to provide a personalized
experience and access to a Backstage Identity Token, which can be passed to backend plugins.
This also means that your Backstage backend APIs are by default unauthenticated.
Thus, if your Backstage instance is exposed to the Internet, anyone can access
information in the Backstage. You can learn more [here](../overview/threat-model.md#integrator-responsibilities).
Identity management and the Sign-In page in Backstage will only block external access when using the new backend system, without setting `backend.auth.dangerouslyDisableDefaultAuthPolicy` in configuration. Even so, the frontend bundle is not protected from external access, protecting it requires the use of the [experimental public entry point](https://backstage.io/docs/tutorials/enable-public-entry/). You can learn more about this in the [Threat Model](../overview/threat-model.md#operator-responsibilities).
:::
+1 -3
View File
@@ -67,8 +67,6 @@ auth:
clientSecret: ${AZURE_CLIENT_SECRET}
tenantId: ${AZURE_TENANT_ID}
domainHint: ${AZURE_TENANT_ID}
additionalScopes:
- Mail.Send
signIn:
resolvers:
# typically you would pick one of these
@@ -86,7 +84,7 @@ The Microsoft provider is a structure with three mandatory configuration keys:
Leave blank if your app registration is multi tenant.
When specified, this reduces login friction for users with accounts in multiple tenants by automatically filtering away accounts from other tenants.
For more details, see [Home Realm Discovery](https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/home-realm-discovery-policy)
- `additionalScopes` (optional): List of scopes for the App Registration. The default and mandatory value is ['user.read'].
- `additionalScopes` (optional): List of scopes for the App Registration, to be requested in addition to the required ones.
### Resolvers
@@ -497,7 +497,7 @@ catalog:
providers:
githubOrg:
- id: production
githubUrl: 'https://github.com',
githubUrl: 'https://github.com'
orgs: ['backstage']
schedule:
frequency: PT30M
@@ -536,8 +536,8 @@ catalog:
providers:
githubOrg:
- id: production
githubUrl: 'https://github.com',
orgs: ['org-a', 'org-b'],
githubUrl: 'https://github.com'
orgs: ['org-a', 'org-b']
schedule:
frequency: PT30M
timeout: PT15M
+15 -10
View File
@@ -92,11 +92,14 @@ RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz
RUN --mount=type=cache,target=/home/node/.cache/yarn,sharing=locked,uid=1000,gid=1000 \
yarn install --frozen-lockfile --production --network-timeout 300000
# This will include the examples, if you don't need these simply remove this line
COPY --chown=node:node examples ./examples
# 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"]
CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
```
For more details on how the `backend:bundle` command and the `skeleton.tar.gz`
@@ -251,12 +254,15 @@ RUN --mount=type=cache,target=/home/node/.cache/yarn,sharing=locked,uid=1000,gid
COPY --from=build --chown=node:node /app/packages/backend/dist/bundle/ ./
# Copy any other files that we need at runtime
COPY --chown=node:node app-config.yaml ./
COPY --chown=node:node app-config*.yaml ./
# This will include the examples, if you don't need these simply remove this line
COPY --chown=node:node examples ./examples
# This switches many Node.js dependencies to production mode.
ENV NODE_ENV production
CMD ["node", "packages/backend", "--config", "app-config.yaml"]
CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
```
Note that a newly created Backstage app will typically not have a `plugins/`
@@ -277,6 +283,7 @@ packages/*/dist
packages/*/node_modules
plugins/*/dist
plugins/*/node_modules
*.local.yaml
```
Once you have added both the `Dockerfile` and `.dockerignore` to the root of
@@ -312,14 +319,12 @@ first step in doing so is to remove the `app-backend` plugin from the backend
package, which is done as follows:
1. Delete `packages/backend/src/plugins/app.ts`
2. Remove the following lines from `packages/backend/src/index.ts`:
```tsx
import app from './plugins/app';
// ...
const appEnv = useHotMemoize(module, () => createEnv('app'));
// ...
.addRouter('', await app(appEnv));
2. Remove the following line from `packages/backend/src/index.ts`:
```ts
backend.add(import('@backstage/plugin-app-backend/alpha'));
```
3. Remove the `@backstage/plugin-app-backend` and the app package dependency
(e.g. `app`) from `packages/backend/package.json`. If you don't remove the
app package dependency the app will still be built and bundled with the
+101 -34
View File
@@ -5,40 +5,37 @@ sidebar_label: Heroku
description: How to deploy Backstage to Heroku
---
Heroku is a Platform as a Service (PaaS) designed to handle application
deployment in a hands-off way. Heroku supports container deployment of Docker
images, a natural fit for Backstage.
Heroku is a Platform as a Service (PaaS) designed to simplify application deployment.
## Configuring the CLI
## Create App
First, install the
[heroku-cli](https://devcenter.heroku.com/articles/heroku-cli) and login:
Starting with an existing Backstage app or follow the [getting started guide](https://backstage.io/docs/getting-started/) to create a new one.
Install the
[Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) and create a new Heroku app:
```shell
$ heroku login
cd your-app/
heroku apps:create <your-app>
```
If you have not yet created a project through the Heroku interface, you can create it through the CLI.
## Domain
Get Heroku app URL:
```shell
$ heroku create <your-app>
heroku domains -a <your-app>
<your-app-123>.herokuapp.com
```
You _might_ also need to set your Heroku app's stack to `container`:
```bash
$ heroku stack:set container -a <your-app>
```
Configuring your `app-config.yaml`:
The core [app-backend plugin](https://www.npmjs.com/package/@backstage/plugin-app-backend) allows a single Heroku app to serve the frontend and backend. To make this work you need to update the `baseUrl` and `port` in `app-config.production.yaml`:
```yaml
app:
# Should be the same as backend.baseUrl when using the `app-backend` plugin
baseUrl: https://<your-app>.herokuapp.com
baseUrl: https://<your-app-123>.herokuapp.com
backend:
baseUrl: https://<your-app>.herokuapp.com
baseUrl: https://<your-app-123>.herokuapp.com
listen:
port:
$env: PORT
@@ -46,28 +43,98 @@ backend:
# https://devcenter.heroku.com/articles/dynos#web-dynos
```
> Make sure your file is being copied into your container in the `Dockerfile`.
## Build Script
Before building the Docker image, run the [backstage host build commands](https://backstage.io/docs/deployment/docker#host-build). They must be run whenever you are going to publish a new image.
Add a build script in `package.json` to compile frontend during deployment:
Heroku runs a container registry on `registry.heroku.com`. To push Backstage
Docker images, log in to the container registry also:
```json
"scripts": {
"build": "yarn build:backend --config ../../app-config.yaml --config ../../app-config.production.yaml"
```
## Start Command
Create a [Procfile](https://devcenter.heroku.com/articles/procfile) in the app's root:
```shell
$ heroku container:login
echo "web: yarn workspace backend start --config ../../app-config.yaml --config ../../app-config.production.yaml" > Procfile
```
## Push and deploy a Docker image
## Database
Now we can push a Backstage [Docker image](docker.md) to Heroku's container
registry and release it to the `web` worker:
Provision a [Heroku Postgres](https://elements.heroku.com/addons/heroku-postgresql) database:
```bash
$ docker image build . -f packages/backend/Dockerfile --tag registry.heroku.com/<your-app>/web
$ docker push registry.heroku.com/<your-app>/web
$ heroku container:release web -a <your-app>
```shell
heroku addons:create heroku-postgresql -a <your-app>
```
Now you should have Backstage up and running! 🎉
Update `database` in `app-config.production.yaml`:
```yaml
backend:
database:
client: pg
pluginDivisionMode: schema
ensureExists: false
ensureSchemaExists: true
connection: ${DATABASE_URL}
```
Allow postgres self-signed certificates:
```shell
heroku config:set PGSSLMODE=no-verify -a <your-app>
```
## Deployment
Commit changes and push to Heroku to build and deploy:
```shell
git add Procfile && git commit -am "configure heroku"
git push heroku main
```
View the app in the browser:
```shell
heroku open -a <your-app>
```
View logs:
```shell
heroku logs -a <your-app>
```
## Docker
As an alternative to git deploys, Heroku also [supports container images](https://devcenter.heroku.com/articles/container-registry-and-runtime).
Login to Heroku's container registry:
```shell
heroku container:login
```
Configure the Heroku app to run a container image:
```shell
heroku stack:set container -a <your-app>
```
Locally run the [host build commands](https://backstage.io/docs/deployment/docker/#host-build), they must be run whenever you are going to publish a new image:
```shell
yarn install --frozen-lockfile
yarn tsc
yarn build:backend --config ../../app-config.yaml --config ../../app-config.production.yaml
```
Build, push, and release the container image to the `web` dyno:
```shell
docker image build . -f packages/backend/Dockerfile --tag registry.heroku.com/<your-app>/web
docker push registry.heroku.com/<your-app>/web
heroku container:release web -a <your-app>
```
@@ -58,6 +58,20 @@ catalog:
target: ../../examples/all.yaml
```
:::note
There might be cases where you need to test some `file` configurations in a Docker container. In a case like this, as the backend is serving the frontend in a default setup, the path would be from the root. Also, you need to **make sure to copy your files into your container**.
Using the example above that would look like this:
```yaml
catalog:
locations:
- type: file
target: ./examples/all.yaml
```
:::
### Integration Processors
Integrations may simply provide a mechanism to handle `url` location type for an

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