HostSite host.site@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/site.v1.json

host.site@1: one static site on OpenVibe.Host (server/http/serialize.js site): its name (one DNS label), the default hostname and URL it is served at, the deploy it serves (one pointer; null until a deploy is activated) and any staff takedown.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
  • pattern ^site_[0-9A-HJKMNP-TV-Z]{26}$
project_idstringyes
  • pattern ^prj_[0-9A-HJKMNP-TV-Z]{26}$
namestringyes
  • pattern ^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){2,39}$
hostnamestringyes
urlstringyes
active_deploy_idone ofyes
takedownobject | nullyesA staff takedown covering it: serving stops while the content is kept for review.
created_atstringyes
  • format date-time
updated_atstringyes
  • format date-time

Examples

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

Valid: site
{
  "id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
  "project_id": "prj_01JAD1P2R3J4K5M6N7P8Q9R0S1",
  "name": "harbour-radio",
  "hostname": "harbour-radio.openvibe.host",
  "url": "https://harbour-radio.openvibe.host",
  "active_deploy_id": "dpl_01JAD4D4E5F6G7H8J9K0M1N2P3",
  "takedown": null,
  "created_at": "2026-09-24T08:15:00.000Z",
  "updated_at": "2026-09-24T09:40:12.000Z"
}
Rejected: uppercase-name
{
  "id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
  "project_id": "prj_01JAD1P2R3J4K5M6N7P8Q9R0S1",
  "name": "Harbour-Radio",
  "hostname": "harbour-radio.openvibe.host",
  "url": "https://harbour-radio.openvibe.host",
  "active_deploy_id": "dpl_01JAD4D4E5F6G7H8J9K0M1N2P3",
  "takedown": null,
  "created_at": "2026-09-24T08:15:00.000Z",
  "updated_at": "2026-09-24T09:40:12.000Z"
}

Validate

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