Documentation
Adapters
Connect OpsOrch to your existing tools with production-ready adapters.
Production Adapters
PagerDuty
Incidents & Services
Scopes:
incidents:read, services:readDatadog
Metrics, Logs, Alerts, Incidents
Scopes:
metrics_read, logs_readJira
Tickets
Scopes:
read:jira-workPrometheus
Metrics
Auth: No auth or Basic Auth
Slack
Messaging
Scopes:
channels:read, chat:writeElasticsearch
Logs
Auth: API Key or Basic Auth
GitHub
Teams
Scopes:
read:orgVault
Secrets
Role: Read-only to specific secrets mount
Configuration
Adapters are configured via environment variables following the pattern:
OPSORCH_<CAP>_PROVIDER: The registered name (e.g. `jira`)OPSORCH_<CAP>_CONFIG: JSON configuration payload
| Capability | Env Config Key | Example |
|---|---|---|
| Incident | OPSORCH_INCIDENT_CONFIG | {"apiToken":"..."} |
| Ticket | OPSORCH_TICKET_CONFIG | {"apiToken":"...","email":"..."} |
Build Your Own Adapter
OpsOrch defines standard Go interfaces for each capability. You can implement these interfaces to create custom adapters.
1. The Interface
For example, to implement an Incident Provider, you must satisfy:
go
type IncidentProvider interface {
// List returns a list of incidents matching the filter
List(ctx context.Context, filter *IncidentFilter) ([]*Incident, error)
// Get returns a single incident by ID
Get(ctx context.Context, id string) (*Incident, error)
}2. Testing
We provide a testing harness in the opsorch-core/testing package. You can use this to verify your adapter complies with the contract.
go
func TestMyAdapter(t *testing.T) {
adapter := NewMyAdapter(config)
// Run standard contract tests
adaptertest.VerifyIncidentContract(t, adapter)
}Custom Docker Images
To use plugins (out-of-process adapters), you must build a custom Docker image that includes the binary.
dockerfile
FROM ghcr.io/opsorch/opsorch-core:latest
WORKDIR /opt/opsorch
# Download adapter binary
ADD https://github.com/OpsOrch/opsorch-jira-adapter/releases/download/v0.2.1/ticketplugin-linux-amd64 ./plugins/ticketplugin
RUN chmod +x ./plugins/*
# Configure to use plugin instead of in-process registry
ENV OPSORCH_TICKET_PLUGIN=/opt/opsorch/plugins/ticketplugin