CodesReleaseReadResult codes.release-read-result@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-read-result.v1.json
codes.release-read-result@1: answers of codes.release.read on OpenVibe.Codes (public; no token needed, but a token that is presented must hold the capability; never drafts). GET /api/v1/apps/:app/releases → { app_id, trust, releases } (published, deprecated and revoked releases, newest first); GET /api/v1/apps/:app/trust → { app_id, tier, note, set_by, set_at, note_on_authority } (metadata only: grants in OpenVibe.Network are the authority); GET /api/v1/releases/:id → { release, manifest } (the manifest as published: codes.app-manifest@1 for an app, mods.mod-manifest@1 for a mod). An id that is not an app or a release is 404.
Fields
This schema has no named fields.
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: app-releases
{
"app_id": "app_01JAB2C3D4E5F6G7H8J9K0MNPR",
"trust": {
"tier": "unreviewed",
"note": "",
"set_by": null,
"set_at": null
},
"releases": [
{
"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
}
}
]
}Valid: release-with-manifest
{
"release": {
"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
}
},
"manifest": {
"id": "app_01JABCDEFGHJKMNPQRSTVWXYZ0",
"name": "My app",
"version": "0.1.0",
"publisher": {
"type": "app",
"id": "app_01JABCDEFGHJKMNPQRSTVWXYZ0"
},
"project_id": "prj_01JABCDEFGHJKMNPQRSTVWXYZ0",
"environment": "sandbox",
"capabilities": [],
"compatibility": {
"contracts": "^0.26.0",
"sdk": "^0.2.2"
}
}
}Valid: trust
{
"app_id": "app_01JAB2C3D4E5F6G7H8J9K0MNPR",
"tier": "reviewed",
"note": "checked 1.4.0",
"set_by": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"set_at": "2026-09-25T10:00:00.000Z",
"note_on_authority": "metadata only; grants in OpenVibe.Network are the authority"
}Rejected: bad-app-id
{
"app_id": "not-an-app",
"trust": {
"tier": "unreviewed"
},
"releases": []
}Rejected: manifest-text
{
"release": {
"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
}
},
"manifest": "not a manifest"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('codes.release-read-result@1', value); // { valid, errors: [{ path, message }] }