Merge branch 'master' into samiram/pagerduty-plugin

This commit is contained in:
Samira Mokaram
2020-11-17 10:28:07 +01:00
1048 changed files with 23326 additions and 11850 deletions
-27
View File
@@ -1,27 +0,0 @@
---
'@backstage/cli': minor
'@backstage/plugin-api-docs': minor
'@backstage/plugin-app-backend': minor
'@backstage/plugin-auth-backend': minor
'@backstage/plugin-catalog-graphql': minor
'@backstage/plugin-catalog': minor
'@backstage/plugin-circleci': minor
'@backstage/plugin-explore': minor
'@backstage/plugin-gcp-projects': minor
'@backstage/plugin-github-actions': minor
'@backstage/plugin-gitops-profiles': minor
'@backstage/plugin-graphiql': minor
'@backstage/plugin-jenkins': minor
'@backstage/plugin-kubernetes': minor
'@backstage/plugin-lighthouse': minor
'@backstage/plugin-newrelic': minor
'@backstage/plugin-register-component': minor
'@backstage/plugin-rollbar': minor
'@backstage/plugin-scaffolder': minor
'@backstage/plugin-sentry': minor
'@backstage/plugin-tech-radar': minor
'@backstage/plugin-techdocs': minor
'@backstage/plugin-welcome': minor
---
Create backend plugin through CLI
-11
View File
@@ -1,11 +0,0 @@
---
'@backstage/core-api': minor
'@backstage/core': minor
'@backstage/plugin-auth-backend': minor
---
Add SAML login to backstage
![](https://user-images.githubusercontent.com/872486/92251660-bb9e3400-eeff-11ea-86fe-1f2a0262cd31.png)
![](https://user-images.githubusercontent.com/872486/93851658-1a76f200-fce3-11ea-990b-26ca1a327a15.png)
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-cloudbuild': minor
---
Releasing Google Cloud Build Plugin
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/catalog-model': minor
---
Add handling and docs for entity references
-14
View File
@@ -1,14 +0,0 @@
---
'@backstage/core': patch
'@backstage/theme': patch
---
Fix banner position and color
This PR closes: #2245
The "fixed" props added to control the position of the banner. When it is set to true the banner will be shown in bottom of that page and the width will be based on the content of the message.
![](https://user-images.githubusercontent.com/15106494/93765685-999df480-fc15-11ea-8fa5-11cac5836cf1.png)
![](https://user-images.githubusercontent.com/15106494/93765697-9e62a880-fc15-11ea-92af-b6a7fee4bb21.png)
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/theme': minor
---
Tweak dark mode colors
-9
View File
@@ -1,9 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': minor
---
Add Azure DevOps support to the scaffolder backend
This adds support for Azure DevOps to the scaffolder (preparer & publisher). I thought I should get this in there now since #2426 has been merged. I had a previous PR with only the preparer but I closed that in favor of this one.
I stayed with the 'azure/api' structure but I guess we should try and go the same way as with GitHub here #2501
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/create-app': minor
'@backstage/plugin-auth-backend': minor
'@backstage/plugin-techdocs-backend': minor
---
Change the default backend plugin mount point to /api
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-github-actions': minor
---
Adds a widget to show recent git workflow runs to the github actions plugin. The default setting is the last 5 runs across all branches but both branch and the number of runs are configurable.
-59
View File
@@ -1,59 +0,0 @@
---
'@backstage/core-api': patch
---
Add initial RouteRefRegistry
Starting out some work to bring routing back and working as part of the work towards finalizing #1536
This is some of the groundwork of an experiment we're working on to enable routing via RouteRefs, while letting the app itself look something like this:
```jsx
const App = () => (
<BackstageRoutes>
<Navigate key="/" to="/catalog" />
<CatalogRoute path="/catalog">
{' '}
// catalogRouteRef
<EntityPage type="service">
<OverviewContent path="/">
<WidgetA />
<WidgetB />
</OverviewContent>
<CICDSwitcher path="/ci-cd" />
<StatusRoute path="/api-status" /> // statusRouteRef
<ApiDocsRoute path="/api" />
<DocsRoute path="/docs" />
</EntityPage>
<EntityPage type="website">
<OverviewContent path="/">
<WidgetA />
<WidgetB />
</OverviewContent>
<CICDSwitcher path="/ci-cd" />
<SentryRoute path="/sentry" /> // sentryRouteRef
<DocsRoute path="/docs" />
</EntityPage>
<EntityPage>
<OverviewContent path="/">
<WidgetA />
<WidgetB />
</OverviewContent>
<DocsRoute path="/docs" />
</EntityPage>
</CatalogRoute>
<DocsRoute path="/docs" />
<TechRadarRoute path="/tech-radar" width={1500} height={800} />
<GraphiQLRoute path="/graphiql" />
<LighthouseRoute path="/lighthouse" />
</BackstageRoutes>
);
```
As part of inverting the composition of the app, route refs and routing in general was somewhat broken, intentionally. Right now it's not really possible to easily route to different parts of the app from a plugin, or even different parts of the plugin that are not within the same router.
The core part of the experiment is to construct a map of ApiRef[] -> path overrides. Each key in the map is the list of route refs to traversed to reach a leaf in the routing tree, and the value is the path override at that point. For example, the above tree would add entries like [techDocsRouteRef] -> '/docs', and [entityRouteRef, apiDocsRouteRef] -> '/api'. By mapping out the entire app in this structure, the idea is that we can navigate to any point in the app using RouteRefs.
The RouteRefRegistry is an implementation of such a map, and the idea is to add it in master to make it a bit easier to experiment and iterate. This is not an exposed API at this point.
We've explored a couple of alternatives for how to enable routing, but it's boiled down to either a solution centred around the route map mentioned above, or treating all routes as static and globally unique, with no room for flexibility, customization or conflicts between different plugins. We're starting out pursuing this options 😁. We also expect that a the app-wide routing table will make things like dynamic loading a lot cleaner, as there would be a much more clear handoff between the main chunk and dynamic chunks.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': minor
---
Fix dense in Structured Metadata Table
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/catalog-model': minor
'@backstage/plugin-catalog-backend': minor
---
Entirely case insensitive read path of entities
-9
View File
@@ -1,9 +0,0 @@
---
'@backstage/catalog-model': minor
---
Add the User & Group entities
A user describes a person, such as an employee, a contractor, or similar. Users belong to Group entities in the catalog.
A group describes an organizational entity, such as for example a team, a business unit, or a loose collection of people in an interest group. Members of these groups are modeled in the catalog as kind User.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/catalog-model': minor
'@backstage/plugin-catalog-backend': minor
---
Add ApiDefinitionAtLocationProcessor that allows to load a API definition from another location
-11
View File
@@ -1,11 +0,0 @@
---
'@backstage/plugin-techdocs': minor
---
Add a message if techdocs takes long time to load
Fixes #2416.
The UI after the change should look like this:
![techdocs-progress-bar](https://user-images.githubusercontent.com/33940798/94189286-296ac980-fec8-11ea-9051-1b3db938d12f.gif)
-19
View File
@@ -1,19 +0,0 @@
---
'@backstage/plugin-techdocs-backend': minor
'@backstage/plugin-proxy-backend': minor
'@backstage/plugin-auth-backend': minor
'@backstage/create-app': minor
'@backstage/backend-common': minor
---
Add service discovery interface and implement for single host deployments
Fixes #1847, #2596
Went with an interface similar to the frontend DiscoveryApi, since it's dead simple but still provides a lot of flexibility in the implementation.
Also ended up with two different methods, one for internal endpoint discovery and one for external. The two use-cases are explained a bit more in the docs, but basically it's service-to-service vs callback URLs.
This did get me thinking about uniqueness and that we're heading towards a global namespace for backend plugin IDs. That's probably fine, but if we're happy with that we should leverage it a bit more to simplify the backend setup. For example we'd have each plugin provide its own ID and not manually mount on paths in the backend.
Draft until we're happy with the implementation, then I can add more docs and changelog entry. Also didn't go on a thorough hunt for places where discovery can be used, but I don't think there are many since it's been pretty awkward to do service-to-service communication.
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/backend-common': minor
'@backstage/create-app': minor
---
Make CSP configurable to fix app-backend served app not being able to fetch
See discussion [here on discord](https://discordapp.com/channels/687207715902193673/687235481154617364/758721460163575850)
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-auth-backend': patch
---
Move auth provider router creation to router
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Sync scaffolded backend with example
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-circleci': minor
---
Refactor to use DiscoveryApi
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Remove discovery api override
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-jenkins': patch
---
Refactor to use DiscoveryApi
-12
View File
@@ -1,12 +0,0 @@
---
'@backstage/plugin-auth-backend': minor
---
Initial implementation of catalog user lookup
This adds a basic catalog client + method for the Google provider to look up users in the catalog. It expects to find a single user entity in the catalog with a google.com/email annotation that matches the email of the Google profile.
Right now it falls back to the old behavior of splitting the email, since I don't wanna break the sign-in flow for existing apps, not yet anyway x).
- Added "@backstage/catalog-model@^0.1.1-alpha.23" as a dependency
- Added "node-fetch@^2.6.1" as a dependency
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': minor
---
Default to using internal scope for new plugins
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/backend-common': minor
---
Use localhost to fall back to IPv4 if IPv6 isn't available
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/create-app': minor
---
Remove identity-backend
Not used, and we're heading down the route of identities in the catalog
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-catalog': minor
---
Created EntityNotFound component for catalog which displays the 404 page when entity is not found.
Fixes #2266
-17
View File
@@ -1,17 +0,0 @@
---
'@backstage/plugin-scaffolder': patch
---
Make title meaningful after component creation
Fixes #2458.
After the change, the UX should look like this:
### If the component creation was successful:
![successfully-created-component](https://user-images.githubusercontent.com/33940798/94339294-8bd1e000-0016-11eb-885b-7936fcc23b63.gif)
### If the component creation failed:
![failed-to-create-component](https://user-images.githubusercontent.com/33940798/94339296-90969400-0016-11eb-9a74-ce16b3dd8d88.gif)
-9
View File
@@ -1,9 +0,0 @@
---
'@backstage/plugin-catalog-backend': patch
---
Add codeowners processor
- Add `codeowners-utils@^1.0.2` as a dependency
- Add `core-js@^3.6.5` as a dependency
- Added new CodeOwnersProcessor
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/cli': patch
---
Add codeowners processor
- Include ESNext.Promise in TypeScript compilation
-22
View File
@@ -1,22 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
This feature works the same as \$secret does in config - it allows programmatic substitution of values into a document.
This is particularly useful e.g. for API type entities where you do not want to repeat your entire API spec document inside the catalog-info.yaml file. For those cases, you can instead do something like
```
apiVersion: backstage.io/v1alpha1
kind: API
metadata:
name: my-federated-service
spec:
type: graphql
definition:
$text: ./schema.graphql
```
The textual content of that file will be injected as the value of definition, during each refresh loop. Both relative and absolute paths are supported, as well as any HTTP/HTTPS URL pointing to a service that returns the relevant data.
The initial version supports injection of text file data, and structured data from JSON and YAML files. You can add any handler of your own in addition to these.
-9
View File
@@ -1,9 +0,0 @@
---
'@backstage/create-app': minor
'@backstage/plugin-catalog-backend': minor
---
Allow node v14 and add to master build matrix
- Upgrade sqlite3@^5.0.0 in @backstage/plugin-catalog-backend
- Add Node 14 to engines in @backstage/create-app
-21
View File
@@ -1,21 +0,0 @@
---
'@backstage/plugin-cost-insights': minor
'@backstage/plugin-explore': minor
---
This PR adds Spotify's Cost Insights Tool. Cost Insights explains costs from cloud services in an understandable way, using software terms familiar to your engineers. This tool helps you and your team make trade-offs between cost optimization efforts and your other priorities.
Cost Insights features:
Daily cost graph by team or billing account
Cost comparison against configurable business metrics
Insights panels for configurable cloud products your company uses
Cost alerts and recommendations
Selectable time periods for month over month, or quarter over quarter cost comparison
Conversion of cost growth into average engineer cost (configurable) to help optimization trade-off decisions
![plugin-cost-insights](https://user-images.githubusercontent.com/3030003/94430416-e166d380-0161-11eb-891c-9ce10187683e.gif)
This PR adds the Cost Insights frontend React plugin with a defined CostInsightsApi. We include an example client with static data in the expected format. This API should talk with a cloud billing backend that aggregates billing data from your cloud provider.
Fixes #688 💵
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': minor
---
Upgrade dependency `esbuild@0.7.7`
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
Simplify the read function in processors
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-auth-backend': minor
---
Lookup user in Google Auth Provider
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': minor
---
Added EmptyState component
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-api-docs': patch
---
Resolve some dark mode styling issues in asyncAPI specs
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': patch
---
Fixed banner component position in DismissableBanner component
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
Add the ability to import users from GitHub Organization into the catalog.
The token needs to have the scopes `user:email`, `read:user`, and `read:org`.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/catalog-model': minor
---
Add the ability to import users from GitHub Organization into the catalog.
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/create-app': minor
---
Add the ability to import users from GitHub Organization into the catalog.
The token needs to have the scopes `user:email`, `read:user`, and `read:org`.
-12
View File
@@ -1,12 +0,0 @@
---
'@backstage/backend-common': minor
'@backstage/create-app': minor
---
Auto-create plugin databases
Relates to #1598.
This creates databases for plugins before handing off control to plugins.
The list of plugins currently need to be hard-coded depending on the installed plugins. A later PR will properly refactor the code to provide a factory pattern where plugins specify what they need, and Knex instances will be provided based on the input.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Update SSR template to pass CI
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Upgrade dependency rollup-plugin-typescript2 to ^0.27.3
-11
View File
@@ -1,11 +0,0 @@
---
'@backstage/plugin-api-docs': minor
---
There were some missing features and markdown was not rendered properly, but this is fixed now.
Details:
- [`asyncapi/asyncapi-react#149`](https://github.com/asyncapi/asyncapi-react/pull/149) - fix: improve markdown rendering of nested fields
- [`asyncapi/asyncapi-react#150`](https://github.com/asyncapi/asyncapi-react/pull/150) - feat: display the description of channels and operations
- [`asyncapi/asyncapi-react#153`](https://github.com/asyncapi/asyncapi-react/pull/153) - fix: let the list of `enums` break into multiple lines
-7
View File
@@ -1,7 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
Use the new `UrlReader` in `PlaceholderProcessor`.
This allows to use the placeholder processor to include API definitions in API entities.
Previously it was only possible to do this if the definition comes from the same location type as the entity itself.
-15
View File
@@ -1,15 +0,0 @@
---
'@backstage/core': minor
'@backstage/core-api': minor
---
Updated the `GithubAuth.create` method to configure the default scope of the Github Auth Api. As a result the
default scope is configurable when overwriting the Core Api in the app.
```
GithubAuth.create({
discoveryApi,
oauthRequestApi,
defaultScopes: ['read:user', 'repo'],
}),
```
-26
View File
@@ -1,26 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
Remove the backstage.io/definition-at-location annotation.
The annotation was superseded by the placeholder processor.
```yaml
apiVersion: backstage.io/v1alpha1
kind: API
metadata:
name: spotify
description: The Spotify web API
tags:
- spotify
- rest
annotations:
# Don't use this annotation, but the placeholder $text instead (see below).
backstage.io/definition-at-location: 'url:https://raw.githubusercontent.com/APIs-guru/openapi-directory/master/APIs/spotify.com/v1/swagger.yaml'
spec:
type: openapi
lifecycle: production
owner: spotify@example.com
definition:
$text: https://raw.githubusercontent.com/APIs-guru/openapi-directory/master/APIs/spotify.com/v1/swagger.yaml
```
-15
View File
@@ -1,15 +0,0 @@
---
'@backstage/plugin-proxy-backend': minor
---
Limit the http headers that are forwarded from the request to a safe set of defaults.
A user can configure additional headers that should be forwarded if the specific applications needs that.
```yaml
proxy:
'/my-api':
target: 'https://my-api.com/get'
allowedHeaders:
# We need to forward the Authorization header that was provided by the caller
- Authorization
```
-12
View File
@@ -1,12 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
The way that wiring together a catalog happens, has changed drastically. Now
there is a new class `CatalogBuilder` that does almost all of the heavy lifting
of how to augment/replace pieces of catalog functionality, such as adding
support for custom entities or adding additional processors.
As the builder was added, a lot of the static methods and builders for default
setups have been removed from classes deep in the hierarchy. Instead, the
builder contains the knowledge of what the defaults are.
-5
View File
@@ -1,5 +0,0 @@
---
'example-app': patch
---
Add Pull Request tab to components view.
-12
View File
@@ -1,12 +0,0 @@
---
'@backstage/cli': minor
---
Adds a new `BACKSTAGE_CLI_BUILD_PARELLEL` environment variable to control
parallelism for some build steps.
This is useful in CI to help avoid out of memory issues when using `terser`. The
`BACKSTAGE_CLI_BUILD_PARELLEL` environment variable can be set to
`true | false | [integer]` to override the default behaviour. See
[terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin#parallel)
for more details.
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
Use the new `UrlReader` in the `CodeOwnersProcessor`.
@@ -0,0 +1,5 @@
---
'@backstage/plugin-cost-insights': patch
---
remove excessive margin from cost overview banner
@@ -2,4 +2,4 @@
'@backstage/plugin-cost-insights': minor
---
Enable custom alert types in Cost Insights
remove cost insights currency feature flag
@@ -0,0 +1,5 @@
---
'@backstage/plugin-cost-insights': patch
---
Fix savings/excess display calculation
@@ -1,6 +0,0 @@
---
'example-backend': patch
'@backstage/create-app': patch
---
Bump @backstage/catalog-backend and pass the now required UrlReader interface to the plugin
-5
View File
@@ -1,5 +0,0 @@
---
'example-backend': patch
---
Pass GitHub token into Scaffolder GitHub Preparer
-8
View File
@@ -1,8 +0,0 @@
---
'@backstage/core': patch
'@backstage/plugin-graphiql': patch
'@backstage/plugin-tech-radar': patch
'@backstage/plugin-techdocs': patch
---
add test case for Progress component
-5
View File
@@ -1,5 +0,0 @@
---
'e2e-test': minor
---
Converted into a CLI, use `yarn e2e-test run` to run
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Allow templates to be located on non-default branch
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': patch
---
Update ItemCard headers to pass color contrast standards.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend': patch
---
An entity A, that exists in the catalog, can no longer be overwritten by registering a different location that also tries to supply an entity with the same kind+namespace+name. Writes of that new entity will instead be rejected with a log message similar to `Rejecting write of entity Component:default/artist-lookup from file:/Users/freben/dev/github/backstage/packages/catalog-model/examples/components/artist-lookup-component.yaml because entity existed from github:https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/artist-lookup-component.yaml`
-57
View File
@@ -1,57 +0,0 @@
---
'@backstage/plugin-techdocs-backend': minor
'@backstage/create-app': patch
---
Updated naming of environment variables. New pattern [NAME]\_TOKEN for Github, Gitlab, Azure & Github enterprise access tokens.
### Detail:
- Previously we have to export same token for both, catalog & scaffolder
```bash
export GITHUB_ACCESS_TOKEN=foo
export GITHUB_PRIVATE_TOKEN=foo
```
with latest changes, only single export is sufficient.
```bash
export GITHUB_TOKEN=foo
export GITLAB_TOKEN=foo
export GHE_TOKEN=foo
export AZURE_TOKEN=foo
```
### list:
<table>
<tr>
<th>Old name</th>
<th>New name</th>
</tr>
<tr>
<td>GITHUB_ACCESS_TOKEN</td>
<td>GITHUB_TOKEN</td>
</tr>
<tr>
<td>GITHUB_PRIVATE_TOKEN</td>
<td>GITHUB_TOKEN</td>
</tr>
<tr>
<td>GITLAB_ACCESS_TOKEN</td>
<td>GITLAB_TOKEN</td>
</tr>
<tr>
<td>GITLAB_PRIVATE_TOKEN</td>
<td>GITLAB_TOKEN</td>
</tr>
<tr>
<td>AZURE_PRIVATE_TOKEN</td>
<td>AZURE_TOKEN</td>
</tr>
<tr>
<td>GHE_PRIVATE_TOKEN</td>
<td>GHE_TOKEN</td>
</tr>
</table>
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Including source maps with all packages
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': patch
---
update the test cases of CodeSnippet component
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': minor
---
The default mount point for backend plugins have been changed to /api. These changes are done in the backend package itself, so it is recommended that you sync up existing backend packages with this new pattern.
-12
View File
@@ -1,12 +0,0 @@
---
'@backstage/backend-common': patch
---
Added new UrlReader interface for reading opaque data from URLs with different providers.
This new URL reading system is intended as a replacement for the various integrations towards
external systems in the catalog, scaffolder, and techdocs. It is configured via a new top-level
config section called 'integrations'.
Along with the UrlReader interface is a new UrlReaders class, which exposes static factory
methods for instantiating readers that can read from many different integrations simultaneously.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/backend-common': patch
'@backstage/integration': patch
---
Added the integration package
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/create-app': patch
---
Fix for configured templates using 'url' locations even though it's not supported yet
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-common': minor
---
Refactored UrlReader.readTree to be required and accept (url, options)
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/backend-common': minor
'@backstage/cli': minor
---
Use APP_ENV before NODE_ENV for determining what config to load
-25
View File
@@ -1,25 +0,0 @@
---
'@backstage/plugin-newrelic': minor
---
The New Relic plugin now uses the Backstage proxy to communicate with New Relic's API.
Please update your `app-config.yaml` as follows:
```yaml
# Old Config
newrelic:
api:
baseUrl: 'https://api.newrelic.com/v2'
key: NEW_RELIC_REST_API_KEY
```
```yaml
# New Config
proxy:
'/newrelic/apm/api':
target: https://api.newrelic.com/v2
headers:
X-Api-Key:
$env: NEW_RELIC_REST_API_KEY
```
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': patch
---
add test cases for Status components
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Add authentication token to Scaffolder GitHub Preparer
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/cli': patch
---
Fixed duplicate help output, and print help on invalid command
-10
View File
@@ -1,10 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
Renamed the `LocationProcessor` class to `CatalogProcessor`.
Likewise, renamed `LocationProcessorResult`, `LocationProcessorLocationResult`,
`LocationProcessorDataResult`, `LocationProcessorEntityResult`,
`LocationProcessorErrorResult`, and `LocationProcessorEmit` to their `Catalog*`
counterparts.
-10
View File
@@ -1,10 +0,0 @@
---
'@backstage/plugin-cost-insights': minor
---
- getProjectDailyCost and getGroupDailyCost no longer accept a metric as a parameter
- getDailyMetricData added to API for fetching daily metric data for given interval
- dailyCost removed as configurable metric
- default field added to metric configuration for displaying comparison metric data in top panel
- Metric.kind can no longer be null
- MetricData type added
@@ -1,6 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
Remove the `read` argument of `LocationProcessor.processEntity`.
Instead, pass the `UrlReader` into the constructor of your `LocationProcessor`.
-6
View File
@@ -1,6 +0,0 @@
---
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-scaffolder-backend': patch
---
The new `scaffolder.github.baseUrl` config property allows to specify a custom base url for GitHub enterprise instances
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/config-loader': minor
---
Added support for new shorthand when defining secrets, where `$env: ENV` can be used instead of `$secret: { env: ENV }` etc.
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-tech-radar': patch
---
fix the horizontal scrolling issue in the RadarPage component
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-auth-backend': patch
---
Better presentation of authentication errors
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/core': patch
---
give aria-label attribute to Status Ok, Warning and Error
-5
View File
@@ -1,5 +0,0 @@
---
'@backstage/plugin-catalog-backend': minor
---
The catalog backend UrlReaderProcessor now uses a UrlReader from @backstage/backend-common, which must now be supplied to the constructor.
+6 -9
View File
@@ -4,13 +4,10 @@
# The last matching pattern takes precedence.
# https://help.github.com/articles/about-codeowners/
* @spotify/backstage-core
/docs/features/techdocs @spotify/techdocs-core
/plugins/cost-insights @spotify/silver-lining
* @backstage/maintainers
/docs/features/techdocs @backstage/techdocs-core
/plugins/cost-insights @backstage/silver-lining
/plugins/cloudbuild @trivago/ebarrios
/plugins/techdocs @spotify/techdocs-core
/plugins/techdocs-backend @spotify/techdocs-core
/packages/techdocs-cli @spotify/techdocs-core
/packages/techdocs-container @spotify/techdocs-core
/.github/workflows/techdocs.yml @spotify/techdocs-core
/.github/workflows/techdocs-pypi.yml @spotify/techdocs-core
/plugins/techdocs @backstage/techdocs-core
/plugins/techdocs-backend @backstage/techdocs-core
/.changeset/cost-insights-* @backstage/silver-lining
+1 -1
View File
@@ -7,7 +7,7 @@
<!--- Please include the following in your Pull Request when applicable: -->
- [ ] A changeset describing the change and affected packages. ([more info](https://github.com/spotify/backstage/blob/master/CONTRIBUTING.md#creating-changesets))
- [ ] A changeset describing the change and affected packages. ([more info](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#creating-changesets))
- [ ] Added or updated documentation
- [ ] Tests for new functionality and regression tests for bug fixes
- [ ] Screenshots attached (for UI changes)
+3
View File
@@ -62,6 +62,7 @@ Firekube
Fredrik
github
Github
gitlab
Gitlab
graphql
graphviz
@@ -91,6 +92,7 @@ learnings
lerna
Lerna
magiclink
Maintainership
mailto
Malus
md
@@ -189,6 +191,7 @@ toc
tolerations
Tolerations
toolsets
tooltip
touchpoints
ui
upvote
+3
View File
@@ -15,5 +15,8 @@ jobs:
run: yarn --frozen-lockfile
- name: Create Release Pull Request
uses: changesets/action@master
with:
# Calls out to `changeset version`, but also runs prettier
version: yarn release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -67,7 +67,7 @@ jobs:
continue-on-error: true
- name: verify doc links
run: node docs/verify-links.js
run: node scripts/verify-links.js
- name: prettier
run: yarn prettier:check
+2
View File
@@ -6,6 +6,8 @@ on:
jobs:
build:
if: github.repository == 'backstage/backstage' # prevent running on forks
runs-on: ubuntu-latest
strategy:
+8 -7
View File
@@ -1,6 +1,7 @@
name: Automatically add new TechDocs Issues and PRs to the GitHub project board
# Development of TechDocs in Backstage is managed by this Kanban board - https://github.com/spotify/backstage/projects/5
# New issues with TechDocs in their title or docs-like-code label will be added to the board.
# Development of TechDocs in Backstage is managed by this Kanban board - https://github.com/orgs/backstage/projects/1
# New issues and PRs with TechDocs in their title or docs-like-code label will be added to the board.
# Caveat: New PRs created from forks will not be added since GitHub actions don't share credentials with forks.
on:
issues:
@@ -9,7 +10,7 @@ on:
types: [opened, reopened, labeled, edited]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MY_GITHUB_TOKEN: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
jobs:
assign_issue_or_pr_to_project:
@@ -23,7 +24,7 @@ jobs:
contains(github.event.issue.title, 'techdocs') ||
contains(github.event.issue.title, 'Techdocs')
with:
project: 'https://github.com/spotify/backstage/projects/5'
project: 'https://github.com/orgs/backstage/projects/1'
column_name: 'Incoming'
- name: Assign new issue to Incoming based on its label.
@@ -31,7 +32,7 @@ jobs:
if: |
contains(github.event.issue.labels.*.name, 'docs-like-code')
with:
project: 'https://github.com/spotify/backstage/projects/5'
project: 'https://github.com/orgs/backstage/projects/1'
column_name: 'Incoming'
- name: Assign new PR to Incoming based on its title.
@@ -41,7 +42,7 @@ jobs:
contains(github.event.pull_request.title, 'techdocs') ||
contains(github.event.pull_request.title, 'Techdocs')
with:
project: 'https://github.com/spotify/backstage/projects/5'
project: 'https://github.com/orgs/backstage/projects/1'
column_name: 'Incoming'
- name: Assign new PR to Incoming based on its label.
@@ -49,5 +50,5 @@ jobs:
if: |
contains(github.event.pull_request.labels.*.name, 'docs-like-code')
with:
project: 'https://github.com/spotify/backstage/projects/5'
project: 'https://github.com/orgs/backstage/projects/1'
column_name: 'Incoming'
-37
View File
@@ -1,37 +0,0 @@
name: Master Build TechDocs PyPI Publish
on:
push:
branches: [master]
paths:
- '.github/workflows/techdocs-pypi.yml'
- 'packages/techdocs-container/**'
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.7]
steps:
# Publish techdocs-core to PyPI
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@master
with:
python-version: 3.7
- name: Build Python distribution
working-directory: ./packages/techdocs-container/techdocs-core
run: |
pip install wheel
rm -rf dist
python setup.py bdist_wheel sdist --formats gztar
- name: Publish a Python distribution to PyPI
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.PYPI_API_KEY }}
packages_dir: ./packages/techdocs-container/techdocs-core/dist
-44
View File
@@ -1,44 +0,0 @@
name: TechDocs
on:
pull_request:
paths:
- '.github/workflows/techdocs.yml'
- 'packages/techdocs-container/**'
- 'packages/techdocs-cli/**'
- 'plugins/techdocs/**'
- 'plugins/techdocs-backend/**'
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.7]
env:
TECHDOCS_CORE_PATH: ./packages/techdocs-container/techdocs-core
name: Python ${{ matrix.node-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
# Build Docker Image
- name: Build Docker image
uses: docker/build-push-action@v1.1.0
with:
path: packages/techdocs-container
push: false
# Lint Python code for techdocs-core package
- name: Prepare Python environment
run: |
python3 -m pip install --index-url https://pypi.org/simple/ setuptools
python3 -m pip install --upgrade pip
python3 -m pip install --index-url https://pypi.org/simple/ -r $TECHDOCS_CORE_PATH/requirements.txt
- name: Lint techdocs-core package
run: |
python3 -m black --check $TECHDOCS_CORE_PATH/src
+7 -1
View File
@@ -1,5 +1,11 @@
.idea/
# macOS
.DS_Store
# IntelliJ
.idea/
*.iml
# Visual Studio Code
.vscode/
.vsls.json
+1
View File
@@ -3,6 +3,7 @@
registry "https://registry.npmjs.org/"
disable-self-update-check true
lastUpdateCheck 1580389148099
yarn-path ".yarn/releases/yarn-1.22.1.js"
network-timeout 600000
+41 -29
View File
@@ -2,30 +2,42 @@
This is a best-effort changelog where we manually collect breaking changes. It is not an exhaustive list of all changes or even features added.
If you encounter issues while upgrading to a newer version, don't hesitate to reach out on [Discord](https://discord.gg/EBHEGzX) or [open an issue](https://github.com/spotify/backstage/issues/new/choose)!
If you encounter issues while upgrading to a newer version, don't hesitate to reach out on [Discord](https://discord.gg/EBHEGzX) or [open an issue](https://github.com/backstage/backstage/issues/new/choose)!
## Next Release
> Collect changes for the next release below
## v0.1.1-alpha.26
### @backstage/cli
- Configuration files are no longer selected through `APP_ENV` or `NODE_ENV`. The default configuration files are `app-config.yaml` and, fix it exists, `app-config.local.yaml` in the repo root. To load a different set of files, use `--config <path>` arguments.
### @backstage/backend-common
- Configuration files are no longer selected through `APP_ENV` or `NODE_ENV`. The default configuration files are `app-config.yaml` and, fix it exists, `app-config.local.yaml` in the repo root. To load a different set of files, use `--config <path>` arguments.
## v0.1.1-alpha.25
### @backstage/cli
- The recommended way to set the configuration environment is now to use `APP_ENV` instead of `NODE_ENV`.
### Backend (example-backend, or backends created with @backstage/create-app)
- A plugin database manager has been created, and plugins can now accept that interface as an argument during initialisation. Notably, the `auth` plugin has a [`createRouter` signature change](./plugins/auth-backend/src/service/router.ts). See [packages/backend/src/index.ts](./packages/backend/src/index.ts) on how to set it up. [#2697](https://github.com/spotify/backstage/pull/2697)
- A plugin database manager has been created, and plugins can now accept that interface as an argument during initialisation. Notably, the `auth` plugin has a [`createRouter` signature change](./plugins/auth-backend/src/service/router.ts). See [packages/backend/src/index.ts](./packages/backend/src/index.ts) on how to set it up. [#2697](https://github.com/backstage/backstage/pull/2697)
## v0.1.1-alpha.24
### Backend (example-backend, or backends created with @backstage/create-app)
- The default mount point for backend plugins have been changed to `/api`. These changes are done in the backend package itself, so it is recommended that you sync up existing backend packages with this new pattern. [#2562](https://github.com/spotify/backstage/pull/2562)
- A service discovery mechanism for backend plugins has been added, and is now a requirement for several backend plugins. See [packages/backend/src/index.ts](./packages/backend/src/index.ts) for how to set it up using `SingleHostDiscovery` from `@backstage/backend-common`. Note that the default base path for plugins is set to `/api` to that change, but it can be set to use the old behavior via the `basePath` option. [#2600](https://github.com/spotify/backstage/pull/2600)
- The default mount point for backend plugins have been changed to `/api`. These changes are done in the backend package itself, so it is recommended that you sync up existing backend packages with this new pattern. [#2562](https://github.com/backstage/backstage/pull/2562)
- A service discovery mechanism for backend plugins has been added, and is now a requirement for several backend plugins. See [packages/backend/src/index.ts](./packages/backend/src/index.ts) for how to set it up using `SingleHostDiscovery` from `@backstage/backend-common`. Note that the default base path for plugins is set to `/api` to that change, but it can be set to use the old behavior via the `basePath` option. [#2600](https://github.com/backstage/backstage/pull/2600)
### @backstage/auth-backend
- The default mount path of backend plugins was changed to `/api/:pluginId`, and as part of that it was needed to enable configuration of the base path of the auth backend, so that it can construct redirect URLs correctly. Note that you will also need to reconfigure any allowed redirect URLs to include `/api` if you switch to the new recommended pattern. [#2562](https://github.com/spotify/backstage/pull/2562)
- The default mount path of backend plugins was changed to `/api/:pluginId`, and as part of that it was needed to enable configuration of the base path of the auth backend, so that it can construct redirect URLs correctly. Note that you will also need to reconfigure any allowed redirect URLs to include `/api` if you switch to the new recommended pattern. [#2562](https://github.com/backstage/backstage/pull/2562)
- The auth backend now requires an implementation of `PluginEndpointDiscovery` from `@backstage/backend-common` to be passed in as `discovery`. See the changes to `@backstage/backend`.
### @backstage/proxy-backend
@@ -38,28 +50,28 @@ If you encounter issues while upgrading to a newer version, don't hesitate to re
### @backstage/plugin-identity-backend
- This plugin was removed, remove it from your backend if it's there. [#2616](https://github.com/spotify/backstage/pull/2616)
- This plugin was removed, remove it from your backend if it's there. [#2616](https://github.com/backstage/backstage/pull/2616)
## v0.1.1-alpha.23
### @backstage/core
- Renamed `SessionStateApi` to `SessionApi` and `logout` to `signOut`. Custom implementations of the `SingInPage` app-component will need to rename their `logout` function. The different auth provider items for the `UserSettingsMenu` have been consolidated into a single `ProviderSettingsItem`, meaning you need to replace existing usages of `OAuthProviderSettings` and `OIDCProviderSettings`. [#2555](https://github.com/spotify/backstage/pull/2555).
- Renamed `SessionStateApi` to `SessionApi` and `logout` to `signOut`. Custom implementations of the `SingInPage` app-component will need to rename their `logout` function. The different auth provider items for the `UserSettingsMenu` have been consolidated into a single `ProviderSettingsItem`, meaning you need to replace existing usages of `OAuthProviderSettings` and `OIDCProviderSettings`. [#2555](https://github.com/backstage/backstage/pull/2555).
## v0.1.1-alpha.22
### @backstage/core
- Introduced initial version of an inverted app/plugin relationship, where plugins export components for apps to use, instead registering themselves directly into the app. This enables more fine-grained control of plugin features, and also composition of plugins such as catalog pages with additional cards and tabs. This breaks the use of `RouteRef`s, and there will be more changes related to this in the future, but this change lays the initial foundation. See `packages/app` and followup PRs for how to update plugins for this change. [#2076](https://github.com/spotify/backstage/pull/2076)
- Switch to an automatic dependency injection mechanism for all Utility APIs, allowing plugins to ship default implementations of their APIs. See [https://backstage.io/docs/api/utility-apis](https://backstage.io/docs/api/utility-apis). [#2285](https://github.com/spotify/backstage/pull/2285)
- Introduced initial version of an inverted app/plugin relationship, where plugins export components for apps to use, instead registering themselves directly into the app. This enables more fine-grained control of plugin features, and also composition of plugins such as catalog pages with additional cards and tabs. This breaks the use of `RouteRef`s, and there will be more changes related to this in the future, but this change lays the initial foundation. See `packages/app` and followup PRs for how to update plugins for this change. [#2076](https://github.com/backstage/backstage/pull/2076)
- Switch to an automatic dependency injection mechanism for all Utility APIs, allowing plugins to ship default implementations of their APIs. See [https://backstage.io/docs/api/utility-apis](https://backstage.io/docs/api/utility-apis). [#2285](https://github.com/backstage/backstage/pull/2285)
### @backstage/cli
- Change `backstage-cli backend:build-image` to forward all args to `docker image build`, instead of just tag. Also add `--build` flag for building all dependent packages before packaging the workspace for the docker build. [#2299](https://github.com/spotify/backstage/pull/2299)
- Change `backstage-cli backend:build-image` to forward all args to `docker image build`, instead of just tag. Also add `--build` flag for building all dependent packages before packaging the workspace for the docker build. [#2299](https://github.com/backstage/backstage/pull/2299)
### @backstage/create-app
- Change root `tsc` output dir to `dist-types`, in order to allow for standalone plugin repos. [#2278](https://github.com/spotify/backstage/pull/2278)
- Change root `tsc` output dir to `dist-types`, in order to allow for standalone plugin repos. [#2278](https://github.com/backstage/backstage/pull/2278)
### @backstage/catalog-backend
@@ -67,7 +79,7 @@ If you encounter issues while upgrading to a newer version, don't hesitate to re
## v0.1.1-alpha.21
- Added many more frontend plugins to the template along with the sidebar. [#1942](https://github.com/spotify/backstage/pull/1942), [#2084](https://github.com/spotify/backstage/pull/2084)
- Added many more frontend plugins to the template along with the sidebar. [#1942](https://github.com/backstage/backstage/pull/1942), [#2084](https://github.com/backstage/backstage/pull/2084)
### @backstage/core
@@ -78,14 +90,14 @@ If you encounter issues while upgrading to a newer version, don't hesitate to re
### @backstage/cli
- Set `NODE_ENV` to `test` when running test. [#2214](https://github.com/spotify/backstage/pull/2214)
- Set `NODE_ENV` to `test` when running test. [#2214](https://github.com/backstage/backstage/pull/2214)
- Fix for backend plugins names requiring to be prefixed with `@backstage` to build. [#2224](https://github.com/spotify/backstage/pull/2224)
- Fix for backend plugins names requiring to be prefixed with `@backstage` to build. [#2224](https://github.com/backstage/backstage/pull/2224)
### @backstage/backend-common
- The backend plugin
[service builder](https://github.com/spotify/backstage/blob/master/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts)
[service builder](https://github.com/backstage/backstage/blob/master/packages/backend-common/src/service/lib/ServiceBuilderImpl.ts)
no longer adds `express.json()` automatically to all routes. While convenient
in a lot of cases, it also led to problems where for example the proxy
middleware could hang because the body had already been altered and could not
@@ -95,61 +107,61 @@ If you encounter issues while upgrading to a newer version, don't hesitate to re
### @backstage/catalog-backend
- Add rules configuration for catalog location and entity kinds. The default rules should cover most use-cases, but you may need to allow specific entity kinds when using things like Template or Group entities. [#2118](https://github.com/spotify/backstage/pull/2118)
- Add rules configuration for catalog location and entity kinds. The default rules should cover most use-cases, but you may need to allow specific entity kinds when using things like Template or Group entities. [#2118](https://github.com/backstage/backstage/pull/2118)
## v0.1.1-alpha.20
### @backstage/cli
- Use config files according to `NODE_ENV` when serving and building frontend packages. [#2077](https://github.com/spotify/backstage/pull/2077)
- Use config files according to `NODE_ENV` when serving and building frontend packages. [#2077](https://github.com/backstage/backstage/pull/2077)
- Pin `rollup-plugin-dts` to avoid a later broken version. [#2097](https://github.com/spotify/backstage/pull/2097)
- Pin `rollup-plugin-dts` to avoid a later broken version. [#2097](https://github.com/backstage/backstage/pull/2097)
## v0.1.1-alpha.19
### @backstage/backend-common
- Allow listen host and port to be configured separately, in order to support PORT environment variables. [#1950](https://github.com/spotify/backstage/pull/1950)
- Allow listen host and port to be configured separately, in order to support PORT environment variables. [#1950](https://github.com/backstage/backstage/pull/1950)
### @backstage/core
- Added new `DiscoveryApi` for discovering backend endpoint in the frontend, and use in most plugins. See [packages/app/src/apis.ts](https://github.com/spotify/backstage/blob/master/packages/app/src/apis.ts) for how to register in your app. [#2074](https://github.com/spotify/backstage/pull/2074)
- Added new `DiscoveryApi` for discovering backend endpoint in the frontend, and use in most plugins. See [packages/app/src/apis.ts](https://github.com/backstage/backstage/blob/master/packages/app/src/apis.ts) for how to register in your app. [#2074](https://github.com/backstage/backstage/pull/2074)
### @backstage/create-app
- Added catalog and scaffolder frontend plugins to the template along with the sidebar. [#1942](https://github.com/spotify/backstage/pull/1942), [#2084](https://github.com/spotify/backstage/pull/2084)
- Many plugins have been added to the catalog and will for now be required to be added to separate apps as well. This will be solved as [#1536](https://github.com/spotify/backstage/issues/1536) gets sorted out, but for now you may need to install some plugins just to get pages to work.
- Added catalog and scaffolder frontend plugins to the template along with the sidebar. [#1942](https://github.com/backstage/backstage/pull/1942), [#2084](https://github.com/backstage/backstage/pull/2084)
- Many plugins have been added to the catalog and will for now be required to be added to separate apps as well. This will be solved as [#1536](https://github.com/backstage/backstage/issues/1536) gets sorted out, but for now you may need to install some plugins just to get pages to work.
### @backstage/catalog-backend
- Added the possibility to add static locations via `app-config.yaml`. This changed the signature of `new LocationReaders(logger)` inside `packages/backend/src/plugins/catalog.ts` to `new LocationReaders({config, logger})`. [#1890](https://github.com/spotify/backstage/pull/1890)
- Added the possibility to add static locations via `app-config.yaml`. This changed the signature of `new LocationReaders(logger)` inside `packages/backend/src/plugins/catalog.ts` to `new LocationReaders({config, logger})`. [#1890](https://github.com/backstage/backstage/pull/1890)
### @backstage/theme
- Changed the type signature of the palette, removing `sidebar: string` and adding `navigation: { background: string; indicator: string}`. [#1880](https://github.com/spotify/backstage/pull/1880)
- Changed the type signature of the palette, removing `sidebar: string` and adding `navigation: { background: string; indicator: string}`. [#1880](https://github.com/backstage/backstage/pull/1880)
## v0.1.1-alpha.18
### @backstage/catalog-backend
- Fixed an issue with duplicated location logs. Applying the database migrations from this fix will clear the existing migration logs. [#1836](https://github.com/spotify/backstage/pull/1836)
- Fixed an issue with duplicated location logs. Applying the database migrations from this fix will clear the existing migration logs. [#1836](https://github.com/backstage/backstage/pull/1836)
### @backstage/auth-backend
This version fixes a breakage in CSP policies set by the auth backend. If you're facing trouble with auth in alpha.17, upgrade to alpha.18.
- OAuth redirect URLs no longer receive the `env` parameter, as it is now passed through state instead. This will likely require a reconfiguration of the OAuth app, where a redirect URL like `http://localhost:7000/auth/google/handler/frame?env=development` should now be configured as `http://localhost:7000/auth/google/handler/frame`. [#1812](https://github.com/spotify/backstage/pull/1812)
- OAuth redirect URLs no longer receive the `env` parameter, as it is now passed through state instead. This will likely require a reconfiguration of the OAuth app, where a redirect URL like `http://localhost:7000/auth/google/handler/frame?env=development` should now be configured as `http://localhost:7000/auth/google/handler/frame`. [#1812](https://github.com/backstage/backstage/pull/1812)
### @backstage/core
- `SignInPage` props have been changed to receive a list of provider objects instead of simple string identifiers for all but the `'guest'` and `'custom'` providers. This opens up for configuration of custom providers, but may break existing configurations. See [packages/app/src/App.tsx](https://github.com/spotify/backstage/blob/032ba401af36a760efdac41668d7000ccf09bc57/packages/app/src/App.tsx#L36) and [packages/app/src/identityProviders.ts](https://github.com/spotify/backstage/blob/032ba401af36a760efdac41668d7000ccf09bc57/packages/app/src/identityProviders.ts#L24) for how to bring back the existing providers. [#1816](https://github.com/spotify/backstage/pull/1816)
- `SignInPage` props have been changed to receive a list of provider objects instead of simple string identifiers for all but the `'guest'` and `'custom'` providers. This opens up for configuration of custom providers, but may break existing configurations. See [packages/app/src/App.tsx](https://github.com/backstage/backstage/blob/032ba401af36a760efdac41668d7000ccf09bc57/packages/app/src/App.tsx#L36) and [packages/app/src/identityProviders.ts](https://github.com/backstage/backstage/blob/032ba401af36a760efdac41668d7000ccf09bc57/packages/app/src/identityProviders.ts#L24) for how to bring back the existing providers. [#1816](https://github.com/backstage/backstage/pull/1816)
## v0.1.1-alpha.17
### @backstage/techdocs-backend
- The techdocs backend now requires more configuration to be supplied when creating the router. See [packages/backend/src/plugins/techdocs.ts](https://github.com/spotify/backstage/blob/0201fd9b4a52429519dd59e9184106ba69456deb/packages/backend/src/plugins/techdocs.ts#L42) for an example. [#1736](https://github.com/spotify/backstage/pull/1736)
- The techdocs backend now requires more configuration to be supplied when creating the router. See [packages/backend/src/plugins/techdocs.ts](https://github.com/backstage/backstage/blob/0201fd9b4a52429519dd59e9184106ba69456deb/packages/backend/src/plugins/techdocs.ts#L42) for an example. [#1736](https://github.com/backstage/backstage/pull/1736)
### @backstage/cli
- The `create-app` command was moved out from the CLI to a standalone package. It's now invoked with `npx @backstage/create-app` instead. [#1745](https://github.com/spotify/backstage/pull/1745)
- The `create-app` command was moved out from the CLI to a standalone package. It's now invoked with `npx @backstage/create-app` instead. [#1745](https://github.com/backstage/backstage/pull/1745)
+9 -9
View File
@@ -12,11 +12,11 @@ Backstage is released under the Apache2.0 License, and original creations contri
## Report bugs
No one likes bugs. Report bugs as an issue [here](https://github.com/spotify/backstage/issues/new?template=bug_template.md).
No one likes bugs. Report bugs as an issue [here](https://github.com/backstage/backstage/issues/new?template=bug_template.md).
## Fix bugs or build new features
Look through the GitHub issues for [bugs](https://github.com/spotify/backstage/labels/bugs), [good first issues](https://github.com/spotify/backstage/labels/good%20first%20issue) or [help wanted](https://github.com/spotify/backstage/labels/help%20wanted).
Look through the GitHub issues for [bugs](https://github.com/backstage/backstage/labels/bugs), [good first issues](https://github.com/backstage/backstage/labels/good%20first%20issue) or [help wanted](https://github.com/backstage/backstage/labels/help%20wanted).
## Build a plugin
@@ -24,17 +24,17 @@ The value of Backstage grows with every new plugin that gets added. Wouldn't it
A great reference example of a plugin can be found on [our blog](https://backstage.io/blog/2020/04/06/lighthouse-plugin) (thanks [@fastfrwrd](https://github.com/fastfrwrd)!)
What kind of plugins should/could be created? Some inspiration from the 120+ plugins that we have developed inside Spotify can be found [here](https://backstage.io/demos), but we will keep a running list of suggestions labeled with [[plugin]](https://github.com/spotify/backstage/labels/plugin).
What kind of plugins should/could be created? Some inspiration from the 120+ plugins that we have developed inside Spotify can be found [here](https://backstage.io/demos), but we will keep a running list of suggestions labeled with [[plugin]](https://github.com/backstage/backstage/labels/plugin).
## Suggesting a plugin
If you start developing a plugin that you aim to release as open source, we suggest that you create a [new Issue](https://github.com/spotify/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME). This helps the community know what plugins are in development.
If you start developing a plugin that you aim to release as open source, we suggest that you create a [new Issue](https://github.com/backstage/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME). This helps the community know what plugins are in development.
You can also use this process if you have an idea for a good plugin but you hope that someone else will pick up the work.
## Adding Non-code Contributions
Since there is such a large landscape of possible development, build, and deployment environments, we welcome community contributions in these areas in the [`/contrib`](https://github.com/spotify/backstage/tree/master/contrib) folder of the project. This is an excellent place to put things that help out the community at large, but which may not fit within the scope of the core product to support natively. Here, you will find Helm charts, alternative Docker images, and much more.
Since there is such a large landscape of possible development, build, and deployment environments, we welcome community contributions in these areas in the [`/contrib`](https://github.com/backstage/backstage/tree/master/contrib) folder of the project. This is an excellent place to put things that help out the community at large, but which may not fit within the scope of the core product to support natively. Here, you will find Helm charts, alternative Docker images, and much more.
## Write Documentation
@@ -44,11 +44,11 @@ The current documentation is very limited. Help us make the `/docs` folder come
We think the best way to ensure different plugins provide a consistent experience is through a solid set of reusable UI/UX components. Backstage uses [Storybook](http://backstage.io/storybook).
Either help us [create new components](https://github.com/spotify/backstage/labels/help%20wanted) or improve stories for the existing ones (look for files with `*.stories.tsx`).
Either help us [create new components](https://github.com/backstage/backstage/labels/help%20wanted) or improve stories for the existing ones (look for files with `*.stories.tsx`).
## Submit Feedback
The best way to send feedback is to file [an issue](https://github.com/spotify/backstage/issues).
The best way to send feedback is to file [an issue](https://github.com/backstage/backstage/issues).
If you are proposing a feature:
@@ -74,7 +74,7 @@ All code is formatted with `prettier` using the configuration in the repo. If po
If you're contributing to the backend or CLI tooling, be mindful of cross-platform support. [This](https://shapeshed.com/writing-cross-platform-node/) blog post is a good guide of what to keep in mind when writing cross-platform NodeJS.
Also be sure to skim through our [ADRs](https://github.com/spotify/backstage/tree/master/docs/architecture-decisions) to see if they cover what you're working on. In particular [ADR006: Avoid React.FC and React.SFC](https://github.com/spotify/backstage/blob/master/docs/architecture-decisions/adr006-avoid-react-fc.md) is one to look out for.
Also be sure to skim through our [ADRs](https://github.com/backstage/backstage/tree/master/docs/architecture-decisions) to see if they cover what you're working on. In particular [ADR006: Avoid React.FC and React.SFC](https://github.com/backstage/backstage/blob/master/docs/architecture-decisions/adr006-avoid-react-fc.md) is one to look out for.
If there are any updates in `markdown` file please make sure to run `yarn run lint:docs`. Though it is checked on `lint-staged`. It is required to install [vale](https://docs.errata.ai/vale/install) separately and make sure it is accessed by global command.
@@ -97,7 +97,7 @@ For more information, checkout [adding a changeset](https://github.com/atlassian
This project adheres to the [Spotify FOSS Code of Conduct][code-of-conduct]. By participating, you are expected to honor this code.
[code-of-conduct]: https://github.com/spotify/backstage/blob/master/CODE_OF_CONDUCT.md
[code-of-conduct]: https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md
# Security Issues?
+52
View File
@@ -0,0 +1,52 @@
# Backstage Governance
This document defines project governance for the project.
## Maintainers
Backstage Maintainers have write access to the Backstage GitHub repository https://github.com/backstage/backstage. The current maintainers can be found in [MAINTAINERS](MAINTAINERS.md).
This privilege is granted with some expectation of responsibility: maintainers are people who care about the Backstage project and want to help it grow and improve. A maintainer is not just someone who can make changes, but someone who has demonstrated his or her ability to collaborate with the team, get the most knowledgeable people to review code, contribute high-quality code, and follow through to fix issues (in code or tests).
A maintainer is a contributor to the Backstage project's success and a citizen helping the project succeed.
## Becoming a Maintainer
To become a maintainer you need to demonstrate the following:
- commitment to the project
- participate in discussions, contributions, code reviews for 3 months or more,
- perform code reviews for 10 non-trivial pull requests,
- contribute 10 non-trivial pull requests and have them merged into master,
- ability to write good code,
- ability to collaborate with the team,
- understanding of how the team works (policies, processes for testing and code review, etc),
- understanding of the project's code base and coding style.
## Changes in Maintainership
A new maintainer must be proposed by an existing maintainer by opening an issue (with title `Maintainer Nomination`) to the Backstage GitHub repository (https://github.com/backstage/backstage) containing the following information:
- nominee's first and last name,
- nominee's email address and GitHub user name,
- an explanation of why the nominee should be a maintainer,
- a list of links to non-trivial pull requests (top 10) authored by the nominee.
Maintainers can be removed by a 2/3 majority vote.
## Approving PRs
PRs may be merged after receiving at least one approval from a maintainer.
## GitHub Project Administration
Maintainers will be added to the collaborators list of the Backstage repository with "Write" access.
## Changes in Governance
All changes in Governance require a 2/3 majority vote.
## Other Changes
Unless specified above, all other changes to the project require a 2/3 majority vote.
Additionally, any maintainer may request that any change require a 2/3 majority vote.

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