CodesRelease codes.release@1
Generated at from
openvibe-contracts v0.53.0 and
openvibe-sdk v0.11.0.
- Version
- 1.0.0
- Owner
- codes
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/codes/release.v1.json
codes.release@1: one release of an app or mod as OpenVibe.Codes presents it (server/domain/releases.js view): its lifecycle (draft → published → deprecated or revoked), compatibility ranges and the app's trust tier (metadata only; grants in OpenVibe.Network are the authority). The manifest itself is served separately (codes.app-manifest@1).
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes |
| |
app_id | string | yes |
| |
project_id | string | null | |||
environment | enum |
| ||
kind | enum | yes |
| |
subject_id | string | null | |||
name | string | yes | ||
version | string | yes | ||
status | enum | yes |
| |
manifest_id | string | yes | ||
compatibility | object | |||
notes | string | null | |||
created_at | string | yes | ||
created_by | string | null | |||
published_at | string | null | |||
deprecated_at | string | null | |||
deprecation_reason | string | null | |||
replacement | string | null | |||
revoked_at | string | null | |||
revocation_reason | string | null | |||
trust | object | yes | ||
trust.tier | string | yes | ||
trust.note | string | null | |||
trust.set_by | string | null | |||
trust.set_at | string | null |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: published
{
"id": "rel_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"app_id": "app_01JAB2C3D4E5F6G7H8J9K0MNPR",
"project_id": "prj_01JAB2C3D4E5F6G7H8J9K0MNPS",
"environment": "production",
"kind": "app",
"subject_id": null,
"name": "Stream Deck Bridge",
"version": "1.4.0",
"status": "published",
"manifest_id": "man_01JAB2C3D4E5F6G7H8J9K0MNPT",
"compatibility": {
"openvibe-contracts": ">=0.40.0"
},
"notes": "Scene switching over the chat socket.",
"created_at": "2026-09-24T10:00:00.000Z",
"created_by": "app:app_01JAB2C3D4E5F6G7H8J9K0MNPR",
"published_at": "2026-09-24T10:05:00.000Z",
"deprecated_at": null,
"deprecation_reason": null,
"replacement": null,
"revoked_at": null,
"revocation_reason": null,
"trust": {
"tier": "unreviewed",
"note": "",
"set_by": null,
"set_at": null
}
}Rejected: unknown-status
{
"id": "rel_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"app_id": "app_01JAB2C3D4E5F6G7H8J9K0MNPR",
"project_id": "prj_01JAB2C3D4E5F6G7H8J9K0MNPS",
"environment": "production",
"kind": "app",
"subject_id": null,
"name": "Stream Deck Bridge",
"version": "1.4.0",
"status": "live",
"manifest_id": "man_01JAB2C3D4E5F6G7H8J9K0MNPT",
"compatibility": {
"openvibe-contracts": ">=0.40.0"
},
"notes": "Scene switching over the chat socket.",
"created_at": "2026-09-24T10:00:00.000Z",
"created_by": "app:app_01JAB2C3D4E5F6G7H8J9K0MNPR",
"published_at": "2026-09-24T10:05:00.000Z",
"deprecated_at": null,
"deprecation_reason": null,
"replacement": null,
"revoked_at": null,
"revocation_reason": null,
"trust": {
"tier": "unreviewed",
"note": "",
"set_by": null,
"set_at": null
}
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('codes.release@1', value); // { valid, errors: [{ path, message }] }