openvibers/openvibe.contracts Commits

openvibe-contracts 0.274.0: tours.index_document events (Search) (#283)

OP OpenVibers committed 11 days ago · 653b318a47 · 61 files, +520 −86

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex 56fea835..cbca47b4 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -1,5 +1,14 @@
# Changelog
++## 0.274.0 — 2026-11-02
++
++- **`tours.index_document.upserted` / `.deleted` v1** (active, first-party; plan T9): OpenVibe.Tours' pages as
++ OpenVibe.Search documents. A place to see (type `place`, `/place/<plc_ id>`, from OpenStreetMap: its kind, city and
++ access facts), a city (type `city`, `/city/<slug>`: its Wikivoyage summary, how many places and walks) and a
++ self-guided walk (type `route`, `/routes/<rte_ id>`: stops, distance and time). Sent through
++ `openvibe-publishing/search-feed`; the Tours manifest lists them in `eventsProduced`; the catalog has their entries
++ and fixtures. 2,754 places, 100 cities and 170 walks were on no network search.
++
## 0.273.0 — 2026-11-02
- **`shoes.index_document.upserted` / `.deleted` v1** (active, first-party; plan T9 "Search: real documents from every
ddiff --git a/contracts/catalog.json b/contracts/catalog.json
iindex fe327595..7fe7357b 100644
---- a/contracts/catalog.json
++++ b/contracts/catalog.json
@@@ -7333,6 +7333,24 @@
"compatibility": "backward",
"status": "active"
},
++ {
++ "id": "tours.index_document.upserted",
++ "version": "1.0.0",
++ "owner": "tours",
++ "schema": "events/payloads/tours.index_document.upserted.v1.json",
++ "visibility": "first-party",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "tours.index_document.deleted",
++ "version": "1.0.0",
++ "owner": "tours",
++ "schema": "events/payloads/tours.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/tours.index_document.deleted.v1.json b/contracts/events/payloads/tours.index_document.deleted.v1.json
nnew file mode 100644
iindex 00000000..ca6571a4
---- /dev/null
++++ b/contracts/events/payloads/tours.index_document.deleted.v1.json
@@@ -0,0 +1,32 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/tours.index_document.deleted.v1.json",
++ "title": "ToursIndexDocumentDeletedPayload",
++ "description": "tours.index_document.deleted v1 (OpenVibe.Tours server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for a Tours page (a place, a city or a walk) that is no longer listed or whose row is gone. Only sent for a page Search was sent before, and only when the tombstone's revision moved. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:tours.",
++ "type": "object",
++ "required": [
++ "type",
++ "id",
++ "revision"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "type": {
++ "enum": [
++ "place",
++ "city",
++ "route"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^((plc|rte)_[0-9A-HJKMNP-TV-Z]{26}|[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/tours.index_document.upserted.v1.json b/contracts/events/payloads/tours.index_document.upserted.v1.json
nnew file mode 100644
iindex 00000000..512fa162
---- /dev/null
++++ b/contracts/events/payloads/tours.index_document.upserted.v1.json
@@@ -0,0 +1,38 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/tours.index_document.upserted.v1.json",
++ "title": "ToursIndexDocumentUpsertedPayload",
++ "description": "tours.index_document.upserted v1 (OpenVibe.Tours server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Tours page: a place to see (type place, /place/<plc_ id>, from OpenStreetMap with its kind, city and access facts), a city (type city, /city/<slug>: its Wikivoyage summary and how many places and walks it has) or a self-guided walk (type route, /routes/<rte_ id>: its stops, distance and time). Sent by the sweep at boot and on a timer; a page that left the catalogue becomes a tombstone. The sequencer (tours_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: city, country, kind (place), stops/distance_m/duration_min (route), places/routes (city). Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:tours.",
++ "allOf": [
++ {
++ "$ref": "../../search/index-document.v1.json"
++ },
++ {
++ "type": "object",
++ "required": [
++ "owner",
++ "type",
++ "deleted"
++ ],
++ "properties": {
++ "owner": {
++ "const": "tours"
++ },
++ "type": {
++ "enum": [
++ "place",
++ "city",
++ "route"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^((plc|rte)_[0-9A-HJKMNP-TV-Z]{26}|[a-z0-9][a-z0-9-]{0,89})$"
++ },
++ "deleted": {
++ "const": false
++ }
++ }
++ }
++ ]
++}
ddiff --git a/fixtures/tours.index_document.deleted/invalid/full-document.json b/fixtures/tours.index_document.deleted/invalid/full-document.json
nnew file mode 100644
iindex 00000000..d16028b8
---- /dev/null
++++ b/fixtures/tours.index_document.deleted/invalid/full-document.json
@@@ -0,0 +1,26 @@
++{
++ "owner": "tours",
++ "visibility": "public",
++ "authorship": "imported",
++ "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,
++ "type": "place",
++ "id": "plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "canonical_url": "https://openvibe.tours/place/plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "title": "Hongya Cave",
++ "summary": "An attraction in Chongqing, China. Free to visit; step-free.",
++ "body": "Hongya Cave\nAttraction in Chongqing, China",
++ "facets": {
++ "city": "chongqing",
++ "country": "China",
++ "kind": "attraction"
++ }
++}
ddiff --git a/fixtures/tours.index_document.deleted/invalid/other-type.json b/fixtures/tours.index_document.deleted/invalid/other-type.json
nnew file mode 100644
iindex 00000000..887b2599
---- /dev/null
++++ b/fixtures/tours.index_document.deleted/invalid/other-type.json
@@@ -0,0 +1,5 @@
++{
++ "type": "quest",
++ "id": "chongqing",
++ "revision": 3
++}
ddiff --git a/fixtures/tours.index_document.deleted/valid/tombstone.json b/fixtures/tours.index_document.deleted/valid/tombstone.json
nnew file mode 100644
iindex 00000000..ccc5e942
---- /dev/null
++++ b/fixtures/tours.index_document.deleted/valid/tombstone.json
@@@ -0,0 +1,5 @@
++{
++ "type": "city",
++ "id": "chongqing",
++ "revision": 3
++}
ddiff --git a/fixtures/tours.index_document.upserted/invalid/bad-id.json b/fixtures/tours.index_document.upserted/invalid/bad-id.json
nnew file mode 100644
iindex 00000000..8ecdfc68
---- /dev/null
++++ b/fixtures/tours.index_document.upserted/invalid/bad-id.json
@@@ -0,0 +1,26 @@
++{
++ "owner": "tours",
++ "visibility": "public",
++ "authorship": "imported",
++ "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,
++ "type": "place",
++ "id": "Hongya Cave",
++ "canonical_url": "https://openvibe.tours/place/plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "title": "Hongya Cave",
++ "summary": "An attraction in Chongqing, China. Free to visit; step-free.",
++ "body": "Hongya Cave\nAttraction in Chongqing, China",
++ "facets": {
++ "city": "chongqing",
++ "country": "China",
++ "kind": "attraction"
++ }
++}
ddiff --git a/fixtures/tours.index_document.upserted/invalid/other-owner.json b/fixtures/tours.index_document.upserted/invalid/other-owner.json
nnew file mode 100644
iindex 00000000..649dfb72
---- /dev/null
++++ b/fixtures/tours.index_document.upserted/invalid/other-owner.json
@@@ -0,0 +1,26 @@
++{
++ "owner": "rent",
++ "visibility": "public",
++ "authorship": "imported",
++ "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,
++ "type": "place",
++ "id": "plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "canonical_url": "https://openvibe.tours/place/plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "title": "Hongya Cave",
++ "summary": "An attraction in Chongqing, China. Free to visit; step-free.",
++ "body": "Hongya Cave\nAttraction in Chongqing, China",
++ "facets": {
++ "city": "chongqing",
++ "country": "China",
++ "kind": "attraction"
++ }
++}
ddiff --git a/fixtures/tours.index_document.upserted/invalid/other-type.json b/fixtures/tours.index_document.upserted/invalid/other-type.json
nnew file mode 100644
iindex 00000000..57a9db05
---- /dev/null
++++ b/fixtures/tours.index_document.upserted/invalid/other-type.json
@@@ -0,0 +1,26 @@
++{
++ "owner": "tours",
++ "visibility": "public",
++ "authorship": "imported",
++ "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,
++ "type": "hotel",
++ "id": "plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "canonical_url": "https://openvibe.tours/place/plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "title": "Hongya Cave",
++ "summary": "An attraction in Chongqing, China. Free to visit; step-free.",
++ "body": "Hongya Cave\nAttraction in Chongqing, China",
++ "facets": {
++ "city": "chongqing",
++ "country": "China",
++ "kind": "attraction"
++ }
++}
ddiff --git a/fixtures/tours.index_document.upserted/invalid/tombstone-as-upsert.json b/fixtures/tours.index_document.upserted/invalid/tombstone-as-upsert.json
nnew file mode 100644
iindex 00000000..2d695b4a
---- /dev/null
++++ b/fixtures/tours.index_document.upserted/invalid/tombstone-as-upsert.json
@@@ -0,0 +1,7 @@
++{
++ "owner": "tours",
++ "type": "place",
++ "id": "plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "revision": 2,
++ "deleted": true
++}
ddiff --git a/fixtures/tours.index_document.upserted/valid/city.json b/fixtures/tours.index_document.upserted/valid/city.json
nnew file mode 100644
iindex 00000000..c2992ceb
---- /dev/null
++++ b/fixtures/tours.index_document.upserted/valid/city.json
@@@ -0,0 +1,27 @@
++{
++ "owner": "tours",
++ "visibility": "public",
++ "authorship": "imported",
++ "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,
++ "type": "city",
++ "id": "chongqing",
++ "canonical_url": "https://openvibe.tours/city/chongqing",
++ "title": "Chongqing, China",
++ "summary": "A city on the Yangtze. 24 places to see and 2 self-guided walks on OpenVibe.Tours.",
++ "body": "Chongqing\nChina",
++ "facets": {
++ "city": "chongqing",
++ "country": "China",
++ "places": 24,
++ "routes": 2
++ }
++}
ddiff --git a/fixtures/tours.index_document.upserted/valid/place-noindex.json b/fixtures/tours.index_document.upserted/valid/place-noindex.json
nnew file mode 100644
iindex 00000000..565a1139
---- /dev/null
++++ b/fixtures/tours.index_document.upserted/valid/place-noindex.json
@@@ -0,0 +1,28 @@
++{
++ "owner": "tours",
++ "visibility": "public",
++ "authorship": "imported",
++ "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,
++ "type": "place",
++ "id": "plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "canonical_url": "https://openvibe.tours/place/plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "title": "Hongya Cave",
++ "summary": "An attraction in Chongqing, China. Free to visit; step-free.",
++ "body": "Hongya Cave\nAttraction in Chongqing, China",
++ "facets": {
++ "city": "chongqing",
++ "country": "China",
++ "kind": "attraction"
++ }
++}
ddiff --git a/fixtures/tours.index_document.upserted/valid/place.json b/fixtures/tours.index_document.upserted/valid/place.json
nnew file mode 100644
iindex 00000000..d16028b8
---- /dev/null
++++ b/fixtures/tours.index_document.upserted/valid/place.json
@@@ -0,0 +1,26 @@
++{
++ "owner": "tours",
++ "visibility": "public",
++ "authorship": "imported",
++ "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,
++ "type": "place",
++ "id": "plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "canonical_url": "https://openvibe.tours/place/plc_00XKTK1QC3YQG6T8HQ6VVGESWT",
++ "title": "Hongya Cave",
++ "summary": "An attraction in Chongqing, China. Free to visit; step-free.",
++ "body": "Hongya Cave\nAttraction in Chongqing, China",
++ "facets": {
++ "city": "chongqing",
++ "country": "China",
++ "kind": "attraction"
++ }
++}
ddiff --git a/fixtures/tours.index_document.upserted/valid/route.json b/fixtures/tours.index_document.upserted/valid/route.json
nnew file mode 100644
iindex 00000000..c070183a
---- /dev/null
++++ b/fixtures/tours.index_document.upserted/valid/route.json
@@@ -0,0 +1,28 @@
++{
++ "owner": "tours",
++ "visibility": "public",
++ "authorship": "imported",
++ "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,
++ "type": "route",
++ "id": "rte_0455T19CTMDG65FASMDB1QGYC0",
++ "canonical_url": "https://openvibe.tours/routes/rte_0455T19CTMDG65FASMDB1QGYC0",
++ "title": "Old town walk",
++ "summary": "A self-guided walk in Chongqing: 6 stops, 3.2 km, about 90 minutes.",
++ "body": "Old town walk\nChongqing",
++ "facets": {
++ "city": "chongqing",
++ "country": "China",
++ "stops": 6,
++ "distance_m": 3200,
++ "duration_min": 90
++ }
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 5828da2a..8ade381e 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -83240,6 +83240,86 @@
}
}
},
++ "tours.index_document.upserted": {
++ "version": "1.0.0",
++ "owner": "tours",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/tours.index_document.upserted.v1.json",
++ "title": "ToursIndexDocumentUpsertedPayload",
++ "description": "tours.index_document.upserted v1 (OpenVibe.Tours server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Tours page: a place to see (type place, /place/<plc_ id>, from OpenStreetMap with its kind, city and access facts), a city (type city, /city/<slug>: its Wikivoyage summary and how many places and walks it has) or a self-guided walk (type route, /routes/<rte_ id>: its stops, distance and time). Sent by the sweep at boot and on a timer; a page that left the catalogue becomes a tombstone. The sequencer (tours_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: city, country, kind (place), stops/distance_m/duration_min (route), places/routes (city). Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:tours.",
++ "allOf": [
++ {
++ "$ref": "../../search/index-document.v1.json"
++ },
++ {
++ "type": "object",
++ "required": [
++ "owner",
++ "type",
++ "deleted"
++ ],
++ "properties": {
++ "owner": {
++ "const": "tours"
++ },
++ "type": {
++ "enum": [
++ "place",
++ "city",
++ "route"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^((plc|rte)_[0-9A-HJKMNP-TV-Z]{26}|[a-z0-9][a-z0-9-]{0,89})$"
++ },
++ "deleted": {
++ "const": false
++ }
++ }
++ }
++ ]
++ }
++ },
++ "tours.index_document.deleted": {
++ "version": "1.0.0",
++ "owner": "tours",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/events/payloads/tours.index_document.deleted.v1.json",
++ "title": "ToursIndexDocumentDeletedPayload",
++ "description": "tours.index_document.deleted v1 (OpenVibe.Tours server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for a Tours page (a place, a city or a walk) that is no longer listed or whose row is gone. Only sent for a page Search was sent before, and only when the tombstone's revision moved. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:tours.",
++ "type": "object",
++ "required": [
++ "type",
++ "id",
++ "revision"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "type": {
++ "enum": [
++ "place",
++ "city",
++ "route"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "pattern": "^((plc|rte)_[0-9A-HJKMNP-TV-Z]{26}|[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 eeb6dea0..cc9c9e82 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.273.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/ai.json b/generated/openapi/ai.json
iindex 4b6ae6ae..8a94d476 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.273.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bench.json b/generated/openapi/bench.json
iindex 349b428d..43e45bd8 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.273.0",
-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/billing.json b/generated/openapi/billing.json
iindex 21aec1b0..6be07572 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.273.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/blog.json b/generated/openapi/blog.json
iindex fa551b45..3557850c 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.273.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bot.json b/generated/openapi/bot.json
iindex 34c0bd76..25a105fb 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.273.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/chat.json b/generated/openapi/chat.json
iindex b82146a8..f725d33a 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.273.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/codes.json b/generated/openapi/codes.json
iindex 250cc99a..3c3410b1 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.273.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/community.json b/generated/openapi/community.json
iindex 72afe720..4b387c23 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.273.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/coupons.json b/generated/openapi/coupons.json
iindex f95b0526..f8a63b2a 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.273.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/deals.json b/generated/openapi/deals.json
iindex 0dacea5c..ef8f644e 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.273.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/domains.json b/generated/openapi/domains.json
iindex 19b4651d..1ce959c8 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.273.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/events.json b/generated/openapi/events.json
iindex fc4dd5f9..a9eb8ae7 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.273.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/food.json b/generated/openapi/food.json
iindex 3926f495..e916d0ce 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.273.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/games.json b/generated/openapi/games.json
iindex 05ecd159..75561406 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.273.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/host.json b/generated/openapi/host.json
iindex bef04167..e99f43ba 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.273.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/inventory.json b/generated/openapi/inventory.json
iindex bffd5d29..07d439a2 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.273.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/live.json b/generated/openapi/live.json
iindex 6c29019f..42511412 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.273.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media-hub.json b/generated/openapi/media-hub.json
iindex 0a2cd6be..ed3793dd 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.273.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media.json b/generated/openapi/media.json
iindex 18ac430a..2c6b5b44 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.273.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/network.json b/generated/openapi/network.json
iindex b9522060..731211fc 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.273.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/news.json b/generated/openapi/news.json
iindex 472a8374..b801a745 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.273.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/openre.json b/generated/openapi/openre.json
iindex 62a51597..42b73002 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.273.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/play.json b/generated/openapi/play.json
iindex 953a2cc9..65aa4f52 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.273.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/quest.json b/generated/openapi/quest.json
iindex db7530dc..7551d38a 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.273.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/report.json b/generated/openapi/report.json
iindex 378421b9..5865fd2a 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.273.0",
-- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/reviews.json b/generated/openapi/reviews.json
iindex 4cfb349e..c55beea7 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.273.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/run.json b/generated/openapi/run.json
iindex b2513683..8338c1bd 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.273.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/search.json b/generated/openapi/search.json
iindex 5997cb0d..8446d4cb 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.273.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/services.json b/generated/openapi/services.json
iindex c48faf7b..e8401be8 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.273.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/sources.json b/generated/openapi/sources.json
iindex 0cba1a83..63755907 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.273.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/space.json b/generated/openapi/space.json
iindex fbfb672f..91d97195 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.273.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tips.json b/generated/openapi/tips.json
iindex 18ac416b..d6d5c75f 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.273.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/today.json b/generated/openapi/today.json
iindex 8b35b648..d8f9d762 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.273.0",
-- "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tools.json b/generated/openapi/tools.json
iindex 2384e441..f2cead8b 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.273.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/trade.json b/generated/openapi/trade.json
iindex 5ed28543..7bfcd666 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.273.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vip.json b/generated/openapi/vip.json
iindex 7bbba4df..c9b46366 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.273.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vision.json b/generated/openapi/vision.json
iindex 2a874397..38cf5b1e 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.273.0",
-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/watch.json b/generated/openapi/watch.json
iindex ac3632cb..3f5bdabb 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.273.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/wiki.json b/generated/openapi/wiki.json
iindex 6a8a0d2b..daae2afa 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.273.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/work.json b/generated/openapi/work.json
iindex 90fb4770..d3e6f45d 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.273.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/zone.json b/generated/openapi/zone.json
iindex a137ea7d..2d017bdb 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.273.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.273.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.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.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/typescript/index.d.ts b/generated/typescript/index.d.ts
iindex 08ba87e0..5e92e2bd 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -260514,6 +260514,30 @@ export interface ShoesIndexDocumentDeletedPayload {
revision: number;
}
++/** [email protected] (owner: tours) */
++/**
++ * tours.index_document.upserted v1 (OpenVibe.Tours server/search-index.js, via openvibe-publishing/search-feed). The OpenVibe.Search document of a Tours page: a place to see (type place, /place/<plc_ id>, from OpenStreetMap with its kind, city and access facts), a city (type city, /city/<slug>: its Wikivoyage summary and how many places and walks it has) or a self-guided walk (type route, /routes/<rte_ id>: its stops, distance and time). Sent by the sweep at boot and on a timer; a page that left the catalogue becomes a tombstone. The sequencer (tours_index_revisions) gives an unchanged document its old revision and nothing is sent. Always visibility public and publication_state published. Facets: city, country, kind (place), stops/distance_m/duration_min (route), places/routes (city). Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:tours.
++ */
++export type ToursIndexDocumentUpsertedPayload = IndexDocument & {
++ owner: "tours";
++ type: "place" | "city" | "route";
++ id?: string;
++ deleted: false;
++};
++
++/** [email protected] (owner: tours) */
++/**
++ * tours.index_document.deleted v1 (OpenVibe.Tours server/search-index.js, via openvibe-publishing/search-feed). A Search tombstone for a Tours page (a place, a city or a walk) that is no longer listed or whose row is gone. Only sent for a page Search was sent before, and only when the tombstone's revision moved. Consumed by OpenVibe.Search ('*.index_document.*'). Envelope: subject { type, id, revision }, visibility internal, actor service:tours.
++ */
++export interface ToursIndexDocumentDeletedPayload {
++ type: "place" | "city" | "route";
++ 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/tours.json b/manifests/services/tours.json
iindex b9c6144b..061cef41 100644
---- a/manifests/services/tours.json
++++ b/manifests/services/tours.json
@@@ -16,7 +16,10 @@
"publicSite": "service"
},
"capabilities": [],
-- "eventsProduced": [],
++ "eventsProduced": [
++ "tours.index_document.deleted",
++ "tours.index_document.upserted"
++ ],
"eventsConsumed": [],
"namespacesOwned": [
"tours.*"
ddiff --git a/package.json b/package.json
iindex cb74e018..2abdd41a 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.273.0",
++ "version": "0.274.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",