Sentry · Arazzo Workflow

Sentry Investigate a Project's Issues

Version 1.0.0

Confirm a project, list its issues, then drill into the top issue's detail and events.

1 workflow 1 source API 1 provider
View Spec View on GitHub Error MonitoringDebuggingObservabilityApplication Performance ManagementDeveloper ToolsArazzoWorkflows

Provider

sentry

Workflows

investigate-project-issues
Drill from a project into its top issue and that issue's recent events.
Resolves a project's numeric id, lists issues filtered to that project, retrieves the highest-priority issue, and pulls its recent error events. Ends early when the project has no matching issues.
4 steps inputs: organizationSlug, projectSlug, query, statsPeriod outputs: culprit, issueId, latestEventId, projectId
1
getProject
retrieveProject
Retrieve the project to confirm it exists and to resolve its numeric id for filtering the organization issue list.
2
listProjectIssues
listOrganizationIssues
List the organization's issues scoped to the resolved project id, sorted by priority, returning the top candidate to investigate.
3
getIssueDetail
retrieveIssue
Retrieve detailed stats and metadata for the selected project issue.
4
listIssueEvents
listIssueEvents
Pull the issue's recent error events with full data for stack-trace level investigation.

Source API Descriptions

Arazzo Workflow Specification

sentry-investigate-project-issues-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Sentry Investigate a Project's Issues
  summary: Confirm a project, list its issues, then drill into the top issue's detail and events.
  description: >-
    A project-scoped investigation pattern. The workflow retrieves a project to
    resolve its numeric id, lists the organization's issues filtered to that
    project, branches on whether any issues were returned, then retrieves the
    top issue and its recent events for root-cause analysis. Every step spells
    out its request inline so the flow can be read and executed without opening
    the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: sentryApi
  url: ../openapi/sentry-api-openapi.yml
  type: openapi
workflows:
- workflowId: investigate-project-issues
  summary: Drill from a project into its top issue and that issue's recent events.
  description: >-
    Resolves a project's numeric id, lists issues filtered to that project,
    retrieves the highest-priority issue, and pulls its recent error events.
    Ends early when the project has no matching issues.
  inputs:
    type: object
    required:
    - organizationSlug
    - projectSlug
    properties:
      organizationSlug:
        type: string
        description: The organization slug that owns the project.
      projectSlug:
        type: string
        description: The project slug to investigate.
      query:
        type: string
        description: Sentry query used to filter the project's issues.
        default: "is:unresolved"
      statsPeriod:
        type: string
        description: Time range window for the issue search (e.g. 24h, 14d).
        default: "24h"
  steps:
  - stepId: getProject
    description: >-
      Retrieve the project to confirm it exists and to resolve its numeric id
      for filtering the organization issue list.
    operationId: retrieveProject
    parameters:
    - name: organization_slug
      in: path
      value: $inputs.organizationSlug
    - name: project_slug
      in: path
      value: $inputs.projectSlug
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      projectId: $response.body#/id
      projectName: $response.body#/name
  - stepId: listProjectIssues
    description: >-
      List the organization's issues scoped to the resolved project id, sorted
      by priority, returning the top candidate to investigate.
    operationId: listOrganizationIssues
    parameters:
    - name: organization_slug
      in: path
      value: $inputs.organizationSlug
    - name: project
      in: query
      value: $steps.getProject.outputs.projectId
    - name: query
      in: query
      value: $inputs.query
    - name: statsPeriod
      in: query
      value: $inputs.statsPeriod
    - name: sort
      in: query
      value: priority
    - name: limit
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      issueId: $response.body#/0/id
      issueTitle: $response.body#/0/title
    onSuccess:
    - name: issueFound
      type: goto
      stepId: getIssueDetail
      criteria:
      - context: $response.body
        condition: $.length > 0
        type: jsonpath
    - name: noIssues
      type: end
      criteria:
      - context: $response.body
        condition: $.length == 0
        type: jsonpath
  - stepId: getIssueDetail
    description: >-
      Retrieve detailed stats and metadata for the selected project issue.
    operationId: retrieveIssue
    parameters:
    - name: organization_slug
      in: path
      value: $inputs.organizationSlug
    - name: issue_id
      in: path
      value: $steps.listProjectIssues.outputs.issueId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      culprit: $response.body#/culprit
      level: $response.body#/level
      lastSeen: $response.body#/lastSeen
  - stepId: listIssueEvents
    description: >-
      Pull the issue's recent error events with full data for stack-trace level
      investigation.
    operationId: listIssueEvents
    parameters:
    - name: organization_slug
      in: path
      value: $inputs.organizationSlug
    - name: issue_id
      in: path
      value: $steps.listProjectIssues.outputs.issueId
    - name: full
      in: query
      value: true
    - name: limit
      in: query
      value: 10
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      latestEventId: $response.body#/0/eventId
  outputs:
    projectId: $steps.getProject.outputs.projectId
    issueId: $steps.listProjectIssues.outputs.issueId
    culprit: $steps.getIssueDetail.outputs.culprit
    latestEventId: $steps.listIssueEvents.outputs.latestEventId