diff --git a/.changeset/migrate-1713465844082.md b/.changeset/migrate-1713465844082.md new file mode 100644 index 0000000000..5aaa3fed55 --- /dev/null +++ b/.changeset/migrate-1713465844082.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-airbrake': patch +'@backstage/plugin-airbrake-backend': patch +--- + +These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/plugins/airbrake-backend/README.md b/plugins/airbrake-backend/README.md index 21056229de..5a4a3ba3ca 100644 --- a/plugins/airbrake-backend/README.md +++ b/plugins/airbrake-backend/README.md @@ -1,32 +1,3 @@ -# airbrake-backend +# Deprecated -The Airbrake backend plugin provides a simple proxy to the Airbrake API while hiding away the secret API key from the frontend. - -## How to use - -See the [Airbrake plugin instructions](../airbrake/README.md#how-to-use). - -## Local Development - -This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. - -1. Add the required config to your `app-config.local.yaml`: - - ```yaml - airbrake: - apiKey: ${AIRBRAKE_API_KEY} - ``` - -2. Set the environment variable `AIRBRAKE_API_KEY` with your [API - key](https://airbrake.io/docs/api/#authentication). You can also write it - directly into the config file above for convenience - but beware of - accidentally leaking the key. - -3. Go into the plugin's directory and run it in standalone mode by running `yarn start`. - -Access it from http://localhost:7007/api/airbrake. Or use the [Airbrake plugin in standalone mode](../airbrake/README.md#local-development) which will talk to it automatically. - -Here are some example endpoints: - -- http://localhost:7007/api/airbrake/health -- http://localhost:7007/api/airbrake/api/v4/projects +This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-airbrake-backend` instead. diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index df8b43921f..cdfed4396e 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -1,31 +1,36 @@ { "name": "@backstage/plugin-airbrake-backend", "version": "0.3.14", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin", + "moved": "@backstage-community/plugin-airbrake-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "backstage": { - "role": "backend-plugin" - }, "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "plugins/airbrake-backend" }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -44,9 +49,6 @@ "@types/supertest": "^2.0.8", "supertest": "^6.1.6" }, - "files": [ - "dist", - "config.d.ts" - ], - "configSchema": "config.d.ts" + "configSchema": "config.d.ts", + "deprecated": "This package has been moved to the backstage/community-plugins repository. You should migrate to using @backstage-community/plugin-airbrake-backend instead." } diff --git a/plugins/airbrake/README.md b/plugins/airbrake/README.md index 2426a6eb8a..0dff15fa88 100644 --- a/plugins/airbrake/README.md +++ b/plugins/airbrake/README.md @@ -1,143 +1,3 @@ -# Airbrake +# Deprecated -The Airbrake plugin provides connectivity between Backstage and Airbrake (https://airbrake.io/). - -## How to use - -1. Install the Frontend plugin: - - ```bash - # From your Backstage root directory - yarn --cwd packages/app add @backstage/plugin-airbrake - ``` - -2. Install the Backend plugin: - - ```bash - # From your Backstage root directory - yarn --cwd packages/backend add @backstage/plugin-airbrake-backend - ``` - -3. Add the `EntityAirbrakeContent` and `isAirbrakeAvailable` to `packages/app/src/components/catalog/EntityPage.tsx` for all the entity pages you want Airbrake to be in: - - ```typescript jsx - import { - EntityAirbrakeContent, - isAirbrakeAvailable, - } from '@backstage/plugin-airbrake'; - - const serviceEntityPage = ( - - - - - - ); - - const websiteEntityPage = ( - - - - - - ); - - const defaultEntityPage = ( - - - - - - ); - ``` - -4. Create `packages/backend/src/plugins/airbrake.ts` with these contents: - - ```typescript - import { Router } from 'express'; - import { PluginEnvironment } from '../types'; - import { - createRouter, - extractAirbrakeConfig, - } from '@backstage/plugin-airbrake-backend'; - - export default async function createPlugin( - env: PluginEnvironment, - ): Promise { - return createRouter({ - logger: env.logger, - airbrakeConfig: extractAirbrakeConfig(env.config), - }); - } - ``` - -5. Setup the Backend code in `packages/backend/src/index.ts`: - - ```typescript - import airbrake from './plugins/airbrake'; - - async function main() { - //... After const createEnv = makeCreateEnv(config) ... - - const airbrakeEnv = useHotMemoize(module, () => createEnv('airbrake')); - - //... After const apiRouter = Router() ... - apiRouter.use('/airbrake', await airbrake(airbrakeEnv)); - } - ``` - -6. Add this config as a top level section in your `app-config.yaml`: - - ```yaml - airbrake: - apiKey: ${AIRBRAKE_API_KEY} - ``` - -7. Set an environment variable `AIRBRAKE_API_KEY` with your [API key](https://airbrake.io/docs/api/#authentication) - before starting Backstage backend. - -8. Add the following annotation to the `catalog-info.yaml` for a repo you want to link to an Airbrake project: - - ```yaml - metadata: - annotations: - airbrake.io/project-id: '123456' - ``` - -#### New Backend System - -The Airbrake backend plugin has support for the [new backend system](https://backstage.io/docs/backend-system/), here's how you can set that up: - -In your `packages/backend/src/index.ts` make the following changes: - -```diff - import { createBackend } from '@backstage/backend-defaults'; - - const backend = createBackend(); - - // ... other feature additions - -+ backend.add(import('@backstage/plugin-airbrake-backend')); - - backend.start(); -``` - -## Local Development - -Start this plugin in standalone mode by running `yarn start` inside the plugin directory. This method of serving the plugin provides quicker -iteration speed and a faster startup and hot reloads. It is only meant for local development, and the setup for it can -be found inside the [/dev](./dev) directory. - -> A mock API will be used to run it in standalone. If you want to talk to the real API [follow the instructions to start up Airbrake Backend in standalone](../airbrake-backend/README.md#local-development). +This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-airbrake` instead. diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 8970588350..48155c20e9 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -2,7 +2,8 @@ "name": "@backstage/plugin-airbrake", "version": "0.3.34", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "moved": "@backstage-community/plugin-airbrake" }, "publishConfig": { "access": "public", @@ -57,5 +58,6 @@ "react": "^16.13.1 || ^17.0.0 || ^18.0.0", "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", "react-router-dom": "6.0.0-beta.0 || ^6.3.0" - } + }, + "deprecated": "This package has been moved to the backstage/community-plugins repository. You should migrate to using @backstage-community/plugin-airbrake instead." }