NetworkAccountDeletionConfirmation network.account-deletion-confirmation@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/network/account-deletion-confirmation.v1.json

network.account-deletion-confirmation@1 (OpenVibe.Network; roadmap WS-B task 7, ADR-033): one service confirms it erased a deleted account's rows, POST /internal/account-deletions/{deletion_id}/confirmations with capability network.account.deletion.confirm (a token speaks only for its own service). Counts only: what it erased and what it keeps (money and ledger rows pseudonymised, media under a retention hold, tombstones that keep others' replies in place). A repeat confirmation replaces the first.

Fields

FieldTypeRequiredDescriptionConstraints
subjectstringyesMust be the deletion's subject.
  • pattern ^usr_[0-9A-HJKMNP-TV-Z]{26}$
completed_atstringyes
  • format date-time
erasedobjectyesRows erased, by kind (messages, follows, pastes, …).
retainedobjectRows kept, by kind, each pseudonymised or held (ledger, held_media, tombstones, …).

Examples

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

Valid: chat
{
  "subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "completed_at": "2026-09-27T21:05:00.000Z",
  "erased": {
    "messages": 120,
    "dm_messages": 8,
    "blocks": 1
  },
  "retained": {
    "moderation_actions": 2
  }
}
Rejected: negative
{
  "subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "completed_at": "2026-09-27T21:05:00.000Z",
  "erased": {
    "messages": -1
  }
}

Validate

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