NetworkNodeReportRequest network.node-report-request@1

Generated at from openvibe-contracts v0.76.0 and openvibe-sdk v0.20.1.

Version
1.0.0
Owner
network
Visibility
first-party
Status
active
Compatibility
backward
Decision
ADR-034
Schema
https://openvibe.network/contracts/network/node-report-request.v1.json

network.node-report-request@1: POST /internal/nodes/report on OpenVibe.Network (capability network.node.report, held by the Host principal). The complete set of nodes one Host inventory knows, with their health now: a node absent from a later report of the same source is marked down, never deleted silently.

Fields

FieldTypeRequiredDescriptionConstraints
sourcestringyesThe reporting inventory (e.g. the host id).
  • pattern ^[a-z][a-z0-9-]{1,39}$
nodesnetwork.nodeyes
  • maxItems 500

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: empty
{
  "source": "openvibe-oregon",
  "nodes": []
}
Valid: one-host
{
  "source": "openvibe-oregon",
  "nodes": [
    {
      "id": "oregon-1",
      "name": "Oregon 1",
      "roles": [
        "web",
        "app",
        "data",
        "ingest"
      ],
      "location": {
        "region": "us-west",
        "country": "US",
        "city": "Hillsboro",
        "lat": 45.52,
        "lon": -122.99
      },
      "provider": "ovh",
      "beacon": "https://openvibe.network/api/v1/nodes/oregon-1/beacon",
      "health": {
        "status": "up",
        "checked_at": "2026-09-28T12:00:00Z"
      },
      "updated_at": "2026-09-28T12:00:00Z"
    }
  ]
}
Rejected: no-source
{
  "nodes": [
    {
      "id": "oregon-1",
      "name": "Oregon 1",
      "roles": [
        "web",
        "app",
        "data",
        "ingest"
      ],
      "location": {
        "region": "us-west",
        "country": "US",
        "city": "Hillsboro",
        "lat": 45.52,
        "lon": -122.99
      },
      "provider": "ovh",
      "beacon": "https://openvibe.network/api/v1/nodes/oregon-1/beacon",
      "health": {
        "status": "up",
        "checked_at": "2026-09-28T12:00:00Z"
      },
      "updated_at": "2026-09-28T12:00:00Z"
    }
  ]
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('network.node-report-request@1', value);   // { valid, errors: [{ path, message }] }