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 }] }