TipsInteractionErasedPayload tips.interaction.erased@1

Generated at from openvibe-contracts v0.33.0 and openvibe-sdk v0.5.0.

Version
1.0.0
Owner
tips
Visibility
first-party
Status
active
Compatibility
backward
Decision
ADR-012
Schema
https://openvibe.network/contracts/events/payloads/tips.interaction.erased.v1.json

tips.interaction.erased v1 (OpenVibe.Tips server/domain/interactions.js erase). The supporter erased their data from this interaction: Tips no longer holds their subject, name, message, text-to-speech text, media link or checkout reference; the money record (amount, creator, Billing transaction, goal contribution) stays so Billing's books and the creator's totals still reconcile. payload.redacts names every earlier Tips event about the interaction, so OpenVibe.Events tombstones them (ADR-026). Envelope: subject { type: interaction, id: tint_… }, visibility internal, priority important, actor service:tips. Carries no supporter data. Never emitted for simulations.

Fields

FieldTypeRequiredDescriptionConstraints
interaction_idstringyes
  • pattern ^tint_[0-9A-HJKMNP-TV-Z]{26}$
creatoridentity.subject-refyes
erased_atstringyes
  • format date-time
redactsevents.redaction-directiveyes{ subject_type: interaction, subject_ids: [interaction_id] }.

Examples

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

Valid: erased
{
  "interaction_id": "tint_01JAB3C4D5E6F7G8H9J0K1MNPQ",
  "creator": {
    "type": "user",
    "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
  },
  "erased_at": "2026-09-23T18:04:11.000Z",
  "redacts": {
    "subject_type": "interaction",
    "subject_ids": [
      "tint_01JAB3C4D5E6F7G8H9J0K1MNPQ"
    ]
  }
}
Rejected: names-the-supporter
{
  "interaction_id": "tint_01JAB3C4D5E6F7G8H9J0K1MNPQ",
  "creator": {
    "type": "user",
    "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
  },
  "supporter": {
    "type": "user",
    "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
  },
  "erased_at": "2026-09-23T18:04:11.000Z",
  "redacts": {
    "subject_type": "interaction",
    "subject_ids": [
      "tint_01JAB3C4D5E6F7G8H9J0K1MNPQ"
    ]
  }
}
Rejected: without-redacts
{
  "interaction_id": "tint_01JAB3C4D5E6F7G8H9J0K1MNPQ",
  "creator": {
    "type": "user",
    "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
  },
  "erased_at": "2026-09-23T18:04:11.000Z"
}

Validate

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