Documentation

Adapters

Connect OpsOrch to your existing tools with production-ready adapters.

Production Adapters

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
CapabilityEnv Config KeyExample
IncidentOPSORCH_INCIDENT_CONFIG{"apiToken":"..."}
TicketOPSORCH_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