openvibers/openvibe.contracts Commits

report and design index documents (0.275.0) (#284)

OP OpenVibers committed 11 days ago · 146874ed31 · 72 files, +833 −87

report.index_document.* v1: Report's Rundown topic pages (type topic, /rundown/t/<slug>), the
public copy of Live's noindex topic pages. design.index_document.* v1: Design's icon pages (type
icon, /icons/<name>) and theme pages (type theme, /t/<slug>). Payload schemas, fixtures, catalog
entries and eventsProduced in both manifests; 60 topics, 280 icons and 50 themes were on no
network search.

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex cbca47b4..29a9c192 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -1,5 +1,17 @@
# Changelog
++## 0.275.0 — 2026-11-02
++
++- **`report.index_document.upserted` / `.deleted` v1** (active, first-party; plan T9): OpenVibe.Report's Rundown
++ topic pages (type `topic`, `/rundown/t/<slug>`) as OpenVibe.Search documents: the title, headline and summary of
++ what streamers said. Live's own topic pages are noindex; Report's are the public copy. 60 topics were on no network
++ search.
++- **`design.index_document.upserted` / `.deleted` v1** (active, first-party): OpenVibe.Design's icon pages (type
++ `icon`, `/icons/<name>`) and theme pages (type `theme`, `/t/<slug>`). 280 icons and 50 themes were on no network
++ search.
++- Both are sent through `openvibe-publishing/search-feed`; the Report and Design manifests list them in
++ `eventsProduced`; the catalog has their entries and fixtures.
++
## 0.274.0 — 2026-11-02
- **`tours.index_document.upserted` / `.deleted` v1** (active, first-party; plan T9): OpenVibe.Tours' pages as
ddiff --git a/contracts/catalog.json b/contracts/catalog.json
iindex 7fe7357b..0fe78bd9 100644
---- a/contracts/catalog.json
++++ b/contracts/catalog.json
@@@ -7351,6 +7351,42 @@
"compatibility": "backward",
"status": "active"
},
++ {
++ "id": "design.index_document.upserted",
++ "version": "1.0.0",
++ "owner": "design",
++ "schema": "events/payloads/design.index_document.upserted.v1.json",
++ "visibility": "first-party",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "design.index_document.deleted",
++ "version": "1.0.0",
++ "owner": "design",
++ "schema": "events/payloads/design.index_document.deleted.v1.json",
++ "visibility": "first-party",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "report.index_document.upserted",
++ "version": "1.0.0",
++ "owner": "report",
++ "schema": "events/payloads/report.index_document.upserted.v1.json",
++ "visibility": "first-party",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "report.index_document.deleted",
++ "version": "1.0.0",
++ "owner": "report",
++ "schema": "events/payloads/report.index_document.deleted.v1.json",
++ "visibility": "first-party",
++ "compatibility": "backward",
++ "status": "active"
++ },
{
"id": "work.application",
"version": "1.0.0",
ddiff --git a/contracts/events/payloads/design.index_document.deleted.v1.json b/contracts/events/payloads/design.index_document.deleted.v1.json
nnew file mode 100644
iindex 00000000..d6e46891
---- /dev/null
++++ b/contracts/events/payloads/design.index_document.deleted.v1.json
@@@ -0,0 +1,31 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/design.index_document.deleted.v1.json",
++ "title": "DesignIndexDocumentDeletedPayload",
++ "description": "design.index_document.deleted v1 (OpenVibe.Design server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for an icon or theme page that left the catalog. Only sent for a page Search was sent before. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:design.",
++ "type": "object",
++ "required": [
++ "type",
++ "id",
++ "revision"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "type": {
++ "enum": [
++ "icon",
++ "theme"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^[a-z0-9][a-z0-9-]{0,89}$"
++ },
++ "revision": {
++ "type": "integer",
++ "minimum": 1,
++ "maximum": 9007199254740991,
++ "description": "Index revision of the tombstone; wins over any document at the same or an older revision."
++ }
++ }
++}
ddiff --git a/contracts/events/payloads/design.index_document.upserted.v1.json b/contracts/events/payloads/design.index_document.upserted.v1.json
nnew file mode 100644
iindex 00000000..cd467a11
---- /dev/null
++++ b/contracts/events/payloads/design.index_document.upserted.v1.json
@@@ -0,0 +1,37 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/design.index_document.upserted.v1.json",
++ "title": "DesignIndexDocumentUpsertedPayload",
++ "description": "design.index_document.upserted v1 (OpenVibe.Design server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Design page: an icon (type icon, /icons/<name>, the glyph name as the id: its name, the words it is found by and the formats it downloads in) or a theme (type theme, /t/<slug>: its name, mode and description, from OpenVibe.Network's theme catalog). Sent by the sweep at boot and on a timer; a page that left the catalog becomes a tombstone. The sequencer (design_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: kind (icon: solid when it has a filled form), mode (theme). Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:design.",
++ "allOf": [
++ {
++ "$ref": "../../search/index-document.v1.json"
++ },
++ {
++ "type": "object",
++ "required": [
++ "owner",
++ "type",
++ "deleted"
++ ],
++ "properties": {
++ "owner": {
++ "const": "design"
++ },
++ "type": {
++ "enum": [
++ "icon",
++ "theme"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^[a-z0-9][a-z0-9-]{0,89}$"
++ },
++ "deleted": {
++ "const": false
++ }
++ }
++ }
++ ]
++}
ddiff --git a/contracts/events/payloads/report.index_document.deleted.v1.json b/contracts/events/payloads/report.index_document.deleted.v1.json
nnew file mode 100644
iindex 00000000..6fa99ad4
---- /dev/null
++++ b/contracts/events/payloads/report.index_document.deleted.v1.json
@@@ -0,0 +1,30 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/report.index_document.deleted.v1.json",
++ "title": "ReportIndexDocumentDeletedPayload",
++ "description": "report.index_document.deleted v1 (OpenVibe.Report server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for a Rundown topic page that left the Rundown. Only sent for a page Search was sent before. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:report.",
++ "type": "object",
++ "required": [
++ "type",
++ "id",
++ "revision"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "type": {
++ "enum": [
++ "topic"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^[a-z0-9][a-z0-9-]{0,89}$"
++ },
++ "revision": {
++ "type": "integer",
++ "minimum": 1,
++ "maximum": 9007199254740991,
++ "description": "Index revision of the tombstone; wins over any document at the same or an older revision."
++ }
++ }
++}
ddiff --git a/contracts/events/payloads/report.index_document.upserted.v1.json b/contracts/events/payloads/report.index_document.upserted.v1.json
nnew file mode 100644
iindex 00000000..cca20b2e
---- /dev/null
++++ b/contracts/events/payloads/report.index_document.upserted.v1.json
@@@ -0,0 +1,36 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/report.index_document.upserted.v1.json",
++ "title": "ReportIndexDocumentUpsertedPayload",
++ "description": "report.index_document.upserted v1 (OpenVibe.Report server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Rundown topic page (type topic, /rundown/t/<slug>, the slug as the id): the topic's title, headline and summary of what streamers said about it, from OpenVibe.Live's Rundown. Live's own topic pages are noindex; Report's are the public copy. Sent by the sweep at boot and on a timer; a topic that left the Rundown becomes a tombstone. The sequencer (report_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: kind, takes. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:report.",
++ "allOf": [
++ {
++ "$ref": "../../search/index-document.v1.json"
++ },
++ {
++ "type": "object",
++ "required": [
++ "owner",
++ "type",
++ "deleted"
++ ],
++ "properties": {
++ "owner": {
++ "const": "report"
++ },
++ "type": {
++ "enum": [
++ "topic"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^[a-z0-9][a-z0-9-]{0,89}$"
++ },
++ "deleted": {
++ "const": false
++ }
++ }
++ }
++ ]
++}
ddiff --git a/fixtures/design.index_document.deleted/invalid/full-document.json b/fixtures/design.index_document.deleted/invalid/full-document.json
nnew file mode 100644
iindex 00000000..3d47d648
---- /dev/null
++++ b/fixtures/design.index_document.deleted/invalid/full-document.json
@@@ -0,0 +1,24 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "design",
++ "type": "icon",
++ "id": "arrow-down",
++ "canonical_url": "https://openvibe.design/icons/arrow-down",
++ "title": "Arrow down icon",
++ "summary": "The arrow-down icon of the OpenVibe icon set: SVG, PNG, a web font, React and Android.",
++ "body": "arrow-down\narrow down",
++ "facets": {
++ "kind": "icon"
++ }
++}
ddiff --git a/fixtures/design.index_document.deleted/invalid/other-type.json b/fixtures/design.index_document.deleted/invalid/other-type.json
nnew file mode 100644
iindex 00000000..8e820db5
---- /dev/null
++++ b/fixtures/design.index_document.deleted/invalid/other-type.json
@@@ -0,0 +1,5 @@
++{
++ "type": "component",
++ "id": "arrow-down",
++ "revision": 3
++}
ddiff --git a/fixtures/design.index_document.deleted/valid/tombstone.json b/fixtures/design.index_document.deleted/valid/tombstone.json
nnew file mode 100644
iindex 00000000..f85d30e1
---- /dev/null
++++ b/fixtures/design.index_document.deleted/valid/tombstone.json
@@@ -0,0 +1,5 @@
++{
++ "type": "icon",
++ "id": "arrow-down",
++ "revision": 3
++}
ddiff --git a/fixtures/design.index_document.upserted/invalid/bad-id.json b/fixtures/design.index_document.upserted/invalid/bad-id.json
nnew file mode 100644
iindex 00000000..8daff8eb
---- /dev/null
++++ b/fixtures/design.index_document.upserted/invalid/bad-id.json
@@@ -0,0 +1,24 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "design",
++ "type": "icon",
++ "id": "Not A Slug",
++ "canonical_url": "https://openvibe.design/icons/arrow-down",
++ "title": "Arrow down icon",
++ "summary": "The arrow-down icon of the OpenVibe icon set: SVG, PNG, a web font, React and Android.",
++ "body": "arrow-down\narrow down",
++ "facets": {
++ "kind": "icon"
++ }
++}
ddiff --git a/fixtures/design.index_document.upserted/invalid/other-owner.json b/fixtures/design.index_document.upserted/invalid/other-owner.json
nnew file mode 100644
iindex 00000000..aee8b3ef
---- /dev/null
++++ b/fixtures/design.index_document.upserted/invalid/other-owner.json
@@@ -0,0 +1,24 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "rent",
++ "type": "icon",
++ "id": "arrow-down",
++ "canonical_url": "https://openvibe.design/icons/arrow-down",
++ "title": "Arrow down icon",
++ "summary": "The arrow-down icon of the OpenVibe icon set: SVG, PNG, a web font, React and Android.",
++ "body": "arrow-down\narrow down",
++ "facets": {
++ "kind": "icon"
++ }
++}
ddiff --git a/fixtures/design.index_document.upserted/invalid/other-type.json b/fixtures/design.index_document.upserted/invalid/other-type.json
nnew file mode 100644
iindex 00000000..c8565a6e
---- /dev/null
++++ b/fixtures/design.index_document.upserted/invalid/other-type.json
@@@ -0,0 +1,24 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "design",
++ "type": "component",
++ "id": "arrow-down",
++ "canonical_url": "https://openvibe.design/icons/arrow-down",
++ "title": "Arrow down icon",
++ "summary": "The arrow-down icon of the OpenVibe icon set: SVG, PNG, a web font, React and Android.",
++ "body": "arrow-down\narrow down",
++ "facets": {
++ "kind": "icon"
++ }
++}
ddiff --git a/fixtures/design.index_document.upserted/invalid/tombstone-as-upsert.json b/fixtures/design.index_document.upserted/invalid/tombstone-as-upsert.json
nnew file mode 100644
iindex 00000000..ad1e5653
---- /dev/null
++++ b/fixtures/design.index_document.upserted/invalid/tombstone-as-upsert.json
@@@ -0,0 +1,7 @@
++{
++ "owner": "design",
++ "type": "icon",
++ "id": "arrow-down",
++ "revision": 2,
++ "deleted": true
++}
ddiff --git a/fixtures/design.index_document.upserted/valid/icon.json b/fixtures/design.index_document.upserted/valid/icon.json
nnew file mode 100644
iindex 00000000..3d47d648
---- /dev/null
++++ b/fixtures/design.index_document.upserted/valid/icon.json
@@@ -0,0 +1,24 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "design",
++ "type": "icon",
++ "id": "arrow-down",
++ "canonical_url": "https://openvibe.design/icons/arrow-down",
++ "title": "Arrow down icon",
++ "summary": "The arrow-down icon of the OpenVibe icon set: SVG, PNG, a web font, React and Android.",
++ "body": "arrow-down\narrow down",
++ "facets": {
++ "kind": "icon"
++ }
++}
ddiff --git a/fixtures/design.index_document.upserted/valid/noindex.json b/fixtures/design.index_document.upserted/valid/noindex.json
nnew file mode 100644
iindex 00000000..355c3b0d
---- /dev/null
++++ b/fixtures/design.index_document.upserted/valid/noindex.json
@@@ -0,0 +1,26 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "noindex",
++ "reasons": [
++ "thin_content"
++ ]
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "design",
++ "type": "icon",
++ "id": "arrow-down",
++ "canonical_url": "https://openvibe.design/icons/arrow-down",
++ "title": "Arrow down icon",
++ "summary": "The arrow-down icon of the OpenVibe icon set: SVG, PNG, a web font, React and Android.",
++ "body": "arrow-down\narrow down",
++ "facets": {
++ "kind": "icon"
++ }
++}
ddiff --git a/fixtures/design.index_document.upserted/valid/theme.json b/fixtures/design.index_document.upserted/valid/theme.json
nnew file mode 100644
iindex 00000000..4d55aeca
---- /dev/null
++++ b/fixtures/design.index_document.upserted/valid/theme.json
@@@ -0,0 +1,24 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "design",
++ "type": "theme",
++ "id": "abyss",
++ "canonical_url": "https://openvibe.design/t/abyss",
++ "title": "Abyss theme",
++ "summary": "A dark theme for every OpenVibe site.",
++ "body": "Abyss\ndark",
++ "facets": {
++ "mode": "dark"
++ }
++}
ddiff --git a/fixtures/report.index_document.deleted/invalid/full-document.json b/fixtures/report.index_document.deleted/invalid/full-document.json
nnew file mode 100644
iindex 00000000..7e1e46c9
---- /dev/null
++++ b/fixtures/report.index_document.deleted/invalid/full-document.json
@@@ -0,0 +1,25 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "report",
++ "type": "topic",
++ "id": "taking-a-break",
++ "canonical_url": "https://openvibe.report/rundown/t/taking-a-break",
++ "title": "Taking a break",
++ "summary": "Streamers debate stepping away: fresh air, robot faces and emotional breaks.",
++ "body": "Taking a break\nStreamers debate stepping away.",
++ "facets": {
++ "kind": "life",
++ "takes": 4
++ }
++}
ddiff --git a/fixtures/report.index_document.deleted/invalid/other-type.json b/fixtures/report.index_document.deleted/invalid/other-type.json
nnew file mode 100644
iindex 00000000..b55b70d6
---- /dev/null
++++ b/fixtures/report.index_document.deleted/invalid/other-type.json
@@@ -0,0 +1,5 @@
++{
++ "type": "episode",
++ "id": "taking-a-break",
++ "revision": 3
++}
ddiff --git a/fixtures/report.index_document.deleted/valid/tombstone.json b/fixtures/report.index_document.deleted/valid/tombstone.json
nnew file mode 100644
iindex 00000000..c5b2fc9d
---- /dev/null
++++ b/fixtures/report.index_document.deleted/valid/tombstone.json
@@@ -0,0 +1,5 @@
++{
++ "type": "topic",
++ "id": "taking-a-break",
++ "revision": 3
++}
ddiff --git a/fixtures/report.index_document.upserted/invalid/bad-id.json b/fixtures/report.index_document.upserted/invalid/bad-id.json
nnew file mode 100644
iindex 00000000..23b38b1b
---- /dev/null
++++ b/fixtures/report.index_document.upserted/invalid/bad-id.json
@@@ -0,0 +1,25 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "report",
++ "type": "topic",
++ "id": "Not A Slug",
++ "canonical_url": "https://openvibe.report/rundown/t/taking-a-break",
++ "title": "Taking a break",
++ "summary": "Streamers debate stepping away: fresh air, robot faces and emotional breaks.",
++ "body": "Taking a break\nStreamers debate stepping away.",
++ "facets": {
++ "kind": "life",
++ "takes": 4
++ }
++}
ddiff --git a/fixtures/report.index_document.upserted/invalid/other-owner.json b/fixtures/report.index_document.upserted/invalid/other-owner.json
nnew file mode 100644
iindex 00000000..262f765a
---- /dev/null
++++ b/fixtures/report.index_document.upserted/invalid/other-owner.json
@@@ -0,0 +1,25 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "rent",
++ "type": "topic",
++ "id": "taking-a-break",
++ "canonical_url": "https://openvibe.report/rundown/t/taking-a-break",
++ "title": "Taking a break",
++ "summary": "Streamers debate stepping away: fresh air, robot faces and emotional breaks.",
++ "body": "Taking a break\nStreamers debate stepping away.",
++ "facets": {
++ "kind": "life",
++ "takes": 4
++ }
++}
ddiff --git a/fixtures/report.index_document.upserted/invalid/other-type.json b/fixtures/report.index_document.upserted/invalid/other-type.json
nnew file mode 100644
iindex 00000000..e4f02275
---- /dev/null
++++ b/fixtures/report.index_document.upserted/invalid/other-type.json
@@@ -0,0 +1,25 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "report",
++ "type": "episode",
++ "id": "taking-a-break",
++ "canonical_url": "https://openvibe.report/rundown/t/taking-a-break",
++ "title": "Taking a break",
++ "summary": "Streamers debate stepping away: fresh air, robot faces and emotional breaks.",
++ "body": "Taking a break\nStreamers debate stepping away.",
++ "facets": {
++ "kind": "life",
++ "takes": 4
++ }
++}
ddiff --git a/fixtures/report.index_document.upserted/invalid/tombstone-as-upsert.json b/fixtures/report.index_document.upserted/invalid/tombstone-as-upsert.json
nnew file mode 100644
iindex 00000000..2ae13d95
---- /dev/null
++++ b/fixtures/report.index_document.upserted/invalid/tombstone-as-upsert.json
@@@ -0,0 +1,7 @@
++{
++ "owner": "report",
++ "type": "topic",
++ "id": "taking-a-break",
++ "revision": 2,
++ "deleted": true
++}
ddiff --git a/fixtures/report.index_document.upserted/valid/noindex.json b/fixtures/report.index_document.upserted/valid/noindex.json
nnew file mode 100644
iindex 00000000..0448ca28
---- /dev/null
++++ b/fixtures/report.index_document.upserted/valid/noindex.json
@@@ -0,0 +1,27 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "noindex",
++ "reasons": [
++ "thin_content"
++ ]
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "report",
++ "type": "topic",
++ "id": "taking-a-break",
++ "canonical_url": "https://openvibe.report/rundown/t/taking-a-break",
++ "title": "Taking a break",
++ "summary": "Streamers debate stepping away: fresh air, robot faces and emotional breaks.",
++ "body": "Taking a break\nStreamers debate stepping away.",
++ "facets": {
++ "kind": "life",
++ "takes": 4
++ }
++}
ddiff --git a/fixtures/report.index_document.upserted/valid/topic.json b/fixtures/report.index_document.upserted/valid/topic.json
nnew file mode 100644
iindex 00000000..7e1e46c9
---- /dev/null
++++ b/fixtures/report.index_document.upserted/valid/topic.json
@@@ -0,0 +1,25 @@
++{
++ "visibility": "public",
++ "authorship": "human",
++ "provenance": [],
++ "publication_state": "published",
++ "published_at": "2026-10-31T12:00:00.000Z",
++ "updated_at": "2026-11-02T08:00:00.000Z",
++ "indexability": {
++ "decision": "index",
++ "reasons": []
++ },
++ "deleted": false,
++ "revision": 1,
++ "owner": "report",
++ "type": "topic",
++ "id": "taking-a-break",
++ "canonical_url": "https://openvibe.report/rundown/t/taking-a-break",
++ "title": "Taking a break",
++ "summary": "Streamers debate stepping away: fresh air, robot faces and emotional breaks.",
++ "body": "Taking a break\nStreamers debate stepping away.",
++ "facets": {
++ "kind": "life",
++ "takes": 4
++ }
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 8ade381e..78b374e5 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -83320,6 +83320,160 @@
}
}
},
++ "design.index_document.upserted": {
++ "version": "1.0.0",
++ "owner": "design",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/design.index_document.upserted.v1.json",
++ "title": "DesignIndexDocumentUpsertedPayload",
++ "description": "design.index_document.upserted v1 (OpenVibe.Design server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Design page: an icon (type icon, /icons/<name>, the glyph name as the id: its name, the words it is found by and the formats it downloads in) or a theme (type theme, /t/<slug>: its name, mode and description, from OpenVibe.Network's theme catalog). Sent by the sweep at boot and on a timer; a page that left the catalog becomes a tombstone. The sequencer (design_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: kind (icon: solid when it has a filled form), mode (theme). Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:design.",
++ "allOf": [
++ {
++ "$ref": "../../search/index-document.v1.json"
++ },
++ {
++ "type": "object",
++ "required": [
++ "owner",
++ "type",
++ "deleted"
++ ],
++ "properties": {
++ "owner": {
++ "const": "design"
++ },
++ "type": {
++ "enum": [
++ "icon",
++ "theme"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^[a-z0-9][a-z0-9-]{0,89}$"
++ },
++ "deleted": {
++ "const": false
++ }
++ }
++ }
++ ]
++ }
++ },
++ "design.index_document.deleted": {
++ "version": "1.0.0",
++ "owner": "design",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/design.index_document.deleted.v1.json",
++ "title": "DesignIndexDocumentDeletedPayload",
++ "description": "design.index_document.deleted v1 (OpenVibe.Design server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for an icon or theme page that left the catalog. Only sent for a page Search was sent before. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:design.",
++ "type": "object",
++ "required": [
++ "type",
++ "id",
++ "revision"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "type": {
++ "enum": [
++ "icon",
++ "theme"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^[a-z0-9][a-z0-9-]{0,89}$"
++ },
++ "revision": {
++ "type": "integer",
++ "minimum": 1,
++ "maximum": 9007199254740991,
++ "description": "Index revision of the tombstone; wins over any document at the same or an older revision."
++ }
++ }
++ }
++ },
++ "report.index_document.upserted": {
++ "version": "1.0.0",
++ "owner": "report",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/report.index_document.upserted.v1.json",
++ "title": "ReportIndexDocumentUpsertedPayload",
++ "description": "report.index_document.upserted v1 (OpenVibe.Report server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Rundown topic page (type topic, /rundown/t/<slug>, the slug as the id): the topic's title, headline and summary of what streamers said about it, from OpenVibe.Live's Rundown. Live's own topic pages are noindex; Report's are the public copy. Sent by the sweep at boot and on a timer; a topic that left the Rundown becomes a tombstone. The sequencer (report_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: kind, takes. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:report.",
++ "allOf": [
++ {
++ "$ref": "../../search/index-document.v1.json"
++ },
++ {
++ "type": "object",
++ "required": [
++ "owner",
++ "type",
++ "deleted"
++ ],
++ "properties": {
++ "owner": {
++ "const": "report"
++ },
++ "type": {
++ "enum": [
++ "topic"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^[a-z0-9][a-z0-9-]{0,89}$"
++ },
++ "deleted": {
++ "const": false
++ }
++ }
++ }
++ ]
++ }
++ },
++ "report.index_document.deleted": {
++ "version": "1.0.0",
++ "owner": "report",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/report.index_document.deleted.v1.json",
++ "title": "ReportIndexDocumentDeletedPayload",
++ "description": "report.index_document.deleted v1 (OpenVibe.Report server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for a Rundown topic page that left the Rundown. Only sent for a page Search was sent before. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:report.",
++ "type": "object",
++ "required": [
++ "type",
++ "id",
++ "revision"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "type": {
++ "enum": [
++ "topic"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^[a-z0-9][a-z0-9-]{0,89}$"
++ },
++ "revision": {
++ "type": "integer",
++ "minimum": 1,
++ "maximum": 9007199254740991,
++ "description": "Index revision of the tombstone; wins over any document at the same or an older revision."
++ }
++ }
++ }
++ },
"work.application": {
"version": "1.0.0",
"owner": "work",
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex cc9c9e82..feeabdee 100644
---- a/generated/openapi/actor.json
++++ b/generated/openapi/actor.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Actor API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/ai.json b/generated/openapi/ai.json
iindex 8a94d476..faef94be 100644
---- a/generated/openapi/ai.json
++++ b/generated/openapi/ai.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.AI API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bench.json b/generated/openapi/bench.json
iindex 43e45bd8..7222b55f 100644
---- a/generated/openapi/bench.json
++++ b/generated/openapi/bench.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Bench API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/billing.json b/generated/openapi/billing.json
iindex 6be07572..bc6a16c2 100644
---- a/generated/openapi/billing.json
++++ b/generated/openapi/billing.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Billing API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/blog.json b/generated/openapi/blog.json
iindex 3557850c..450c8879 100644
---- a/generated/openapi/blog.json
++++ b/generated/openapi/blog.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Blog API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bot.json b/generated/openapi/bot.json
iindex 25a105fb..10c50070 100644
---- a/generated/openapi/bot.json
++++ b/generated/openapi/bot.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Bot API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/chat.json b/generated/openapi/chat.json
iindex f725d33a..186bc84c 100644
---- a/generated/openapi/chat.json
++++ b/generated/openapi/chat.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Chat API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/codes.json b/generated/openapi/codes.json
iindex 3c3410b1..baa7dc7d 100644
---- a/generated/openapi/codes.json
++++ b/generated/openapi/codes.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Codes API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/community.json b/generated/openapi/community.json
iindex 4b387c23..a108419a 100644
---- a/generated/openapi/community.json
++++ b/generated/openapi/community.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Community API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/coupons.json b/generated/openapi/coupons.json
iindex f8a63b2a..5ecc39f1 100644
---- a/generated/openapi/coupons.json
++++ b/generated/openapi/coupons.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Coupons API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/deals.json b/generated/openapi/deals.json
iindex ef8f644e..6859f4b9 100644
---- a/generated/openapi/deals.json
++++ b/generated/openapi/deals.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Deals API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/domains.json b/generated/openapi/domains.json
iindex 1ce959c8..13a0a923 100644
---- a/generated/openapi/domains.json
++++ b/generated/openapi/domains.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Domains API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/events.json b/generated/openapi/events.json
iindex a9eb8ae7..7b8bb6e3 100644
---- a/generated/openapi/events.json
++++ b/generated/openapi/events.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Events API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/food.json b/generated/openapi/food.json
iindex e916d0ce..a01e86a6 100644
---- a/generated/openapi/food.json
++++ b/generated/openapi/food.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Food API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/games.json b/generated/openapi/games.json
iindex 75561406..12f12353 100644
---- a/generated/openapi/games.json
++++ b/generated/openapi/games.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Games API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/host.json b/generated/openapi/host.json
iindex e99f43ba..e7dfaf8f 100644
---- a/generated/openapi/host.json
++++ b/generated/openapi/host.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Host API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/inventory.json b/generated/openapi/inventory.json
iindex 07d439a2..87eb378c 100644
---- a/generated/openapi/inventory.json
++++ b/generated/openapi/inventory.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Inventory API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/live.json b/generated/openapi/live.json
iindex 42511412..cb2ec070 100644
---- a/generated/openapi/live.json
++++ b/generated/openapi/live.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Live API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media-hub.json b/generated/openapi/media-hub.json
iindex ed3793dd..0d72b2a1 100644
---- a/generated/openapi/media-hub.json
++++ b/generated/openapi/media-hub.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.MediaHub API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media.json b/generated/openapi/media.json
iindex 2c6b5b44..fa2d281f 100644
---- a/generated/openapi/media.json
++++ b/generated/openapi/media.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Media API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/network.json b/generated/openapi/network.json
iindex 731211fc..83b7186d 100644
---- a/generated/openapi/network.json
++++ b/generated/openapi/network.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Network API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/news.json b/generated/openapi/news.json
iindex b801a745..31b4e113 100644
---- a/generated/openapi/news.json
++++ b/generated/openapi/news.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.News API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/openre.json b/generated/openapi/openre.json
iindex 42b73002..3500c2fd 100644
---- a/generated/openapi/openre.json
++++ b/generated/openapi/openre.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenRestream API",
-- "version": "0.274.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/play.json b/generated/openapi/play.json
iindex 65aa4f52..cd33a3eb 100644
---- a/generated/openapi/play.json
++++ b/generated/openapi/play.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Play API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/quest.json b/generated/openapi/quest.json
iindex 7551d38a..c8943c15 100644
---- a/generated/openapi/quest.json
++++ b/generated/openapi/quest.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Quest API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/report.json b/generated/openapi/report.json
iindex 5865fd2a..ef59961c 100644
---- a/generated/openapi/report.json
++++ b/generated/openapi/report.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Report API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/reviews.json b/generated/openapi/reviews.json
iindex c55beea7..e3e22115 100644
---- a/generated/openapi/reviews.json
++++ b/generated/openapi/reviews.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Reviews API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/run.json b/generated/openapi/run.json
iindex 8338c1bd..d39324e5 100644
---- a/generated/openapi/run.json
++++ b/generated/openapi/run.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Run API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/search.json b/generated/openapi/search.json
iindex 8446d4cb..fec8ab0d 100644
---- a/generated/openapi/search.json
++++ b/generated/openapi/search.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Search API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/services.json b/generated/openapi/services.json
iindex e8401be8..ace82e11 100644
---- a/generated/openapi/services.json
++++ b/generated/openapi/services.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Services API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/sources.json b/generated/openapi/sources.json
iindex 63755907..316d3cba 100644
---- a/generated/openapi/sources.json
++++ b/generated/openapi/sources.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Sources API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/space.json b/generated/openapi/space.json
iindex 91d97195..c30112c7 100644
---- a/generated/openapi/space.json
++++ b/generated/openapi/space.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Space API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tips.json b/generated/openapi/tips.json
iindex d6d5c75f..0bb658cd 100644
---- a/generated/openapi/tips.json
++++ b/generated/openapi/tips.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tips API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/today.json b/generated/openapi/today.json
iindex d8f9d762..008a53e1 100644
---- a/generated/openapi/today.json
++++ b/generated/openapi/today.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Today API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tools.json b/generated/openapi/tools.json
iindex f2cead8b..d8fd0400 100644
---- a/generated/openapi/tools.json
++++ b/generated/openapi/tools.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tools API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/trade.json b/generated/openapi/trade.json
iindex 7bfcd666..f3f7e5d9 100644
---- a/generated/openapi/trade.json
++++ b/generated/openapi/trade.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Trade API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vip.json b/generated/openapi/vip.json
iindex c9b46366..0f795f1e 100644
---- a/generated/openapi/vip.json
++++ b/generated/openapi/vip.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.VIP API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vision.json b/generated/openapi/vision.json
iindex 38cf5b1e..44ee9ee0 100644
---- a/generated/openapi/vision.json
++++ b/generated/openapi/vision.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Vision API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/watch.json b/generated/openapi/watch.json
iindex 3f5bdabb..a7dc5d88 100644
---- a/generated/openapi/watch.json
++++ b/generated/openapi/watch.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Watch API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/wiki.json b/generated/openapi/wiki.json
iindex daae2afa..f58080b4 100644
---- a/generated/openapi/wiki.json
++++ b/generated/openapi/wiki.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Wiki API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/work.json b/generated/openapi/work.json
iindex d3e6f45d..ca2edd1a 100644
---- a/generated/openapi/work.json
++++ b/generated/openapi/work.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Work API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/zone.json b/generated/openapi/zone.json
iindex 2d017bdb..f242579b 100644
---- a/generated/openapi/zone.json
++++ b/generated/openapi/zone.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Zone API",
-- "version": "0.274.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.274.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.275.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.275.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/typescript/index.d.ts b/generated/typescript/index.d.ts
iindex 5e92e2bd..9d2fa72d 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -260538,6 +260538,54 @@ export interface ToursIndexDocumentDeletedPayload {
revision: number;
}
++/** [email protected] (owner: design) */
++/**
++ * design.index_document.upserted v1 (OpenVibe.Design server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Design page: an icon (type icon, /icons/<name>, the glyph name as the id: its name, the words it is found by and the formats it downloads in) or a theme (type theme, /t/<slug>: its name, mode and description, from OpenVibe.Network's theme catalog). Sent by the sweep at boot and on a timer; a page that left the catalog becomes a tombstone. The sequencer (design_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: kind (icon: solid when it has a filled form), mode (theme). Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:design.
++ */
++export type DesignIndexDocumentUpsertedPayload = IndexDocument & {
++ owner: "design";
++ type: "icon" | "theme";
++ id?: string;
++ deleted: false;
++};
++
++/** [email protected] (owner: design) */
++/**
++ * design.index_document.deleted v1 (OpenVibe.Design server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for an icon or theme page that left the catalog. Only sent for a page Search was sent before. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:design.
++ */
++export interface DesignIndexDocumentDeletedPayload {
++ type: "icon" | "theme";
++ id: string;
++ /**
++ * Index revision of the tombstone; wins over any document at the same or an older revision.
++ */
++ revision: number;
++}
++
++/** [email protected] (owner: report) */
++/**
++ * report.index_document.upserted v1 (OpenVibe.Report server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Rundown topic page (type topic, /rundown/t/<slug>, the slug as the id): the topic's title, headline and summary of what streamers said about it, from OpenVibe.Live's Rundown. Live's own topic pages are noindex; Report's are the public copy. Sent by the sweep at boot and on a timer; a topic that left the Rundown becomes a tombstone. The sequencer (report_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: kind, takes. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:report.
++ */
++export type ReportIndexDocumentUpsertedPayload = IndexDocument & {
++ owner: "report";
++ type: "topic";
++ id?: string;
++ deleted: false;
++};
++
++/** [email protected] (owner: report) */
++/**
++ * report.index_document.deleted v1 (OpenVibe.Report server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for a Rundown topic page that left the Rundown. Only sent for a page Search was sent before. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:report.
++ */
++export interface ReportIndexDocumentDeletedPayload {
++ type: "topic";
++ id: string;
++ /**
++ * Index revision of the tombstone; wins over any document at the same or an older revision.
++ */
++ revision: number;
++}
++
/** [email protected] (owner: work) */
/**
* work.application@1: a person's tracked job application on OpenVibe.Work (server/applications.js toWire), as GET/POST/PATCH /api/v1/me/applications[/:id] answer it. GET of one application adds its append-only status changes as `events`.
ddiff --git a/manifests/services/design.json b/manifests/services/design.json
iindex 6bdd4bcd..6d366765 100644
---- a/manifests/services/design.json
++++ b/manifests/services/design.json
@@@ -16,7 +16,10 @@
"publicSite": "service"
},
"capabilities": [],
-- "eventsProduced": [],
++ "eventsProduced": [
++ "design.index_document.deleted",
++ "design.index_document.upserted"
++ ],
"eventsConsumed": [],
"namespacesOwned": [
"design.*"
ddiff --git a/manifests/services/report.json b/manifests/services/report.json
iindex 94eb60cb..acd99dde 100644
---- a/manifests/services/report.json
++++ b/manifests/services/report.json
@@@ -18,7 +18,10 @@
"capabilities": [
"report.ai_usage.read"
],
-- "eventsProduced": [],
++ "eventsProduced": [
++ "report.index_document.deleted",
++ "report.index_document.upserted"
++ ],
"eventsConsumed": [
"ai.call.recorded"
],
ddiff --git a/package.json b/package.json
iindex 2abdd41a..830d6603 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.274.0",
++ "version": "0.275.0",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"main": "index.js",
"types": "generated/typescript/index.d.ts",