Merge branch 'backstage:master' into feat/techdocs-azurite-support

This commit is contained in:
Aswath S
2023-08-22 23:07:19 +05:30
committed by GitHub
959 changed files with 27100 additions and 5159 deletions
+60
View File
@@ -0,0 +1,60 @@
---
'@backstage/plugin-api-docs-module-protoc-gen-doc': patch
'@backstage/plugin-catalog-unprocessed-entities': patch
'@backstage/plugin-github-pull-requests-board': patch
'@backstage/integration-react': patch
'@backstage/plugin-github-deployments': patch
'@backstage/plugin-microsoft-calendar': patch
'@backstage/plugin-newrelic-dashboard': patch
'@backstage/plugin-entity-validation': patch
'@backstage/plugin-apollo-explorer': patch
'@backstage/plugin-gitops-profiles': patch
'@backstage/plugin-graphql-voyager': patch
'@backstage/plugin-apache-airflow': patch
'@backstage/plugin-github-actions': patch
'@backstage/plugin-octopus-deploy': patch
'@backstage/plugin-splunk-on-call': patch
'@backstage/plugin-config-schema': patch
'@backstage/plugin-github-issues': patch
'@backstage/plugin-azure-devops': patch
'@backstage/plugin-code-climate': patch
'@backstage/plugin-gcp-projects': patch
'@backstage/plugin-azure-sites': patch
'@backstage/plugin-firehydrant': patch
'@backstage/plugin-cloudbuild': patch
'@backstage/plugin-home-react': patch
'@backstage/plugin-lighthouse': patch
'@backstage/plugin-tech-radar': patch
'@backstage/plugin-codescene': patch
'@backstage/plugin-dynatrace': patch
'@backstage/plugin-gcalendar': patch
'@backstage/plugin-org-react': patch
'@backstage/plugin-shortcuts': patch
'@backstage/plugin-sonarqube': patch
'@backstage/plugin-xcmetrics': patch
'@backstage/plugin-airbrake': patch
'@backstage/plugin-circleci': patch
'@backstage/plugin-graphiql': patch
'@backstage/plugin-linguist': patch
'@backstage/plugin-newrelic': patch
'@backstage/plugin-opencost': patch
'@backstage/plugin-periskop': patch
'@backstage/plugin-playlist': patch
'@backstage/plugin-puppetdb': patch
'@backstage/plugin-bitrise': patch
'@backstage/plugin-jenkins': patch
'@backstage/plugin-rollbar': patch
'@backstage/plugin-allure': patch
'@backstage/plugin-badges': patch
'@backstage/plugin-bazaar': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-fossa': patch
'@backstage/plugin-ilert': patch
'@backstage/plugin-kafka': patch
'@backstage/plugin-nomad': patch
'@backstage/plugin-vault': patch
'@backstage/plugin-todo': patch
'@backstage/plugin-org': patch
---
Moved `@types/react` to be a regular dependency
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend': patch
---
Fix to the `limit` parameter on entity queries.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-kubernetes-backend': patch
'@backstage/plugin-kubernetes-common': patch
---
Add AWS Annotations to Kubernetes Cluster Resource
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog': patch
---
Added title to props for `Has<kind>Cards`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Bumped create-app version.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
Migrated the GitLab auth provider to be implemented using the new `@backstage/plugin-auth-backend-module-gitlab-provider` module.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Added the ability to create a plain backend module with the `new` command.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
Added `authPlugin` export for the new backend system. The plugin does not include any built-in auth providers, they must instead be added by installing additional modules, for example `authModuleGoogleProvider` from `@backstage/plugin-auth-backend-module-google-provider`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-code-coverage-backend': patch
---
Added support for LCOV coverage reports
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-gcp-iap-provider': minor
---
New module for `@backstage/plugin-auth-backend` that adds a GCP IAP auth provider.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog': patch
---
Fixed an issue where `EntitySwitch` was preventing the display of entity errors.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-techdocs': patch
---
Fixed bug in styles that caused next and previous links in footer to overlap page content.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-components': patch
---
Fixed an issue causing `StructuredMetadataTable` to crash in case metadata contained `null` values.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Add examples for `publish:github` and `publish:gitlab` scaffolder actions.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-azure': patch
---
Improve consistency of results from the `AzureDevOpsEntityProvider`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-entity-feedback': patch
---
Improve README to note that Backstage identity is required to be configured
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-node': patch
---
The `BackstageIdentityResponse` interface now has an optional `expiresInSeconds` field that can be used to signal session expiration. The `prepareBackstageIdentityResponse` utility will now also read the expiration from the provided token, and include it in the response.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-app-api': minor
---
Fixed two bugs in how the `OAuth2Session` type represents the underlying data. The `expiresAt` and `backstageIdentity` are now both optional, since that's what they are in practice. This is not considered a breaking change since it was effectively a bug in the modelling of the state that this type represents, and the type was not used in any other external contract.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/integration': patch
---
Additional fix for Gitiles auth links
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
Deprecated several exports that are now available from `@backstage/plugin-auth-node` instead.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-catalog-backend-module-azure': patch
'@backstage/plugin-scaffolder-backend': patch
'@backstage/backend-common': patch
---
Use `DefaultAzureDevOpsCredentialsProvider` to retrieve credentials for Azure DevOps.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend': patch
---
Fixed a link to the frontend Backstage plugin that had pointed to itself.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Fixed the plugin and module ID of the alpha `catalogModuleTemplateKind` export.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-app-api': minor
---
The `OAuth` class which is used by all OAuth providers will now consider both the session expiration of both the Backstage identity as well as the upstream identity provider, and refresh the session with either of them is about to expire.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-gitlab-provider': minor
---
New module for `@backstage/plugin-auth-backend` that adds a GitLab auth provider.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend-module-azure': patch
---
Remove duplications from Azure search before committing the new locations to the catalog.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
Added the ability to disable the built-in auth providers by passing `disableDefaultProviderFactories` to `createRouter`.
+14
View File
@@ -0,0 +1,14 @@
---
'@backstage/plugin-search-react': minor
'@backstage/plugin-search': minor
---
The SearchPage component can now be configured via app-config.yaml with default query parameters to define how it behaves when it is first loaded or reset. Check out the following example:
```yaml
search:
query:
pageLimit: 50
```
Acceptable values for `pageLimit` are `10`, `25`, `50` or `100`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-linguist-backend': patch
---
When creating the router using `createRouterFromConfig` or using the plugin for the new backend system the `linguist.useSourceLocation` configuration is now optional.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-code-coverage': patch
---
Use fetchApi to ensure authorization is used when fetching code-coverage data
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
The algorithm used when generating Backstage tokens can be configured via `auth.identityTokenAlgorithm`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-test-utils': patch
---
Extended `mockService` to also include mocked variants, for example `mockServices.lifecycle.mock()`. The returned mocked implementation will have a `factory` property which is a service factory for itself. You can also pass a partial implementation of the service to the mock function to use a mock implementation of specific methods.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/integration': patch
---
Gitiles: Fixed auth prefix issue
+28
View File
@@ -0,0 +1,28 @@
---
'@backstage/plugin-auth-node': minor
---
Introduced a new system for building auth providers for `@backstage/plugin-auth-backend`, which both increases the amount of code re-use across providers, and also works better with the new backend system.
Many existing types have been moved from `@backstage/plugin-auth-backend` in order to avoid a direct dependency on the plugin from modules.
Auth provider integrations are now primarily implemented through a pattern of creating "authenticators", which are in turn specific to each kind of integrations. Initially there are two types: `createOAuthAuthenticator` and `createProxyAuthenticator`. These come paired with functions that let you create the corresponding route handlers, `createOAuthRouteHandlers` and `createProxyAuthRouteHandlers`, as well as provider factories, `createOAuthProviderFactory` and `createProxyAuthProviderFactory`. This new authenticator pattern allows the sign-in logic to be separated from the auth integration logic, allowing it to be completely re-used across all providers of the same kind.
The new provider factories also implement a new declarative way to configure sign-in resolvers, rather than configuration through code. Sign-in resolvers can now be configured through the `resolvers` configuration key, where the first resolver that provides an identity will be used, for example:
```yaml
auth:
providers:
google:
development:
clientId: ...
clientSecret: ...
signIn:
resolvers:
- resolver: emailMatchingUserEntityAnnotation
- resolver: emailLocalPartMatchingUserEntityName
```
These configurable resolvers are created with a new `createSignInResolverFactory` function, which creates a sign-in resolver factory, optionally with an options schema that will be used both when configuring the sign-in resolver through configuration and code.
The internal helpers from `@backstage/plugin-auth-backend` that were used to implement auth providers using passport strategies have now also been made available as public API, through `PassportHelpers` and `PassportOAuthAuthenticatorHelper`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-entity-feedback-backend': patch
---
Improve backend logging if method calls fail
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-plugin-api': minor
---
Added the optional `expiresAt` field that may now be part of a `BackstageIdentityResponse`.
+286
View File
@@ -0,0 +1,286 @@
{
"mode": "pre",
"tag": "next",
"initialVersions": {
"example-app": "0.2.86",
"@backstage/app-defaults": "1.4.2",
"example-backend": "0.2.86",
"@backstage/backend-app-api": "0.5.0",
"@backstage/backend-common": "0.19.2",
"@backstage/backend-defaults": "0.2.0",
"@backstage/backend-dev-utils": "0.1.1",
"example-backend-next": "0.0.14",
"@backstage/backend-openapi-utils": "0.0.3",
"@backstage/backend-plugin-api": "0.6.0",
"@backstage/backend-tasks": "0.5.5",
"@backstage/backend-test-utils": "0.2.0",
"@backstage/catalog-client": "1.4.3",
"@backstage/catalog-model": "1.4.1",
"@backstage/cli": "0.22.10",
"@backstage/cli-common": "0.1.12",
"@backstage/cli-node": "0.1.3",
"@backstage/codemods": "0.1.45",
"@backstage/config": "1.0.8",
"@backstage/config-loader": "1.4.0",
"@backstage/core-app-api": "1.9.1",
"@backstage/core-components": "0.13.4",
"@backstage/core-plugin-api": "1.5.3",
"@backstage/create-app": "0.5.4",
"@backstage/dev-utils": "1.0.18",
"e2e-test": "0.2.6",
"@backstage/errors": "1.2.1",
"@backstage/eslint-plugin": "0.1.3",
"@backstage/integration": "1.6.0",
"@backstage/integration-aws-node": "0.1.5",
"@backstage/integration-react": "1.1.16",
"@backstage/release-manifests": "0.0.9",
"@backstage/repo-tools": "0.3.3",
"@techdocs/cli": "1.4.5",
"techdocs-cli-embedded-app": "0.2.85",
"@backstage/test-utils": "1.4.2",
"@backstage/theme": "0.4.1",
"@backstage/types": "1.1.0",
"@backstage/version-bridge": "1.0.4",
"@backstage/plugin-adr": "0.6.4",
"@backstage/plugin-adr-backend": "0.3.6",
"@backstage/plugin-adr-common": "0.2.12",
"@backstage/plugin-airbrake": "0.3.21",
"@backstage/plugin-airbrake-backend": "0.2.21",
"@backstage/plugin-allure": "0.1.37",
"@backstage/plugin-analytics-module-ga": "0.1.32",
"@backstage/plugin-analytics-module-ga4": "0.1.3",
"@backstage/plugin-analytics-module-newrelic-browser": "0.0.1",
"@backstage/plugin-apache-airflow": "0.2.14",
"@backstage/plugin-api-docs": "0.9.7",
"@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.2",
"@backstage/plugin-apollo-explorer": "0.1.14",
"@backstage/plugin-app-backend": "0.3.48",
"@backstage/plugin-app-node": "0.1.0",
"@backstage/plugin-auth-backend": "0.18.6",
"@backstage/plugin-auth-node": "0.2.17",
"@backstage/plugin-azure-devops": "0.3.3",
"@backstage/plugin-azure-devops-backend": "0.3.27",
"@backstage/plugin-azure-devops-common": "0.3.0",
"@backstage/plugin-azure-sites": "0.1.10",
"@backstage/plugin-azure-sites-backend": "0.1.10",
"@backstage/plugin-azure-sites-common": "0.1.0",
"@backstage/plugin-badges": "0.2.45",
"@backstage/plugin-badges-backend": "0.2.3",
"@backstage/plugin-bazaar": "0.2.12",
"@backstage/plugin-bazaar-backend": "0.2.11",
"@backstage/plugin-bitbucket-cloud-common": "0.2.9",
"@backstage/plugin-bitrise": "0.1.48",
"@backstage/plugin-catalog": "1.12.1",
"@backstage/plugin-catalog-backend": "1.12.0",
"@backstage/plugin-catalog-backend-module-aws": "0.2.3",
"@backstage/plugin-catalog-backend-module-azure": "0.1.19",
"@backstage/plugin-catalog-backend-module-bitbucket": "0.2.15",
"@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.15",
"@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.13",
"@backstage/plugin-catalog-backend-module-gcp": "0.1.0",
"@backstage/plugin-catalog-backend-module-gerrit": "0.1.16",
"@backstage/plugin-catalog-backend-module-github": "0.3.3",
"@backstage/plugin-catalog-backend-module-gitlab": "0.2.4",
"@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.4.1",
"@backstage/plugin-catalog-backend-module-ldap": "0.5.15",
"@backstage/plugin-catalog-backend-module-msgraph": "0.5.7",
"@backstage/plugin-catalog-backend-module-openapi": "0.1.14",
"@backstage/plugin-catalog-backend-module-puppetdb": "0.1.5",
"@backstage/plugin-catalog-backend-module-unprocessed": "0.2.0",
"@backstage/plugin-catalog-common": "1.0.15",
"@internal/plugin-catalog-customized": "0.0.13",
"@backstage/plugin-catalog-graph": "0.2.33",
"@backstage/plugin-catalog-graphql": "0.3.22",
"@backstage/plugin-catalog-import": "0.9.11",
"@backstage/plugin-catalog-node": "1.4.1",
"@backstage/plugin-catalog-react": "1.8.1",
"@backstage/plugin-catalog-unprocessed-entities": "0.1.2",
"@backstage/plugin-cicd-statistics": "0.1.23",
"@backstage/plugin-cicd-statistics-module-gitlab": "0.1.17",
"@backstage/plugin-circleci": "0.3.21",
"@backstage/plugin-cloudbuild": "0.3.21",
"@backstage/plugin-code-climate": "0.1.21",
"@backstage/plugin-code-coverage": "0.2.14",
"@backstage/plugin-code-coverage-backend": "0.2.14",
"@backstage/plugin-codescene": "0.1.16",
"@backstage/plugin-config-schema": "0.1.44",
"@backstage/plugin-cost-insights": "0.12.10",
"@backstage/plugin-cost-insights-common": "0.1.1",
"@backstage/plugin-devtools": "0.1.3",
"@backstage/plugin-devtools-backend": "0.1.3",
"@backstage/plugin-devtools-common": "0.1.3",
"@backstage/plugin-dynatrace": "7.0.1",
"@backstage/plugin-entity-feedback": "0.2.4",
"@backstage/plugin-entity-feedback-backend": "0.1.6",
"@backstage/plugin-entity-feedback-common": "0.1.2",
"@backstage/plugin-entity-validation": "0.1.6",
"@backstage/plugin-events-backend": "0.2.9",
"@backstage/plugin-events-backend-module-aws-sqs": "0.2.3",
"@backstage/plugin-events-backend-module-azure": "0.1.10",
"@backstage/plugin-events-backend-module-bitbucket-cloud": "0.1.10",
"@backstage/plugin-events-backend-module-gerrit": "0.1.10",
"@backstage/plugin-events-backend-module-github": "0.1.10",
"@backstage/plugin-events-backend-module-gitlab": "0.1.10",
"@backstage/plugin-events-backend-test-utils": "0.1.10",
"@backstage/plugin-events-node": "0.2.9",
"@internal/plugin-todo-list": "1.0.16",
"@internal/plugin-todo-list-backend": "1.0.16",
"@internal/plugin-todo-list-common": "1.0.12",
"@backstage/plugin-explore": "0.4.7",
"@backstage/plugin-explore-backend": "0.0.10",
"@backstage/plugin-explore-common": "0.0.1",
"@backstage/plugin-explore-react": "0.0.30",
"@backstage/plugin-firehydrant": "0.2.5",
"@backstage/plugin-fossa": "0.2.53",
"@backstage/plugin-gcalendar": "0.3.17",
"@backstage/plugin-gcp-projects": "0.3.40",
"@backstage/plugin-git-release-manager": "0.3.34",
"@backstage/plugin-github-actions": "0.6.2",
"@backstage/plugin-github-deployments": "0.1.52",
"@backstage/plugin-github-issues": "0.2.10",
"@backstage/plugin-github-pull-requests-board": "0.1.15",
"@backstage/plugin-gitops-profiles": "0.3.39",
"@backstage/plugin-gocd": "0.1.27",
"@backstage/plugin-graphiql": "0.2.53",
"@backstage/plugin-graphql-backend": "0.1.38",
"@backstage/plugin-graphql-voyager": "0.1.6",
"@backstage/plugin-home": "0.5.5",
"@backstage/plugin-home-react": "0.1.2",
"@backstage/plugin-ilert": "0.2.10",
"@backstage/plugin-jenkins": "0.8.3",
"@backstage/plugin-jenkins-backend": "0.2.3",
"@backstage/plugin-jenkins-common": "0.1.18",
"@backstage/plugin-kafka": "0.3.21",
"@backstage/plugin-kafka-backend": "0.2.41",
"@backstage/plugin-kubernetes": "0.10.0",
"@backstage/plugin-kubernetes-backend": "0.11.3",
"@backstage/plugin-kubernetes-common": "0.6.5",
"@backstage/plugin-lighthouse": "0.4.6",
"@backstage/plugin-lighthouse-backend": "0.2.4",
"@backstage/plugin-lighthouse-common": "0.1.2",
"@backstage/plugin-linguist": "0.1.6",
"@backstage/plugin-linguist-backend": "0.4.0",
"@backstage/plugin-linguist-common": "0.1.1",
"@backstage/plugin-microsoft-calendar": "0.1.6",
"@backstage/plugin-newrelic": "0.3.39",
"@backstage/plugin-newrelic-dashboard": "0.2.14",
"@backstage/plugin-nomad": "0.1.2",
"@backstage/plugin-nomad-backend": "0.1.2",
"@backstage/plugin-octopus-deploy": "0.2.3",
"@backstage/plugin-org": "0.6.11",
"@backstage/plugin-org-react": "0.1.10",
"@backstage/plugin-pagerduty": "0.6.2",
"@backstage/plugin-periskop": "0.1.19",
"@backstage/plugin-periskop-backend": "0.1.19",
"@backstage/plugin-permission-backend": "0.5.23",
"@backstage/plugin-permission-common": "0.7.7",
"@backstage/plugin-permission-node": "0.7.11",
"@backstage/plugin-permission-react": "0.4.14",
"@backstage/plugin-playlist": "0.1.13",
"@backstage/plugin-playlist-backend": "0.3.4",
"@backstage/plugin-playlist-common": "0.1.9",
"@backstage/plugin-proxy-backend": "0.3.0",
"@backstage/plugin-puppetdb": "0.1.4",
"@backstage/plugin-rollbar": "0.4.21",
"@backstage/plugin-rollbar-backend": "0.1.45",
"@backstage/plugin-scaffolder": "1.14.2",
"@backstage/plugin-scaffolder-backend": "1.16.0",
"@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.2.1",
"@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.24",
"@backstage/plugin-scaffolder-backend-module-gitlab": "0.2.3",
"@backstage/plugin-scaffolder-backend-module-rails": "0.4.17",
"@backstage/plugin-scaffolder-backend-module-sentry": "0.1.8",
"@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.21",
"@backstage/plugin-scaffolder-common": "1.4.0",
"@backstage/plugin-scaffolder-node": "0.2.0",
"@backstage/plugin-scaffolder-react": "1.5.2",
"@backstage/plugin-search": "1.3.4",
"@backstage/plugin-search-backend": "1.4.0",
"@backstage/plugin-search-backend-module-catalog": "0.1.4",
"@backstage/plugin-search-backend-module-elasticsearch": "1.3.3",
"@backstage/plugin-search-backend-module-explore": "0.1.4",
"@backstage/plugin-search-backend-module-pg": "0.5.9",
"@backstage/plugin-search-backend-module-techdocs": "0.1.4",
"@backstage/plugin-search-backend-node": "1.2.4",
"@backstage/plugin-search-common": "1.2.5",
"@backstage/plugin-search-react": "1.6.4",
"@backstage/plugin-sentry": "0.5.6",
"@backstage/plugin-shortcuts": "0.3.13",
"@backstage/plugin-sonarqube": "0.7.2",
"@backstage/plugin-sonarqube-backend": "0.2.2",
"@backstage/plugin-sonarqube-react": "0.1.7",
"@backstage/plugin-splunk-on-call": "0.4.10",
"@backstage/plugin-stack-overflow": "0.1.19",
"@backstage/plugin-stack-overflow-backend": "0.2.4",
"@backstage/plugin-stackstorm": "0.1.5",
"@backstage/plugin-tech-insights": "0.3.13",
"@backstage/plugin-tech-insights-backend": "0.5.14",
"@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.32",
"@backstage/plugin-tech-insights-common": "0.2.11",
"@backstage/plugin-tech-insights-node": "0.4.6",
"@backstage/plugin-tech-radar": "0.6.7",
"@backstage/plugin-techdocs": "1.6.6",
"@backstage/plugin-techdocs-addons-test-utils": "1.0.17",
"@backstage/plugin-techdocs-backend": "1.6.5",
"@backstage/plugin-techdocs-module-addons-contrib": "1.0.16",
"@backstage/plugin-techdocs-node": "1.7.4",
"@backstage/plugin-techdocs-react": "1.1.9",
"@backstage/plugin-todo": "0.2.23",
"@backstage/plugin-todo-backend": "0.2.0",
"@backstage/plugin-user-settings": "0.7.6",
"@backstage/plugin-user-settings-backend": "0.1.12",
"@backstage/plugin-vault": "0.1.15",
"@backstage/plugin-vault-backend": "0.3.4",
"@backstage/plugin-xcmetrics": "0.2.41",
"@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.0.0",
"@backstage/plugin-auth-backend-module-github-provider": "0.0.0",
"@backstage/plugin-auth-backend-module-google-provider": "0.0.0",
"@backstage/plugin-opencost": "0.1.0"
},
"changesets": [
"calm-cups-smile",
"catalog-everybody-to-the-limit",
"chilly-parrots-yell",
"create-app-1692704146",
"cyan-roses-relate",
"dirty-carrots-notice",
"dirty-years-travel",
"dry-wasps-occur",
"dull-tables-joke",
"eight-radios-listen",
"empty-rings-type",
"fair-paws-flash",
"few-nails-smile",
"fresh-candles-warn",
"great-chairs-swim",
"healthy-tools-count",
"hungry-dots-design",
"late-cows-turn",
"lazy-rice-rule",
"lovely-years-sniff",
"mean-carpets-provide",
"mighty-crabs-cheat",
"new-sheep-cover",
"nice-forks-remain",
"ninety-news-visit",
"old-geese-drive",
"orange-houses-fly",
"pink-cups-rescue",
"poor-years-appear",
"popular-readers-allow",
"renovate-76185f9",
"repo-p-lisa",
"repo-tools-boo-descriptions",
"repo-tools-ci-toldya-so",
"six-wolves-admire",
"slow-ducks-hunt",
"slow-queens-visit",
"smart-islands-jog",
"strange-frogs-count",
"sweet-hairs-complain",
"sweet-pens-hunt",
"warm-llamas-bake",
"warm-panthers-lick",
"yellow-trains-protect"
]
}
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-cost-insights': patch
---
Updated dependency `@types/pluralize` to `^0.0.30`.
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/repo-tools': patch
---
The `generate-catalog-info` command now uses the first listed `CODEOWNER` as Component owner when initially
creating the `catalog-info.yaml` file. It continues to allow any one listed `CODEOWNER` when updating
entity metadata.
@@ -0,0 +1,5 @@
---
'@backstage/repo-tools': patch
---
Fixed a bug with the `generate-catalog-info` command that could cause the `--dry-run` flag to indicate changes to files when no changes would actually be made if the command were run without the flag.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/repo-tools': patch
---
Added a `--ci` flag to the `generate-catalog-info` command. This flag behaves similarly to the same flag on `api-reports`: if `catalog-info.yaml` files would have been added or modified, then the process exits with status code `1`, and instructions are printed.
+23
View File
@@ -0,0 +1,23 @@
---
'@backstage/integration': minor
---
Added `AzureDevOpsCredentialsProvider` to support multiple Azure DevOps organizations and **deprecated** `AzureIntegrationConfig.credential` and `AzureIntegrationConfig.token` in favour of `AzureIntegrationConfig.credentials`. You can now use specific credentials for different Azure DevOps (Server) organizations by specifying the `organizations` field on a credential:
```yaml
integrations:
azure:
- host: dev.azure.com
credentials:
- organizations:
- my-org
- my-other-org
clientId: ${AZURE_CLIENT_ID}
clientSecret: ${AZURE_CLIENT_SECRET}
tenantId: ${AZURE_TENANT_ID}
- organizations:
- yet-another-org
personalAccessToken: ${PERSONAL_ACCESS_TOKEN}
```
See the [Azure integration documentation](https://backstage.io/docs/integrations/azure/locations) for more information.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Added support for the `dev/index` entry point for backend plugins and modules.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-opencost': minor
---
New OpenCost plugin provides an port of the latest OpenCost UI to Backstage with updated dependencies. The plugin's README covers installation and configuration
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend': patch
---
Fix OpenAPI schema for the facets endpoint
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-components': patch
---
Add loading indicator to Table
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-google-provider': minor
---
New module for `@backstage/plugin-auth-backend` that adds a Google auth provider.
+24
View File
@@ -0,0 +1,24 @@
---
'@backstage/config-loader': minor
---
Deep visibility now also applies to values that are not covered by the configuration schema.
For example, given the following configuration schema:
```ts
// plugins/a/config.schema.ts
export interface Config {
/** @deepVisibility frontend */
a?: unknown;
}
// plugins/a/config.schema.ts
export interface Config {
a?: {
b?: string;
};
}
```
All values under `a` are now visible to the frontend, while previously only `a` and `a/b` would've been visible.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/config-loader': patch
---
Do not unnecessarily notify subscribers when no-op updates to config happen
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-github-provider': minor
---
New module for `@backstage/plugin-auth-backend` that adds a GitHub auth provider.
+13
View File
@@ -0,0 +1,13 @@
---
'@backstage/plugin-code-coverage-backend': patch
'@backstage/plugin-tech-insights-backend': patch
'@backstage/plugin-linguist-backend': patch
'@backstage/backend-common': patch
'@backstage/plugin-catalog-backend': patch
'@backstage/backend-tasks': patch
'@backstage/plugin-app-backend': patch
'@backstage/plugin-bazaar-backend': patch
'@backstage/plugin-scaffolder-backend': patch
---
Changes needed to support MySQL
+59 -71
View File
@@ -4,8 +4,10 @@
# The last matching pattern takes precedence.
# https://help.github.com/articles/about-codeowners/
* @backstage/maintainers
*/yarn.lock @backstage/maintainers @backstage-service
* @backstage/maintainers @backstage/reviewers
yarn.lock @backstage/maintainers @backstage/reviewers @backstage-service
*/yarn.lock @backstage/maintainers @backstage/reviewers @backstage-service
/.changeset/*.md
/cypress/src/integration/plugins/techdocs.spec.ts @backstage/techdocs-maintainers
/docs/assets/search @backstage/discoverability-maintainers
/docs/features/search @backstage/discoverability-maintainers
@@ -14,81 +16,67 @@
/packages/cli/src/commands/onboard @backstage/sharks
/packages/techdocs-cli @backstage/techdocs-maintainers
/packages/techdocs-cli-embedded-app @backstage/techdocs-maintainers
/plugins/adr @backstage/maintainers @kuangp
/plugins/adr-* @backstage/maintainers @kuangp
/plugins/allure @backstage/maintainers @deepak-bhardwaj-ps
/plugins/analytics-module-newrelic-browser @backstage/maintainers @jmezach
/plugins/apache-airflow @backstage/maintainers @cmpadden
/plugins/api-docs @backstage/maintainers @backstage/sda-se-reviewers
/plugins/azure-devops @backstage/maintainers @marleypowell @awanlin
/plugins/azure-devops-backend @backstage/maintainers @marleypowell @awanlin
/plugins/azure-devops-common @backstage/maintainers @marleypowell @awanlin
/plugins/bitbucket-cloud-common @backstage/maintainers @pjungermann
/plugins/bitrise @backstage/maintainers @backstage/sda-se-reviewers
/plugins/catalog @backstage/maintainers @backstage/catalog-maintainers
/plugins/catalog-* @backstage/maintainers @backstage/catalog-maintainers
/plugins/catalog-backend-module-aws @backstage/maintainers @backstage/catalog-maintainers @pjungermann
/plugins/catalog-backend-module-bitbucket-cloud @backstage/maintainers @backstage/catalog-maintainers @pjungermann
/plugins/catalog-backend-module-msgraph @backstage/maintainers @backstage/catalog-maintainers @pjungermann
/plugins/catalog-backend-module-puppetdb @backstage/maintainers @backstage/catalog-maintainers @tdabasinskas
/plugins/catalog-graph @backstage/maintainers @backstage/catalog-maintainers @backstage/sda-se-reviewers
/plugins/circleci @backstage/maintainers @adamdmharvey
/plugins/cloudbuild @backstage/maintainers @trivago/ebarrios
/plugins/code-coverage @backstage/maintainers @alde @nissayeva
/plugins/code-coverage-backend @backstage/maintainers @alde @nissayeva
/plugins/cost-insights @backstage/maintainers @backstage/silver-lining
/plugins/cost-insights-* @backstage/maintainers @backstage/silver-lining
/plugins/devtools @backstage/maintainers @awanlin
/plugins/devtools-backend @backstage/maintainers @awanlin
/plugins/devtools-common @backstage/maintainers @awanlin
/plugins/entity-feedback @backstage/maintainers @kuangp
/plugins/entity-feedback-* @backstage/maintainers @kuangp
/plugins/events-backend @backstage/maintainers @pjungermann
/plugins/events-backend-module-aws-sqs @backstage/maintainers @pjungermann
/plugins/events-backend-module-azure @backstage/maintainers @pjungermann
/plugins/events-backend-module-bitbucket-cloud @backstage/maintainers @pjungermann
/plugins/events-backend-module-gerrit @backstage/maintainers @pjungermann
/plugins/events-backend-module-github @backstage/maintainers @pjungermann
/plugins/events-backend-module-gitlab @backstage/maintainers @pjungermann
/plugins/events-backend-test-utils @backstage/maintainers @pjungermann
/plugins/events-node @backstage/maintainers @pjungermann
/plugins/explore @backstage/maintainers @backstage/sda-se-reviewers
/plugins/explore-react @backstage/maintainers @backstage/sda-se-reviewers
/plugins/fossa @backstage/maintainers @backstage/sda-se-reviewers
/plugins/gcalendar @backstage/maintainers @szubster @ptychu @kielosz @alexrybch
/plugins/git-release-manager @backstage/maintainers @erikengervall
/plugins/adr @backstage/maintainers @backstage/reviewers @kuangp
/plugins/adr-* @backstage/maintainers @backstage/reviewers @kuangp
/plugins/api-docs @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/azure-devops @backstage/maintainers @backstage/reviewers @awanlin
/plugins/azure-devops-backend @backstage/maintainers @backstage/reviewers @awanlin
/plugins/azure-devops-common @backstage/maintainers @backstage/reviewers @awanlin
/plugins/bitbucket-cloud-common @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/bitrise @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/catalog @backstage/maintainers @backstage/reviewers @backstage/catalog-maintainers
/plugins/catalog-* @backstage/maintainers @backstage/reviewers @backstage/catalog-maintainers
/plugins/catalog-backend-module-aws @backstage/maintainers @backstage/reviewers @backstage/catalog-maintainers @pjungermann
/plugins/catalog-backend-module-bitbucket-cloud @backstage/maintainers @backstage/reviewers @backstage/catalog-maintainers @pjungermann
/plugins/catalog-backend-module-msgraph @backstage/maintainers @backstage/reviewers @backstage/catalog-maintainers @pjungermann
/plugins/catalog-backend-module-puppetdb @backstage/maintainers @backstage/reviewers @backstage/catalog-maintainers
/plugins/catalog-graph @backstage/maintainers @backstage/reviewers @backstage/catalog-maintainers @backstage/sda-se-reviewers
/plugins/circleci @backstage/maintainers @backstage/reviewers @adamdmharvey
/plugins/code-coverage @backstage/maintainers @backstage/reviewers @alde
/plugins/code-coverage-backend @backstage/maintainers @backstage/reviewers @alde
/plugins/cost-insights @backstage/maintainers @backstage/reviewers @backstage/silver-lining
/plugins/cost-insights-* @backstage/maintainers @backstage/reviewers @backstage/silver-lining
/plugins/devtools @backstage/maintainers @backstage/reviewers @awanlin
/plugins/devtools-backend @backstage/maintainers @backstage/reviewers @awanlin
/plugins/devtools-common @backstage/maintainers @backstage/reviewers @awanlin
/plugins/entity-feedback @backstage/maintainers @backstage/reviewers @kuangp
/plugins/entity-feedback-* @backstage/maintainers @backstage/reviewers @kuangp
/plugins/events-backend @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/events-backend-module-aws-sqs @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/events-backend-module-azure @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/events-backend-module-bitbucket-cloud @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/events-backend-module-gerrit @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/events-backend-module-github @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/events-backend-module-gitlab @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/events-backend-test-utils @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/events-node @backstage/maintainers @backstage/reviewers @pjungermann
/plugins/explore @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/explore-react @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/fossa @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/git-release-manager @backstage/maintainers @backstage/reviewers @erikengervall
/plugins/home @backstage/discoverability-maintainers
/plugins/home-* @backstage/discoverability-maintainers
/plugins/ilert @backstage/maintainers @yacut
/plugins/jenkins @backstage/maintainers @timja
/plugins/jenkins-backend @backstage/maintainers @timja
/plugins/kafka @backstage/maintainers @nirga @andrewthauer
/plugins/kafka-backend @backstage/maintainers @nirga @andrewthauer
/plugins/kubernetes @backstage/maintainers @backstage/kubernetes-maintainers
/plugins/kubernetes-* @backstage/maintainers @backstage/kubernetes-maintainers
/plugins/linguist @backstage/maintainers @awanlin
/plugins/linguist-backend @backstage/maintainers @awanlin
/plugins/linguist-common @backstage/maintainers @awanlin
/plugins/microsoft-calendar @backstage/maintainers @abhay-soni-developer @NishkarshRaj
/plugins/newrelic-dashboard @backstage/maintainers @mufaddal7
/plugins/kafka @backstage/maintainers @backstage/reviewers @andrewthauer
/plugins/kafka-backend @backstage/maintainers @backstage/reviewers @andrewthauer
/plugins/kubernetes @backstage/maintainers @backstage/reviewers @backstage/kubernetes-maintainers
/plugins/kubernetes-* @backstage/maintainers @backstage/reviewers @backstage/kubernetes-maintainers
/plugins/linguist @backstage/maintainers @backstage/reviewers @awanlin
/plugins/linguist-backend @backstage/maintainers @backstage/reviewers @awanlin
/plugins/linguist-common @backstage/maintainers @backstage/reviewers @awanlin
/plugins/permission-* @backstage/permission-maintainers
/plugins/playlist @backstage/maintainers @kuangp
/plugins/playlist-* @backstage/maintainers @kuangp
/plugins/puppetdb @backstage/maintainers @tdabasinskas
/plugins/rollbar @backstage/maintainers @andrewthauer
/plugins/rollbar-backend @backstage/maintainers @andrewthauer
/plugins/scaffolder-backend-module-rails @backstage/maintainers @angeliski
/plugins/scaffolder-backend-module-yeoman @backstage/maintainers @pawelmitka
/plugins/playlist @backstage/maintainers @backstage/reviewers @kuangp
/plugins/playlist-* @backstage/maintainers @backstage/reviewers @kuangp
/plugins/rollbar @backstage/maintainers @backstage/reviewers @andrewthauer
/plugins/rollbar-backend @backstage/maintainers @backstage/reviewers @andrewthauer
/plugins/search @backstage/discoverability-maintainers
/plugins/search-* @backstage/discoverability-maintainers
/plugins/sonarqube @backstage/maintainers @backstage/sda-se-reviewers
/plugins/sonarqube @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/stack-overflow @backstage/discoverability-maintainers
/plugins/stack-overflow-backend @backstage/discoverability-maintainers
/plugins/techdocs @backstage/techdocs-maintainers
/plugins/techdocs-* @backstage/techdocs-maintainers
/plugins/user-settings-backend @backstage/maintainers @backstage/sda-se-reviewers
/tech-insights-backend @backstage/maintainers @xantier @iain-b
/tech-insights-backend-module-jsonfc @backstage/maintainers @xantier @iain-b
/tech-insights-tech-insights-common @backstage/maintainers @xantier @iain-b
/tech-insights-tech-insights-node @backstage/maintainers @xantier @iain-b
yarn.lock @backstage/maintainers @backstage-service
/plugins/user-settings-backend @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers
/plugins/tech-insights-backend @backstage/maintainers @backstage/reviewers @xantier
/plugins/tech-insights-backend-module-jsonfc @backstage/maintainers @backstage/reviewers @xantier
/plugins/tech-insights-tech-insights-common @backstage/maintainers @backstage/reviewers @xantier
/plugins/tech-insights-tech-insights-node @backstage/maintainers @backstage/reviewers @xantier
@@ -280,3 +280,7 @@ gocd:
permission:
enabled: true
search:
query:
pageLimit: 50
+2 -2
View File
@@ -30,7 +30,7 @@ jobs:
--remote-repo-url=https://github.com/backstage/backstage
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
NODE_OPTIONS: --max-old-space-size=4096
NODE_OPTIONS: --max-old-space-size=7168
# Above we run the `monitor` command, this runs the `test` command which is
# the one that generates the SARIF report that we can upload to GitHub.
@@ -45,7 +45,7 @@ jobs:
--sarif-file-output=snyk.sarif
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
NODE_OPTIONS: --max-old-space-size=4096
NODE_OPTIONS: --max-old-space-size=7168
- name: Upload Snyk report
uses: github/codeql-action/upload-sarif@v2
with:
@@ -27,3 +27,11 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
HUSKY: '0'
- name: Discord notification
if: ${{ failure() }}
uses: Ilshidur/action-discord@0.3.2
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
with:
args: 'Version Packages Sync Failed https://github.com/{{GITHUB_REPOSITORY}}/actions/runs/{{GITHUB_RUN_ID}}'
+2
View File
@@ -4,6 +4,8 @@ on:
types: [opened, synchronize, reopened, closed]
paths-ignore:
- 'microsite/**'
- 'storybook/**'
- 'contrib/**'
- '*.md'
jobs:
+9 -4
View File
@@ -90,10 +90,15 @@ Team: @backstage/techdocs-maintainers
Scope: The TechDocs plugin and related tooling
| Name | Organization | Team | GitHub | Discord |
| ------------------------ | ------------ | ------------ | ------------------------------------------------ | ------------------ |
| Morgan Bentell | Spotify | Pulp Fiction | [agentbellnorm](http://github.com/agentbellnorm) | morganbentell#9030 |
| Raghunandan Balachandran | Spotify | Pulp Fiction | [soapraj](http://github.com/soapraj) | raghunandanb#1114 |
| Name | Organization | Team | GitHub | Discord |
| ------------------------ | ------------ | ------- | ------------------------------------------------- | ------------------- |
| Alex Lorenzi | Spotify | ProTean | [AlexLorenzi](https://github.com/AlexLorenzi) | `alexlorenzi` |
| Bond Yan | Spotify | ProTean | [byan1197](https://github.com/byan1197) | `bondify` |
| Jackson Chen | Spotify | ProTean | [PeaWarrior](https://github.com/PeaWarrior) | `jacksonc#3322` |
| John Philip | Spotify | ProTean | [johnphilip283](https://github.com/johnphilip283) | `john_philip#2399` |
| Morgan Bentell | Spotify | ProTean | [agentbellnorm](http://github.com/agentbellnorm) | `morganbentell` |
| Raghunandan Balachandran | Spotify | BUX | [soapraj](http://github.com/soapraj) | `raghunandanb#1114` |
| Sydney Achinger | Spotify | ProTean | [squid-ney](https://github.com/squid-ney) | - |
## Incubating Project Areas
+9
View File
@@ -20,6 +20,14 @@ When reviewing pull requests it's important to consider our [versioning policy a
One other thing to keep in mind, especially when merging pull requests, is where in the release cycle we're currently at. In particular you want to avoid merging any large or risky changes towards the end of each release cycle. If there is a change that is ready to be merged, but you want to hold off until the next main line release, then you can label it with the `merge-after-release` label.
## Configuration
Pull requests that have [configuration related](https://backstage.io/docs/conf/defining) changes or additions need some extra consideration.
- Every configuration field consumed by code should have a corresponding `config.d.ts` declaration.
- Carefully consider the `@visibility` of configuration fields in the schema. The default is `backend`. Take extra care that sensitive/secret fields are marked as `@visibility secret` so that they don't accidentally leak. Also ensure that fields that the frontend wants to consume are marked as `@visibility frontend`, otherwise they can't be sent to the browser at all.
- Check that the `config.d.ts` is mentioned in the consuming package's `package.json` as illustrated [in the docs](https://backstage.io/docs/conf/defining). Otherwise it won't get packaged and picked up by the runtime.
## Changesets
We use changesets to track changes in all published packages. Changesets both define what should go into the changelog of each package, but also what kind of version bump should be done for the next release.
@@ -52,6 +60,7 @@ Some things that changeset should NOT contain are:
- Information related to a different package.
- A large amount of content, consider for example a separate migration guide instead, either in the package README or [./docs/](./docs/), and then link to that instead.
- Documentation - changesets can describe new features, but it should not be relied on for documenting them. Documentation should either be placed in [TSDoc](https://tsdoc.org) comments, package README, or [./docs/](./docs/).
- Diffs of internal code, for example mirroring what the pull request changes _inside_ a plugin rather than public surfaces. This is not of interest to the reader of a package changelog. Sometimes, however, a small and concise diff can be used in a changeset to illustrate changes that the user will have to make in _their own_ Backstage installation as part of an upgrade, specifically when breaking changes are made to a package.
### When is a changeset needed?
@@ -29,7 +29,7 @@ In the AWS console, configure ALB Authentication:
- Select `OIDC` under `Authenticate`
- Set `Issuer` to `https://login.microsoftonline.com/{TENANT_ID}/v2.0`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App.
- Set `Authorization endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/authorize`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App.
- Set `Token endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/authorize`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App.
- Set `Token endpoint` to `https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token`, replacing `{TENANT_ID}` with the value of `Directory (tenant) ID` of the AAD App.
- Set `User info endpoint` to `https://graph.microsoft.com/oidc/userinfo`
- Set `Client ID` to the AAD App `Application (client) Id`
- Set `Client secret` to the AAD APP `client secret`
+18 -18
View File
@@ -15,35 +15,35 @@ There are multiple ways to contribute to making Backstage more accessible, you'l
If your plugin lives in the [Backstage main repository](https://github.com/backstage/backstage/) you can modify the [urls in the Lighthouse config](https://github.com/backstage/backstage/blob/39ba2284d73885b7ca8290cb38e2b1e4d983c8d6/lighthouserc.js#L19-L34) to run the Lighthouse checks on urls where your plugin exists as well. E.g.
```diff
ci: {
collect: {
url: [
ci: {
collect: {
url: [
/** Software Catalog */
'http://localhost:3000/catalog',
'http://localhost:3000/catalog-import',
'http://localhost:3000/catalog/default/component/backstage',
...
+ /** Your plugin paths */
+ 'http://localhost:3000/your-plugin-path,
/** Software Catalog */
'http://localhost:3000/catalog',
'http://localhost:3000/catalog-import',
'http://localhost:3000/catalog/default/component/backstage',
],
settings: {
...
],
settings: {
...
},
...
},
assert: {
},
...
},
},
},
assert: {
...
},
},
```
To make sure the [Accessibility Github workflow](https://github.com/backstage/backstage/blob/master/.github/workflows/verify_accessibility.yml) is running when changes are made to your plugin folders, modify the [list of paths](https://github.com/backstage/backstage/blob/10759b6ad2561bd86183ad940256f9a309c7a6b0/.github/workflows/verify_accessibility.yml#L7-L16).
To make sure the [Accessibility GitHub workflow](https://github.com/backstage/backstage/blob/master/.github/workflows/verify_accessibility.yml) is running when changes are made to your plugin folders, modify the [list of paths](https://github.com/backstage/backstage/blob/10759b6ad2561bd86183ad940256f9a309c7a6b0/.github/workflows/verify_accessibility.yml#L7-L16).
### Run the Lighthouse CLI locally when developing new features
If you want to use the Lighthouse CLI and run the checks based on the config you can use the following command:
```
```shell
yarn dlx @lhci/cli@0.11.x autorun
```
@@ -85,6 +85,8 @@ declare a dependency on the plugin package itself. This is to avoid a direct
dependency and potentially cause duplicate installations of the plugin package,
while duplicate installations of library packages should always be supported.
To create a Backend module, run `yarn new`, select `backend-module`, and fill out the rest of the prompts. This will create a new package at `plugins/<pluginId>-backend-module-<moduleId>`.
The following is an example of how to create a module that adds a new processor
using the `catalogProcessingExtensionPoint`:
@@ -118,7 +118,7 @@ describe('MyDatabaseClass', () => {
// "physical" databases to test against is much costlier than creating the
// "logical" databases within them that the individual tests use.
const databases = TestDatabases.create({
ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3'],
ids: ['POSTGRES_13', 'POSTGRES_9', 'SQLITE_3', 'MYSQL_8'],
});
// Just an example of how to conveniently bundle up the setup code
+2 -2
View File
@@ -23,9 +23,9 @@ compound reference structure.
## String References
This is the most common alternative, that is used in almost all circumstances.
This is the most common alternative and is used in almost all circumstances.
The string is on the form `[<kind>:][<namespace>/]<name>`, that is, it is
The string is of the form `[<kind>:][<namespace>/]<name>`. That is, it is
composed of between one and three parts in this specific order, without any
additional encoding:
+43 -13
View File
@@ -19,10 +19,10 @@ Using a service principal:
integrations:
azure:
- host: dev.azure.com
credential:
clientId: ${CLIENT_ID}
clientSecret: ${CLIENT_SECRET}
tenantId: ${TENANT_ID}
credentials:
- clientId: ${AZURE_CLIENT_ID}
clientSecret: ${AZURE_CLIENT_SECRET}
tenantId: ${AZURE_TENANT_ID}
```
Using a managed identity:
@@ -31,8 +31,8 @@ Using a managed identity:
integrations:
azure:
- host: dev.azure.com
credential:
clientId: ${CLIENT_ID}
credentials:
- clientId: ${AZURE_CLIENT_ID}
```
Using a personal access token (PAT):
@@ -41,24 +41,54 @@ Using a personal access token (PAT):
integrations:
azure:
- host: dev.azure.com
token: ${AZURE_TOKEN}
credentials:
- personalAccessToken: ${PERSONAL_ACCESS_TOKEN}
```
You can use specific credentials for different Azure DevOps organizations by specifying the `organizations` field on the credential:
```yaml
integrations:
azure:
- host: dev.azure.com
credentials:
- organizations:
- my-org
- my-other-org
clientId: ${AZURE_CLIENT_ID}
clientSecret: ${AZURE_CLIENT_SECRET}
tenantId: ${AZURE_TENANT_ID}
- organizations:
- another-org
clientId: ${AZURE_CLIENT_ID}
- organizations:
- yet-another-org
personalAccessToken: ${PERSONAL_ACCESS_TOKEN}
```
If you do not specify the `organizations` field the credential will be used for all organizations for which no other credential is configured.
> Note: An Azure DevOps provider is added automatically at startup for
> convenience, so you only need to list it if you want to supply a
> [token](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate),
> [personalAccessToken](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate),
> a [service principal](https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/service-principal-managed-identity),
> or a [managed identity](https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/service-principal-managed-identity)
The configuration is a structure with these elements:
- `host`: The DevOps host; only `dev.azure.com` is supported.
- `token` (optional): A personal access token as expected by Azure DevOps.
- `credential`: (optional): A service principal or managed identity
- `credentials`: (optional): A service principal, managed identity, or personal access token
The `credentials` element is a structure with these elements:
- `organizations`: (optional): A list of organizations for which this credential should be used. If not specified the credential will be used for all organizations for which no other credential is configured.
- `clientId`: The client ID of the service principal or managed identity (required for service principal and managed identities)
- `clientSecret`: The client secret of the service principal (required for service principal)
- `tenantId`: The tenant ID of the service principal (required for service principal)
- `personalAccessToken`: The personal access token (required for personal access token)
> Note:
>
> - `token` and `credential` are mutually exclusive.
> - You cannot use a service principal or managed identity for Azure DevOps Server (on-premises) organizations
> - You can only use a service principal or managed identity for Azure AD backed Azure DevOps organizations
> - The token should just be provided as the raw token generated by Azure DevOps using the format `raw_token` with no base64 encoding. Formatting and base64'ing is handled by dependent libraries handling the Azure DevOps API
> - You can only specify one credential per host without any organizations specified
> - The personal access token should just be provided as the raw token generated by Azure DevOps using the format `raw_token` with no base64 encoding. Formatting and base64'ing is handled by dependent libraries handling the Azure DevOps API
@@ -37,7 +37,7 @@ You can access the currently selected entity using the backstage api
import { useEntity } from '@backstage/plugin-catalog-react';
export const MyPluginEntityContent = () => {
const { entity, loading, error, refresh } = useEntity();
const entity = useEntity();
// Do something with the entity data...
};
+16
View File
@@ -18,6 +18,22 @@ PR is merged. This is typically done every Tuesday around noon CET.
**This emergency release process is intended only for the Backstage
maintainers.**
Given one or more PRs towards master that we want to create a patch release for, run the following script from the repo root:
```bash
./scripts/patch-release-for-pr.js <pr-number> <pr-number-2> ...
```
Wait until the script has finished executing, at the end of the output you will find a link of the format `https://github.com/backstage/backstage/compare/patch/...`. Open this link in your browser to create a PR for the patch release. Finish the sentence "This release fixes an issue where..." and create the PR.
Once the PR has been approved and merged, the patch release will be automatically created. The patch release is complete when a notification has been posted to Discord in the `#announcements` channel. Keep an eye on "Deploy Packages" workflow and re-trigger if it fails. It is safe to re-trigger any part of this workflow, including the release step.
If the above process fails, you can fall back to the manual process documented below.
### Old Process
This is the old and manual process that we used before the patch script, provided here as a reference:
For this example we will be using the `@backstage/plugin-foo` package as an
example and assume that it is currently version `6.5.0` in the master branch.
File diff suppressed because it is too large Load Diff
+11
View File
@@ -32,6 +32,17 @@ module.exports = {
'http://localhost:3000/create/templates/default/react-ssr-template',
/** Search */
'http://localhost:3000/search',
/** Miscellaneous */
'http://localhost:3000/settings',
/** plugin-devtools */
'http://localhost:3000/devtools',
'http://localhost:3000/devtools/config',
/** plugin-explore */
'http://localhost:3000/explore',
'http://localhost:3000/explore/groups',
'http://localhost:3000/explore/tools',
/** plugin-tech-radar */
'http://localhost:3000/tech-radar',
],
settings: {
onlyCategories: ['accessibility'],
@@ -0,0 +1,206 @@
---
# prettier-ignore
title: "Expedia Group shares Backstage proof of value metrics 2.0"
author: Guillermo Manzo, Expedia Group
authorURL: https://www.linkedin.com/in/guillermomanzo
---
![backstage header](assets/2023-08-17/header.png)
_Editor's Note: In this post, Expedia Group provides a follow-up to their initial Q4 2021 [post on how they measure Backstage proof of value](https://backstage.spotify.com/blog/measuring-backstage-proof-of-value-at-expedia/).
We're grateful to the Expedia Group team for sharing their processes, revised proof of value metrics, and adaptations to their approach over time in hopes of providing a successful framework for the rest of the Backstage community._
[Expedia Group's](https://expediagroup.com) mission is to power global travel for everyone, everywhere.
This vision is made possible through Expedia Group's massive platform, which connects 168 million loyalty members, 50 thousand B2B partners, 3 million properties and 500 airlines, car rentals and cruise lines across the globe. In short, the scale of our platform is enormous, which means that we need to scale our engineering capabilities as well so we can continue to provide seamless experiences to our travelers and partners.
{/* truncate */}
In August 2020, we adopted Backstage to enhance our foundational platform capabilities and reduce developer friction in the process. Its framework proved scalable for us and as EG's platform evolved, so did our application of Backstage. Since our [initial share about our Backstage deployment](https://backstage.spotify.com/blog/measuring-backstage-proof-of-value-at-expedia/), we've continued to follow our process of:
- Syncing Expedia Group's internal Developer Journey phases by key DevOps processes and Software Delivery Life Cycle (SDLC) milestones (POC, Alpha, Beta, etc).
- Identifying Developer Jobs to be Done (JTBD) by our Internal Developer Journey phases
- Aligning developer JTBD's to proof of value (PoV) metrics.
In the diagram below, you can see how we distilled these processes into Backstage PoV metrics.
![backstage pov metrics](assets/2023-08-17/table.png)
To ground ourselves in the evolving developer and Backstage landscape at Expedia Group, we constantly ask ourselves, "How can we continue to show the value of Backstage to our customers and the Developer Community?" To fully answer this question, we adapted our initial proof of value metrics to reinforce our alignment to the current landscape of the Expedia Group developer journey.
## Expedia Group proof of value metrics 2.0
We are excited to share our PoV metrics because it affirms our investment in Backstage for Expedia Group's Backstage users and provides a compelling metrics-based answer on why more organizations should consider adopting it.
As our Backstage application matured, we updated our PoV metrics and aligned our 2023 roadmap to reflect these changes. Below, we highlight key wins from 2022 and outline our long-term vision for each metric.
<table>
<thead>
<tr>
<th>PoV Metric</th>
<th>Description</th>
<th>2022 Key Win(s)</th>
<th>Long-Term Vision</th>
</tr>
</thead>
<tbody>
<tr>
<td>"Ship on Day One" / onboarding metrics</td>
<td>
<p>
A metric used to determine an engineer's readiness to develop at EG
during their onboarding process.
</p>
<p>
It measures the time from first commit to deploying code in
production, using a "Hello World Template"
</p>
</td>
<td>
<ul>
<li>
850+ engineers went through the “Ship on Day One” Bootcamp when
first joining Expedia Group
</li>
<li>
We had a success rate of ~95% of engineers completing bootcamp on
first try
</li>
<li>7,000+ components created or onboarded</li>
<li>4-min average per app creation/onboarding</li>
</ul>
</td>
<td>
<ul>
<li>
Develop full onboarding curriculum coverage for all critical
capabilities offered within EG - Example: performance and quality
management, pipeline management, etc.
</li>
<li>
Create an end-to-end guided tour of the EG Developer Journey w/
functional training
</li>
</ul>
</td>
</tr>
<tr>
<td>
Reduce context switching through integration with core EG capabilities
</td>
<td>
Through plugins, tool integration, reduces context-switching as
engineers will not need to toggle between multiple tools
</td>
<td>
<ul>
<li>
15%+ of internal developer tools are integrated within Backstage,
reducing the amount of context-switching needed
</li>
<li>
4000+ unique users using Backstage for ~20 min on average a day.
</li>
</ul>
</td>
<td>
<ul>
<li>
End-to-end integration with EG paved road tools and Backstage to
support increased developer productivity
</li>
<li>
Drive broader adoption to have all EG employees using Backstage to
manage their SDLC and to build internal UIs using plugins
</li>
</ul>
</td>
</tr>
<tr>
<td>Improve search results relevance</td>
<td>
Intuitive search capabilities to surface relevant Backstage content like
TechDocs, entities, tools, etc.
</td>
<td>
<ul>
<li>Enabled global search functionality throughout Backstage</li>
<li>
<p>Contributed to the open source Backstage Search platform</p>
</li>
</ul>
</td>
<td>
<ul>
<li>Engine optimization/ranking improvement</li>
<li>Visualize key search metrics to support improvements</li>
<li>Chat + AI integration with chat-based interfaces</li>
</ul>
</td>
</tr>
<tr>
<td>Technical documentation reach</td>
<td>
Number of developers leveraging TechDocs for all services within EG
</td>
<td>
<ul>
<li>500+ services tied with TechDocs</li>
<li>50,000+ average monthly TechDoc views</li>
</ul>
</td>
<td>
<ul>
<li>
All Backstage entities leveraging TechDocs to enable a centralized
documentation portal integrated with the Software Catalog
</li>
<li>
Quality/governance and gamification to support users and
contributors
</li>
<li>
More TechDocs and mkdocs add-ons to compliment the core capabilities
and drive usability of documentation on Backstage
</li>
</ul>
</td>
</tr>
<tr>
<td>Developer Experience community engagement</td>
<td>Enhance Backstage through community engagement</td>
<td>
<ul>
<li>
Diverse contributions to Backstage open source focused on search and
discovery - 10+
</li>
<li>Community engagement through internal case studies, and blogs</li>
</ul>
</td>
<td>
<ul>
<li>
Continuous contributions to open-source Backstage, focused on plugin
administration, driving documentation adoption, and improved UX
around core capabilities
</li>
<li>
Strategic community engagements to enhance the platform's usability
and long-term confidence in adopting Backstage
</li>
<li>
Event participation and storytelling around EG's Backstage journey
</li>
</ul>
</td>
</tr>
</tbody>
</table>
## YMMV: Your Metrics May Vary!
Measuring the value of Backstage will vary depending on your organization's needs and priorities. As an early adopter of Backstage, we hope the Expedia Group PoV metrics provide a helpful framework for understanding how Backstage can be used to improve developer productivity, collaboration, and knowledge sharing.
We look forward to sharing future updates with the community as we continue to embrace a continuous improvement approach to Backstage. If you missed it, you can read about where we started in our [initial proof of value metrics](https://backstage.spotify.com/blog/measuring-backstage-proof-of-value-at-expedia/) back in 2021.
_Read more about Expedia's tech journey on [their Medium Blog](https://medium.com/expedia-group-tech)_
Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

@@ -4,7 +4,7 @@ author: Solo.io
authorUrl: https://solo.io
category: Infrastructure
description: View, test, and manage your Gloo Platform Portal APIs through our Backstage plugin.
documentation: https://github.com/solo-io/dev-portal-backstage-public#readme
documentation: https://github.com/solo-io/backstage-plugins-overview#readme
iconUrl: /img/solo-io-glooy-circle.png.webp
npmPackageName: '@solo.io/dev-portal-backstage-plugin'
addedDate: '2023-05-19'
+1 -1
View File
@@ -47,7 +47,7 @@
"@types/react": "^17",
"@types/react-dom": "^17"
},
"version": "1.17.0",
"version": "1.18.0-next.0",
"dependencies": {
"@backstage/errors": "workspace:^",
"@manypkg/get-packages": "^1.1.3"
+11
View File
@@ -1,5 +1,16 @@
# @backstage/app-defaults
## 1.4.3-next.0
### Patch Changes
- Updated dependencies
- @backstage/core-app-api@1.10.0-next.0
- @backstage/core-plugin-api@1.6.0-next.0
- @backstage/core-components@0.13.5-next.0
- @backstage/theme@0.4.1
- @backstage/plugin-permission-react@0.4.15-next.0
## 1.4.2
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/app-defaults",
"description": "Provides the default wiring of a Backstage App",
"version": "1.4.2",
"version": "1.4.3-next.0",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
+1
View File
@@ -0,0 +1 @@
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
+3
View File
@@ -0,0 +1,3 @@
# example-app-next
This package is an example of a Backstage application.
+108
View File
@@ -0,0 +1,108 @@
app:
packages: 'all' # ✨
extensions:
- core.router
- graphiql.page:
config:
path: /
# - core.signInPage:
# props:
# provider:
# id: google
# title: Google
# message: Sign In using Google
# apiRef: googleAuthApiRef # ???
# - core.nav:
# config:
# logo: assets/logo.png
# layout:
# - label: Search
# icon: search
# to: /search
# items:
# - point: search
# - type: divider
# - label: Menu
# icon: menu
# items:
# - label: Home
# icon: home
# to: /catalog
# - label: Create...
# icon: create
# to: /create
# - type: divider
# - type: scroll-wrapper
# items:
# - label: Tech Radar
# icon: map
# to: /tech-radar
# - label: GraphiQL
# icon: graphiql
# to: /graphiql
# - type: divider
# - point: shortcuts
# - type: space
# - type: divider
# - label: Settings
# icon: avatar
# to: /settings
# items:
# - point: settings
# - core.nav/search: '@backstage/plugin-search#SidebarSearchModal'
# - core.nav/shortcuts:
# use: '@backstage/plugin-shortcuts#Shortcuts'
# config:
# allowExternalLinks: true
# - core.nav/settings: '@backstage/plugin-user-settings#SidebarSettings'
# - core.pages.index:
# at:
# point: core.routes
# config:
# path: /
# use: 'react-router-dom#Navigate'
# config:
# to: /catalog
# - scaffolder.page:
# config:
# groups:
# - title: Recommended
# filter:
# entity.metadata.tags: recommended
# - scaffolder.page/fields: '@backstage/plugin-scaffolder#LowerCaseValuePickerFieldExtension'
# - scaffolder.page/layout: '@backstage/plugin-scaffolder#TwoColumnLayout'
# - search.page/content: 'app#customSearchPage' # custom search page from somewhere
# - user-settings.page.routes.advanced:
# at:
# point: user-settings.page/routes
# config:
# title: Advanced
# path: /advanced
# use: '@backstage/plugin-user-settings#AdvancedSettings'
# - entity.card.orphanWarning
# - entity.card.processingErrors
# - entity.card.about
# - entity.card.catalogGraph
# - entity.card.pagerDuty
# - entity.card.links
# - entity.card.labels
# - entity.card.githubInsightsLanguages
# - entity.card.githubInsightsReleases
# - entity.card.githubInsightsReadme:
# config:
# maxHeight: 350 # Throwing this config in to have an example, but in practice rely on default
# - entity.card.subcomponentsCard
# - entity.card.userProfile
# - entity.card.ownership
# - entity.card.likeDislikeRatings
# - entity.content.dependsOnComponents
# - entity.content.codeInsights
# - entity.content.todo
# - entity.content.feedbackResponse
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 69 KiB

+143
View File
@@ -0,0 +1,143 @@
{
"name": "example-app-next",
"version": "0.0.0",
"private": true,
"backstage": {
"role": "frontend"
},
"bundled": true,
"dependencies": {
"@backstage/app-defaults": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/cli": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/core-app-api": "workspace:^",
"@backstage/core-components": "workspace:^",
"@backstage/core-plugin-api": "workspace:^",
"@backstage/frontend-app-api": "workspace:^",
"@backstage/frontend-plugin-api": "workspace:^",
"@backstage/integration-react": "workspace:^",
"@backstage/plugin-adr": "workspace:^",
"@backstage/plugin-airbrake": "workspace:^",
"@backstage/plugin-apache-airflow": "workspace:^",
"@backstage/plugin-api-docs": "workspace:^",
"@backstage/plugin-azure-devops": "workspace:^",
"@backstage/plugin-azure-sites": "workspace:^",
"@backstage/plugin-badges": "workspace:^",
"@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-catalog-graph": "workspace:^",
"@backstage/plugin-catalog-import": "workspace:^",
"@backstage/plugin-catalog-react": "workspace:^",
"@backstage/plugin-catalog-unprocessed-entities": "workspace:^",
"@backstage/plugin-circleci": "workspace:^",
"@backstage/plugin-cloudbuild": "workspace:^",
"@backstage/plugin-code-coverage": "workspace:^",
"@backstage/plugin-cost-insights": "workspace:^",
"@backstage/plugin-devtools": "workspace:^",
"@backstage/plugin-dynatrace": "workspace:^",
"@backstage/plugin-entity-feedback": "workspace:^",
"@backstage/plugin-explore": "workspace:^",
"@backstage/plugin-gcalendar": "workspace:^",
"@backstage/plugin-gcp-projects": "workspace:^",
"@backstage/plugin-github-actions": "workspace:^",
"@backstage/plugin-gocd": "workspace:^",
"@backstage/plugin-graphiql": "workspace:^",
"@backstage/plugin-home": "workspace:^",
"@backstage/plugin-jenkins": "workspace:^",
"@backstage/plugin-kafka": "workspace:^",
"@backstage/plugin-kubernetes": "workspace:^",
"@backstage/plugin-lighthouse": "workspace:^",
"@backstage/plugin-linguist": "workspace:^",
"@backstage/plugin-linguist-common": "workspace:^",
"@backstage/plugin-microsoft-calendar": "workspace:^",
"@backstage/plugin-newrelic": "workspace:^",
"@backstage/plugin-newrelic-dashboard": "workspace:^",
"@backstage/plugin-octopus-deploy": "workspace:^",
"@backstage/plugin-org": "workspace:^",
"@backstage/plugin-pagerduty": "workspace:^",
"@backstage/plugin-permission-react": "workspace:^",
"@backstage/plugin-playlist": "workspace:^",
"@backstage/plugin-puppetdb": "workspace:^",
"@backstage/plugin-rollbar": "workspace:^",
"@backstage/plugin-scaffolder": "workspace:^",
"@backstage/plugin-scaffolder-react": "workspace:^",
"@backstage/plugin-search": "workspace:^",
"@backstage/plugin-search-common": "workspace:^",
"@backstage/plugin-search-react": "workspace:^",
"@backstage/plugin-sentry": "workspace:^",
"@backstage/plugin-shortcuts": "workspace:^",
"@backstage/plugin-stack-overflow": "workspace:^",
"@backstage/plugin-stackstorm": "workspace:^",
"@backstage/plugin-tech-insights": "workspace:^",
"@backstage/plugin-tech-radar": "workspace:^",
"@backstage/plugin-techdocs": "workspace:^",
"@backstage/plugin-techdocs-module-addons-contrib": "workspace:^",
"@backstage/plugin-techdocs-react": "workspace:^",
"@backstage/plugin-todo": "workspace:^",
"@backstage/plugin-user-settings": "workspace:^",
"@backstage/theme": "workspace:^",
"@internal/plugin-catalog-customized": "workspace:^",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.61",
"@octokit/rest": "^19.0.3",
"@oriflame/backstage-plugin-score-card": "^0.7.0",
"@roadiehq/backstage-plugin-buildkite": "^2.0.8",
"@roadiehq/backstage-plugin-github-insights": "^2.0.5",
"@roadiehq/backstage-plugin-github-pull-requests": "^2.2.7",
"@roadiehq/backstage-plugin-travis-ci": "^2.0.5",
"history": "^5.0.0",
"lodash": "^4.17.21",
"prop-types": "^15.7.2",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router": "^6.3.0",
"react-router-dom": "^6.3.0",
"react-use": "^17.2.4",
"zen-observable": "^0.10.0"
},
"devDependencies": {
"@backstage/test-utils": "workspace:^",
"@testing-library/cypress": "^9.0.0",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/jquery": "^3.3.34",
"@types/node": "^16.11.26",
"@types/react": "*",
"@types/react-dom": "*",
"@types/zen-observable": "^0.8.0",
"cross-env": "^7.0.0",
"cypress": "^10.0.0",
"eslint-plugin-cypress": "^2.10.3",
"start-server-and-test": "^1.10.11"
},
"scripts": {
"start": "backstage-cli package start --config ../../app-config.yaml --config app-config.yaml",
"build": "backstage-cli package build",
"clean": "backstage-cli package clean",
"test": "backstage-cli package test",
"lint": "backstage-cli package lint",
"test:e2e": "start-server-and-test start http://localhost:3000 cy:dev",
"test:e2e:ci": "start-server-and-test start http://localhost:3000 cy:run",
"cy:dev": "cypress open",
"cy:run": "cypress run"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"files": [
"dist"
],
"license": "Apache-2.0"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" id="favicon" viewBox="0 0 337.46 428.5"><title>Backstage favicon</title><style>#favicon path{fill:#121212}@media (prefers-color-scheme:dark){#favicon path{fill:#7df3e1}}</style><path d="M303,166.05a80.69,80.69,0,0,0,13.45-10.37c.79-.77,1.55-1.53,2.3-2.3a83.12,83.12,0,0,0,7.93-9.38A63.69,63.69,0,0,0,333,133.23a48.58,48.58,0,0,0,4.35-16.4c1.49-19.39-10-38.67-35.62-54.22L198.56,0,78.3,115.23,0,190.25l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.22,49.22,0,0,0-6.8-8.87A89.17,89.17,0,0,0,259,178.29h.15a85.08,85.08,0,0,0,31-5.79A80.88,80.88,0,0,0,303,166.05ZM202.45,225.86c-19.32,18.51-50.4,21.23-75.7,5.9L51.61,186.15l67.45-64.64,76.41,46.38C223,184.58,221.49,207.61,202.45,225.86Zm8.93-82.22-70.65-42.89L205.14,39,274.51,81.1c25.94,15.72,29.31,37,10.55,55A60.69,60.69,0,0,1,211.38,143.64Zm29.86,190c-19.57,18.75-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,282.52v24.67L108.6,373.1a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.27,87.27,0,0,1,241.24,333.68Zm0-39c-19.57,18.75-46.17,29.08-74.88,29.08a123.81,123.81,0,0,1-64.1-18.19L0,243.53v24.68l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.5v-1.78A87.27,87.27,0,0,1,241.24,294.7Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.81,123.81,0,0,1-64.1-18.19L0,204.55v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.82A86.09,86.09,0,0,1,241.24,255.71Zm83.7,25.74a94.15,94.15,0,0,1-60.2,25.86h0V334a81.6,81.6,0,0,0,51.74-22.37c14-13.38,21.14-28.11,21-42.64v-2.19A94.92,94.92,0,0,1,324.94,281.45Zm-83.7,91.21c-19.57,18.76-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,321.5v24.68l108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A86.29,86.29,0,0,1,241.24,372.66ZM327,162.45c-.68.69-1.35,1.38-2.05,2.06a94.37,94.37,0,0,1-10.64,8.65,91.35,91.35,0,0,1-11.6,7,94.53,94.53,0,0,1-26.24,8.71,97.69,97.69,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a53.27,53.27,0,0,1,1.14,12V217h.05a84.41,84.41,0,0,0,25.35-5.55,81,81,0,0,0,26.39-16.82c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,172.17a48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7V150q-1.08,1.54-2.25,3.09A96.73,96.73,0,0,1,327,162.45Zm0,77.92c-.69.7-1.31,1.41-2,2.1a94.2,94.2,0,0,1-60.2,25.86h0l0,26.67h0a81.6,81.6,0,0,0,51.74-22.37A73.51,73.51,0,0,0,333,250.13a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.47.19-3.71v-2.19c-.74,1.07-1.46,2.15-2.27,3.21A95.68,95.68,0,0,1,327,240.37Zm0-39c-.69.7-1.31,1.41-2,2.1a93.18,93.18,0,0,1-10.63,8.65,91.63,91.63,0,0,1-11.63,7,95.47,95.47,0,0,1-37.94,10.18h0V256h0a81.65,81.65,0,0,0,51.74-22.37c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,211.15a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.46,2.16-2.27,3.22A95.68,95.68,0,0,1,327,201.39Z"/></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

+98
View File
@@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Backstage is an open platform for building developer portals"
/>
<link rel="apple-touch-icon" href="<%= publicPath %>/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link
rel="manifest"
href="<%= publicPath %>/manifest.json"
crossorigin="use-credentials"
/>
<link rel="icon" href="<%= publicPath %>/favicon.ico" />
<link rel="shortcut icon" href="<%= publicPath %>/favicon.ico" />
<link
rel="apple-touch-icon"
sizes="180x180"
href="<%= publicPath %>/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="<%= publicPath %>/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="<%= publicPath %>/favicon-16x16.png"
/>
<link
rel="mask-icon"
href="<%= publicPath %>/safari-pinned-tab.svg"
color="#5bbad5"
/>
<title><%= config.getString('app.title') %></title>
<% if (config.has('app.datadogRum')) { %>
<script>
(function (h, o, u, n, d) {
h = h[d] = h[d] || {
q: [],
onReady: function (c) {
h.q.push(c);
},
};
d = o.createElement(u);
d.async = 1;
d.src = n;
n = o.getElementsByTagName(u)[0];
n.parentNode.insertBefore(d, n);
})(
window,
document,
'script',
'https://www.datadoghq-browser-agent.com/datadog-rum-v3.js',
'DD_RUM',
);
DD_RUM.onReady(function () {
DD_RUM.init({
clientToken: '<%= config.getString("app.datadogRum.clientToken") %>',
applicationId:
'<%= config.getString("app.datadogRum.applicationId") %>',
site: '<%= config.getOptionalString("app.datadogRum.site") || "datadoghq.com" %>',
service: 'backstage',
env: '<%= config.getString("app.datadogRum.env") %>',
sampleRate: 100,
trackInteractions: true,
});
});
</script>
<% } %>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `yarn start`.
To create a production bundle, use `yarn build`.
-->
</body>
</html>
+15
View File
@@ -0,0 +1,15 @@
{
"short_name": "Backstage",
"name": "Backstage",
"icons": [
{
"src": "favicon.ico",
"sizes": "48x48",
"type": "image/png"
}
],
"start_url": "./index.html",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
+2
View File
@@ -0,0 +1,2 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="682.667" height="682.667" preserveAspectRatio="xMidYMid meet" version="1.0" viewBox="0 0 512 512"><metadata>Created by potrace 1.11, written by Peter Selinger 2001-2013</metadata><g fill="#000" stroke="none"><path d="M492 4610 c-4 -3 -8 -882 -7 -1953 l0 -1948 850 2 c898 1 945 3 1118 49 505 134 823 531 829 1037 2 136 -9 212 -44 323 -40 125 -89 218 -163 310 -35 43 -126 128 -169 157 -22 15 -43 30 -46 33 -12 13 -131 70 -188 91 l-64 22 60 28 c171 77 317 224 403 404 64 136 92 266 91 425 -5 424 -245 770 -642 923 -79 30 -105 39 -155 50 -11 3 -38 10 -60 15 -22 6 -60 13 -85 17 -25 3 -58 9 -75 12 -36 8 -1643 11 -1653 3z m1497 -743 c236 -68 352 -254 305 -486 -26 -124 -110 -224 -232 -277 -92 -40 -151 -46 -439 -49 l-283 -3 -1 27 c-1 36 -1 760 0 790 l1 23 298 -5 c226 -4 310 -9 351 -20z m-82 -1538 c98 -3 174 -19 247 -52 169 -78 257 -212 258 -395 0 -116 -36 -221 -100 -293 -64 -72 -192 -135 -314 -155 -23 -3 -181 -7 -350 -8 l-308 -2 -1 26 c-6 210 1 874 9 879 9 5 366 6 559 0z" transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"/><path d="M4160 1789 c-275 -24 -499 -263 -503 -536 -1 -115 21 -212 66 -292 210 -369 697 -402 950 -65 77 103 110 199 111 329 0 50 -6 113 -13 140 -16 58 -62 155 -91 193 -33 43 -122 132 -132 132 -5 0 -26 11 -46 25 -85 56 -219 85 -342 74z" transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

+48
View File
@@ -0,0 +1,48 @@
/*
* Copyright 2020 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { renderWithEffects } from '@backstage/test-utils';
describe('App', () => {
it('should render', async () => {
process.env = {
NODE_ENV: 'test',
APP_CONFIG: [
{
data: {
app: {
title: 'Test',
support: { url: 'http://localhost:7007/support' },
},
backend: { baseUrl: 'http://localhost:7007' },
lighthouse: {
baseUrl: 'http://localhost:3003',
},
techdocs: {
storageUrl: 'http://localhost:7007/api/techdocs/static/docs',
},
},
context: 'test',
},
] as any,
};
const { default: App } = await import('./App');
const rendered = await renderWithEffects(<App />);
expect(rendered.baseElement).toBeInTheDocument();
});
});
+113
View File
@@ -0,0 +1,113 @@
/*
* Copyright 2023 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { graphiqlPlugin as legacyGraphiqlPlugin } from '@backstage/plugin-graphiql';
import { createApp as createLegacyApp } from '@backstage/app-defaults';
import { createApp } from '@backstage/frontend-app-api';
import { graphiqlPlugin } from './examples/graphiqlPlugin';
/*
# Notes
TODO:
- proper createApp
- connect extensions and plugins, provide method?
- higher level API for creating standard extensions + higher order framework API for creating those?
- extension config schema + validation
- figure out how to resolve configured extension ref to runtime value, e.g. '@backstage/plugin-graphiql#GraphiqlPage'
- make sure all shorthands work + tests
- figure out package structure / how to ship, frontend-plugin-api/frontend-app-api
- figure out routing, useRouteRef in the new system
- Legacy plugins / interop
- dynamic updates, runtime API
*/
/* core */
// const discoverPackages = async () => {
// // stub for now, deferring package discovery til later
// return ['@backstage/plugin-graphiql'];
// };
/* graphiql package */
/* app.tsx */
const app = createApp({
plugins: [graphiqlPlugin],
// bindRoutes({ bind }) {
// bind(catalogPlugin.externalRoutes, {
// createComponent: scaffolderPlugin.routes.root,
// });
// bind(scaffolderPlugin.externalRoutes, {
// registerComponent: catalogImportPlugin.routes.importPage,
// });
// },
});
const legacyApp = createLegacyApp({ plugins: [legacyGraphiqlPlugin] });
export default legacyApp.createRoot(app.createRoot());
// const routes = (
// <FlatRoutes>
// {/* <Route path="/" element={<Navigate to="catalog" />} />
// <Route path="/catalog" element={<CatalogIndexPage />} />
// <Route
// path="/catalog/:namespace/:kind/:name"
// element={<CatalogEntityPage />}
// >
// <EntityLayout>
// <EntityLayout.Route path="/" title="Overview">
// <Grid container spacing={3} alignItems="stretch">
// <Grid item md={6} xs={12}>
// <EntityAboutCard variant="gridItem" />
// </Grid>
// <Grid item md={4} xs={12}>
// <EntityLinksCard />
// </Grid>
// </Grid>
// </EntityLayout.Route>
// <EntityLayout.Route path="/todos" title="TODOs">
// <EntityTodoContent />
// </EntityLayout.Route>
// </EntityLayout>
// </Route>
// <Route
// path="/catalog-import"
// element={
// <CatalogImportPage />
// }
// /> */}
// {/* <Route
// path="/tech-radar"
// element={<TechRadarPage width={1500} height={800} />}
// /> */}
// <Route path="/graphiql" element={<GraphiQLPage />} />
// </FlatRoutes>
// );
// export default app.createRoot(
// <>
// {/* <AlertDisplay transientTimeoutMs={2500} />
// <OAuthRequestDialog /> */}
// <AppRouter>{routes}</AppRouter>
// </>,
// );
@@ -0,0 +1,49 @@
/*
* Copyright 2023 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import {
createExtension,
createPlugin,
coreExtensionData,
} from '@backstage/frontend-plugin-api';
import { Router as GraphiQLPage } from '@backstage/plugin-graphiql';
export const GraphiqlPageExtension = createExtension({
output: {
component: coreExtensionData.reactComponent,
path: coreExtensionData.routePath,
},
factory({ bind, config }) {
bind.component(() => {
return <GraphiQLPage />;
});
// TODO: In need of schemas and type safety
bind.path((config as { path: string }).path);
},
});
export const graphiqlPlugin = createPlugin({
id: 'graphiql',
defaultExtensionInstances: [
{
id: 'graphiql.page',
at: 'core.router/routes',
extension: GraphiqlPageExtension,
config: { path: '/graphiql' },
},
],
});
+22
View File
@@ -0,0 +1,22 @@
/*
* Copyright 2020 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import '@backstage/cli/asset-types';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
+21
View File
@@ -0,0 +1,21 @@
/*
* Copyright 2020 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// jest-dom adds custom jest matchers for asserting on DOM nodes.
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom';
+75
View File
@@ -1,5 +1,80 @@
# example-app
## 0.2.87-next.0
### Patch Changes
- Updated dependencies
- @backstage/plugin-catalog-unprocessed-entities@0.1.3-next.0
- @backstage/integration-react@1.1.18-next.0
- @backstage/plugin-microsoft-calendar@0.1.7-next.0
- @backstage/plugin-newrelic-dashboard@0.2.16-next.0
- @backstage/plugin-apache-airflow@0.2.15-next.0
- @backstage/plugin-github-actions@0.6.4-next.0
- @backstage/plugin-octopus-deploy@0.2.5-next.0
- @backstage/plugin-azure-devops@0.3.5-next.0
- @backstage/plugin-gcp-projects@0.3.41-next.0
- @backstage/plugin-azure-sites@0.1.12-next.0
- @backstage/plugin-cloudbuild@0.3.23-next.0
- @backstage/plugin-lighthouse@0.4.8-next.0
- @backstage/plugin-tech-radar@0.6.8-next.0
- @backstage/plugin-dynatrace@7.0.3-next.0
- @backstage/plugin-gcalendar@0.3.18-next.0
- @backstage/plugin-shortcuts@0.3.14-next.0
- @backstage/plugin-airbrake@0.3.23-next.0
- @backstage/plugin-circleci@0.3.23-next.0
- @backstage/plugin-graphiql@0.2.54-next.0
- @backstage/plugin-linguist@0.1.8-next.0
- @backstage/plugin-newrelic@0.3.40-next.0
- @backstage/plugin-playlist@0.1.15-next.0
- @backstage/plugin-puppetdb@0.1.6-next.0
- @backstage/plugin-jenkins@0.8.5-next.0
- @backstage/plugin-rollbar@0.4.23-next.0
- @backstage/plugin-badges@0.2.47-next.0
- @backstage/plugin-sentry@0.5.8-next.0
- @backstage/plugin-kafka@0.3.23-next.0
- @backstage/plugin-nomad@0.1.4-next.0
- @backstage/plugin-todo@0.2.25-next.0
- @backstage/plugin-org@0.6.13-next.0
- @backstage/cli@0.22.12-next.0
- @backstage/plugin-techdocs@1.6.8-next.0
- @backstage/plugin-entity-feedback@0.2.6-next.0
- @backstage/core-app-api@1.10.0-next.0
- @backstage/plugin-code-coverage@0.2.16-next.0
- @backstage/core-plugin-api@1.6.0-next.0
- @backstage/plugin-cost-insights@0.12.12-next.0
- @backstage/core-components@0.13.5-next.0
- @backstage/plugin-adr@0.6.6-next.0
- @backstage/plugin-catalog-import@0.9.13-next.0
- @backstage/plugin-scaffolder@1.14.4-next.0
- @backstage/plugin-techdocs-module-addons-contrib@1.0.18-next.0
- @backstage/plugin-home@0.5.7-next.0
- @backstage/plugin-pagerduty@0.6.4-next.0
- @backstage/plugin-stack-overflow@0.1.20-next.0
- @backstage/plugin-api-docs@0.9.10-next.0
- @internal/plugin-catalog-customized@0.0.14-next.0
- @backstage/plugin-catalog-graph@0.2.35-next.0
- @backstage/plugin-explore@0.4.9-next.0
- @backstage/plugin-scaffolder-react@1.5.4-next.0
- @backstage/app-defaults@1.4.3-next.0
- @backstage/catalog-model@1.4.1
- @backstage/config@1.0.8
- @backstage/theme@0.4.1
- @backstage/plugin-catalog-common@1.0.15
- @backstage/plugin-catalog-react@1.8.3-next.0
- @backstage/plugin-devtools@0.1.4-next.0
- @backstage/plugin-gocd@0.1.29-next.0
- @backstage/plugin-kubernetes@0.10.2-next.0
- @backstage/plugin-linguist-common@0.1.1
- @backstage/plugin-permission-react@0.4.15-next.0
- @backstage/plugin-search@1.3.6-next.0
- @backstage/plugin-search-common@1.2.5
- @backstage/plugin-search-react@1.6.5-next.0
- @backstage/plugin-stackstorm@0.1.6-next.0
- @backstage/plugin-tech-insights@0.3.15-next.0
- @backstage/plugin-techdocs-react@1.1.10-next.0
- @backstage/plugin-user-settings@0.7.8-next.0
## 0.2.86
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "example-app",
"version": "0.2.86",
"version": "0.2.87-next.0",
"private": true,
"backstage": {
"role": "frontend"
+17
View File
@@ -1,5 +1,22 @@
# @backstage/backend-app-api
## 0.5.2-next.0
### Patch Changes
- Updated dependencies
- @backstage/plugin-auth-node@0.3.0-next.0
- @backstage/backend-common@0.19.4-next.0
- @backstage/config-loader@1.5.0-next.0
- @backstage/backend-tasks@0.5.7-next.0
- @backstage/backend-plugin-api@0.6.2-next.0
- @backstage/cli-common@0.1.12
- @backstage/cli-node@0.1.3
- @backstage/config@1.0.8
- @backstage/errors@1.2.1
- @backstage/types@1.1.0
- @backstage/plugin-permission-node@0.7.13-next.0
## 0.5.0
### Minor Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-app-api",
"description": "Core API used by Backstage backend apps",
"version": "0.5.0",
"version": "0.5.2-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {

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