Přeskočit obsah

Sensorium Interface Descriptor v1

Source schema: doc/schemas/sensorium-interface-descriptor.v1.schema.json

Immutable publication contract for one deliberately exposed Sensorium or Workbench projection.

Fields

Field Required Shape Description
schema yes const: sensorium-interface-descriptor.v1 Contract discriminator.
schema/v yes const: 1 Contract version.
interface/id yes string Stable resource identifier for this interface publication.
interface/kind yes const: observation Directional resource kind.
interface/name yes string Short operator-facing name; not an authority identifier.
publisher/node-ref yes string Node that owns publication and source-side policy.
output/schema-ref yes string Schema required for each data frame payload.
delivery/semantics yes enum: latest-state, ordered-events Whether the interface exposes one current snapshot or a bounded ordered event window.
access/modes yes array Operations that may be granted for this interface.
classification/max-tier yes enum: Public, Community, Personal Most restrictive effective tier this interface accepts at egress.
classification/topic-class yes string Exact topic-class binding required for Interface declassification facts.
redaction/profile-ref no string Optional source-owned redaction profile applied before frame creation.
source/generation-ref yes string Opaque host-derived identity of the concrete source generation.
operational/context yes ref: sensorium-operational-context.v1.schema.json
supersedes/interface-id no string Prior publication atomically replaced by this publication.
limits yes object Hard publication ceilings further narrowed by callers and host policy.
overflow/policy yes enum: coalesce-latest, emit-gap, close-subscription Explicit behavior when source state exceeds its delivery window.
published/at yes string Publication creation time.
expires/at yes string Hard end of the publication lifetime.

Conditional Rules

Rule 1

When:

{
  "properties": {
    "delivery/semantics": {
      "const": "latest-state"
    }
  },
  "required": [
    "delivery/semantics"
  ]
}

Then:

{
  "properties": {
    "overflow/policy": {
      "const": "coalesce-latest"
    },
    "limits": {
      "not": {
        "anyOf": [
          {
            "required": [
              "replay/max-frames"
            ]
          },
          {
            "required": [
              "replay/max-seconds"
            ]
          }
        ]
      }
    }
  }
}

Rule 2

When:

{
  "properties": {
    "delivery/semantics": {
      "const": "ordered-events"
    }
  },
  "required": [
    "delivery/semantics"
  ]
}

Then:

{
  "properties": {
    "overflow/policy": {
      "enum": [
        "emit-gap",
        "close-subscription"
      ]
    },
    "limits": {
      "required": [
        "replay/max-frames",
        "replay/max-seconds"
      ]
    }
  }
}

Field Semantics

schema

  • Required: yes
  • Shape: const: sensorium-interface-descriptor.v1

Contract discriminator.

schema/v

  • Required: yes
  • Shape: const: 1

Contract version.

interface/id

  • Required: yes
  • Shape: string

Stable resource identifier for this interface publication.

interface/kind

  • Required: yes
  • Shape: const: observation

Directional resource kind.

interface/name

  • Required: yes
  • Shape: string

Short operator-facing name; not an authority identifier.

publisher/node-ref

  • Required: yes
  • Shape: string

Node that owns publication and source-side policy.

output/schema-ref

  • Required: yes
  • Shape: string

Schema required for each data frame payload.

delivery/semantics

  • Required: yes
  • Shape: enum: latest-state, ordered-events

Whether the interface exposes one current snapshot or a bounded ordered event window.

access/modes

  • Required: yes
  • Shape: array

Operations that may be granted for this interface.

classification/max-tier

  • Required: yes
  • Shape: enum: Public, Community, Personal

Most restrictive effective tier this interface accepts at egress.

classification/topic-class

  • Required: yes
  • Shape: string

Exact topic-class binding required for Interface declassification facts.

redaction/profile-ref

  • Required: no
  • Shape: string

Optional source-owned redaction profile applied before frame creation.

source/generation-ref

  • Required: yes
  • Shape: string

Opaque host-derived identity of the concrete source generation.

operational/context

  • Required: yes
  • Shape: ref: sensorium-operational-context.v1.schema.json

supersedes/interface-id

  • Required: no
  • Shape: string

Prior publication atomically replaced by this publication.

limits

  • Required: yes
  • Shape: object

Hard publication ceilings further narrowed by callers and host policy.

overflow/policy

  • Required: yes
  • Shape: enum: coalesce-latest, emit-gap, close-subscription

Explicit behavior when source state exceeds its delivery window.

published/at

  • Required: yes
  • Shape: string

Publication creation time.

expires/at

  • Required: yes
  • Shape: string

Hard end of the publication lifetime.