From dbc29358ed41a98012160a0503a5f6e83158de71 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 12 Jun 2020 22:09:21 +0200 Subject: [PATCH] v0.1.1-alpha.8 --- docs/journey.md | 273 ++++++++++++++++++++++++ lerna.json | 2 +- packages/app/package.json | 30 +-- packages/backend-common/package.json | 4 +- packages/backend/package.json | 18 +- packages/catalog-model/package.json | 4 +- packages/cli/package.json | 2 +- packages/core-api/package.json | 6 +- packages/core/package.json | 10 +- packages/dev-utils/package.json | 10 +- packages/storybook/package.json | 4 +- packages/test-utils/package.json | 8 +- packages/theme/package.json | 4 +- plugins/auth-backend/package.json | 6 +- plugins/catalog-backend/package.json | 8 +- plugins/catalog/package.json | 18 +- plugins/circleci/package.json | 10 +- plugins/explore/package.json | 12 +- plugins/gitops-profiles/package.json | 14 +- plugins/graphiql/package.json | 12 +- plugins/home-page/package.json | 10 +- plugins/identity-backend/package.json | 6 +- plugins/lighthouse/package.json | 12 +- plugins/register-component/package.json | 14 +- plugins/scaffolder-backend/package.json | 6 +- plugins/scaffolder/package.json | 10 +- plugins/sentry-backend/package.json | 6 +- plugins/sentry/package.json | 10 +- plugins/tech-radar/package.json | 10 +- plugins/welcome/package.json | 10 +- 30 files changed, 411 insertions(+), 138 deletions(-) create mode 100644 docs/journey.md diff --git a/docs/journey.md b/docs/journey.md new file mode 100644 index 0000000000..e38130afb7 --- /dev/null +++ b/docs/journey.md @@ -0,0 +1,273 @@ +# Purpose + +This RFC describes a possible journey of a future Backstage plugin developer as +they build a plugin that touches many different aspects of a Backstage. The +story invents many new things that are not part of Backstage today, but are +things that I'm suggesting we should add as long term or north star goals. The +idea is to discuss what parts of the story makes sense to aim for, and what we'd +want to do differently or not at all. The "chapters" are numbered to make it a +bit easier to comment on parts of the story. + +# The Protagonist + +Sam is an experienced developer that has worked with Backstage for a while, and +knows the best practices and tools available to build plugins. Sam also likes +music and wants to have a theme tune for every service in Backstage. + +# The End + +Sam built a Spotify plugin for Backstage that allows service owners to define a +theme tune for their service. The theme tune plays whenever a user visits the +service page in Backstage. The plugin is published to NPM and available for any +organization to easily install and add to their Backstage installation. + +# 1. A New Plugin + +Sam chooses to develop this plugin in a standalone project and creates a new +plugin using `npx @backstage/cli create-plugin`, which detects that it's not +being run in an existing project and therefore creates a separate plugin repo. + +Spinning up the frontend with `yarn start`, Sam goes to work with getting the +base functionality of a Spotify web player going. By installing a couple of +dependencies and whipping together a nice UI, the player is pretty much done. + +# 2. The Auth Menace + +Sam realizes users need to be authenticated towards the Spotify API to be able +to play music, and Backstage doesn't support Spotify login yet. Sam adds the +`@backstage/plugin-auth-backend` as local development middleware in the project, +and provides the necessary wrapping logic and configuration for the +`passport-spotify` strategy. The Spotify auth provider is now available in the +local development backend, and by adding a frontend `SpotifyAuth` Utility API +that implements the `OAuthApi` type, it's now working in the frontend too. + +```ts +const spotifyAuthApiRef = createApiRef({ + id: 'core.auth.spotify', + description: 'Provides authentication towards Spotify APIs', +}); +``` + +Sam realizes that Spotify auth might be useful to others, and that it would be +more convenient if it was a part of the Backstage Core. After submitting and +merging a Pull Request with the additions to the +`@backstage/plugin-auth-backend` and `@backstage/core` packages, Spotify auth is +now available for everyone to use. Since the Backstage Core team also adds it to +the public demo server, Sam can now get rid of it in the local setup and rely on +the shared development auth providers instead. + +The only thing left now is making sure that users of the plugin provide Spotify +auth in the app. Sam ensures this by adding `spotifyAuthApiRef` to the plugin's +list of required APIs, as well as listing it in the requirements section in the +README. + +```md +## Requirements + +This plugin requires the following APIs to function: + +- `spotifyAuthApiRef` from `@backstage/core@^1.1.0` +``` + +# 3. The Catalog Awakens + +Sam now has a working player and a method for users to log in to listen to +music, but the goal is to provide theme songs for services. Sam adds this +functionality by defining a new metadata annotation called +`sam.wise/spotify-track-id`. The annotation's value is a Spotify track ID and +can be defined in a component like this: + +```yaml +apiVersion: backstage.io/v1 +kind: Component +metadata: + name: my-component + annotations: + sam.wise/spotify-track-id: '4uLU6hMCjMI75M1A2tKUQC' +spec: + type: service +``` + +Sam creates a JSON schema that documents the annotation and allows it to be used +in validation and documentation for organizations that choose to adopt the +plugin. + +```json +{ + "sam.wise/spotify-track-id": { + "$id": "https://raw.githubusercontent.com/sam/backstage-spotify-theme/master/annotation.json#/sam.wise/spotify-track-id", + "type": "string", + "title": "Spotify Track Annotation", + "description": "Spotify track ID to associated with the entity", + "examples": ["4uLU6hMCjMI75M1A2tKUQC"] + } +} +``` + +# 4. The Rise of Widgets + +Sam also wraps the music player in an entity page widget. This allows anyone +that wants to use the plugin to add the player to any of their entity layout +templates, which will make it show up for every entity of that kind. + +```tsx +export const PlayerWidget = plugin.createEntityWidget({ + component: WebPlayer, + locations: ['header', 'card', 'footer'], + cardSize: [2, 4], +}); +``` + +The widget receives information about the entity in whose page it's being +embedded, which makes it simple to grab the track id from the annotations and +hook up the player. + +Sam also modifies the standalone plugin development setup to include this new +widget inside a basic entity page, adding it to a couple of different places +where users of the plugin may want to put the player, just to make sure they all +work. + +# 5. The First User + +At this point the only things that anyone that wants to use Sam's plugin needs +to do is to add +https://raw.githubusercontent.com/sam/backstage-spotify-theme/master/annotation.json#/sam.wise/spotify-track-id +to their catalog schema, import and add the `PlayerWidget` on the desired entity +template pages, and make sure they're providing Spotify auth. + +Sam soon sees the first "Used by" show up on GitHub, and feedback starts rolling +in. Users really like the plugin, and some a requesting the possibility to +select a theme tune when creating a new component. Sam jumps on the idea and +adds a new creation hook that is exported by the plugin. The hook can be +installed either in a single, all, or component templates that match a label. It +adds a field as a part of the component creation process with a nice search box +that allow users to search for a track that they want to use as the theme tune. + +# 6. Return to the Repo + +Sam is pretty content at this point, but would like to make it easier for users +to change the track after creation, preferable using the same search box that +was made for the creation form. By adding an edit button to the `PlayerWidget`, +and a nice empty state, Sam is able to provide the appropriate hooks in the GUI +to open up a search dialog. + +To save the selected track, Sam uses the `RepoApi` to suggest a change to the +entity definition file. This will create a Pull Request for organizations that +use GitHub, a Merge Request for users of GitLab, and so on. + +```ts +const repoApi = useApi(repoApiRef); +const alertApi = useApi(alertApiRef); + +const onSave = async () => { + const { url } = await repoApi.createChangeRequest({ + title: `Change theme tune to ${track.title} by ${track.artist}`, + changes: [ + { + path: entityYamlPath, + content: newEntityYamlContent, + }, + ], + }); + + alertApi.post({ message: `Requested change, ${url}` }); +}; +``` + +Now it's much simpler for users to change the theme tune, as they no longer need +to go look up a track ID and edit a yaml file. Instead, they can now stay inside +Backstage and search for the track and request the change from there. In +addition, the requested change can be reviewed by the regular process of each +organization. + +# 7. The User Strikes Back + +Sam's plugin is pretty popular at this point, and has been picked up and used by +many organizations. But some users start voicing concerns that they have too +many different hand-crafted annotations in their entity descriptions, and would +like to be able to avoid some of them. They really like the theme tunes though, +and wish they could keep them without having to put them in the entity +description, even if that means it won't go through the regular source control +review process. + +One day Sam receives a Pull Request for the plugin. It adds an option to use the +Database provided by `@backstage/backend-common` to store the track ID. It's all +packaged into a new backend plugin that will also extend the catalog backend +with schema and functionality to automatically load the value of the +`sam.wise/spotify-track-id` annotation from the backend plugin and database. The +backend plugin also extends the common GraphQL schema with a mutation that +updates the track ID in the database. + +On the frontend the Pull Request doesn't change much. It defines the save action +the was previously using the `RepoApi` in it's own API. + +```ts +type ThemeTuneStorageApi = { + save(entity: Entity, trackId: string): Promise; +}; +``` + +The plugin also provides two different implementations of the API, one that uses +the old behavior of the `RepoApi`, and a new one that calls the `GraphQL` API. +The new API relies on the `IdentityApi` as a mechanism for authorizing changes, +instead of source control reviews. The `IdentityApi` provides a token that is +included in the request to the backend, which then must match the owner of the +component for which the user is trying to change the theme tune. + +> Author breaking the 4th wall here. I actually think every GraphQL request +> should include the ID token of the user, but invented a reason to include it +> here anyway. + +The API is selected based on a configuration parameter for the plugin, but +defaults to the original `RepoApi` behavior. + +```ts +if (config.getBoolean('storeTrackInDatabase')) { + return new GraphQLThemeTuneStore(graphqlClient, identityApi, alertApi); +} else { + return new RepoThemeTuneStore(repoApi, alertApi); +} +``` + +Sam is amazed by the pure awesomeness of this change, replies with a "👍" and +hits merge. + +# 8. Attack of the Clones + +Sam just released v1.8.4 of the plugin, and at this point it's so popular that a +couple of other plugins has started depending on the `sam.wise/spotify-track-id` +annotation. One such plugin being the `spotify-album-art` plugin that can +display the album art of the theme tune as the background of the entity header. +Sam thinks it's all pretty cool, but doesn't like that the annotation that was +once an internal concern of the plugin is now becoming a standard in the +community. + +In order to standardize the annotation in Backstage, Sam submits a Pull Request +to the Backstage Core repo. The request suggest a new well-known metadata +annotation called `spotify.com/track-id`, with the same schema definition as +Sam's label, and refers to Sam's own plugin and the `spotify-album-art` plugin +as existing usages. The Backstage maintainers merge the Pull Request, after +checking with the folks over at Spotify that they're cool with the annotation, +and faffing about over some minor grammar mistake in the annotation description. + +With the annotation now available inside Backstage Core, Sam releases v2 of the +plugin, which uses the new annotation. It can still consume the old annotation +for backwards compatibility, but new users of the plugin no longer need to add +the +https://raw.githubusercontent.com/sam/backstage-spotify-theme/master/annotation.json#/sam.wise/spotify-track-id +extension to their catalog schema, as it's now part of the core schema. The new +release of Sam's plugin specifies a dependency on Backstage with a minimum +version set to the same release as the one were the annotation was added to the +core schema. + +
+ + +# 9. Revenge of the Sam + +Sam, now in full control of all theme tunes in Backstage, releases v2.0.1, which +switches all tracks to 4uLU6hMCjMI75M1A2tKUQC. Sam wanted to do something more +nefarious, but since Backstage sandboxes sensitive actions and is mostly +read-only with strict CSP, Sam's hands were tied. + +
diff --git a/lerna.json b/lerna.json index 2feea0137f..aa535f7aeb 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "packages": ["packages/*", "plugins/*"], "npmClient": "yarn", "useWorkspaces": true, - "version": "0.1.1-alpha.7" + "version": "0.1.1-alpha.8" } diff --git a/packages/app/package.json b/packages/app/package.json index 5af418f98e..fca15815e4 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,22 +1,22 @@ { "name": "example-app", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "private": true, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/plugin-catalog": "^0.1.1-alpha.7", - "@backstage/plugin-circleci": "^0.1.1-alpha.7", - "@backstage/plugin-explore": "^0.1.1-alpha.7", - "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.7", - "@backstage/plugin-home-page": "^0.1.1-alpha.7", - "@backstage/plugin-lighthouse": "^0.1.1-alpha.7", - "@backstage/plugin-register-component": "^0.1.1-alpha.7", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.7", - "@backstage/plugin-sentry": "^0.1.1-alpha.7", - "@backstage/plugin-tech-radar": "^0.1.1-alpha.7", - "@backstage/plugin-welcome": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/plugin-catalog": "^0.1.1-alpha.8", + "@backstage/plugin-circleci": "^0.1.1-alpha.8", + "@backstage/plugin-explore": "^0.1.1-alpha.8", + "@backstage/plugin-gitops-profiles": "^0.1.1-alpha.8", + "@backstage/plugin-home-page": "^0.1.1-alpha.8", + "@backstage/plugin-lighthouse": "^0.1.1-alpha.8", + "@backstage/plugin-register-component": "^0.1.1-alpha.8", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.8", + "@backstage/plugin-sentry": "^0.1.1-alpha.8", + "@backstage/plugin-tech-radar": "^0.1.1-alpha.8", + "@backstage/plugin-welcome": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "prop-types": "^15.7.2", diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 54202975c3..41b120eca7 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist", "types": "src/index.ts", "private": false, @@ -35,7 +35,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "@types/compression": "^1.7.0", "@types/cors": "^2.8.6", "@types/express": "^4.17.6", diff --git a/packages/backend/package.json b/packages/backend/package.json index 8629ea64ca..58d405ab2f 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist", "types": "src/index.ts", "private": true, @@ -17,13 +17,13 @@ "migrate:create": "knex migrate:make -x ts" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.7", - "@backstage/catalog-model": "^0.1.1-alpha.7", - "@backstage/plugin-auth-backend": "^0.1.1-alpha.7", - "@backstage/plugin-catalog-backend": "^0.1.1-alpha.7", - "@backstage/plugin-identity-backend": "^0.1.1-alpha.7", - "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.7", - "@backstage/plugin-sentry-backend": "^0.1.1-alpha.7", + "@backstage/backend-common": "^0.1.1-alpha.8", + "@backstage/catalog-model": "^0.1.1-alpha.8", + "@backstage/plugin-auth-backend": "^0.1.1-alpha.8", + "@backstage/plugin-catalog-backend": "^0.1.1-alpha.8", + "@backstage/plugin-identity-backend": "^0.1.1-alpha.8", + "@backstage/plugin-scaffolder-backend": "^0.1.1-alpha.8", + "@backstage/plugin-sentry-backend": "^0.1.1-alpha.8", "esm": "^3.2.25", "express": "^4.17.1", "knex": "^0.21.1", @@ -31,7 +31,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "@types/express": "^4.17.6", "@types/express-serve-static-core": "^4.17.5", "@types/helmet": "^0.0.47", diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index d2a63560e3..170fb36281 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-model", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.cjs.js", "module": "dist/index.esm.js", "main:src": "src/index.ts", @@ -26,7 +26,7 @@ "yup": "^0.28.5" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "@types/jest": "^25.2.2", "@types/lodash": "^4.14.151", "@types/yup": "^0.28.2", diff --git a/packages/cli/package.json b/packages/cli/package.json index 58b6c3fd84..9d54a41c91 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "private": false, "publishConfig": { "access": "public" diff --git a/packages/core-api/package.json b/packages/core-api/package.json index d64378943f..80a94b2e34 100644 --- a/packages/core-api/package.json +++ b/packages/core-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-api", "description": "Internal Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "private": false, "publishConfig": { "access": "public", @@ -31,7 +31,7 @@ }, "dependencies": { "@backstage/config": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@types/react": "^16.9", @@ -42,7 +42,7 @@ "zen-observable": "^0.8.15" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "@backstage/test-utils-core": "^0.1.1-alpha.7", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", diff --git a/packages/core/package.json b/packages/core/package.json index 4f0d20b8ed..a412af3fa1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core", "description": "Core API used by Backstage plugins and apps", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "private": false, "publishConfig": { "access": "public", @@ -31,8 +31,8 @@ }, "dependencies": { "@backstage/config": "^0.1.1-alpha.7", - "@backstage/core-api": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core-api": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -54,8 +54,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/test-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/test-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 95d3b6eb92..5e6d26111d 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "private": false, "publishConfig": { "access": "public", @@ -30,10 +30,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/test-utils": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/test-utils": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@testing-library/jest-dom": "^5.7.0", diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 132bf29c72..c02557910b 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "description": "Storybook build for core package", "private": true, "scripts": { @@ -14,7 +14,7 @@ ] }, "dependencies": { - "@backstage/theme": "^0.1.1-alpha.7" + "@backstage/theme": "^0.1.1-alpha.8" }, "devDependencies": { "@storybook/addon-actions": "^5.3.17", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 0e76d0239b..a82ec779b8 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "private": false, "publishConfig": { "access": "public", @@ -30,10 +30,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/core-api": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/core-api": "^0.1.1-alpha.8", "@backstage/test-utils-core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", diff --git a/packages/theme/package.json b/packages/theme/package.json index 8b017d4cf9..95a7605c05 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/theme", "description": "material-ui theme for use with Backstage.", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "private": false, "publishConfig": { "access": "public", @@ -32,7 +32,7 @@ "@material-ui/core": "^4.9.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7" + "@backstage/cli": "^0.1.1-alpha.8" }, "files": [ "dist/**/*.{js,d.ts}" diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index f45a1cbf7a..9ee11eca52 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist", "types": "src/index.ts", "license": "Apache-2.0", @@ -15,7 +15,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.7", + "@backstage/backend-common": "^0.1.1-alpha.8", "@types/cookie-parser": "^1.4.2", "@types/jwt-decode": "2.2.1", "@types/passport": "^1.0.3", @@ -39,7 +39,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "@types/body-parser": "^1.19.0", "@types/passport-saml": "^1.1.2", "jest-fetch-mock": "^3.0.3", diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 1aeea2538f..5df1c414d3 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist", "types": "src/index.ts", "license": "Apache-2.0", @@ -16,8 +16,8 @@ "mock-catalog-data": "./scripts/mock-data" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.7", - "@backstage/catalog-model": "^0.1.1-alpha.7", + "@backstage/backend-common": "^0.1.1-alpha.8", + "@backstage/catalog-model": "^0.1.1-alpha.8", "esm": "^3.2.25", "express": "^4.17.1", "express-promise-router": "^3.0.3", @@ -34,7 +34,7 @@ "yup": "^0.28.5" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "@types/lodash": "^4.14.151", "@types/node-fetch": "^2.5.7", "@types/supertest": "^2.0.8", diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 21288ca046..e7f40e4d18 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,11 +22,11 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.7", - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/plugin-scaffolder": "^0.1.1-alpha.7", - "@backstage/plugin-sentry": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/catalog-model": "^0.1.1-alpha.8", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/plugin-scaffolder": "^0.1.1-alpha.8", + "@backstage/plugin-sentry": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -38,9 +38,9 @@ "swr": "^0.2.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", - "@backstage/test-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", + "@backstage/test-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/react-hooks": "^3.3.0", diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index f3a9598b9d..60787b146e 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-circleci", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -31,8 +31,8 @@ "postpack": "backstage-cli postpack" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -47,8 +47,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 15df6fae75..f0f631eb09 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,8 +22,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -33,9 +33,9 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", - "@backstage/test-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", + "@backstage/test-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 703d832666..441f2dd77c 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gitops-profiles", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,19 +22,19 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", "react": "^16.13.1", "react-dom": "^16.13.1", - "react-use": "^14.2.0", - "react-router-dom": "^5.2.0" + "react-router-dom": "^5.2.0", + "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 85d2c8a210..a8027b786b 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "private": false, "publishConfig": { "access": "public", @@ -32,8 +32,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -44,9 +44,9 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", - "@backstage/test-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", + "@backstage/test-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/home-page/package.json b/plugins/home-page/package.json index 56c8de21d8..4a22dde3c8 100644 --- a/plugins/home-page/package.json +++ b/plugins/home-page/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-home-page", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,8 +22,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -32,8 +32,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/identity-backend/package.json b/plugins/identity-backend/package.json index 922ff8412d..0d1f6b99e5 100644 --- a/plugins/identity-backend/package.json +++ b/plugins/identity-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-identity-backend", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist", "types": "src/index.ts", "license": "Apache-2.0", @@ -15,7 +15,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.7", + "@backstage/backend-common": "^0.1.1-alpha.8", "compression": "^1.7.4", "cors": "^2.8.5", "express": "^4.17.1", @@ -27,7 +27,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "jest-fetch-mock": "^3.0.3", "tsc-watch": "^4.2.3" }, diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index f680d29c17..f53ae0930d 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-lighthouse", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,8 +22,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -34,9 +34,9 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", - "@backstage/test-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", + "@backstage/test-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/register-component/package.json b/plugins/register-component/package.json index 2f500cb680..d5fc49405d 100644 --- a/plugins/register-component/package.json +++ b/plugins/register-component/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-register-component", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,10 +22,10 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/catalog-model": "^0.1.1-alpha.7", - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/plugin-catalog": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/catalog-model": "^0.1.1-alpha.8", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/plugin-catalog": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -37,8 +37,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 2fa5462fcc..1d7e3d4388 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist", "types": "src/index.ts", "license": "Apache-2.0", @@ -14,7 +14,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.7", + "@backstage/backend-common": "^0.1.1-alpha.8", "compression": "^1.7.4", "cors": "^2.8.5", "dockerode": "^3.2.0", @@ -27,7 +27,7 @@ "winston": "^3.2.1" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "@types/fs-extra": "^9.0.1", "@types/supertest": "^2.0.8", "supertest": "^4.0.2" diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 4422d40fc6..66738acea6 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,8 +22,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -33,8 +33,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/sentry-backend/package.json b/plugins/sentry-backend/package.json index c9d7a585e4..fd9638afe3 100644 --- a/plugins/sentry-backend/package.json +++ b/plugins/sentry-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry-backend", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist", "types": "src/index.ts", "license": "Apache-2.0", @@ -15,7 +15,7 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/backend-common": "^0.1.1-alpha.7", + "@backstage/backend-common": "^0.1.1-alpha.8", "axios": "^0.19.2", "compression": "^1.7.4", "cors": "^2.8.5", @@ -28,7 +28,7 @@ "yn": "^4.0.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", "jest-fetch-mock": "^3.0.3", "tsc-watch": "^4.2.3" }, diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index cdf2025cb8..dcec4eceb0 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sentry", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,8 +22,8 @@ "clean": "backstage-cli clean" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -34,8 +34,8 @@ "timeago.js": "^4.0.2" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index a5befefe2f..00d008bbd1 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-radar", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,9 +22,9 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", "@backstage/test-utils-core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -37,8 +37,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4", diff --git a/plugins/welcome/package.json b/plugins/welcome/package.json index 5498ec1176..388f0335a7 100644 --- a/plugins/welcome/package.json +++ b/plugins/welcome/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-welcome", - "version": "0.1.1-alpha.7", + "version": "0.1.1-alpha.8", "main": "dist/index.esm.js", "main:src": "src/index.ts", "types": "src/index.ts", @@ -22,8 +22,8 @@ "start": "backstage-cli plugin:serve" }, "dependencies": { - "@backstage/core": "^0.1.1-alpha.7", - "@backstage/theme": "^0.1.1-alpha.7", + "@backstage/core": "^0.1.1-alpha.8", + "@backstage/theme": "^0.1.1-alpha.8", "@material-ui/core": "^4.9.1", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -33,8 +33,8 @@ "react-use": "^14.2.0" }, "devDependencies": { - "@backstage/cli": "^0.1.1-alpha.7", - "@backstage/dev-utils": "^0.1.1-alpha.7", + "@backstage/cli": "^0.1.1-alpha.8", + "@backstage/dev-utils": "^0.1.1-alpha.8", "@testing-library/jest-dom": "^5.7.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^10.2.4",