CodesReleaseManageRequest codes.release-manage-request@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-manage-request.v1.json
codes.release-manage-request@1: bodies of codes.release.manage on OpenVibe.Codes (an app token managing its own releases). POST /api/v1/apps/:app/releases: { kind?, manifest, notes?, publish? } — kind mod or app (anything else is app); manifest must validate as codes.app-manifest@1 for an app or mods.mod-manifest@1 for a mod (422 manifest.invalid with the validation otherwise; a version that already has a release is 409); notes are cut to 2000 characters; publish true publishes the draft at once. POST /api/v1/releases/:id/deprecate: { reason, replacement? } (a reason is required, cut to 500 characters; replacement must be a published release of the same app). POST /api/v1/releases/:id/revoke: { reason } (required). POST /api/v1/releases/:id/publish takes no body. Unknown fields are ignored.
Fields
This schema has no named fields.
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: create
{
"kind": "app",
"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"
}
},
"notes": "First release.",
"publish": true
}Valid: deprecate
{
"reason": "superseded by 1.5.0",
"replacement": "rel_01JAB2C3D4E5F6G7H8J9K0MNPS"
}Rejected: blank-reason
{
"reason": " ",
"manifest": 5
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('codes.release-manage-request@1', value); // { valid, errors: [{ path, message }] }