CommunityPulseWriteRequest community.pulse-write-request@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
community
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/community/pulse-write-request.v1.json

community.pulse-write-request@1: the body of POST /api/v1/pulse/items on OpenVibe.Community (community.pulse.write; service tokens only): an item about one of the calling service's own entities (ref.service must be that service: 403 pulse.foreign_ref otherwise), with a title (whitespace collapsed, 1 to 300 characters) and an absolute http(s) url (at most 2000 characters). origin defaults to X-OV-Origin (user, ai or system; X-OV-Origin: ai always wins); an origin user item names the person in X-OV-Subject. occurred_at is an ISO time, not in the future (default now). Only public activity enters Pulse: a visibility other than public is 400 pulse.not_public. The same ref again updates the item. Unknown fields are ignored. DELETE /api/v1/pulse/items/:service/:type/:id takes no body.

Fields

This schema has no named fields.

Examples

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

Valid: clip
{
  "ref": {
    "service": "live",
    "type": "clip",
    "id": "med_01JAB2C3D4E5F6G7H8J9K0MNPQ"
  },
  "title": "Alice clipped a clean 1v3",
  "url": "https://openvibe.live/clip/med_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "origin": "user",
  "occurred_at": "2026-09-25T18:00:00Z",
  "visibility": "public"
}
Valid: retract
{}
Rejected: bad-ref-and-url
{
  "ref": {
    "service": "live",
    "type": "clip"
  },
  "title": "t",
  "url": "ftp://x"
}
Rejected: not-public
{
  "ref": {
    "service": "live",
    "type": "clip",
    "id": "x"
  },
  "title": "t",
  "url": "https://openvibe.live/clip/x",
  "visibility": "unlisted"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('community.pulse-write-request@1', value);   // { valid, errors: [{ path, message }] }