Report a relay instance's manifest

Changed on

A running relay instance describing itself: host kind, engine version, the routes-document schema version it understands, where its configuration comes from, and the adapters and enrichments it has registered. Idempotent replace keyed by the environment the API key belongs to plus a host-chosen instance id (up to 128 characters; embedded hosts without a configured id use a random UUID per process). Send it on boot and on every heartbeat. End Close checks any document saved for the environment against the instances seen in the last 24 hours: every route source must be an adapter every live instance has, every enrich: an enrichment every live instance has registered (none at all while any live instance is the standard application), and no document feature newer than the oldest instance's config_schema. Instances unseen for 30 days are deleted. Nothing is required of a relay that never sends a manifest: authoring then falls back to the built-in adapters and no enrichments.

put/relays/instances/{instance_id}

Request

  • Base URL
    https://api.endclose.com/v1
  • Auth
    API key in header X-API-KEY

Path parameters

instance_idstring required

Host-chosen identifier for this running instance

Request body

schema1 required

Manifest format version. Unknown values are rejected with 400.

reasonstring required

Why the relay is checking in. One lowercase word: boot, heartbeat, config_applied, error and shutdown are the ones End Close knows about, and any other lowercase word is accepted and stored, so a new relay version is never blocked from checking in. Only shutdown carries meaning: it is recorded but does not refresh the instance's liveness, so an instance that says goodbye stops constraining what a document may name instead of counting as alive for another 24 hours. Send no other detail with it — extra keys are stored verbatim and never read, which is the wrong home for stack traces or metrics.

host'application' | 'embedded' required

The shipped Docker image, or createRelay() embedded in the customer's own backend.

engine_versionstring required

Semver of @end-close/relay in use.

config_schemainteger required

The routes-document schema version this engine understands. Version 1 is current. Gates which document features may be saved: nothing newer than the oldest reporting instance understands.

config_source'remote' | 'local' required

remote fetches from End Close; local has routes supplied in code or by file. Informational.

Example request

{
  "reason": "heartbeat",
  "engine_version": "0.12.2",
  "capabilities": {
    "adapters": [
      "payabli",
      "generic_hmac",
      "stripe"
    ],
    "enrichments": {
      "resident_name": {
        "output": "string",
        "description": "Resident full name from the Payabli payor id"
      },
      "resident_unit": {}
    }
  }
}

Response

Manifest stored

Changes