Overview
OpenSRE queries Temporal’s HTTP API to retrieve workflow executions, event history, task queue health, and namespace-level metrics — helping diagnose workflow failures, activity retries, and worker outages.OpenSRE connects to Temporal’s HTTP API (the
/api/v1/... REST interface served
by the frontend service). This is a self-hosted server feature, enabled with the
--http-port flag (dev server) or frontend.httpPort config.Temporal Cloud is not currently supported: Cloud exposes only gRPC/mTLS endpoints
for workflow data and an HTTP Ops API for control-plane management — neither is the
frontend HTTP API this integration uses. Point OpenSRE at a self-hosted Temporal
deployment.Prerequisites
- A self-hosted Temporal Server with the HTTP API enabled
- The HTTP API base URL (and an API key only if your deployment requires bearer auth)
Setup
Option 1: Interactive CLI
Option 2: Environment variables
Option 3: Persistent store
Credentials
Setbase_url / TEMPORAL_API_URL to the frontend’s HTTP API endpoint. Leave api_key empty for unauthenticated clusters.
Quick local test with Docker
Confirm the HTTP API answers:
temporal_namespace_info’s workflow_count: "0" on its own isn’t useful evidence. Run a real, deliberately failing workflow first:
~/.opensre/integrations.json with an unrelated integration in it blocks env-var fallback entirely. Point OPENSRE_INTEGRATIONS_STORE_PATH at an empty, valid store instead, so your real config is never read or written and TEMPORAL_API_URL above is the only source of connection info:
mktemp alone.
Now ask the agent about the failed workflow:
deploy_payment_service activity raised
RuntimeError('payment-service deploy failed: connection refused to billing-api')
and, with maximumAttempts=1, the failure propagated straight to
WORKFLOW_EXECUTION_FAILED. An empty store makes the session fall through to
env-var resolution for every integration, not just Temporal — if your shell
already resolves another integration from its own env vars, it rides along too
(harmless).
Teardown:
Tools
Typical flow when you ask about a failed workflow
- Namespace info — how many workflows are running vs failed?
- Workflows — filter to failed/timed-out executions; note workflow type and task queue
- Workflow history — which activity failed and why?
- Task queue — are workers polling? Is backlog growing?
Verify
GET /api/v1/namespaces/{namespace}.
Troubleshooting
Security
- Use a read-only API key where your deployment supports scoped auth — OpenSRE never writes to Temporal.
- Restrict network access to the HTTP API to trusted IPs.
- Store credentials in
~/.opensre/integrations.jsonor environment variables, not in source code.