Skip to main content

Overview

OpenSRE uses the Dagster GraphQL API to investigate data-pipeline incidents — fetching recent runs and their status, the full event log and root-cause exception for a failed run, asset materialization history, and sensor or schedule tick history. Works against both Dagster OSS (dagster dev and self-hosted dagster-webserver) and Dagster+ (the SaaS).

Prerequisites

  • A reachable dagster-webserver instance:
    • Dagster OSS: run dagster dev -f jobs.py locally or deploy dagster-webserver. Default port 3000.
    • Dagster+: an active deployment, e.g. https://<org>.dagster.cloud/<deployment> or https://<org>.<region>.dagster.cloud/<deployment>.
  • Network access from the OpenSRE environment to the webserver
  • For Dagster+: a User Token from Organization Settings → Tokens → User Tokens (not an Agent Token — Agent Tokens are rejected by the GraphQL endpoint)

Setup

Option 1: Interactive CLI / onboard

You will be prompted for:
  • Dagster webserver URLhttp://localhost:3000 for OSS local dev, or https://<deployment>.dagster.cloud/<env> for Dagster+ (the client appends /graphql itself)
  • Dagster API token — required for Dagster+; leave blank for unauthenticated OSS
Setup validates with a GraphQL version probe, writes DAGSTER_ENDPOINT to .env, and persists the API token (when provided) to ~/.opensre/credentials.json.

Option 2: Environment variables

Option 3: Persistent store

Credentials

Endpoint: the browser URL through the deployment name, e.g. https://acme.dagster.cloud/prod (from …/prod/runs). EU accounts use a regional subdomain such as https://acme.eu.dagster.cloud/prod. API token (Dagster+):
  1. User menu → Organization Settings
  2. Tokens tab → + Create user token
  3. Copy the token immediately (shown once)
User Tokens inherit the user’s per-deployment role. Viewer is enough for read-only investigation queries.
Token type matters. Use a User Token, not an Agent Token. Agent Tokens authenticate Hybrid agents and return HTTP 401 on GraphQL.

Quick local test

In a second terminal, launch a real run so there is something to investigate:
The empty temporary integration store prevents saved integrations from overriding the demo endpoint. Verify:
The exported endpoint also makes Dagster available to investigations; no separate setup step is required. Trigger a real investigation against the failed run — this is the actual supported entrypoint, not an internal function:
Real output from a run against this exact local job (edited for length):
Teardown by pressing Ctrl-C in the terminal running dagster dev, then remove the temporary store and unset the demo variables in the second terminal:
The temporary DAGSTER_HOME is removed when dagster dev exits.

Investigation tools

GraphQL queries OpenSRE issues are read-only (no mutations).

Verify

Expected output:
The verifier issues query { version } and reports the running Dagster version on success.

Troubleshooting

Security

  • Prefer a dedicated User Token on a service-style user account (Dagster+ has no first-class service accounts).
  • Keep tokens out of source control — use .env or ~/.opensre/integrations.json.
  • Rotate/revoke tokens from Organization Settings → Tokens.
  • For local OSS without auth, restrict the webserver to localhost or a private network.