TombstonePayload events.tombstone-payload@1

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

Version
1.0.0
Owner
events
Visibility
public
Status
active
Compatibility
backward
Decision
ADR-026
Schema
https://openvibe.network/contracts/events/tombstone-payload.v1.json

The payload of a redacted event (ADR-026). OpenVibe.Events replaces the original payload with this and the actor with the producer itself ({ type: service, id: <source> }, or the app); event_id, seq, event_type, version, subject, timestamp and visibility stay. Every read path serves it from then on: pull, GET by id, SSE replay, queued deliveries and DLQ replays. A consumer checks payload.redacted before validating a payload against its event type's schema.

Fields

FieldTypeRequiredDescriptionConstraints
redactedconstyes
  • = true
redacted_atstringyes
  • format date-time
redacted_bystringyesThe event_id of the redacting event; an operator label (e.g. backfill) when OpenVibe.Events redacted by script.
  • minLength 1
  • maxLength 64

Examples

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

Valid: chat
{
  "redacted": true,
  "redacted_at": "2026-09-23T10:00:00.000Z",
  "redacted_by": "evt_01JAB2C3D4E5F6G7H8J9K0MNPR"
}
Rejected: keeps-text
{
  "redacted": true,
  "redacted_at": "2026-09-23T10:00:00.000Z",
  "redacted_by": "evt_01JAB2C3D4E5F6G7H8J9K0MNPR",
  "message": "hi"
}

Validate

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