HostDomainManageResult host.domain-manage-result@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
host
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/host/domain-manage-result.v1.json

host.domain-manage-result@1: answers of host.domain.manage on OpenVibe.Host. GET /api/v1/sites/:id/domains → { domains } (the default domain first). POST /api/v1/sites/:id/domains → 201 { domain } with the DNS records to publish. POST /api/v1/domains/:id/verify → { domain } after the check (status verified and served once the TXT record matches, else last_error says what was found; emits host.domain.verified). DELETE /api/v1/domains/:id → { deleted: true }.

Fields

This schema has no named fields.

Examples

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

Valid: added
{
  "domain": {
    "id": "dom_01JAD6D6E7F8G9H0J1K2M3N4P5",
    "site_id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
    "hostname": "www.harbourradio.example",
    "kind": "custom",
    "status": "pending",
    "served": false,
    "verified_at": null,
    "last_checked_at": "2026-09-24T09:40:12.000Z",
    "last_error": "no TXT record at _openvibe-host.www.harbourradio.example yet",
    "instructions": {
      "verification": {
        "type": "TXT",
        "name": "_openvibe-host.www.harbourradio.example",
        "value": "openvibe-host-verification=5f0c2a9e1b7d4c3a8e6f0b2d4c6a8e0f1a3c5e7b",
        "note": "keep this record: Host re-checks it daily"
      },
      "routing": [
        {
          "type": "CNAME",
          "name": "www.harbourradio.example",
          "value": "harbour-radio.openvibe.host",
          "note": "for a subdomain such as www.example.org"
        }
      ],
      "tls": "after verification an operator issues the certificate (Let's Encrypt); HTTPS starts working once it is installed"
    }
  }
}
Valid: deleted
{
  "deleted": true
}
Valid: list
{
  "domains": [
    {
      "id": "dom_01JAD5D6E7F8G9H0J1K2M3N4P5",
      "site_id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
      "hostname": "harbour-radio.openvibe.host",
      "kind": "default",
      "status": "verified",
      "served": true,
      "verified_at": "2026-09-24T08:15:00.000Z",
      "last_checked_at": null,
      "last_error": null
    },
    {
      "id": "dom_01JAD6D6E7F8G9H0J1K2M3N4P5",
      "site_id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
      "hostname": "www.harbourradio.example",
      "kind": "custom",
      "status": "pending",
      "served": false,
      "verified_at": null,
      "last_checked_at": "2026-09-24T09:40:12.000Z",
      "last_error": "no TXT record at _openvibe-host.www.harbourradio.example yet",
      "instructions": {
        "verification": {
          "type": "TXT",
          "name": "_openvibe-host.www.harbourradio.example",
          "value": "openvibe-host-verification=5f0c2a9e1b7d4c3a8e6f0b2d4c6a8e0f1a3c5e7b",
          "note": "keep this record: Host re-checks it daily"
        },
        "routing": [
          {
            "type": "CNAME",
            "name": "www.harbourradio.example",
            "value": "harbour-radio.openvibe.host",
            "note": "for a subdomain such as www.example.org"
          }
        ],
        "tls": "after verification an operator issues the certificate (Let's Encrypt); HTTPS starts working once it is installed"
      }
    }
  ]
}
Rejected: bad-kind
{
  "domain": {
    "id": "dom_01JAD6D6E7F8G9H0J1K2M3N4P5",
    "site_id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
    "hostname": "www.harbourradio.example",
    "kind": "apex",
    "status": "pending",
    "served": false,
    "verified_at": null,
    "last_checked_at": "2026-09-24T09:40:12.000Z",
    "last_error": "no TXT record at _openvibe-host.www.harbourradio.example yet",
    "instructions": {
      "verification": {
        "type": "TXT",
        "name": "_openvibe-host.www.harbourradio.example",
        "value": "openvibe-host-verification=5f0c2a9e1b7d4c3a8e6f0b2d4c6a8e0f1a3c5e7b",
        "note": "keep this record: Host re-checks it daily"
      },
      "routing": [
        {
          "type": "CNAME",
          "name": "www.harbourradio.example",
          "value": "harbour-radio.openvibe.host",
          "note": "for a subdomain such as www.example.org"
        }
      ],
      "tls": "after verification an operator issues the certificate (Let's Encrypt); HTTPS starts working once it is installed"
    }
  }
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('host.domain-manage-result@1', value);   // { valid, errors: [{ path, message }] }