NetworkAccountExportRequestedPayload network.account.export_requested@1

Generated at from openvibe-contracts v0.76.0 and openvibe-sdk v0.20.1.

Version
1.0.0
Owner
network
Visibility
first-party
Status
active
Compatibility
backward
Decision
ADR-033
Schema
https://openvibe.network/contracts/events/payloads/network.account.export_requested.v1.json

network.account.export_requested v1 (OpenVibe.Network; roadmap WS-B task 7, ADR-033). A person asked for a copy of their data. Each service that keeps data about people pushes its part before the deadline: POST /internal/account-exports/{export_id}/parts (network.account-export-part@1, capability network.account.export.contribute), with only the subject's own rows. A redelivery carries the same export_id; a second part from the same service replaces the first.

Fields

FieldTypeRequiredDescriptionConstraints
export_idstringyesThe export job; a redelivery carries the same id.
  • pattern ^exp_[0-9A-HJKMNP-TV-Z]{26}$
subjectstringyesThe person whose data is exported.
  • pattern ^usr_[0-9A-HJKMNP-TV-Z]{26}$
requested_atstringyes
  • format date-time
deadlinestringyesNetwork builds the archive when every expected service has answered, or at this time (30 minutes after the request); a later part is refused.
  • format date-time

Examples

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

Valid: requested
{
  "export_id": "exp_01JAB2C3D4E5F6G7H8J9K0MNPS",
  "subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "requested_at": "2026-09-27T21:00:00.000Z",
  "deadline": "2026-09-27T21:30:00.000Z"
}
Rejected: legacy-id
{
  "export_id": "exp_01JAB2C3D4E5F6G7H8J9K0MNPS",
  "subject": "42",
  "requested_at": "2026-09-27T21:00:00.000Z",
  "deadline": "2026-09-27T21:30:00.000Z"
}
Rejected: no-deadline
{
  "export_id": "exp_01JAB2C3D4E5F6G7H8J9K0MNPS",
  "subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "requested_at": "2026-09-27T21:00:00.000Z"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('network.account.export_requested@1', value);   // { valid, errors: [{ path, message }] }