> ## Documentation Index
> Fetch the complete documentation index at: https://docs.archal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Sentry

> Error monitoring across organizations, projects, teams, issues, events, releases, and DSN keys.

Sentry is included in Archal's environment catalog. Use it in a sandbox for error monitoring across organizations, projects, teams, issues, events, releases, and DSN keys.

|                 |                                               |
| --------------- | --------------------------------------------- |
| Environment ID  | `sentry`                                      |
| Transport       | REST                                          |
| State           | JSON                                          |
| Contract        | `archal.environment-state.sentry` version `1` |
| Channel         | Preview                                       |
| Curated samples | 5                                             |

Preview means the environment is included for testing, but its upstream coverage is incomplete. Verify the operations your test depends on.

## Compatibility boundary

**Local catalog validation:** All five published samples passed. Checks cover the state contract, relationships, artifact hash, secret scan, and size limit.

<Note>
  Local catalog validation is not hosted proof. Archal checks current certification, reset, and isolation evidence before admitting new sandboxes. Use the authenticated environment catalog for live availability.
</Note>

* Historical demo fixture has duplicate release ids; public derivatives remove only later duplicates.

## Curated starting states

List the five samples with `archal sample list sentry`. Each sample is a versioned starting state with a representative read, mutation, expected diff, reset expectation, and verified artifact hash.

<AccordionGroup>
  <Accordion title="Sentry project baseline">
    List one organization project and create another under its retained team.

    **Sample ID:** `sentry.project-baseline.v1`

    **Category:** `minimal`

    **Starting state:** 3 records across `organizations`: 1, `projects`: 1, `teams`: 1

    **Supported surface:** Stateful organizations, projects, teams, issues, events, releases, keys, and hooks.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.projects`

    **First read:** `GET /api/0/organizations/archal-labs/projects/`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/0/teams/archal-labs/archal-labs/projects/`. Expected result: HTTP 200, 201, 204.

    **Mutation input**

    ```json theme={null}
    {
      "name": "Connector Gateway",
      "platform": "node",
      "slug": "connector-gateway"
    }
    ```

    **Expected diff:** changes include `projects`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Historical demo fixture has duplicate release ids; public derivatives remove only later duplicates.

    **Start this sample**

    ```bash theme={null}
    archal sample show sentry.project-baseline.v1 --raw > archal-sentry-project-baseline.json
    archal state validate sentry archal-sentry-project-baseline.json
    archal session create sentry \
      --state sentry=archal-sentry-project-baseline.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show sentry.project-baseline.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/sentry/project-baseline/state.json` and is 40,448 bytes. The CLI verifies SHA-256 `41ccd3650e5db28067e71569204b20a77980e3f2ac7ef2f65f36a3727715fc0a` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Sentry error triage team">
    Exercise one team, two projects, two client keys, one member, and paired issues and events for a small error-triage group.

    **Sample ID:** `sentry.error-triage-team.v1`

    **Category:** `small-team`

    **Starting state:** 11 records across `events`: 2, `issues`: 2, `members`: 1, `organizations`: 1, `projectKeys`: 2, `projects`: 2, `teams`: 1

    **Supported surface:** Stateful organizations, projects, teams, issues, events, releases, keys, and hooks.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.projects`

    **First read:** `GET /api/0/organizations/archal-labs/projects/`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/0/teams/archal-labs/archal-labs/projects/`. Expected result: HTTP 200, 201, 204.

    **Mutation input**

    ```json theme={null}
    {
      "name": "Connector Gateway",
      "platform": "node",
      "slug": "connector-gateway"
    }
    ```

    **Expected diff:** changes include `projects`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Historical demo fixture has duplicate release ids; public derivatives remove only later duplicates.

    **Start this sample**

    ```bash theme={null}
    archal sample show sentry.error-triage-team.v1 --raw > archal-sentry-error-triage-team.json
    archal state validate sentry archal-sentry-error-triage-team.json
    archal session create sentry \
      --state sentry=archal-sentry-error-triage-team.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show sentry.error-triage-team.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/sentry/error-triage-team/state.json` and is 139,775 bytes. The CLI verifies SHA-256 `8f1353775bc9bd579575abddacfc01745c949060e941af648366913a9b096dd3` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Sentry corrected observability corpus">
    Exercise a production-shaped connector observability corpus with five projects, twelve mixed-frequency issues, thirty linked events, client keys, releases, and an alert hook.

    **Sample ID:** `sentry.corrected-observability-corpus.v1`

    **Category:** `populated`

    **Starting state:** 60 records across `events`: 30, `issues`: 12, `members`: 1, `organizations`: 1, `projectHooks`: 1, `projectKeys`: 3, `projects`: 5, `releases`: 3, `teams`: 4

    **Supported surface:** Stateful organizations, projects, teams, issues, events, releases, keys, and hooks.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.projects`

    **First read:** `GET /api/0/organizations/archal-labs/projects/`. Expected result: HTTP 200.

    **Representative mutation:** `POST /api/0/teams/archal-labs/archal-labs/projects/`. Expected result: HTTP 200, 201, 204.

    **Mutation input**

    ```json theme={null}
    {
      "name": "Connector Gateway",
      "platform": "node",
      "slug": "connector-gateway"
    }
    ```

    **Expected diff:** changes include `projects`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Historical demo fixture has duplicate release ids; public derivatives remove only later duplicates.

    **Start this sample**

    ```bash theme={null}
    archal sample show sentry.corrected-observability-corpus.v1 --raw > archal-sentry-corrected-observability-corpus.json
    archal state validate sentry archal-sentry-corrected-observability-corpus.json
    archal session create sentry \
      --state sentry=archal-sentry-corrected-observability-corpus.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show sentry.corrected-observability-corpus.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/sentry/corrected-observability-corpus/state.json` and is 909,228 bytes. The CLI verifies SHA-256 `46183800b8c750ed1d5c6fd5902bb54a4201bbeec594046c22c8d2785527a3ef` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Sentry unresolved error without release">
    Verify an ongoing unresolved error whose issue detail legitimately has no first or last release.

    **Sample ID:** `sentry.unreleased-unresolved-error.v1`

    **Category:** `edge-case`

    **Starting state:** 5 records across `events`: 1, `issues`: 1, `organizations`: 1, `projects`: 1, `teams`: 1

    **Supported surface:** Stateful organizations, projects, teams, issues, events, releases, keys, and hooks.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.projects`

    **First read:** `GET /api/0/organizations/archal-labs/issues/7525327635/`. Expected result: HTTP 200.

    **Representative mutation:** `PUT /api/0/organizations/archal-labs/issues/7525327635/`. Expected result: HTTP 200.

    **Mutation input**

    ```json theme={null}
    {
      "status": "resolved"
    }
    ```

    **Expected diff:** changes include `issues`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Historical demo fixture has duplicate release ids; public derivatives remove only later duplicates.

    **Start this sample**

    ```bash theme={null}
    archal sample show sentry.unreleased-unresolved-error.v1 --raw > archal-sentry-unreleased-unresolved-error.json
    archal state validate sentry archal-sentry-unreleased-unresolved-error.json
    archal session create sentry \
      --state sentry=archal-sentry-unreleased-unresolved-error.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show sentry.unreleased-unresolved-error.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/sentry/unreleased-unresolved-error/state.json` and is 95,711 bytes. The CLI verifies SHA-256 `0db4f1c21d94eddd96a703c378818b3cf172750e6b0954328d66410cea4a0a7c` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Sentry release and hook workflow">
    Correlate an issue with its event, release, key, and project hook, then assign the incident for follow-up.

    **Sample ID:** `sentry.release-hook-workflow.v1`

    **Category:** `workflow`

    **Starting state:** 10 records across `events`: 1, `issues`: 1, `members`: 1, `organizations`: 1, `projectHooks`: 1, `projectKeys`: 1, `projects`: 1, `releases`: 2, `teams`: 1

    **Supported surface:** Stateful organizations, projects, teams, issues, events, releases, keys, and hooks.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.projects`

    **First read:** `GET /api/0/organizations/archal-labs/issues/7525327635/`. Expected result: HTTP 200.

    **Representative mutation:** `PUT /api/0/organizations/archal-labs/issues/7525327635/`. Expected result: HTTP 200.

    **Mutation input**

    ```json theme={null}
    {
      "assignedTo": "4639699"
    }
    ```

    **Expected diff:** changes include `issues`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Historical demo fixture has duplicate release ids; public derivatives remove only later duplicates.

    **Start this sample**

    ```bash theme={null}
    archal sample show sentry.release-hook-workflow.v1 --raw > archal-sentry-release-hook-workflow.json
    archal state validate sentry archal-sentry-release-hook-workflow.json
    archal session create sentry \
      --state sentry=archal-sentry-release-hook-workflow.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show sentry.release-hook-workflow.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/sentry/release-hook-workflow/state.json` and is 103,302 bytes. The CLI verifies SHA-256 `1a110df487371ed02f7b7e2c6d84413b8a5d8fa979c629385478e00a8da29a77` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>
</AccordionGroup>

## Use custom state

Start from a sample when possible. For custom state, inspect the contract with `archal environment describe sentry`, then validate the file before creating a sandbox:

```bash theme={null}
archal state validate sentry state.json
```

Loading state replaces the current collections and establishes a new reset baseline. See [Starting state](/sandboxes/starting-state) before replacing state in an existing sandbox.
