AccessKeyIssued media.access-key-issued@1

Generated at from openvibe-contracts v0.177.0 and openvibe-sdk v0.44.0.

Version
1.0.0
Owner
media
Visibility
first-party
Status
active
Compatibility
backward
Decision
ADR-031
Schema
https://openvibe.network/contracts/media/access-key-issued.v1.json

media.access-key-issued@1 (ADR-031): the 201 of POST /api/v1/projects/:project_id/access-keys. `secret` is the S3 secret access key; it is in this answer only, and Media never shows it again. A caller relays it to the person once and keeps no copy.

Fields

FieldTypeRequiredDescriptionConstraints
keymedia.access-keyyes
secretstringyes
  • pattern ^[A-Za-z0-9_-]{40}$

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: basic
{
  "key": {
    "id": "ovk_01JZ0000000000000000000K01",
    "project_id": "prj_01JZ0000000000000000000P01",
    "env": "production",
    "name": "ci deploys",
    "permissions": "read-write",
    "zones": [],
    "created_by": "usr_01JZ0000000000000000000A01",
    "created_at": "2026-10-14T12:00:00.000Z",
    "last_used_at": null,
    "revoked_at": null
  },
  "secret": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
Rejected: basic
{
  "key": {
    "id": "ovk_01JZ0000000000000000000K01",
    "project_id": "prj_01JZ0000000000000000000P01",
    "env": "production",
    "name": "ci deploys",
    "permissions": "read-write",
    "zones": [],
    "created_by": "usr_01JZ0000000000000000000A01",
    "created_at": "2026-10-14T12:00:00.000Z",
    "last_used_at": null,
    "revoked_at": null
  },
  "secret": "short"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('media.access-key-issued@1', value);   // { valid, errors: [{ path, message }] }