# Sentry Plugin
The Sentry Plugin displays issues from [Sentry](https://sentry.io).

## Getting Started
1. Install the Sentry Plugin:
```bash
# From your Backstage root directory
cd packages/app
yarn add @backstage/plugin-sentry
```
2. Add the `EntitySentryCard` to the EntityPage:
```jsx
// packages/app/src/components/catalog/EntityPage.tsx
import { EntitySentryCard } from '@backstage/plugin-sentry';
const overviewContent = (
// ...
// ...
);
```
> You can also import the full-page `EntitySentryContent` extension if you want to have a dedicated sentry page:
>
> ```tsx
> // packages/app/src/components/catalog/EntityPage.tsx
>
> import { EntitySentryContent } from '@backstage/plugin-sentry';
>
> const serviceEntityPage = (
>
> // ...
>
>
>
> // ...
>
> );
> ```
3. Add the proxy config:
```yaml
# app-config.yaml
proxy:
'/sentry/api':
target: https://sentry.io/api/
allowedMethods: ['GET']
headers:
Authorization: Bearer ${SENTRY_TOKEN}
sentry:
organization:
```
4. Create a new internal integration with the permissions `Issues & Events: Read` (https://docs.sentry.io/product/integrations/integration-platform/) and provide it as `SENTRY_TOKEN` as env variable.
5. Add the `sentry.io/project-slug` annotation to your catalog-info.yaml file:
```yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: backstage
description: |
Backstage is an open-source developer portal that puts the developer experience first.
annotations:
sentry.io/project-slug: YOUR_PROJECT_SLUG
spec:
type: library
owner: CNCF
lifecycle: experimental
```
### Demo Mode
The plugin provides a MockAPI that always returns dummy data instead of talking to the sentry backend.
You can add it by overriding the `sentryApiRef`:
```ts
// packages/app/src/apis.ts
import { createApiFactory } from '@backstage/core';
import { MockSentryApi, sentryApiRef } from '@backstage/plugin-sentry';
export const apis = [
// ...
createApiFactory(sentryApiRef, new MockSentryApi()),
];
```