NewsIndexDocumentUpsertedPayload news.index_document.upserted@1
Generated at from
openvibe-contracts v0.34.2 and
openvibe-sdk v0.5.0.
- Version
- 1.0.0
- Owner
- news
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/events/payloads/news.index_document.upserted.v1.json
news.index_document.upserted v1 (OpenVibe.News server/domain/publication.js syncIndex, via openvibe-publishing/index-hooks indexEvent). The OpenVibe.Search document of a published (not retracted), public, listable story, sent whenever what Search should hold changed (the revision grows with every change): a publication or new published revision, a topic or noindex change, a person's review of an AI revision, or a cited source changing upstream. The body is the published revision's paragraphs as plain text; facets { topic?, outlets, sources }; provenance names the cited Sources items (and the AI run of an AI draft); language en. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type: story, id, revision: <document revision> }, visibility internal, priority important, actor service:news.
Fields
This schema has no named fields.
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: ai-assisted
{
"owner": "news",
"type": "story",
"id": "sty_01K5S1E4G6J8M0P2R4T6V8X0Z2",
"revision": 3,
"deleted": false,
"visibility": "public",
"canonical_url": "https://openvibe.news/stories/europa-clipper-launches-for-jupiter",
"title": "Europa Clipper is on its way to Jupiter",
"summary": "NASA launched the Europa Clipper spacecraft on a Falcon Heavy rocket from Kennedy Space Center, beginning a cruise of several years to Jupiter and its moon Europa.",
"body": "NASA launched the Europa Clipper spacecraft on a Falcon Heavy rocket from Kennedy Space Center, beginning a cruise of several years to Jupiter and its moon Europa.\n\nAccording to NASA the spacecraft should arrive at Jupiter in 2030, after which it will make repeated close passes of Europa to study its ice shell and the ocean beneath.",
"facets": {
"topic": "space",
"outlets": [
"Wire A",
"Paper B",
"Site C"
],
"sources": 3
},
"language": "en",
"authorship": "ai_assisted",
"provenance": [
{
"service": "ai",
"type": "run",
"id": "run_01K5S4K9N1Q3S5V7X9Z1B3D5F7",
"label": "news.summarize_story"
},
{
"service": "sources",
"type": "item",
"id": "itm_01K5RZ2V7W9Y1A3C5E7G9J1K3M",
"label": "NASA launches Europa Clipper probe to Jupiter moon Europa",
"url": "https://wire-a.example/space/europa-clipper-launch",
"retrieved_at": "2026-09-22T11:00:00.000Z"
},
{
"service": "sources",
"type": "item",
"id": "itm_01K5RZ3X8Y0Z2B4D6F8H0K2M4P",
"label": "Europa Clipper lifts off as NASA begins long trip to Jupiter",
"url": "https://paper-b.example/2026/09/22/europa-clipper",
"retrieved_at": "2026-09-22T11:00:00.000Z"
}
],
"publication_state": "published",
"published_at": "2026-09-22T12:00:00.000Z",
"updated_at": "2026-09-22T14:30:00.000Z",
"indexability": {
"decision": "index",
"reasons": []
}
}Valid: human-noindex
{
"owner": "news",
"type": "story",
"id": "sty_01K5S1F5H7K9N1Q3S5V7X9Z1B3",
"revision": 1,
"deleted": false,
"visibility": "public",
"canonical_url": "https://openvibe.news/stories/treatment-plant-expansion-approved",
"title": "Treatment plant expansion approved",
"summary": "The valley water authority approved the expansion of its treatment plant.",
"body": "The valley water authority approved the expansion of its treatment plant.",
"facets": {
"outlets": [
"Valley Courier"
],
"sources": 1
},
"language": "en",
"authorship": "human",
"provenance": [
{
"service": "sources",
"type": "item",
"id": "itm_01K5RZ5A1B3C5D7E9F1G3H5J7K",
"label": "Water authority backs plant expansion",
"url": "https://valley-courier.example/water/plant",
"retrieved_at": "2026-09-22T09:15:00.000Z"
}
],
"publication_state": "published",
"published_at": "2026-09-22T12:00:00.000Z",
"updated_at": "2026-09-22T12:00:00.000Z",
"indexability": {
"decision": "noindex",
"reasons": [
"unsourced"
]
}
}Rejected: bad-id
{
"owner": "news",
"type": "story",
"id": "pst_01K5S1E4G6J8M0P2R4T6V8X0Z2",
"revision": 1,
"deleted": false,
"visibility": "public",
"canonical_url": "https://openvibe.news/stories/europa-clipper-launches-for-jupiter",
"title": "Europa Clipper is on its way to Jupiter",
"body": "",
"facets": {},
"provenance": [],
"publication_state": "published",
"published_at": null,
"updated_at": null,
"indexability": {
"decision": "index",
"reasons": []
}
}Rejected: missing-title
{
"owner": "news",
"type": "story",
"id": "sty_01K5S1E4G6J8M0P2R4T6V8X0Z2",
"revision": 1,
"deleted": false,
"visibility": "public",
"canonical_url": "https://openvibe.news/stories/europa-clipper-launches-for-jupiter",
"body": "",
"facets": {},
"provenance": [],
"publication_state": "published",
"published_at": null,
"updated_at": null,
"indexability": {
"decision": "index",
"reasons": []
}
}Rejected: tombstone
{
"owner": "news",
"type": "story",
"id": "sty_01K5S1E4G6J8M0P2R4T6V8X0Z2",
"revision": 4,
"deleted": true
}Rejected: wrong-owner
{
"owner": "blog",
"type": "story",
"id": "sty_01K5S1E4G6J8M0P2R4T6V8X0Z2",
"revision": 1,
"deleted": false,
"visibility": "public",
"canonical_url": "https://openvibe.news/stories/europa-clipper-launches-for-jupiter",
"title": "Europa Clipper is on its way to Jupiter",
"body": "",
"facets": {},
"provenance": [],
"publication_state": "published",
"published_at": null,
"updated_at": null,
"indexability": {
"decision": "index",
"reasons": []
}
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('news.index_document.upserted@1', value); // { valid, errors: [{ path, message }] }