Skip to main content
The control plane owns durable Organizations, Integrations, Alert Events, Incidents, Conversations, Investigations, Findings, audit records, and Postmortems. One HTTP server handles /api/v1, /webhooks/v1, health, readiness, and metrics. A separate gRPC listener accepts outbound Relay sessions when Relay support is enabled. The Relay performs closed Kubernetes reads from the customer boundary. Provider adapters remain behind Integration interfaces. PostgreSQL is the deployment truth, and api/openapi.yaml is the only editable public HTTP contract. See the repository ARCHITECTURE.md for implementation details. Product requests authenticate a User, resolve their current Organization, and cross one declared route table into a domain handler. Only the PostgreSQL adapter touches deployment data, and every Organization-owned query predicates on its identifier. Webhook intake has separate authentication and contracts even though it shares the HTTP server; operational probes remain outside the product OpenAPI contract. OpenCluster currently ships observation/read tools. The capability runtime does not assume that all future capabilities are reads. State-changing capabilities will require explicit authorization, approval, idempotency and audit semantics before they are enabled. Provider adapters or Relay execute eligible Tools, and the Investigation engine records bounded Tool Runs and cited results. Maintenance cleanup is conditional on those consumers. Relay conflict history is part of the audit record and follows each Organization’s audit retention policy; captured workload changes stay durable until an equivalent shipped surface replaces them or the contract is explicitly retired. The public control-plane repository owns this documentation and HTTP contract. The Apache-licensed Relay protocol is consumed from the pinned github.com/open-cluster/oc-relay/gen/go module. Review the repository ARCHITECTURE.md before changing a cross-repository protocol.