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 }] }