ContractSpec docs

OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

GraphSubscription — live graph subscription configuration contract

Configuration sent by clients to establish an SSE graph subscription. Server validates viewKey, applies filter, and streams GraphSubscriptionEvents.

field.key.label
GraphSubscription — live graph subscription configuration contract
field.version.label
field.type.label
field.title.label
GraphSubscription — live graph subscription configuration contract
field.description.label

Configuration sent by clients to establish an SSE graph subscription. Server validates viewKey, applies filter, and streams GraphSubscriptionEvents.

field.tags.label
graph,subscription,sse,live,contract,m3,p5
field.owners.label
field.stability.label
public
interface GraphSubscription {
  id: string;        // client- or server-generated
  viewKey: string;   // DataView registry key
  filter?: Record<string, unknown>;   // optional server-side filter
  eventKinds?: GraphSubscriptionEventKind[];  // subset of events
  heartbeatMs?: number;  // default 30_000
}

SSE wire format

Each event is serialised as a standard SSE frame:

data: {"kind":"node-added","node":{"id":"n1","label":"My Node"}}

Heartbeat comments keep the connection alive:

: heartbeat