Merge pull request #2724 from taras/tm/add-missing-changesets

Add changesets missing since last release
This commit is contained in:
Patrik Oldsberg
2020-10-05 17:07:32 +02:00
committed by GitHub
46 changed files with 439 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
---
'@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
@@ -0,0 +1,11 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@backstage/plugin-cloudbuild': minor
---
Releasing Google Cloud Build Plugin
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/catalog-model': minor
---
Add handling and docs for entity references
+14
View File
@@ -0,0 +1,14 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@backstage/theme': minor
---
Tweak dark mode colors
+9
View File
@@ -0,0 +1,9 @@
---
'@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
@@ -0,0 +1,7 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@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
@@ -0,0 +1,59 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@backstage/core': minor
---
Fix dense in Structured Metadata Table
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/catalog-model': minor
'@backstage/plugin-catalog-backend': minor
---
Entirely case insensitive read path of entities
+9
View File
@@ -0,0 +1,9 @@
---
'@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
@@ -0,0 +1,6 @@
---
'@backstage/catalog-model': minor
'@backstage/plugin-catalog-backend': minor
---
Add ApiDefinitionAtLocationProcessor that allows to load a API definition from another location
+11
View File
@@ -0,0 +1,11 @@
---
'@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
@@ -0,0 +1,19 @@
---
'@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
@@ -0,0 +1,8 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': patch
---
Move auth provider router creation to router
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Sync scaffolded backend with example
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-circleci': minor
---
Refactor to use DiscoveryApi
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Remove discovery api override
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-jenkins': patch
---
Refactor to use DiscoveryApi
+12
View File
@@ -0,0 +1,12 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@backstage/create-app': minor
---
Default to using internal scope for new plugins
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-common': minor
---
Use localhost to fall back to IPv4 if IPv6 isn't available
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/create-app': minor
---
Remove identity-backend
Not used, and we're heading down the route of identities in the catalog
+7
View File
@@ -0,0 +1,7 @@
---
'@backstage/plugin-catalog': minor
---
Created EntityNotFound component for catalog which displays the 404 page when entity is not found.
Fixes #2266
+17
View File
@@ -0,0 +1,17 @@
---
'@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
@@ -0,0 +1,9 @@
---
'@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
@@ -0,0 +1,7 @@
---
'@backstage/cli': patch
---
Add codeowners processor
- Include ESNext.Promise in TypeScript compilation
+22
View File
@@ -0,0 +1,22 @@
---
'@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
@@ -0,0 +1,9 @@
---
'@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
@@ -0,0 +1,21 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@backstage/cli': minor
---
Upgrade dependency `esbuild@0.7.7`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-backend': minor
---
Simplify the read function in processors
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend': minor
---
Lookup user in Google Auth Provider
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core': minor
---
Added EmptyState component
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-api-docs': patch
---
Resolve some dark mode styling issues in asyncAPI specs
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core': patch
---
Fixed banner component position in DismissableBanner component
+7
View File
@@ -0,0 +1,7 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@backstage/catalog-model': minor
---
Add the ability to import users from GitHub Organization into the catalog.
+7
View File
@@ -0,0 +1,7 @@
---
'@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
@@ -0,0 +1,12 @@
---
'@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
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Update SSR template to pass CI
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Upgrade dependency rollup-plugin-typescript2 to ^0.27.3
+11
View File
@@ -0,0 +1,11 @@
---
'@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