HostDeploy host.deploy@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/deploy.v1.json
host.deploy@1: one immutable static deploy on OpenVibe.Host (server/http/serialize.js deploy): ready (validated and stored, never executed) or failed (refused, with its failure code and log), whether the site serves it, its size and manifest hash. GET /api/v1/deploys/:id adds the files; the upload answer adds the log.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes |
| |
site_id | string | yes |
| |
project_id | string | yes |
| |
state | enum | yes |
| |
active | boolean | yes | ||
source | enum | yes |
| |
file_count | integer | yes |
| |
total_bytes | integer | yes |
| |
new_bytes | integer | yes | Bytes this deploy added to the project's store. |
|
manifest_sha256 | string | null | yes |
| |
failure_code | string | null | yes | ||
created_by | string | yes | ||
created_at | string | yes |
| |
files | array of object | |||
files[].path | string | yes | ||
files[].sha256 | string | yes |
| |
files[].size | integer | yes |
| |
files[].content_type | string | yes | ||
log | array of object | |||
log[].level | enum | yes |
| |
log[].message | string | yes | ||
log[].at | string | yes |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: failed
{
"id": "dpl_01JAD3D4E5F6G7H8J9K0M1N2P3",
"site_id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
"project_id": "prj_01JAD1P2R3J4K5M6N7P8Q9R0S1",
"state": "failed",
"active": false,
"source": "files",
"file_count": 0,
"total_bytes": 0,
"new_bytes": 0,
"manifest_sha256": null,
"failure_code": "deploy.server_code",
"created_by": "app:app_01JAD7A8B9C0D1E2F3G4H5J6K7",
"created_at": "2026-09-24T09:40:12.000Z",
"log": [
{
"level": "error",
"message": "deploy.server_code: api/index.php is server-side code; Host serves static files only",
"at": "2026-09-24T08:15:00.000Z"
}
]
}Valid: ready
{
"id": "dpl_01JAD4D4E5F6G7H8J9K0M1N2P3",
"site_id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
"project_id": "prj_01JAD1P2R3J4K5M6N7P8Q9R0S1",
"state": "ready",
"active": true,
"source": "archive",
"file_count": 37,
"total_bytes": 482113,
"new_bytes": 20411,
"manifest_sha256": "a3f1c9e0b4d2e6f8a1c3e5f7091b2d4f6a8c0e2f4a6b8d0f2e4c6a8b0d2f4e6a",
"failure_code": null,
"created_by": "app:app_01JAD7A8B9C0D1E2F3G4H5J6K7",
"created_at": "2026-09-24T09:40:12.000Z"
}Rejected: bad-source
{
"id": "dpl_01JAD4D4E5F6G7H8J9K0M1N2P3",
"site_id": "site_01JAD2S3T4V5W6X7Y8Z9A0B1C2",
"project_id": "prj_01JAD1P2R3J4K5M6N7P8Q9R0S1",
"state": "ready",
"active": true,
"source": "git",
"file_count": 37,
"total_bytes": 482113,
"new_bytes": 20411,
"manifest_sha256": "a3f1c9e0b4d2e6f8a1c3e5f7091b2d4f6a8c0e2f4a6b8d0f2e4c6a8b0d2f4e6a",
"failure_code": null,
"created_by": "app:app_01JAD7A8B9C0D1E2F3G4H5J6K7",
"created_at": "2026-09-24T09:40:12.000Z"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('host.deploy@1', value); // { valid, errors: [{ path, message }] }