Merge branch 'master' of https://github.com/backstage/backstage into master-code-3

This commit is contained in:
parmar-abhinav
2024-07-17 15:03:16 +05:30
636 changed files with 7170 additions and 2086 deletions
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Added `MyGroupsSidebarItem` to the sidebar in the `create-app` template
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/backend-plugin-api': patch
'@backstage/backend-defaults': patch
---
Added a new Root Health Service which adds new endpoints for health checks.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder': minor
---
Use virtualization with `EntityPicker` as done earlier with `MultiEntityPicker` to fix performance issues with large data sets. `VirtualizedListbox` extracted into reusable component.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Fixed an issue that was causing techdocs pages unnecessarily re-render on navigate.
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/backend-test-utils': patch
'@backstage/backend-defaults': patch
'@backstage/backend-app-api': patch
---
The `ServiceFactoryTest.get` method was deprecated and the `ServiceFactoryTest.getSubject` should be used instead. The `getSubject` method has the same behavior, but has a better method name to indicate that the service instance returned is the subject currently being tested.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-auth-backend-module-atlassian-provider': patch
---
Fix several issues with the Atlassian auth provider (type definition, profile url, profile transformation, scopes)
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-common': patch
---
Deprecate legacy status check factory, handler and types.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-msgraph': patch
---
Adds a dynamic provider for the plugin-catalog-backend-module-msgraph. Configuration is now runtime configurable through the ProviderConfigTransformer.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs-react': patch
---
Resolved the issue where changes in TechDoc add-ons, including the TextSize add-on, were not reapplying during navigation
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/backend-defaults': minor
'@backstage/backend-app-api': minor
---
**BREAKING**: Removed the depreacted `getPath` option from `httpRouterServiceFactory`, as well as the `HttpRouterFactoryOptions` type.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-ldap': patch
'@backstage/backend-plugin-api': patch
'@backstage/backend-defaults': patch
'@backstage/backend-tasks': patch
---
Fix bug where ISO durations could no longer be used for schedules
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Updated `catalog:write` scaffolder action to show correct file path location in log message
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-github': patch
---
Fixed bug resulting from missing required owner and repo arguments in `getEnvironmentPublicKey` in action `github:environment:create`.
Adding environment secrets now works as expected.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core-components': patch
---
Fixed bug where `<Select>` component with empty string as placeholder gave an error
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Improve default sorting of docs table
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-techdocs-backend': patch
'@backstage/plugin-techdocs-node': patch
---
Adds extension point for publishers to the techdocs backend
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
'@backstage/plugin-scaffolder-backend-module-rails': patch
---
Updated configuration instructions
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch
---
Instead of using hardcoded `targetBranch` now fetch the default branch from Bitbucket repository.
This prevents from errors when no `targetBranch` is provided and the default repository branch is different from `master`, for example: `main`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Added the Catalog logs module to the `create-app` template
-15
View File
@@ -1,15 +0,0 @@
---
'@backstage/core-app-api': minor
'@backstage/frontend-app-api': patch
---
Allow for the disabling of external routes through config, which was rendered impossible after the introduction of default targets.
```yaml
app:
routes:
bindings:
# This has the effect of removing the button for registering new
# catalog entities in the scaffolder template list view
scaffolder.registerComponent: false
```
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-org': patch
---
The `useGetEntities` hook could result in requests to `/api/catalog/entities` where the headers exceed the default maximum Node.js header size of 16KB. The hook logic has been adjusted to batch the requests.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-gitlab': patch
---
The Gitlab configuration supports an additional optional boolean key `catalog.providers.gitlab.<your-org>.restrictUsersToGroup`. Setting this to `true` will make Backstage only import users from the group defined in the `group` key, instead of all users in the organisation (self-hosted) or of the root group (SaaS). It will default to false, keeping the original implementation intact, when not explicitly set.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-test-utils': patch
---
The function `isDockerDisabledForTests` is deprecated and will no longer be exported in the near future as it should only be used internally.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder': patch
---
enable resizing of the task log stream viewer
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-ldap': minor
---
**BREAKING**: `readLdapOrg` and the `LdapProviderConfig` type now always accept arrays of user and group configs, not just single items.
Added support for single ldap catalog provider to provide list and undefined user and group bindings next to standard single one.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core-app-api': patch
---
Updated config schema to support app.routes.bindings
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/integration': minor
---
Add support for `token` for `bitbucketCloud` integration
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-catalog': patch
---
Support i18n for catalog and catalog-react plugins
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/cli': patch
---
- remove unused dependencies `winston` and `yn` from the template of backend plugins;
- update `msw` to version `2.3.1` in the template of backend plugins;
starting with v1 and switching later to v2 is tedious and not straight forward; it's easier to start with v2;
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Updated the scaffolding output message for `plugin-common` in `backstage-cli`. Now, when executing `backstage-cli new` to create a new `plugin-common` package, the output message accurately reflects the action by displaying `Creating common plugin package...` instead of the previous, less accurate `Creating backend plugin...`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Only bootstrap global-agent if it's actually being used
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Fix issue with CLI that was preventing upgrading from 1.28
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder': minor
---
Use virtualization with `MultiEntityPicker`. Fixes performance issues with large data sets.
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-azure': patch
'@backstage/plugin-scaffolder-node': patch
'@backstage/plugin-scaffolder': patch
---
Fixed a bug where the `RepoUrlPicker` would still require the `owner` field for `azure`
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/backend-common': patch
'@backstage/cli': patch
---
Update default backend plugin created by the cli to use non-deprecated error handling middleware
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Added a documentation how to use checkpoints
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
'@backstage/plugin-bitbucket-cloud-common': patch
---
Add support for `autocomplete` handler to provide autocomplete options for `RepoUrlPicker`
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-org': patch
---
Added `relationType` property to EntityMembersListCard component that allows for display users related to a group via some other relationship aside from `memberOf`.
Also, as a side effect, the `relationsType` property has been deprecated in favor of a more accurately named `relationAggregation` property.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-react': patch
---
Make EntityOwnerPicker display metadata.title or spec.profile.displayName for mode=only-owners instead of metadata.name
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs': patch
---
Fix double scrollbar bug in reader
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-notifications': patch
---
The toolbar on the Notifications page is hidden when there are no listed notifications.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-aws': patch
---
Export `defaultEksClusterEntityTransformer` to allow library consumers to layer additional changes on top of the default transformer.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-common': patch
---
Add dependencies that are needed by cross-imports from backend-defaults
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-techdocs-node': patch
---
Bumps default version of techdocs docker image to latest
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core-components': patch
---
Modified the `Select` component to take in a `data-testid` parameter ensuring backwards compatibility with default value corresponding to previously hardcoded `data-testid` of "select".
-30
View File
@@ -1,30 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-github': patch
---
Adds support for `repository` events.
The provider adds a subscription to the topic `github.repository`.
Hereby, it supports events of type `repository` with actions
- `archived`
- `deleted`
- `edited`
- `renamed`
- `transferred`
- `unarchived`
Actions skipped as they don't require entity changes:
- `created`
- `privatized`
- `publicized`
If the config option `validateLocationsExist` is enabled, an API request
is necessary and will be executed.
This affects the actions `renamed`, `transferred`, and `unarchive`
of event type `repository`.
Catalog entities related to the `GithubEntityProvider` instance will be adjusted
according to action and its meaning for them.
-258
View File
@@ -1,258 +0,0 @@
{
"mode": "pre",
"tag": "next",
"initialVersions": {
"example-app": "0.2.98",
"@backstage/app-defaults": "1.5.6",
"example-app-next": "0.0.12",
"app-next-example-plugin": "0.0.12",
"example-backend": "0.0.27",
"@backstage/backend-app-api": "0.7.6",
"@backstage/backend-common": "0.23.0",
"@backstage/backend-defaults": "0.3.0",
"@backstage/backend-dev-utils": "0.1.4",
"@backstage/backend-dynamic-feature-service": "0.2.11",
"example-backend-legacy": "0.2.99",
"@backstage/backend-openapi-utils": "0.1.12",
"@backstage/backend-plugin-api": "0.6.19",
"@backstage/backend-tasks": "0.5.24",
"@backstage/backend-test-utils": "0.4.0",
"@backstage/catalog-client": "1.6.5",
"@backstage/catalog-model": "1.5.0",
"@backstage/cli": "0.26.7",
"@backstage/cli-common": "0.1.14",
"@backstage/cli-node": "0.2.6",
"@backstage/codemods": "0.1.49",
"@backstage/config": "1.2.0",
"@backstage/config-loader": "1.8.1",
"@backstage/core-app-api": "1.12.6",
"@backstage/core-compat-api": "0.2.6",
"@backstage/core-components": "0.14.8",
"@backstage/core-plugin-api": "1.9.3",
"@backstage/create-app": "0.5.16",
"@backstage/dev-utils": "1.0.33",
"e2e-test": "0.2.17",
"@backstage/e2e-test-utils": "0.1.1",
"@backstage/errors": "1.2.4",
"@backstage/eslint-plugin": "0.1.8",
"@backstage/frontend-app-api": "0.7.1",
"@backstage/frontend-plugin-api": "0.6.6",
"@backstage/frontend-test-utils": "0.1.8",
"@backstage/integration": "1.12.0",
"@backstage/integration-aws-node": "0.1.12",
"@backstage/integration-react": "1.1.28",
"@backstage/release-manifests": "0.0.11",
"@backstage/repo-tools": "0.9.1",
"@techdocs/cli": "1.8.12",
"techdocs-cli-embedded-app": "0.2.97",
"@backstage/test-utils": "1.5.6",
"@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.6",
"@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.7",
"@backstage/plugin-app-backend": "0.3.68",
"@backstage/plugin-app-node": "0.1.19",
"@backstage/plugin-app-visualizer": "0.1.7",
"@backstage/plugin-auth-backend": "0.22.6",
"@backstage/plugin-auth-backend-module-atlassian-provider": "0.2.0",
"@backstage/plugin-auth-backend-module-aws-alb-provider": "0.1.11",
"@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.1.2",
"@backstage/plugin-auth-backend-module-bitbucket-provider": "0.1.2",
"@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.1.2",
"@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.2.14",
"@backstage/plugin-auth-backend-module-github-provider": "0.1.16",
"@backstage/plugin-auth-backend-module-gitlab-provider": "0.1.16",
"@backstage/plugin-auth-backend-module-google-provider": "0.1.16",
"@backstage/plugin-auth-backend-module-guest-provider": "0.1.5",
"@backstage/plugin-auth-backend-module-microsoft-provider": "0.1.14",
"@backstage/plugin-auth-backend-module-oauth2-provider": "0.2.0",
"@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.1.12",
"@backstage/plugin-auth-backend-module-oidc-provider": "0.2.0",
"@backstage/plugin-auth-backend-module-okta-provider": "0.0.12",
"@backstage/plugin-auth-backend-module-onelogin-provider": "0.1.0",
"@backstage/plugin-auth-backend-module-pinniped-provider": "0.1.13",
"@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.2.0",
"@backstage/plugin-auth-node": "0.4.14",
"@backstage/plugin-auth-react": "0.1.3",
"@backstage/plugin-bitbucket-cloud-common": "0.2.20",
"@backstage/plugin-catalog": "1.21.0",
"@backstage/plugin-catalog-backend": "1.23.0",
"@backstage/plugin-catalog-backend-module-aws": "0.3.14",
"@backstage/plugin-catalog-backend-module-azure": "0.1.39",
"@backstage/plugin-catalog-backend-module-backstage-openapi": "0.2.2",
"@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.2.6",
"@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.33",
"@backstage/plugin-catalog-backend-module-gcp": "0.1.20",
"@backstage/plugin-catalog-backend-module-gerrit": "0.1.36",
"@backstage/plugin-catalog-backend-module-github": "0.6.2",
"@backstage/plugin-catalog-backend-module-github-org": "0.1.14",
"@backstage/plugin-catalog-backend-module-gitlab": "0.3.18",
"@backstage/plugin-catalog-backend-module-gitlab-org": "0.0.2",
"@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.4.24",
"@backstage/plugin-catalog-backend-module-ldap": "0.6.0",
"@backstage/plugin-catalog-backend-module-msgraph": "0.5.27",
"@backstage/plugin-catalog-backend-module-openapi": "0.1.37",
"@backstage/plugin-catalog-backend-module-puppetdb": "0.1.25",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.1.17",
"@backstage/plugin-catalog-backend-module-unprocessed": "0.4.6",
"@backstage/plugin-catalog-common": "1.0.24",
"@backstage/plugin-catalog-graph": "0.4.6",
"@backstage/plugin-catalog-import": "0.12.0",
"@backstage/plugin-catalog-node": "1.12.1",
"@backstage/plugin-catalog-react": "1.12.1",
"@backstage/plugin-catalog-unprocessed-entities": "0.2.5",
"@backstage/plugin-catalog-unprocessed-entities-common": "0.0.2",
"@backstage/plugin-config-schema": "0.1.56",
"@backstage/plugin-devtools": "0.1.15",
"@backstage/plugin-devtools-backend": "0.3.5",
"@backstage/plugin-devtools-common": "0.1.10",
"@backstage/plugin-events-backend": "0.3.6",
"@backstage/plugin-events-backend-module-aws-sqs": "0.3.5",
"@backstage/plugin-events-backend-module-azure": "0.2.5",
"@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.5",
"@backstage/plugin-events-backend-module-gerrit": "0.2.5",
"@backstage/plugin-events-backend-module-github": "0.2.5",
"@backstage/plugin-events-backend-module-gitlab": "0.2.5",
"@backstage/plugin-events-backend-test-utils": "0.1.29",
"@backstage/plugin-events-node": "0.3.5",
"@internal/plugin-todo-list": "1.0.28",
"@internal/plugin-todo-list-backend": "1.0.28",
"@internal/plugin-todo-list-common": "1.0.19",
"@backstage/plugin-home": "0.7.5",
"@backstage/plugin-home-react": "0.1.14",
"@backstage/plugin-kubernetes": "0.11.11",
"@backstage/plugin-kubernetes-backend": "0.18.0",
"@backstage/plugin-kubernetes-cluster": "0.0.12",
"@backstage/plugin-kubernetes-common": "0.8.0",
"@backstage/plugin-kubernetes-node": "0.1.13",
"@backstage/plugin-kubernetes-react": "0.4.0",
"@backstage/plugin-notifications": "0.2.2",
"@backstage/plugin-notifications-backend": "0.3.0",
"@backstage/plugin-notifications-backend-module-email": "0.1.0",
"@backstage/plugin-notifications-common": "0.0.4",
"@backstage/plugin-notifications-node": "0.2.0",
"@backstage/plugin-org": "0.6.26",
"@backstage/plugin-org-react": "0.1.25",
"@backstage/plugin-permission-backend": "0.5.43",
"@backstage/plugin-permission-backend-module-allow-all-policy": "0.1.16",
"@backstage/plugin-permission-common": "0.7.14",
"@backstage/plugin-permission-node": "0.7.30",
"@backstage/plugin-permission-react": "0.4.23",
"@backstage/plugin-proxy-backend": "0.5.0",
"@backstage/plugin-scaffolder": "1.21.0",
"@backstage/plugin-scaffolder-backend": "1.22.9",
"@backstage/plugin-scaffolder-backend-module-azure": "0.1.11",
"@backstage/plugin-scaffolder-backend-module-bitbucket": "0.2.9",
"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.1.9",
"@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.1.9",
"@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.2.20",
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.43",
"@backstage/plugin-scaffolder-backend-module-gerrit": "0.1.11",
"@backstage/plugin-scaffolder-backend-module-gitea": "0.1.9",
"@backstage/plugin-scaffolder-backend-module-github": "0.3.0",
"@backstage/plugin-scaffolder-backend-module-gitlab": "0.4.1",
"@backstage/plugin-scaffolder-backend-module-notifications": "0.0.2",
"@backstage/plugin-scaffolder-backend-module-rails": "0.4.36",
"@backstage/plugin-scaffolder-backend-module-sentry": "0.1.27",
"@backstage/plugin-scaffolder-backend-module-yeoman": "0.3.2",
"@backstage/plugin-scaffolder-common": "1.5.3",
"@backstage/plugin-scaffolder-node": "0.4.5",
"@backstage/plugin-scaffolder-node-test-utils": "0.1.5",
"@backstage/plugin-scaffolder-react": "1.9.0",
"@backstage/plugin-search": "1.4.12",
"@backstage/plugin-search-backend": "1.5.10",
"@backstage/plugin-search-backend-module-catalog": "0.1.25",
"@backstage/plugin-search-backend-module-elasticsearch": "1.5.0",
"@backstage/plugin-search-backend-module-explore": "0.1.25",
"@backstage/plugin-search-backend-module-pg": "0.5.28",
"@backstage/plugin-search-backend-module-stack-overflow-collator": "0.1.12",
"@backstage/plugin-search-backend-module-techdocs": "0.1.24",
"@backstage/plugin-search-backend-node": "1.2.24",
"@backstage/plugin-search-common": "1.2.12",
"@backstage/plugin-search-react": "1.7.12",
"@backstage/plugin-signals": "0.0.7",
"@backstage/plugin-signals-backend": "0.1.5",
"@backstage/plugin-signals-node": "0.1.5",
"@backstage/plugin-signals-react": "0.0.4",
"@backstage/plugin-techdocs": "1.10.6",
"@backstage/plugin-techdocs-addons-test-utils": "1.0.33",
"@backstage/plugin-techdocs-backend": "1.10.6",
"@backstage/plugin-techdocs-module-addons-contrib": "1.1.11",
"@backstage/plugin-techdocs-node": "1.12.5",
"@backstage/plugin-techdocs-react": "1.2.5",
"@backstage/plugin-user-settings": "0.8.7",
"@backstage/plugin-user-settings-backend": "0.2.18",
"@backstage/plugin-user-settings-common": "0.0.1",
"@backstage/plugin-catalog-backend-module-logs": "0.0.0",
"@backstage/plugin-scaffolder-backend-module-gcp": "0.0.1-next.1"
},
"changesets": [
"bright-fireants-sit",
"bright-panthers-leave",
"calm-jeans-ring",
"chilly-roses-trade",
"clever-waves-judge",
"create-app-1719320674",
"curvy-teachers-smell",
"eighty-games-wink",
"eleven-radios-begin",
"fair-fans-flow",
"fair-pillows-know",
"fair-rockets-leave",
"fair-spoons-work",
"famous-dodos-crash",
"fast-pens-smell",
"fifty-pumpkins-smell",
"friendly-bulldogs-pay",
"friendly-experts-fail",
"friendly-masks-type",
"friendly-oranges-greet",
"friendly-stingrays-occur",
"funny-laws-tease",
"gentle-avocados-obey",
"grumpy-wolves-hang",
"heavy-moose-pull",
"honest-pears-run",
"khaki-rivers-obey",
"kind-dancers-boil",
"light-avocados-worry",
"little-games-fail",
"metal-jokes-add",
"metal-parents-brush",
"metal-suits-drum",
"moody-llamas-breathe",
"neat-dingos-tickle",
"new-sheep-arrive",
"poor-cheetahs-raise",
"rare-peas-dream",
"renovate-7b61228",
"renovate-ced359b",
"rich-bears-march",
"selfish-turtles-jog",
"serious-kings-trade",
"sharp-rice-tickle",
"short-flowers-cry",
"shy-hounds-battle",
"silent-experts-move",
"silent-lobsters-tease",
"silent-moose-eat",
"soft-clocks-bake",
"sour-jokes-sneeze",
"spotty-crabs-shop",
"swift-dots-cough",
"ten-dancers-drum",
"ten-nails-hear",
"ten-pots-walk",
"thick-lizards-divide",
"thick-moose-decide",
"three-carpets-smoke",
"tough-lies-mate",
"weak-boats-float",
"yellow-cows-kick",
"young-donuts-swim",
"young-fishes-lie",
"young-houses-unite"
]
}
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-defaults': patch
---
Repack the package to fix issues with typescript with named exports
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/cli': patch
'@backstage/plugin-scaffolder-backend': patch
---
Updated dependency `esbuild` to `^0.21.0`.
-11
View File
@@ -1,11 +0,0 @@
---
'@backstage/plugin-home-react': patch
'@backstage/plugin-home': patch
'@backstage/plugin-scaffolder-react': patch
'@backstage/plugin-scaffolder': patch
---
Updated dependency `@rjsf/utils` to `5.18.5`.
Updated dependency `@rjsf/core` to `5.18.5`.
Updated dependency `@rjsf/material-ui` to `5.18.5`.
Updated dependency `@rjsf/validator-ajv8` to `5.18.5`.
-5
View File
@@ -1,5 +0,0 @@
---
'@techdocs/cli': patch
---
Import discovery from backend-defaults instead of backend-common
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-defaults': patch
---
Fixed the routing of the new health check service, the health endpoints should now properly be available at `/.backstage/health/v1/readiness` and `/.backstage/health/v1/liveness`.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': minor
'@backstage/plugin-scaffolder-node': patch
---
Add support for `autocomplete` extension point to provide additional `autocomplete` handlers
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-test-utils': patch
---
Added mock for the Root Health Service in `mockServices`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-kubernetes-react': patch
---
Add a namespace label to RolloutDrawer
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-github': minor
---
Adds support for custom tag policies when creating GitHub environments.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-kubernetes-react': patch
---
Fix the `HTML` markup of the `FixDialog` component, `ul` and `li` are not allowed inside a `p` tag.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Fix a few minor issues with the backend template that were causing failing linting checks in the main repo.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Subpath export `package.json` should be of a unique name to avoid typescript resolution issues
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
The `backendPlugin` and `backendModule` factory now includes a step for automatically adding the new backend plugin/module to the `index.ts` file of the backend.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder': patch
---
Support `catalogFilter` array on `OwnedEntityPicker`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog': patch
---
Added small notes to AboutCard to discourage customizability PRs
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-notifications-backend': patch
---
Added an option to filter notifications by topic
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-github': patch
---
Added action to enable GitHub Pages on a repo
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-auth-node': patch
---
Fix issues with Atlassian OAuth provider: retrieve the email and photo that were not in arrays but rather in single props.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-react': minor
---
Improve validation error display text in scaffolder
-9
View File
@@ -1,9 +0,0 @@
---
'@backstage/backend-plugin-api': patch
---
All service config types were renamed to option types in order to standardize frontend and backend `create*` function signatures:
- The `ServiceRefConfig` type was renamed to`ServiceRefOptions`;
- The `RootServiceFactoryConfig` type was renamed to `RootServiceFactoryOptions`;
- The `PluginServiceFactoryConfig` type was renamed to `PluginServiceFactoryOptions`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-github': patch
---
Fixed issue with octokit call missing owner and repo when creating environment variables and secrets using github:environment:create action
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-github': patch
---
Adds `requireLastPushApproval` input property to configure Branch Protection Settings in `github:publish` action
Adds `requireLastPushApproval` input property to configure Branch Protection Settings in `github:repo:push` action
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/plugin-catalog-backend-module-logs': patch
---
Creates a new module to make logging catalog errors simple. This module subscribes to catalog events and logs them.
See [Backstage documentation](https://backstage.io/docs/features/software-catalog/configuration#subscribing-to-catalog-errors) for details on how to install
and configure the plugin.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/backend-app-api': patch
'@backstage/backend-common': patch
---
Fixing exporting of classes properly from new packages
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-search': patch
---
Update deps in search api extension to include fetch api
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
---
Added support for passing `variables` to `gitlab:pipeline:trigger`
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-scaffolder-backend-module-gcp': minor
'@backstage/plugin-scaffolder-backend': minor
'@backstage/plugin-scaffolder-node': patch
---
Serialization of the scaffolder workspace into GCP bucket
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
'@backstage/backend-test-utils': patch
'@backstage/backend-defaults': patch
'@backstage/backend-common': patch
---
bumped better-sqlite3 from ^9.0.0 to ^11.0.0
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-notifications-backend-module-email': patch
'@backstage/plugin-notifications-common': patch
'@backstage/plugin-notifications-node': patch
---
Move notification processor filter parsing to common package
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-react': patch
---
disables rendering of output box if no output is returned
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-node-test-utils': patch
---
Filename and imports correction for mockActionContext.ts
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-scaffolder-react': minor
'@backstage/plugin-scaffolder': minor
---
Add support for `bitbucketCloud` autocomplete in `RepoUrlPicker`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Fix user entity not being fetched for scaffolder dry runner
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-app-api': patch
---
Fixing issue with `MiddlewareFactory` deprecation wrapping
+1
View File
@@ -7,6 +7,7 @@ on:
jobs:
cron:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Harden Runner
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
+1 -1
View File
@@ -99,7 +99,7 @@ You'll see how you get both logs for the frontend `webpack-dev-server` which ser
Visit <http://localhost:3000> and you should see the bleeding edge of Backstage ready for contributions!
If you want to get a better understanding of the layout of the repo not that you have a local copy running feel free to review the [Backstage Project Structure](https://backstage.io/docs/getting-started/project-structure) documentation.
If you want to get a better understanding of the layout of the repo now that you have a local copy running feel free to review the [Backstage Project Structure](https://backstage.io/docs/getting-started/#general-folder-structure) documentation.
## Coding Guidelines
+1 -2
View File
@@ -25,8 +25,7 @@ This will only work with the new backend system. There is no support for this in
Add the `@backstage/plugin-auth-backend-module-guest-provider` to your backend installation.
```sh
# From your Backstage root directory
```sh title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-guest-provider
```
+55 -22
View File
@@ -190,43 +190,76 @@ If a service defines a default factory, that factory will be used if there is no
When defining a default factory for a service, it is possible for it to end up with duplicate implementations at runtime. This applies both to any shared root context in your factory, as well as plugin specific instances of your service. This is because package dependency version ranges may not line up perfectly, causing duplicate installations of the same package. This can happen both for two different plugins using the same service, but also across a plugin and its modules. If your service would break in this scenario, you should not define a default factory for it, but instead require that users of your service explicitly install a factory in their backend instance.
## Service Factory Options
## Service Factory Customization
When declaring a service factory you may also want to make the export the building blocks of the implementation itself. This is to allow for further customization of the service implementation through code, beyond what is possible with static configuration, without the need to re-implement the entire service from scratch. For example, we might export our example `DefaultFooService` class, while moving construction to a static `create` factory method to make it easier to evolve:
```ts
export class DefaultFooService {
static create(options: { transform: (foo: string) => string }) {
return new DefaultFooService(options.transform ?? (foo) => foo);
}
private constructor(private readonly transform: (foo: string) => string) {}
foo(foo: string): string {
return this.transform(foo);
}
}
```
By exporting `DefaultFooService` we now make it relatively simple for advanced users of our service to customize the implementation. To do so, they can define their own service factory that uses our provided implementation:
```ts
export const customFooServiceFactory = createServiceFactory({
service: fooServiceRef,
deps: {},
factory() {
return DefaultFooService.create({
transform: foo => foo.toUpperCase(),
});
},
});
```
This allows you to provide more advanced options for the service implementation that couldn't be expressed through static configuration. It also gives users of the service implementation access to other services through dependency injection, which can be useful for their customizations.
## Service Factory Options Pattern
:::note Note
This pattern is discouraged, only use it when necessary. If possible you should prefer to make services configurable via static configuration instead.
This pattern is discouraged, only use it when necessary. If possible you should prefer to make services configurable via static configuration or re-implementation instead.
:::
When declaring a service factory it's possible to include an options callback. This allows you to customize the factory through code when installing it in the backend. For example, this is how you install an explicit factory instance in the backend without any options:
In some cases it might be beneficial to allow users of your service factory to pass options to the factory itself, rather than to the service implementation. This can be enabled by also defining the service factory as a function that returns a reconfigured factory. For example:
```ts
const backend = createBackend();
backend.add(fooServiceFactory());
```
Note that we call `fooServiceFactory` to create the service factory instance. This is because `createServiceFactory` always returns a factory function that creates the actual service factory. To add options to your service factory, you wrap the object passed to `createServiceFactory` in a callback that accepts the desired options. Note that the options must always be optional. For example:
```ts
export interface FooFactoryOptions {
const fooServiceFactoryWithOptions = (options?: {
transform: (foo: string) => string;
}
export const fooServiceFactory = createServiceFactory(
(options?: FooFactoryOptions) => ({
}) =>
createServiceFactory<FooService>({
service: fooServiceRef,
deps: {},
factory() {
return new DefaultFooService(options?.transform);
return DefaultFooService.create({
transform: options?.transform,
});
},
}),
});
export const fooServiceFactory = Object.assign(
fooServiceFactoryWithOptions,
fooServiceFactoryWithOptions(),
);
```
This lets us use the options to customize the factory implementation in any way we want. From the outside the service factory looks just like before, except that we're now also able to pass options when installing the factory:
This makes it possible to use the `fooServiceFactory` directly, as well passing additional options to create a customized factory:
```ts
const backend = createBackend();
backend.add(fooServiceFactory({ transform: foo => foo.toUpperCase() }));
backend.add(fooServiceFactory);
// OR
backend.add(fooServiceFactory({ transform: foo => foo.toLowerCase() }));
```
This pattern is discouraged due to the inability to access other services through dependency injection. It is however used in a few places in the Backstage framework where the ability to directly pass options without re-implementing the service is very convenient, such as the `mockServices` from `@backstage/backend-test-utils`.
@@ -1254,7 +1254,6 @@ In order to add your own permission policy you'll need to do the following:
```ts
import { createBackendModule } from '@backstage/backend-plugin-api';
import { BackstageIdentityResponse } from '@backstage/plugin-auth-node';
import {
PolicyDecision,
AuthorizeResult,
@@ -1262,13 +1261,14 @@ import {
import {
PermissionPolicy,
PolicyQuery,
PolicyQueryUser,
} from '@backstage/plugin-permission-node';
import { policyExtensionPoint } from '@backstage/plugin-permission-node/alpha';
class CustomPermissionPolicy implements PermissionPolicy {
async handle(
request: PolicyQuery,
user?: BackstageIdentityResponse,
user?: PolicyQueryUser,
): Promise<PolicyDecision> {
// TODO: Add code here that inspects the incoming request and user, and returns AuthorizeResult.ALLOW, AuthorizeResult.DENY, or AuthorizeResult.CONDITIONAL as needed. See the docs at https://backstage.io/docs/permissions/writing-a-policy for more information
@@ -61,7 +61,7 @@ requests and return mock responses. This lets you stub out remote services
rather than the local clients, leading to more thorough and robust tests. You
can read more about how it works [in their documentation](https://mswjs.io/).
The `@backstage/backend-test-utils` package exports a `setupRequestMockHandlers`
The `@backstage/backend-test-utils` package exports a `registerMswTestHooks`
function which ensures that the correct `jest` lifecycle hooks are invoked to
set up and tear down your `msw` instance, and enables the option that completely
rejects requests that don't match one of your mock rules. This ensures that your
@@ -70,13 +70,13 @@ tests cannot accidentally leak traffic into production from tests.
Example:
```ts
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
describe('read from remote', () => {
const worker = setupServer();
setupRequestMockHandlers(worker);
registerMswTestHooks(worker);
it('should auth and read successfully', async () => {
expect.assertions(1);
@@ -60,3 +60,34 @@ backend.add(
}),
);
```
For more advanced customization, there are several APIs from the `@backstage/config-loader` package that allow you to customize the implementation of the config service. The default implementation uses the `ConfigSources.default` method, which has the same options as the `rootConfigServiceFactory` function. You can use these to create your own config service implementation:
```ts
import { ConfigSources } from '@backstage/config-loader';
import { createServiceFactory } from '@backstage/backend-plugin-api';
const backend = createBackend();
backend.add(
createServiceFactory({
service: coreServices.rootConfig,
deps: {},
async factory() {
const source = ConfigSources.default({
argv: [
'--config',
'/backstage/app-config.development.yaml',
'--config',
'/backstage/app-config.yaml',
],
remote: { reloadIntervalSeconds: 60 },
});
console.log(`Loading config from ${source}`);
return await ConfigSources.toConfig(source);
},
}),
);
```
You can also use other config source such as `StaticConfigSource` and combine them with other sources using `ConfigSources.merge(...)`. You can also create your own config source by implementing the `ConfigSource` interface.
@@ -1,7 +1,7 @@
---
id: root-health
title: Root Health Service
sidebar_label: Health
sidebar_label: Root Health
description: Documentation for the Health service
---
@@ -173,8 +173,7 @@ To create the Backend module, run `yarn new`, select `backend-module`. Then fill
This will create a new package at `plugins/kubernetes-backend-module-pinniped`. We are going to need also the `@backstage/plugin-kubernetes-node` and `@backstage/plugin-kubernetes-common` dependencies, the `@backstage/plugin-kubernetes-node` houses the [kubernetesAuthStrategyExtensionPoint](https://github.com/backstage/backstage/blob/ebe7afad9d19f279469168ca0d4feceb92c1ad36/plugins/kubernetes-node/src/extensions.ts#L77) and a [Pinniped Helper](https://github.com/backstage/backstage/blob/ebe7afad9d19f279469168ca0d4feceb92c1ad36/plugins/kubernetes-node/src/auth/PinnipedHelper.ts#L53) class.
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd plugins/kubernetes-backend-module-pinniped add @backstage/plugin-kubernetes-node
yarn --cwd plugins/kubernetes-backend-module-pinniped add @backstage/plugin-kubernetes-common
```
+3 -6
View File
@@ -15,8 +15,7 @@ If you haven't setup Backstage already, read the
The first step is to add the Kubernetes frontend plugin to your Backstage
application.
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/app add @backstage/plugin-kubernetes
```
@@ -53,8 +52,7 @@ work.
Navigate to `packages/backend` of your Backstage app, and install the
`@backstage/plugin-kubernetes-backend` package.
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-kubernetes-backend
```
@@ -109,8 +107,7 @@ To get the Kubernetes plugin install using the New Backend System you will need
Run this command to add the package:
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-kubernetes-backend
```
+2 -2
View File
@@ -60,7 +60,6 @@ This feature assumes your backstage instance has enabled the [permissions framew
A sample policy like:
```typescript
import { BackstageIdentityResponse } from '@backstage/plugin-auth-node';
import {
AuthorizeResult,
PolicyDecision,
@@ -68,12 +67,13 @@ import {
import {
PermissionPolicy,
PolicyQuery,
PolicyQueryUser,
} from '@backstage/plugin-permission-node';
class KubernetesDenyAllProxyEndpointPolicy implements PermissionPolicy {
async handle(
request: PolicyQuery,
user?: BackstageIdentityResponse,
user?: PolicyQueryUser,
): Promise<PolicyDecision> {
if (request.permission.name === 'kubernetes.proxy') {
return {
+2 -4
View File
@@ -16,8 +16,7 @@ If you haven't setup Backstage already, start
## Adding Search to the Frontend
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/app add @backstage/plugin-search @backstage/plugin-search-react
```
@@ -133,8 +132,7 @@ For more information about using `Root.tsx`, please see
Add the following plugins into your backend app:
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-search-backend @backstage/plugin-search-backend-node
```
@@ -47,7 +47,7 @@ action is logged for further investigation.
### Local File (`type: file`) Configurations
In addition to url locations, you can use the `file` location type to bring in content from the local file system. You should only use this for local development, test setups, and example data, not for production data.
You are also not able to use placeholders in them like `$text`. You can however reference other files relative to the current file. See the full [catalog example data set here](https://github.com/backstage/backstage/tree/master/packages/catalog-model/examples) for an extensive example.
You are also not able to use placeholders in them like `$text`, `$json` or `$yaml`. You can however reference other files relative to the current file. See the full [catalog example data set here](https://github.com/backstage/backstage/tree/master/packages/catalog-model/examples) for an extensive example.
Here is an example pulling in the `all.yaml` file from the examples folder. Note the use of `../../` to go up two levels from the current execution path of the backend. This is typically `packages/backend/`.
@@ -184,8 +184,7 @@ Catalog errors are published to the [events plugin](https://github.com/backstage
The first step is to add the events backend plugin to your Backstage application. Navigate to your Backstage application directory and add the plugin package.
```ts
# From your Backstage root directory
```ts title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-events-backend
```
@@ -201,8 +200,7 @@ If you want to log catalog errors you can install the `@backstage/plugin-catalog
Install the catalog logs module.
```ts
# From your Backstage root directory
```ts title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-logs
```
@@ -66,14 +66,14 @@ import {
class ExamplePermissionPolicy implements PermissionPolicy {
async handle(
request: PolicyQuery,
user?: BackstageIdentityResponse,
user?: PolicyQueryUser,
): Promise<PolicyDecision> {
/* highlight-add-start */
if (
isPermission(request.permission, templateParameterReadPermission) ||
isPermission(request.permission, templateStepReadPermission)
) {
if (user?.identity.userEntityRef === 'user:default/spiderman')
if (user?.info.userEntityRef === 'user:default/spiderman')
return createScaffolderTemplateConditionalDecision(request.permission, {
not: scaffolderTemplateConditions.hasTag({ tag: 'secret' }),
});
@@ -109,11 +109,11 @@ import {
class ExamplePermissionPolicy implements PermissionPolicy {
async handle(
request: PolicyQuery,
user?: BackstageIdentityResponse,
user?: PolicyQueryUser,
): Promise<PolicyDecision> {
/* highlight-add-start */
if (isPermission(request.permission, actionExecutePermission)) {
if (user?.identity.userEntityRef === 'user:default/spiderman') {
if (user?.info.userEntityRef === 'user:default/spiderman') {
return createScaffolderActionConditionalDecision(request.permission, {
not: scaffolderActionConditions.hasActionId({
actionId: 'debug:log',
@@ -147,11 +147,11 @@ import {
class ExamplePermissionPolicy implements PermissionPolicy {
async handle(
request: PolicyQuery,
user?: BackstageIdentityResponse,
user?: PolicyQueryUser,
): Promise<PolicyDecision> {
/* highlight-add-start */
if (isPermission(request.permission, actionExecutePermission)) {
if (user?.identity.userEntityRef === 'user:default/spiderman') {
if (user?.info.userEntityRef === 'user:default/spiderman') {
return createScaffolderActionConditionalDecision(request.permission, {
not: {
allOf: [
@@ -190,25 +190,25 @@ import {
class ExamplePermissionPolicy implements PermissionPolicy {
async handle(
request: PolicyQuery,
user?: BackstageIdentityResponse,
user?: PolicyQueryUser,
): Promise<PolicyDecision> {
/* highlight-add-start */
if (isPermission(request.permission, taskCreatePermission)) {
if (user?.identity.userEntityRef === 'user:default/spiderman') {
if (user?.info.userEntityRef === 'user:default/spiderman') {
return {
result: AuthorizeResult.ALLOW,
};
}
}
if (isPermission(request.permission, taskCancelPermission)) {
if (user?.identity.userEntityRef === 'user:default/spiderman') {
if (user?.info.userEntityRef === 'user:default/spiderman') {
return {
result: AuthorizeResult.ALLOW,
};
}
}
if (isPermission(request.permission, taskReadPermission)) {
if (user?.identity.userEntityRef === 'user:default/spiderman') {
if (user?.info.userEntityRef === 'user:default/spiderman') {
return {
result: AuthorizeResult.ALLOW,
};
@@ -239,7 +239,6 @@ Instead of the changes in `permission.ts` noted in the above example you will ma
```ts title="packages/backend/src/index.ts"
import { createBackendModule } from '@backstage/backend-plugin-api';
import { BackstageIdentityResponse } from '@backstage/plugin-auth-node';
import {
PolicyDecision,
AuthorizeResult,
@@ -247,13 +246,14 @@ import {
import {
PermissionPolicy,
PolicyQuery,
PolicyQueryUser,
} from '@backstage/plugin-permission-node';
import { policyExtensionPoint } from '@backstage/plugin-permission-node/alpha';
class ExamplePermissionPolicy implements PermissionPolicy {
async handle(
request: PolicyQuery,
user?: BackstageIdentityResponse,
user?: PolicyQueryUser,
): Promise<PolicyDecision> {
// Various scaffolder permission checks ...
@@ -24,8 +24,7 @@ There are also several modules available for various SCM tools:
Here's how to add an action module, first you need to run this command:
```sh
# From your Backstage root directory
```sh title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-scaffolder-backend-module-github
```
+3 -6
View File
@@ -21,8 +21,7 @@ The first step is to add the TechDocs plugin to your Backstage application.
Navigate to your new Backstage application directory. And then to your
`packages/app` directory, and install the `@backstage/plugin-techdocs` package.
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/app add @backstage/plugin-techdocs
```
@@ -106,8 +105,7 @@ That's it! Now, we need the TechDocs Backend plugin for the frontend to work.
Navigate to `packages/backend` of your Backstage app, and install the
`@backstage/plugin-techdocs-backend` package.
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-techdocs-backend
```
@@ -199,8 +197,7 @@ To install TechDocs when using the New Backend system you will need to do the fo
Navigate to `packages/backend` of your Backstage app, and install the `@backstage/plugin-techdocs-backend` package.
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/backend add @backstage/plugin-techdocs-backend
```
+1 -2
View File
@@ -73,8 +73,7 @@ to install and configure the client.
Go to the root directory of your freshly installed Backstage
App. Run the following to install the PostgreSQL client into your backend:
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/backend add pg
```
@@ -21,8 +21,7 @@ to an entity in the software catalog.
1. Add the plugin's npm package to the repo:
```bash
# From your Backstage root directory
```bash title="From your Backstage root directory"
yarn --cwd packages/app add @circleci/backstage-plugin
```

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