Skip to content

executions.protocol

Where the WebSocket is, how a subscription and a reconnect are expressed, what the server writes, and the JSON Schema of every message — derived from the Rust types that implement it, so a client validating against this is validating against the implementation. OpenAPI cannot describe a socket; this is where that contract lives.

Where the WebSocket is, how a subscription and a reconnect are expressed, what the server writes, and the JSON Schema of every message — derived from the Rust types that implement it, so a client validating against this is validating against the implementation. OpenAPI cannot describe a socket; this is where that contract lives.

Exposure

Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.

surfaceas
MCPtool majordomus_execution_protocol
resource majordomus://executions/protocol
HTTPGET /api/v1/executions/protocol operationId executions.protocol
command linemajordomus executions protocol

Schemas

The canonical input and output, from the Rust types; the MCP tool schema and the OpenAPI parameters and responses are derived from these.

input · Empty

No input.

No properties: the capability takes no input.

JSON Schema
{
  "additionalProperties": false,
  "description": "No input.",
  "title": "Empty",
  "type": "object"
}

output · ProtocolReport

The answer of executions.protocol: the live channel's whole contract, derived from the types that implement it.
propertytyperequireddescription
event_schema object yes The JSON Schema of an event, derived from the Rust type.
event_types array yes The event types a client may receive, from the one enum that defines them.
heartbeat_seconds integer yes How many seconds of quiet before the server pings.
limits reference yes What the store keeps, so a client knows what it may ask for.
max_connections integer yes How many live channels this process serves at once.
max_replay integer yes How many retained events a scoped connection replays before going live.
protocol_version string yes The version of the event protocol this server speaks.
stream_schema object yes The JSON Schema of a control message, derived from the Rust type.
stream_types array yes The stream's own control messages.
subscription array yes How the subscription is expressed, and what a reconnect sends.
websocket string yes Where the live channel is: a path on this same server, not a second daemon.
JSON Schema
{
  "$defs": {
    "LimitsView": {
      "description": "What this process's execution store keeps.",
      "properties": {
        "max_events": {
          "description": "How many events are retained per execution.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "max_executions": {
          "description": "How many executions are remembered.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "max_log_chars": {
          "description": "The longest a single log line may be.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "max_running": {
          "description": "How many executions run at once.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "max_subscriber_queue": {
          "description": "How far a live channel may fall behind before it is told to resynchronise.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "max_executions",
        "max_events",
        "max_log_chars",
        "max_running",
        "max_subscriber_queue"
      ],
      "type": "object"
    },
    "ParameterView": {
      "description": "One query parameter of the live channel.",
      "properties": {
        "description": {
          "description": "What it does.",
          "type": "string"
        },
        "name": {
          "description": "Its name.",
          "type": "string"
        },
        "required": {
          "description": "Whether it must be given.",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "description",
        "required"
      ],
      "type": "object"
    }
  },
  "description": "The answer of `executions.protocol`: the live channel's whole contract, derived from\nthe types that implement it.",
  "properties": {
    "event_schema": {
      "description": "The JSON Schema of an event, derived from the Rust type."
    },
    "event_types": {
      "description": "The event types a client may receive, from the one enum that defines them.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "heartbeat_seconds": {
      "description": "How many seconds of quiet before the server pings.",
      "format": "uint64",
      "minimum": 0,
      "type": "integer"
    },
    "limits": {
      "$ref": "#/$defs/LimitsView",
      "description": "What the store keeps, so a client knows what it may ask for."
    },
    "max_connections": {
      "description": "How many live channels this process serves at once.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "max_replay": {
      "description": "How many retained events a scoped connection replays before going live.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "protocol_version": {
      "description": "The version of the event protocol this server speaks.",
      "type": "string"
    },
    "stream_schema": {
      "description": "The JSON Schema of a control message, derived from the Rust type."
    },
    "stream_types": {
      "description": "The stream's own control messages.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "subscription": {
      "description": "How the subscription is expressed, and what a reconnect sends.",
      "items": {
        "$ref": "#/$defs/ParameterView"
      },
      "type": "array"
    },
    "websocket": {
      "description": "Where the live channel is: a path on this same server, not a second daemon.",
      "type": "string"
    }
  },
  "required": [
    "protocol_version",
    "websocket",
    "subscription",
    "heartbeat_seconds",
    "max_connections",
    "max_replay",
    "event_types",
    "stream_types",
    "event_schema",
    "stream_schema",
    "limits"
  ],
  "title": "ProtocolReport",
  "type": "object"
}

Policies

benchmark
required — a target on every transport the exposure declares; the cases are the input type's
cache
disabled — every call runs the handler

Benchmark targets

Derived from the registry for this repository: one requirement per transport, and the cases the input type provides. The whole matrix is on the benchmarks page.

transportstatecasestargets
directcovered1default
mcpcovered1default
httpcovered1default

Searches the titles and descriptions of every page this site publishes.