NetworkMeConsentResult network.me-consent-result@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- network
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/network/me-consent-result.v1.json
network.me-consent-result@1 (L24): "Your data choices" for the signed-in person. GET /api/v1/me/consent (and the answer to PUT /api/v1/me/consent/:purpose and DELETE /api/v1/me/consent/:purpose/:client) on OpenVibe.Network. Every purpose is listed with the words the account page shows, whether the person has turned it on, and the history of their changes. Off is the default for every purpose.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
purposes | array of object | yes |
| |
purposes[].id | enum | yes |
| |
purposes[].title | string | yes |
| |
purposes[].allows | string | yes | What turning it on allows, in one plain line. |
|
purposes[].off | string | yes | What turning it off does. |
|
purposes[].cannot_undo | string | yes | What turning it off cannot undo (empty when nothing). |
|
purposes[].adults_only | boolean | yes | Turning it on asks the person to confirm they are 18 or older. | |
purposes[].kinds | array of enum | yes | The kinds of content the person may narrow it to (empty: the purpose takes none). |
|
purposes[].text_version | string | yes |
| |
consents | network.consent | yes | The person's active choices (network.consent@1), one per purpose and app. |
|
history | array of object | yes | The newest changes first. |
|
history[].consent_id | string | yes |
| |
history[].purpose | enum | yes |
| |
history[].client | string | null |
| ||
history[].action | enum | yes |
| |
history[].at | string | yes |
| |
history[].by | enum | yes | Who made the change: the person, the app being revoked, an account merge, an account deletion, or the move of an older record. |
|
history[].text_version | string | yes |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: one-choice
{
"purposes": [
{
"id": "ai.train",
"title": "Train AI on my content",
"allows": "OpenVibe may train or fine-tune its models on the content you pick.",
"off": "Off: nothing new of yours is used for training.",
"cannot_undo": "A model already trained keeps what it learned.",
"adults_only": true,
"kinds": [
"streams",
"vods",
"clips",
"voice",
"chat",
"posts",
"pictures",
"code"
],
"text_version": "2026-10-31.1"
}
],
"consents": [
{
"id": "cns_01K6R3A1B2C3D4E5F6G7H8J9KA",
"subject": "usr_01K6R2Z8C4V7M9Q3T5W1X2Y3Z4",
"purpose": "ai.train",
"on": true,
"kinds": [
"streams",
"vods"
],
"client": null,
"options": {},
"text_version": "2026-10-31.1",
"source": "account",
"granted_at": "2026-10-31T05:00:00.000Z",
"revoked_at": null,
"expires_at": null
}
],
"history": [
{
"consent_id": "cns_01K6R3A1B2C3D4E5F6G7H8J9KA",
"purpose": "ai.train",
"client": null,
"action": "granted",
"at": "2026-10-31T05:00:00.000Z",
"by": "person",
"text_version": "2026-10-31.1"
}
]
}Rejected: unknown-action
{
"purposes": [],
"consents": [],
"history": [
{
"consent_id": "cns_01K6R3A1B2C3D4E5F6G7H8J9KA",
"purpose": "ai.train",
"action": "sold",
"at": "2026-10-31T05:00:00.000Z",
"by": "person",
"text_version": "2026-10-31.1"
}
]
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('network.me-consent-result@1', value); // { valid, errors: [{ path, message }] }