Merge branch 'backstage:master' into update-custom-permission-rule-doc
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend': patch
|
||||
---
|
||||
|
||||
`oauth2-proxy` auth implementation has been moved to `@backstage/plugin-auth-backend-module-oauth2-proxy-provider`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-app-api': patch
|
||||
---
|
||||
|
||||
Create a core components extension that allows adopters to override core app components such as `Progress`, `BootErrorPage`, `NotFoundErrorPage` and `ErrorBoundaryFallback`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Added a new `/testUtils` sub-path that initially exports a `mockBreakpoint` helper.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend-module-oauth2-proxy-provider': patch
|
||||
---
|
||||
|
||||
Exported the provider as default so it gets discovered when using `featureDiscoveryServiceFactory()`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': patch
|
||||
---
|
||||
|
||||
Create factories for overriding default core components extensions.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend-module-oauth2-proxy-provider': minor
|
||||
---
|
||||
|
||||
Release of `oauth2-proxy-provider` plugin
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-node': minor
|
||||
---
|
||||
|
||||
Added `EntitiesSearchFilter` and `EntityFilter` from `@backstage/plugin-catalog-backend`, for reuse
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-react': minor
|
||||
'@backstage/plugin-kubernetes': patch
|
||||
---
|
||||
|
||||
Change `formatClusterLink` to be an API and make it async for further customization possibilities.
|
||||
|
||||
**BREAKING**
|
||||
If you have a custom k8s page and used `formatClusterLink` directly, you need to migrate to new `kubernetesClusterLinkFormatterApiRef`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-plugin-api': patch
|
||||
---
|
||||
|
||||
The `createTranslationRef` function from the `/alpha` subpath can now also accept a nested object structure of default translation messages, which will be flatted using `.` separators.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Toned down the warning message when git is not found
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Ensure that passed-in icons are taken advantage of in the presentation API
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
Update the OpenAPI spec to support the use of `openapi-generator`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/catalog-client': minor
|
||||
---
|
||||
|
||||
The internals of `CatalogClient` are now auto-generated using the `backstage-repo-tools schema openapi generate-client` command.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-test-utils': patch
|
||||
---
|
||||
|
||||
Updates for compatibility with the new extension IDs.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
---
|
||||
|
||||
Fixed bug in `ReviewState` where `enum` value was displayed in step review instead of the corresponding label when using `enumNames`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': patch
|
||||
---
|
||||
|
||||
Add feature flags to plugins and extension overrides.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/repo-tools': minor
|
||||
---
|
||||
|
||||
**BREAKING**: API Reports generated for sub-path exports now place the name as a suffix rather than prefix, for example `api-report-alpha.md` instead of `alpha-api-report.md`. When upgrading to this version you'll need to re-create any such API reports and delete the old ones.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-app-api': patch
|
||||
---
|
||||
|
||||
Collect and register feature flags from plugins and extension overrides.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-home': minor
|
||||
---
|
||||
|
||||
Added view of entities grouped by kind to make it easier to distinguish entities with different kind but same name
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Added a warning when starting a standalone backend plugin that hasn't been updated to the new backend system.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-app-api': patch
|
||||
---
|
||||
|
||||
Ensure redaction of secrets that have accidental extra whitespace around them
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend-module-oauth2-proxy-provider': patch
|
||||
---
|
||||
|
||||
Change provider id from `oauth2ProxyProvider` to `oauth2Proxy`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-app-api': patch
|
||||
---
|
||||
|
||||
Add redacting for secrets in stack traces of logs
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-github-actions': patch
|
||||
---
|
||||
|
||||
Github Workflow Runs UI is modified to show in optional Card view instead of table, with branch selection option
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
Wrap single `pipelineLoop` of TaskPipeline in a span for better traces
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/test-utils': patch
|
||||
---
|
||||
|
||||
Deprecated `mockBreakpoint`, as it is now available from `@backstage/core-components/testUtils` instead.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-lighthouse': patch
|
||||
---
|
||||
|
||||
Updated README
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-test-utils': patch
|
||||
---
|
||||
|
||||
Re-export mock API implementations as well as `TestApiProvider`, `TestApiRegistry`, `withLogCollector`, and `setupRequestMockHandlers` from `@backstage/test-utils`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend': patch
|
||||
---
|
||||
|
||||
fix static token issuer not being able to initialize
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-lighthouse-backend': minor
|
||||
---
|
||||
|
||||
Fixed crashes faced with custom schedule configuration. The configuration schema has been update to leverage the TaskScheduleDefinition interface. It is highly recommended to move the `lighthouse.shedule` and `lighthouse.timeout` respectively to `lighthouse.schedule.frequency` and `lighthouse.schedule.timeout`.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/frontend-app-api': patch
|
||||
'@backstage/core-compat-api': patch
|
||||
---
|
||||
|
||||
Updates to match the new extension input wrapping.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
---
|
||||
|
||||
Add horizontal slider if stepper overflows
|
||||
+71
-2
@@ -255,61 +255,130 @@
|
||||
"@backstage/plugin-xcmetrics": "0.2.45",
|
||||
"@backstage/frontend-test-utils": "0.0.0",
|
||||
"@backstage/plugin-auth-backend-module-atlassian-provider": "0.0.0",
|
||||
"@backstage/plugin-auth-backend-module-okta-provider": "0.0.0"
|
||||
"@backstage/plugin-auth-backend-module-okta-provider": "0.0.0",
|
||||
"@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.0.0",
|
||||
"@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.0.0"
|
||||
},
|
||||
"changesets": [
|
||||
"angry-eagles-end",
|
||||
"angry-gorillas-unite",
|
||||
"angry-walls-despacito",
|
||||
"angry-walls-juggle",
|
||||
"big-swans-guess",
|
||||
"blue-meals-chew",
|
||||
"brave-parents-stare",
|
||||
"brave-socks-raise",
|
||||
"breezy-pans-glow",
|
||||
"bright-eyes-film",
|
||||
"brown-books-carry",
|
||||
"chatty-actors-live",
|
||||
"chilled-buses-love",
|
||||
"chilled-terms-breathe",
|
||||
"chilly-bikes-kick",
|
||||
"clever-wombats-sneeze",
|
||||
"cold-pans-crash",
|
||||
"cool-knives-argue",
|
||||
"create-app-1700579510",
|
||||
"create-app-1700607979",
|
||||
"curly-walls-relate",
|
||||
"dry-readers-raise",
|
||||
"eleven-ants-pretend",
|
||||
"empty-dingos-grow",
|
||||
"empty-fireants-study",
|
||||
"famous-flies-kick",
|
||||
"famous-peas-reflect",
|
||||
"fifty-cameras-share",
|
||||
"fifty-seas-grab",
|
||||
"five-feet-call",
|
||||
"forty-clocks-hug",
|
||||
"four-needles-watch",
|
||||
"funny-bobcats-try",
|
||||
"gentle-lies-greet",
|
||||
"giant-files-fry",
|
||||
"gold-humans-tease",
|
||||
"gold-shirts-yell",
|
||||
"gorgeous-snails-admire",
|
||||
"great-rings-type",
|
||||
"green-seals-play",
|
||||
"healthy-feet-kick",
|
||||
"healthy-poets-search",
|
||||
"hip-berries-begin",
|
||||
"honest-houses-hide",
|
||||
"hot-wolves-flash",
|
||||
"hungry-buckets-compare",
|
||||
"khaki-clocks-happen",
|
||||
"khaki-hounds-think",
|
||||
"kind-badgers-rush",
|
||||
"kind-cycles-happen",
|
||||
"large-weeks-accept",
|
||||
"little-suits-collect",
|
||||
"long-wolves-return",
|
||||
"lovely-terms-search",
|
||||
"lucky-kids-cough",
|
||||
"metal-eggs-smile",
|
||||
"mighty-beans-wink",
|
||||
"modern-mails-live",
|
||||
"nasty-tips-exercise",
|
||||
"nervous-dancers-wait",
|
||||
"nervous-penguins-sort",
|
||||
"perfect-apes-sing",
|
||||
"perfect-crabs-help",
|
||||
"pink-dryers-repair",
|
||||
"plenty-numbers-enjoy",
|
||||
"polite-knives-build",
|
||||
"poor-pandas-dream",
|
||||
"pretty-onions-knock",
|
||||
"pretty-ravens-serve",
|
||||
"proud-flies-travel",
|
||||
"proud-seahorses-explain",
|
||||
"quick-horses-reply",
|
||||
"real-bees-thank",
|
||||
"renovate-07b1766",
|
||||
"renovate-169bdc2",
|
||||
"renovate-1ed81a0",
|
||||
"renovate-240982c",
|
||||
"renovate-4891ee7",
|
||||
"renovate-4b1eded",
|
||||
"renovate-522261c",
|
||||
"renovate-6075f87",
|
||||
"renovate-6c0fb81",
|
||||
"renovate-6e5c790",
|
||||
"renovate-796bd6f",
|
||||
"renovate-8d8b90d",
|
||||
"renovate-9d2d52e",
|
||||
"renovate-a6399d6",
|
||||
"renovate-b193efa",
|
||||
"renovate-c4e012c",
|
||||
"renovate-c7270d5",
|
||||
"renovate-dee7ad1",
|
||||
"renovate-ead3ba6",
|
||||
"renovate-f5b18be",
|
||||
"rich-singers-join",
|
||||
"rude-beans-drop",
|
||||
"rude-ears-greet",
|
||||
"silent-rats-reflect",
|
||||
"silly-numbers-wash",
|
||||
"silver-rocks-deliver",
|
||||
"sixty-adults-kiss",
|
||||
"sixty-houses-agree",
|
||||
"slow-trees-warn",
|
||||
"smooth-frogs-decide",
|
||||
"sour-pumas-reply",
|
||||
"spotty-olives-share",
|
||||
"stale-bats-end",
|
||||
"stale-walls-cross",
|
||||
"strange-suits-glow",
|
||||
"tame-pants-end",
|
||||
"tender-peas-smoke",
|
||||
"thick-snails-travel",
|
||||
"thirty-fireants-cheer",
|
||||
"tiny-cobras-look",
|
||||
"tricky-donkeys-do",
|
||||
"tricky-islands-wonder",
|
||||
"twenty-beans-laugh",
|
||||
"violet-zebras-thank"
|
||||
"unlucky-clouds-build",
|
||||
"violet-zebras-thank",
|
||||
"warm-plums-beg",
|
||||
"wicked-elephants-think"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-azure-devops-backend': patch
|
||||
'@backstage/plugin-azure-devops-common': patch
|
||||
'@backstage/plugin-azure-devops': patch
|
||||
---
|
||||
|
||||
Introduced new `AzureDevOpsAnnotatorProcessor` that adds the needed annotations automatically. Also, moved constants to common package so they can be shared more easily
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-app-api': patch
|
||||
---
|
||||
|
||||
Migrate analytics route tracker component.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': minor
|
||||
---
|
||||
|
||||
Updates the ESLint config to ignore issues created by generated files in `**/src/generated/**`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Adding in spec.type chip to search results for clarity
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
'@backstage/plugin-user-settings': patch
|
||||
'@backstage/plugin-graphiql': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
'@backstage/plugin-search': patch
|
||||
'@backstage/plugin-home': patch
|
||||
---
|
||||
|
||||
Updates to the `/alpha` exports to match the extension input wrapping change.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `vite-plugin-node-polyfills` to `^0.17.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `@rollup/plugin-node-resolve` to `^15.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/repo-tools': patch
|
||||
---
|
||||
|
||||
Updated dependency `@stoplight/types` to `^14.0.0`.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
---
|
||||
|
||||
Updated dependency `archiver` to `^6.0.0`.
|
||||
Updated dependency `@types/archiver` to `^6.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `@rollup/plugin-json` to `^6.0.0`.
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
'@backstage/plugin-home-react': patch
|
||||
'@backstage/plugin-home': patch
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
---
|
||||
|
||||
Updated dependency `@rjsf/utils` to `5.14.3`.
|
||||
Updated dependency `@rjsf/core` to `5.14.3`.
|
||||
Updated dependency `@rjsf/material-ui` to `5.14.3`.
|
||||
Updated dependency `@rjsf/validator-ajv8` to `5.14.3`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
Updated dependency `@types/glob` to `^8.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `@typescript-eslint/eslint-plugin` to `6.12.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Updated dependency `linkifyjs` to `4.1.3`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Updated dependency `@rollup/plugin-commonjs` to `^25.0.0`.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-entity-validation': patch
|
||||
'@backstage/plugin-gcp-projects': patch
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
'@backstage/plugin-techdocs-module-addons-contrib': patch
|
||||
---
|
||||
|
||||
Updated dependency `@react-hookz/web` to `^23.0.0`.
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend-module-atlassian-provider': patch
|
||||
'@backstage/plugin-auth-backend-module-gitlab-provider': patch
|
||||
'@backstage/plugin-auth-backend-module-microsoft-provider': patch
|
||||
'@backstage/plugin-auth-backend-module-oauth2-provider': patch
|
||||
'@backstage/plugin-auth-backend-module-okta-provider': patch
|
||||
'@backstage/plugin-auth-backend-module-pinniped-provider': patch
|
||||
'@backstage/plugin-auth-backend': patch
|
||||
'@backstage/plugin-auth-node': patch
|
||||
---
|
||||
|
||||
Updated dependency `passport` to `^0.7.0`.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-import': patch
|
||||
'@backstage/plugin-stack-overflow': patch
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
'@backstage/plugin-user-settings': patch
|
||||
'@backstage/plugin-search-react': patch
|
||||
'@backstage/plugin-tech-radar': patch
|
||||
'@backstage/plugin-graphiql': patch
|
||||
'@backstage/plugin-techdocs': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
'@backstage/plugin-explore': patch
|
||||
'@backstage/plugin-search': patch
|
||||
'@backstage/plugin-home': patch
|
||||
'@backstage/plugin-adr': patch
|
||||
---
|
||||
|
||||
Refactor of the alpha exports due to API change in how extension IDs are constructed.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
|
||||
---
|
||||
|
||||
Ensure that cursors always come back as JSON on sqlite too
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
'@backstage/plugin-circleci': patch
|
||||
---
|
||||
|
||||
CircelCI plugin moved permanently
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/repo-tools': minor
|
||||
---
|
||||
|
||||
Adds a new command `schema openapi generate-client` that creates a Typescript client with Backstage flavor, including the discovery API and fetch API. This command doesn't currently generate a complete client and needs to be wrapped or exported manually by a separate Backstage plugin. See `@backstage/catalog-client/src/generated` for example output.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-user-settings': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
'@backstage/plugin-adr': patch
|
||||
---
|
||||
|
||||
Updated alpha translation message keys to use nested format and camel case.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': patch
|
||||
---
|
||||
|
||||
Migrate analytics api and context files.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
---
|
||||
|
||||
Fixing `headerOptions` not being passed through the `TemplatePage` component
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-node': patch
|
||||
---
|
||||
|
||||
Bumped the default TechDocs docker image version to the latest which was released several month ago
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-app-api': patch
|
||||
---
|
||||
|
||||
Updates to match the introduction of `ExtensionDefinition` and new extension ID naming patterns.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Switched the `@typescript-eslint/eslint-plugin` dependency back to using a `^` version range.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-compat-api': patch
|
||||
---
|
||||
|
||||
Updates for compatibility with the new extension IDs.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-pagerduty': minor
|
||||
---
|
||||
|
||||
This package has been deprecated, consider using [@pagerduty/backstage-plugin](https://github.com/pagerduty/backstage-plugin) instead.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': minor
|
||||
---
|
||||
|
||||
Extension inputs are now wrapped into an additional object when passed to the extension factory, with the previous values being available at the `output` property. The `ExtensionInputValues` type has also been replaced by `ResolvedExtensionInputs`.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': minor
|
||||
---
|
||||
|
||||
**BREAKING**: This version changes how extensions are created and how their IDs are determined. The `createExtension` function now accepts `kind`, `namespace` and `name` instead of `id`. All of the new options are optional, and are used to construct the final extension ID. By convention extension creators should set the `kind` to match their own name, for example `createNavItemExtension` sets the kind `nav-item`.
|
||||
|
||||
The `createExtension` function as well as all extension creators now also return an `ExtensionDefinition` rather than an `Extension`, which in turn needs to be passed to `createPlugin` or `createExtensionOverrides` to be used.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-sentry': patch
|
||||
---
|
||||
|
||||
Added examples for `sentry:project:create` scaffolder action and unit tests.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': minor
|
||||
---
|
||||
|
||||
Properly support both function- and string-form visibility filter expressions in the new extensions exported via `/alpha`.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
---
|
||||
|
||||
Breaking alpha-API change to entity visibility filter functions to accept a bare entity as their first argument, instead of an object with an entity property.
|
||||
|
||||
Functions that accept such filters now also support the string expression form of filters.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@techdocs/cli': minor
|
||||
---
|
||||
|
||||
Support passing additional `mkdocs-server` CLI parameters (`--dirtyreload`, `--strict` and `--clean`) when run in containerized mode.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-azure-devops-backend': minor
|
||||
---
|
||||
|
||||
**BREAKING** New `fromConfig` static method must be used now when creating an instance of the `AzureDevOpsApi`
|
||||
|
||||
Added support for using the `AzureDevOpsCredentialsProvider`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
---
|
||||
|
||||
Fixed issue for showing undefined for hidden form items
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-scaffolder-entity-model': patch
|
||||
'@backstage/plugin-search-backend-module-stack-overflow-collator': patch
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
|
||||
'@backstage/plugin-permission-backend-module-allow-all-policy': patch
|
||||
'@backstage/plugin-auth-backend-module-oauth2-proxy-provider': patch
|
||||
'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
|
||||
'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
|
||||
'@backstage/plugin-events-backend-module-bitbucket-cloud': patch
|
||||
'@backstage/plugin-auth-backend-module-gcp-iap-provider': patch
|
||||
'@backstage/plugin-auth-backend-module-google-provider': patch
|
||||
'@backstage/plugin-search-backend-module-elasticsearch': patch
|
||||
'@backstage/plugin-catalog-backend-module-unprocessed': patch
|
||||
'@backstage/plugin-catalog-backend-module-github-org': patch
|
||||
'@backstage/plugin-catalog-backend-module-puppetdb': patch
|
||||
'@backstage/plugin-search-backend-module-techdocs': patch
|
||||
'@backstage/plugin-catalog-backend-module-gerrit': patch
|
||||
'@backstage/plugin-catalog-backend-module-github': patch
|
||||
'@backstage/plugin-catalog-backend-module-gitlab': patch
|
||||
'@backstage/plugin-events-backend-module-aws-sqs': patch
|
||||
'@backstage/plugin-search-backend-module-catalog': patch
|
||||
'@backstage/plugin-search-backend-module-explore': patch
|
||||
'@backstage/plugin-catalog-backend-module-azure': patch
|
||||
'@backstage/plugin-events-backend-module-gerrit': patch
|
||||
'@backstage/plugin-events-backend-module-github': patch
|
||||
'@backstage/plugin-events-backend-module-gitlab': patch
|
||||
'@backstage/plugin-events-backend-module-azure': patch
|
||||
'@backstage/plugin-catalog-backend-module-aws': patch
|
||||
'@backstage/plugin-catalog-backend-module-gcp': patch
|
||||
'@backstage/plugin-search-backend-module-pg': patch
|
||||
'@backstage/backend-test-utils': patch
|
||||
'@backstage/plugin-events-backend': patch
|
||||
---
|
||||
|
||||
Switched module ID to use kebab-case.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': minor
|
||||
'@backstage/plugin-catalog-node': minor
|
||||
---
|
||||
|
||||
Permission rules can now be added for the Catalog plugin through the `CatalogPermissionExtensionPoint` interface.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
Deprecated `EntitiesSearchFilter` and `EntityFilter`, which can now be imported from `@backstage/plugin-catalog-node` instead
|
||||
@@ -61,7 +61,7 @@ jobs:
|
||||
with:
|
||||
context: './example-app'
|
||||
file: ./example-app/packages/backend/Dockerfile
|
||||
push: ${{ github.event_name == "repository_dispatch" && github.event.action == "release-published" }}
|
||||
push: ${{ (github.event_name == "repository_dispatch") && (github.event.action == "release-published") }}
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tags: |
|
||||
ghcr.io/${{ github.repository_owner }}/backstage:latest
|
||||
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
run: ls microsite/build && ls microsite/build/storybook
|
||||
|
||||
- name: Deploy both microsite and storybook to gh-pages
|
||||
uses: JamesIves/github-pages-deploy-action@a1ea191d508feb8485aceba848389d49f80ca2dc # v4.4.3
|
||||
uses: JamesIves/github-pages-deploy-action@65b5dfd4f5bcd3a7403bbc2959c144256167464e # v4.5.0
|
||||
with:
|
||||
branch: gh-pages
|
||||
folder: microsite/build
|
||||
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
|
||||
- name: Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0
|
||||
uses: docker/metadata-action@e6428a5c4e294a61438ed7f43155db912025b6b3 # v5.2.0
|
||||
with:
|
||||
images: registry.uffizzi.com/${{ env.UUID_TAG_APP }}
|
||||
tags: type=raw,value=60d
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ coverage
|
||||
*.hbs
|
||||
templates
|
||||
api-report.md
|
||||
*-api-report.md
|
||||
api-report-*.md
|
||||
cli-report.md
|
||||
plugins/scaffolder-backend/sample-templates
|
||||
.vscode
|
||||
|
||||
@@ -349,3 +349,13 @@ type LabelStyle = 'normal' | 'thin';
|
||||
// Output, since it's an exported constant
|
||||
const LABEL_SIZE: number;
|
||||
```
|
||||
|
||||
## Plugin Directory Submissions
|
||||
|
||||
When reviewing Plugin Directory submissions please consider the following:
|
||||
|
||||
- Check to make sure they have the rights for any icon being used. This is mostly for clearly copyrighted logos, for example the Microsoft Azure DevOps logo
|
||||
- Make sure the package has been published on the NPM registry.
|
||||
- Make sure the package on NPM has a link back to the code repo, this helps provide confidence that it's the right package.
|
||||
- If they use an [NPM scope](https://docs.npmjs.com/about-scopes) make sure it that matches either the Organization name or user name, this provides trust in the plugin
|
||||
- If the plugin has both a frontend and backend make sure that the documentation notes that.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 13.2.12
|
||||
digest: sha256:3add6e2f2c055e415403ebbba7740113ee052b87ad72e59b35b301df2098d41e
|
||||
generated: "2023-11-20T12:09:32.786270903Z"
|
||||
version: 13.2.21
|
||||
digest: sha256:8f8b0fe6c2e8f640237f61dcfab5821865d67753af06a782db7d61372cbbb9b9
|
||||
generated: "2023-11-27T22:30:42.837126565Z"
|
||||
|
||||
@@ -18,7 +18,7 @@ sources:
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
condition: postgresql.enabled
|
||||
version: 13.2.12
|
||||
version: 13.2.21
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
|
||||
maintainers:
|
||||
|
||||
@@ -236,6 +236,12 @@ export default async function createPlugin(
|
||||
// an entity you will need to replace this step as well.
|
||||
//
|
||||
// You might also replace it if you for example want to filter out certain groups.
|
||||
//
|
||||
// Note that `getDefaultOwnershipEntityRefs` only includes groups to which the
|
||||
// user has a direct MEMBER_OF relationship. It's perfectly fine to include
|
||||
// groups that the user is transitively part of in the claims array, but the
|
||||
// catalog doesn't currently provide a direct way of accessing this list of
|
||||
// groups.
|
||||
const ownershipRefs = getDefaultOwnershipEntityRefs(entity);
|
||||
|
||||
// The last step is to issue the token, where we might provide more options in the future.
|
||||
|
||||
@@ -25,8 +25,8 @@ import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node'
|
||||
import { MyCustomProcessor } from './MyCustomProcessor';
|
||||
|
||||
export const catalogModuleExampleCustomProcessor = createBackendModule({
|
||||
moduleId: 'exampleCustomProcessor',
|
||||
pluginId: 'catalog',
|
||||
moduleId: 'example-custom-processor',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
|
||||
@@ -10,18 +10,20 @@ description: Naming patterns in the backend system
|
||||
|
||||
These are the naming patterns to adhere to within the backend system. They help us keep exports consistent across packages and make it easier to understand the usage and intent of exports.
|
||||
|
||||
As a rule, all names should be camel case, with the exceptions of plugin and module IDs, which should be kebab case.
|
||||
|
||||
### Plugins
|
||||
|
||||
| Description | Pattern | Examples |
|
||||
| ----------- | ------------ | ----------------------------------- |
|
||||
| export | `<id>Plugin` | `catalogPlugin`, `scaffolderPlugin` |
|
||||
| ID | `'<id>'` | `'catalog'`, `'scaffolder'` |
|
||||
| Description | Pattern | Examples |
|
||||
| ----------- | ----------------- | ------------------------------------- |
|
||||
| export | `<camelId>Plugin` | `catalogPlugin`, `userSettingsPlugin` |
|
||||
| ID | `'<kebab-id>'` | `'catalog'`, `'user-settings'` |
|
||||
|
||||
Example:
|
||||
|
||||
```ts
|
||||
export const catalogPlugin = createBackendPlugin({
|
||||
pluginId: 'catalog',
|
||||
export const userSettingsPlugin = createBackendPlugin({
|
||||
pluginId: 'user-settings',
|
||||
...
|
||||
})
|
||||
```
|
||||
@@ -31,14 +33,14 @@ export const catalogPlugin = createBackendPlugin({
|
||||
| Description | Pattern | Examples |
|
||||
| ----------- | ---------------------------- | ----------------------------------- |
|
||||
| export | `<pluginId>Module<ModuleId>` | `catalogModuleGithubEntityProvider` |
|
||||
| ID | `'<moduleId>'` | `'githubEntityProvider'` |
|
||||
| ID | `'<module-id>'` | `'github-entity-provider'` |
|
||||
|
||||
Example:
|
||||
|
||||
```ts
|
||||
export const catalogModuleGithubEntityProvider = createBackendModule({
|
||||
pluginId: 'catalog',
|
||||
moduleId: 'githubEntityProvider',
|
||||
moduleId: 'github-entity-provider',
|
||||
...
|
||||
})
|
||||
```
|
||||
|
||||
@@ -297,7 +297,7 @@ import { microsoftGraphOrgEntityProviderTransformExtensionPoint } from '@backsta
|
||||
backend.add(
|
||||
createBackendModule({
|
||||
pluginId: 'catalog',
|
||||
moduleId: 'microsoftGraphExtensions',
|
||||
moduleId: 'microsoft-graph-extensions',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
@@ -337,7 +337,7 @@ import { createBackendModule } from '@backstage/backend-plugin-api';
|
||||
/* highlight-add-start */
|
||||
const catalogModuleCustomExtensions = createBackendModule({
|
||||
pluginId: 'catalog', // name of the plugin that the module is targeting
|
||||
moduleId: 'customExtensions',
|
||||
moduleId: 'custom-extensions',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
@@ -406,7 +406,7 @@ import { createBackendModule } from '@backstage/backend-plugin-api';
|
||||
/* highlight-add-start */
|
||||
const eventsModuleCustomExtensions = createBackendModule({
|
||||
pluginId: 'events', // name of the plugin that the module is targeting
|
||||
moduleId: 'customExtensions',
|
||||
moduleId: 'custom-extensions',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
@@ -471,7 +471,7 @@ import { createBackendModule } from '@backstage/backend-plugin-api';
|
||||
/* highlight-add-start */
|
||||
const scaffolderModuleCustomExtensions = createBackendModule({
|
||||
pluginId: 'scaffolder', // name of the plugin that the module is targeting
|
||||
moduleId: 'customExtensions',
|
||||
moduleId: 'custom-extensions',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
|
||||
@@ -104,8 +104,8 @@ import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node'
|
||||
import { MyCustomProcessor } from './MyCustomProcessor';
|
||||
|
||||
export const catalogModuleExampleCustomProcessor = createBackendModule({
|
||||
moduleId: 'exampleCustomProcessor',
|
||||
pluginId: 'catalog',
|
||||
moduleId: 'example-custom-processor',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
|
||||
@@ -196,7 +196,7 @@ import { GoogleContainerEngineSupplier } from './GoogleContainerEngineSupplier';
|
||||
|
||||
export default createBackendModule({
|
||||
pluginId: 'kubernetes',
|
||||
moduleId: 'gke.supplier',
|
||||
moduleId: 'gke-supplier',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
|
||||
@@ -31,8 +31,8 @@ with a `Bearer` token, which should then be the Backstage token returned by the
|
||||
|
||||
These are the endpoints that deal with reading of entities directly. What it
|
||||
exposes are final entities - i.e. the output of all processing and the stitching
|
||||
process, not the raw originally ingested entity data. See [The Life of an
|
||||
Entity](life-of-an-entity.md) for more details about this process and
|
||||
process, not the raw originally ingested entity data. See
|
||||
[The Life of an Entity](./life-of-an-entity.md) for more details about this process and
|
||||
distinction.
|
||||
|
||||
### `GET /entities`
|
||||
|
||||
@@ -91,6 +91,9 @@ Options:
|
||||
--docker-option <DOCKER_OPTION...> Extra options to pass to the docker run command, e.g. "--add-host=internal.host:192.168.11.12"
|
||||
(can be added multiple times).
|
||||
--no-docker Do not use Docker, use MkDocs executable in current user environment.
|
||||
--mkdocs-parameter-clean Pass "--clean" parameter to mkdocs server running in containerized environment.
|
||||
--mkdocs-parameter-dirtyreload Pass "--dirtyreload" parameter to mkdocs server running in containerized environment.
|
||||
--mkdocs-parameter-strict Pass "--strict" parameter to mkdocs server running in containerized environment.
|
||||
--mkdocs-port <PORT> Port for MkDocs server to use (default: "8000")
|
||||
--preview-app-bundle-path <PATH_TO_BUNDLE> Preview documentation using a web app other than the included one.
|
||||
--preview-app-port <PORT> Port where the preview will be served.
|
||||
|
||||
@@ -484,3 +484,7 @@ You can see more ways to use this in the [Storybook Sidebar examples](https://ba
|
||||
|
||||
In addition to a custom theme, a custom logo, you can also customize the
|
||||
homepage of your app. Read the full guide on the [next page](homepage.md).
|
||||
|
||||
## Migrating to Material UI v5
|
||||
|
||||
We now support Material UI v5 in Backstage. Check out our [migration guide](../tutorials/migrate-to-mui5.md) to get started.
|
||||
|
||||
@@ -290,6 +290,11 @@ otherwise something went terribly wrong.
|
||||
|
||||
## Create a new component using a software template
|
||||
|
||||
> Note: if you're running Backstage with Node 20 or later, you'll need to pass the flag `--no-node-snapshot` to Node in order to
|
||||
> use the templates feature.
|
||||
> One way to do this is to specify the `NODE_OPTIONS` environment variable before starting Backstage:
|
||||
> `export NODE_OPTIONS=--no-node-snapshot`
|
||||
|
||||
- Go to `create` and choose to create a website with the `Example Node.js Template`
|
||||
- Type in a name, let's use `tutorial` and click `Next Step`
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ The following steps assume that you have
|
||||
to it.
|
||||
|
||||
We are using the
|
||||
[CircleCI](https://github.com/backstage/backstage/blob/master/plugins/circleci/README.md)
|
||||
[CircleCI](https://github.com/CircleCI-Public/backstage-plugin/tree/main/plugins/circleci)
|
||||
plugin in this example, which is designed to show CI/CD pipeline information attached
|
||||
to an entity in the software catalog.
|
||||
|
||||
@@ -23,7 +23,7 @@ to an entity in the software catalog.
|
||||
|
||||
```bash
|
||||
# From your Backstage root directory
|
||||
yarn add --cwd packages/app @backstage/plugin-circleci
|
||||
yarn add --cwd packages/app @circleci/backstage-plugin
|
||||
```
|
||||
|
||||
Note the plugin is added to the `app` package, rather than the root
|
||||
@@ -38,7 +38,7 @@ to an entity in the software catalog.
|
||||
import {
|
||||
EntityCircleCIContent,
|
||||
isCircleCIAvailable,
|
||||
} from '@backstage/plugin-circleci';
|
||||
} from '@circleci/backstage-plugin';
|
||||
/* highlight-add-end */
|
||||
|
||||
const cicdContent = (
|
||||
|
||||
@@ -57,6 +57,7 @@ In your `launch.json`, add a new entry with the following,
|
||||
```jsonc
|
||||
{
|
||||
"name": "Start Backend",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"args": [
|
||||
"package",
|
||||
@@ -67,8 +68,6 @@ In your `launch.json`, add a new entry with the following,
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"type": "node"
|
||||
"console": "integratedTerminal"
|
||||
},
|
||||
```
|
||||
|
||||
You may notice that the normal logs mentioned above do not get logged, this is an issue with the logging library we're using, `winston`, and is not easily solved. See [this thread](https://github.com/winstonjs/winston/issues/1544) for more information.
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
## How to generate a client with `repo-tools schema openapi generate-client`?
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. Add your plugin ID as the last `servers` item, like this,
|
||||
|
||||
```yaml
|
||||
servers:
|
||||
# first value, used for OpenAPI router validation.
|
||||
- url: /
|
||||
|
||||
# final value, pluginId.
|
||||
- url: catalog
|
||||
```
|
||||
|
||||
2. Find or create a new plugin to house your new generated client. Currently, we do not support generating an entirely new plugin and instead just generate client files.
|
||||
|
||||
### Generating your client
|
||||
|
||||
1. Run `yarn backstage-repo-tools schema openapi generate-client --input-spec <file> --output-directory <directory>`. This will create a new folder in `<directory>/src/generated` to house the generated content.
|
||||
2. You should use the generated files as follows,
|
||||
|
||||
- `apis/DefaultApi.client.ts` - this is the client that you should use. It has types for all of the various operations on your API.
|
||||
- `models/*` - These are the types generated from your OpenAPI file, ideally you should not need to use these directly and can instead use the inferred types from `apis/DefaultApi.client.ts`.
|
||||
- everything else is directory specific and shouldn't be touched.
|
||||
@@ -21,7 +21,18 @@ description: A brief description of the plugin. # Max 170 characters
|
||||
documentation: # A link to your documentation E.g. Your github README
|
||||
iconUrl: # Used as the src attribute for your logo.
|
||||
# You can provide an external url or add your logo under static/img and provide a path
|
||||
# relative to static/ e.g. img/my-logo.png
|
||||
# relative to static/ e.g. /img/my-logo.png
|
||||
npmPackageName: # Your npm package name E.g. '@backstage/plugin-<etc>' quotes are required
|
||||
addedDate: # The date plugin added to directory E.g. '2022-10-01' quotes are required
|
||||
```
|
||||
|
||||
## Submission Tips
|
||||
|
||||
Here are a few tips to help speed up the review process when you submit your plugin:
|
||||
|
||||
- For any icon that you use make sure you have the proper rights to use it.
|
||||
- Make sure that your package had been published on the NPM registry and that it's public.
|
||||
- Make sure your package on NPM has a link back to your code repo, this helps provide confidence that it's the right package.
|
||||
- Where possible, please use an [NPM scope](https://docs.npmjs.com/about-scopes) that matches either your Organization name or user name, this provides trust in the plugin
|
||||
- If your plugin has both a frontend and backend link the documentation to the frontend package but make sure it mentioned needing to install the backend package.
|
||||
- Where possible include a screenshot of the features in you plugin documentation, it really does help when deciding to use a plugin.
|
||||
|
||||
@@ -10,7 +10,7 @@ The Backstage core function provides internationalization for plugins
|
||||
|
||||
## For a plugin developer
|
||||
|
||||
When you are creating your plugin, you have the possibility to use `createTranslationRef` to define all messages for your plugin. For example
|
||||
When you are creating your plugin, you have the possibility to use `createTranslationRef` to define all messages for your plugin. For example:
|
||||
|
||||
```ts
|
||||
import { createTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
@@ -19,8 +19,13 @@ import { createTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
export const myPluginTranslationRef = createTranslationRef({
|
||||
id: 'plugin.my-plugin',
|
||||
messages: {
|
||||
index_page_title: 'All your components',
|
||||
create_component_button_label: 'Create new component',
|
||||
indexPage: {
|
||||
title: 'All your components',
|
||||
createButtonTitle: 'Create new component',
|
||||
},
|
||||
entityPage: {
|
||||
notFound: 'Entity not found',
|
||||
},
|
||||
},
|
||||
});
|
||||
```
|
||||
@@ -33,9 +38,9 @@ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
const { t } = useTranslationRef(myPluginTranslationRef);
|
||||
|
||||
return (
|
||||
<PageHeader title={t('index_page_title')}>
|
||||
<PageHeader title={t('indexPage.title')}>
|
||||
<Button onClick={handleCreateComponent}>
|
||||
{t('create_component_button_label')}
|
||||
{t('indexPage.createButtonTitle')}
|
||||
</Button>
|
||||
</PageHeader>
|
||||
);
|
||||
@@ -53,7 +58,7 @@ In an app you can both override the default messages, as well as register transl
|
||||
+ createTranslationMessages({
|
||||
+ ref: myPluginTranslationRef,
|
||||
+ messages: {
|
||||
+ create_component_button_label: 'Create new entity',
|
||||
+ 'indexPage.createButtonTitle': 'Create new entity',
|
||||
+ },
|
||||
+ }),
|
||||
+ createTranslationResource({
|
||||
|
||||
@@ -147,8 +147,8 @@ import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node'
|
||||
import { MyCustomProcessor } from './processor';
|
||||
|
||||
export const exampleCustomProcessorCatalogModule = createBackendModule({
|
||||
moduleId: 'exampleCustomProcessor',
|
||||
pluginId: 'catalog',
|
||||
moduleId: 'example-custom-processor',
|
||||
register(env) {
|
||||
env.registerInit({
|
||||
deps: {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,65 @@
|
||||
---
|
||||
id: migrate-to-mui5
|
||||
title: Migrating from Material UI v4 to v5
|
||||
description: Additional resources for the Material UI v5 migration guide specifically for Backstage
|
||||
---
|
||||
|
||||
Backstage supports developing new plugins or components using Material UI v5. At the same time, large parts of the application as well as existing plugins will still be using Material UI v4. To support Material UI v4 and v5 at the same time, we have introduced a new concept called the `UnifiedTheme`. The goal of the `UnifiedTheme` is to allow gradual migration by running both versions in parallel, applying theme options similarly & supporting potential future versions of Material UI.
|
||||
|
||||
By default, the `UnifiedThemeProvider` is already used. If you add a custom theme in your `createApp` function, you would need to replace the Material UI `ThemeProvider` with the `UnifiedThemeProvider`:
|
||||
|
||||
```diff ts
|
||||
+ import import {
|
||||
+ UnifiedThemeProvider,
|
||||
+ themes as builtinThemes,
|
||||
+ } from '@backstage/theme';
|
||||
|
||||
const app = createApp({
|
||||
// ...
|
||||
themes: [
|
||||
{
|
||||
// ...
|
||||
provider: ({ children }) => (
|
||||
- <ThemeProvider theme={lightTheme}>.
|
||||
- <CssBaseline>{children}</CssBaseline>.
|
||||
- </ThemeProvider
|
||||
+ <UnifiedThemeProvider theme={builtinThemes.light} children={children} />
|
||||
),
|
||||
}
|
||||
]
|
||||
});
|
||||
```
|
||||
|
||||
Before making specific changes to your Backstage instance, it might be helpful to take a look at the [Migration Guide provided by Material UI](https://mui.com/material-ui/migration/migration-v4/) first. It breaks down the differences between v4 and v5, and will make it easier to understand the impact on your Backstage instance & plugins.
|
||||
|
||||
It is worth noting that we are still using `@mui/styles` & `jss`. You may stumble upon documentation for migrating to `emotion` when using `makeStyles` or `withStyles`. It is not necessary to switch to `emotion`.
|
||||
|
||||
Important to keep in mind is that Material UI v5 is meant to be used with React Version 17 or higher. This means if you intend to use the Material UI v5 components in your plugins, you have to enforce React Version to be at least 17 for these plugins:
|
||||
|
||||
```json
|
||||
...
|
||||
"peerDependencies": {
|
||||
"react": "^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^17.0.0 || ^18.0.0",
|
||||
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
|
||||
},
|
||||
...
|
||||
```
|
||||
|
||||
To comply with Material UI recommendations, we are enforcing a new linting rule that favors standard imports over named imports and also restricts 3rd-level imports as they are considered private ([Guide: Minimizing Bundle Size](https://mui.com/material-ui/guides/minimizing-bundle-size)).
|
||||
|
||||
There are `core-components` as well as components exported from Backstage `*-react` plugins written in Material UI v4, which expect Material UI components as props. In these cases you will still be forced to use Material UI v4.
|
||||
|
||||
For current known issues with the Material UI v5 migration, follow our [Milestone on GitHub](https://github.com/backstage/backstage/milestone/40). Please open a new issue if you run into different problems.
|
||||
|
||||
### Plugins
|
||||
|
||||
To migrate your plugin to Material UI v5, you can build on the resources available.
|
||||
|
||||
1. Manually fix the imports from named to default imports to match the new [linting rules for minimizing bundle size](https://mui.com/material-ui/guides/minimizing-bundle-size).
|
||||
2. Run the migration `codemod` for the path of the specific plugin: `npx @mui/codemod v5.0.0/preset-safe plugins/<path>`.
|
||||
3. Take a look at possible `TODO:` items the `codemod` could not fix.
|
||||
4. Remove types & methods from `@backstage/theme` which are marked as `@deprecated`.
|
||||
5. Ensure you are using `"react": "^17.0.0"` (or newer) as a peer dependency
|
||||
|
||||
You can follow the [migration of the GraphiQL plugin](https://github.com/backstage/backstage/pull/17696) as an example of a plugin migration.
|
||||
@@ -1,12 +1,12 @@
|
||||
---
|
||||
title: CircleCI
|
||||
author: Spotify
|
||||
authorUrl: https://github.com/spotify
|
||||
author: CircleCI
|
||||
authorUrl: https://circleci.com/
|
||||
category: CI/CD
|
||||
description: Automate your development process with CI hosted in the cloud or on a private server.
|
||||
documentation: https://github.com/backstage/backstage/tree/master/plugins/circleci
|
||||
documentation: https://github.com/CircleCI-Public/backstage-plugin/tree/main/plugins/circleci
|
||||
iconUrl: /img/circleci.png
|
||||
npmPackageName: '@backstage/plugin-circleci'
|
||||
npmPackageName: '@circleci/backstage-plugin'
|
||||
tags:
|
||||
- ci
|
||||
- cd
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: HCP Consul
|
||||
author: Hashicorp
|
||||
authorUrl: https://www.hashicorp.com/
|
||||
category: Infrastructure
|
||||
description: View your HCP Consul clusters, services, instances in Backstage.
|
||||
documentation: https://github.com/hashicorp-forge/backstage-plugin-hcp-consul/tree/main
|
||||
iconUrl: /img/hcp-consul.svg
|
||||
npmPackageName: '@hashicorp/plugin-hcp-consul'
|
||||
addedDate: '2023-11-24'
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user