openvibers/openvibe.contracts Commits

0.208.0: Coupons, Deals and Trade open what a person does for themselves to apps (lookups, submissions, reports, votes, flags, watches, watchlists and alerts); moderation stays first-party (#195)

OP OpenVibers committed 23 days ago · 4095856262 · 60 files, +167 −151

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex bc82ee7d..93905d80 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -4,6 +4,19 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) th
from `https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/<tag>`. Before v0.30.0,
the notes were in the tag and commit messages (`git tag -n1`).
++## 0.208.0 — 2026-10-20
++
++- Coupons, Deals and Trade open what a person does for themselves to apps (all three already act for an app only as
++ its `on_behalf_of` person and refuse sandbox tokens):
++ - Coupons: `coupon.lookup` and `merchant.resolve` (public data), `coupon.submit` (sensitive: a code under the
++ person's name, status unknown until reports) and `report.create` (worked or failed, one a day per code).
++ - Deals: `offer.submit` (sensitive), `offer.update` (the person's own offers, or a new price observation),
++ `flag.create`, `vote.set` (sensitive) and `vote.remove`, and `watch.create`, `.read` and `.delete`.
++ - Trade: `instrument.resolve`, and the person's own `watchlist.*` and `alert.*`.
++- Moderation (`coupons.status.update`, `coupons.merchant.manage`, `deals.offer.moderate`, `.merge`, `.expire`),
++ `deals.product.resolve` (which creates products) and `trade.context.read` (drafts awaiting review and OpenVibe.AI's
++ workflow input) stay first-party.
++
## 0.207.0 — 2026-10-20
- Reviews and the Wiki open their reads to apps: `reviews.entity.resolve` (look up a business, product or place and
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex eb3a28a9..a1ac9367 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.207.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 f95dbe6c..3d376130 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.207.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 ac02a7e9..d0b04c78 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.207.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 ea66c15d..681950a5 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.207.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 a6731da7..d7008483 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.207.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 a8665595..28a07f31 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.207.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 43584e0e..29feda57 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.207.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 333dda01..f5a7abf7 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.207.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 fe320bfb..a916ca6e 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.207.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.208.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"
@@@ -20,7 +20,7 @@
"get": {
"operationId": "get_api_v1_coupons_id",
"summary": "Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code.",
-- "description": "**coupons.coupon.lookup** (first-party): Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code. Public data only, the same response for every caller; anonymous callers may use the routes with tighter rate limits. The charter's coupons.lookup.",
++ "description": "**coupons.coupon.lookup** (public): Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code. Public data only, the same response for every caller; anonymous callers may use the routes with tighter rate limits. The charter's coupons.lookup.",
"tags": [
"coupons.coupon"
],
@@@ -28,7 +28,7 @@
"coupons.coupon.lookup"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "coupons-lookup",
"security": [
@@@ -76,7 +76,7 @@
"post": {
"operationId": "post_api_v1_coupons_id_report",
"summary": "Report that a code worked or failed, on behalf of a person (X-OV-Subject).",
-- "description": "**coupons.report.create** (first-party): Report that a code worked or failed, on behalf of a person (X-OV-Subject). One report per person, code and UTC day; only the latest per person counts; rate-limited per person; AI output (X-OV-Origin: ai) is refused. The response carries aggregates only, never a reporter. The charter's coupons.report.",
++ "description": "**coupons.report.create** (public): Report that a code worked or failed, on behalf of a person (X-OV-Subject). One report per person, code and UTC day; only the latest per person counts; rate-limited per person; AI output (X-OV-Origin: ai) is refused. The response carries aggregates only, never a reporter. The charter's coupons.report.",
"tags": [
"coupons.report"
],
@@@ -84,7 +84,7 @@
"coupons.report.create"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "coupons-report",
"security": [
@@@ -208,7 +208,7 @@
"post": {
"operationId": "post_api_v1_coupons_submit",
"summary": "Submit a coupon code for a merchant (by merchant id, host or URL) on behalf of a person (X-OV-Subject) or as AI output (X-OV-Origin: ai, held for staff review).",
-- "description": "**coupons.coupon.submit** (first-party): Submit a coupon code for a merchant (by merchant id, host or URL) on behalf of a person (X-OV-Subject) or as AI output (X-OV-Origin: ai, held for staff review). The code starts with status unknown; a status, confidence or 'verified' field is refused. A site no merchant covers becomes a pending merchant for staff review. The charter's coupons.submit.",
++ "description": "**coupons.coupon.submit** (public): Submit a coupon code for a merchant (by merchant id, host or URL) on behalf of a person (X-OV-Subject) or as AI output (X-OV-Origin: ai, held for staff review). The code starts with status unknown; a status, confidence or 'verified' field is refused. A site no merchant covers becomes a pending merchant for staff review. The charter's coupons.submit.",
"tags": [
"coupons.coupon"
],
@@@ -216,7 +216,7 @@
"coupons.coupon.submit"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "coupons-write",
"security": [
@@@ -320,7 +320,7 @@
"get": {
"operationId": "get_api_v1_merchants_id",
"summary": "Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code.",
-- "description": "**coupons.coupon.lookup** (first-party): Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code. Public data only, the same response for every caller; anonymous callers may use the routes with tighter rate limits. The charter's coupons.lookup.",
++ "description": "**coupons.coupon.lookup** (public): Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code. Public data only, the same response for every caller; anonymous callers may use the routes with tighter rate limits. The charter's coupons.lookup.",
"tags": [
"coupons.coupon"
],
@@@ -328,7 +328,7 @@
"coupons.coupon.lookup"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "coupons-lookup",
"security": [
@@@ -376,7 +376,7 @@
"get": {
"operationId": "get_api_v1_merchants_id_coupons",
"summary": "Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code.",
-- "description": "**coupons.coupon.lookup** (first-party): Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code. Public data only, the same response for every caller; anonymous callers may use the routes with tighter rate limits. The charter's coupons.lookup.",
++ "description": "**coupons.coupon.lookup** (public): Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code. Public data only, the same response for every caller; anonymous callers may use the routes with tighter rate limits. The charter's coupons.lookup.",
"tags": [
"coupons.coupon"
],
@@@ -384,7 +384,7 @@
"coupons.coupon.lookup"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "coupons-lookup",
"security": [
@@@ -564,7 +564,7 @@
"get": {
"operationId": "get_api_v1_merchants_resolve_host",
"summary": "Resolve a hostname to an active merchant (normalized host, eTLD+1 from a bundled public-suffix subset, subdomain rules; path rules never match host-only lookups).",
-- "description": "**coupons.merchant.resolve** (first-party): Resolve a hostname to an active merchant (normalized host, eTLD+1 from a bundled public-suffix subset, subdomain rules; path rules never match host-only lookups). Public data only; anonymous callers may use the route with tighter rate limits.",
++ "description": "**coupons.merchant.resolve** (public): Resolve a hostname to an active merchant (normalized host, eTLD+1 from a bundled public-suffix subset, subdomain rules; path rules never match host-only lookups). Public data only; anonymous callers may use the route with tighter rate limits.",
"tags": [
"coupons.merchant"
],
@@@ -572,7 +572,7 @@
"coupons.merchant.resolve"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "coupons-lookup",
"security": [
ddiff --git a/generated/openapi/deals.json b/generated/openapi/deals.json
iindex 8cb2a89c..6c18e361 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.207.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.208.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"
@@@ -135,7 +135,7 @@
"post": {
"operationId": "post_api_v1_offers",
"summary": "Submit a deal for the acting person (X-OV-Subject): a link, title and what the person sees now (price with its currency, shipping, condition, availability — each optional, never defaulted).",
-- "description": "**deals.offer.submit** (first-party): Submit a deal for the acting person (X-OV-Subject): a link, title and what the person sees now (price with its currency, shipping, condition, availability — each optional, never defaulted). The first observation is recorded with its time. A link already posted answers 409 offer.duplicate with the existing offer. With X-OV-Origin: ai the text is AI-assisted: disclosed and noindex until a person reviews it. Rate-limited per person.",
++ "description": "**deals.offer.submit** (public): Submit a deal for the acting person (X-OV-Subject): a link, title and what the person sees now (price with its currency, shipping, condition, availability — each optional, never defaulted). The first observation is recorded with its time. A link already posted answers 409 offer.duplicate with the existing offer. With X-OV-Origin: ai the text is AI-assisted: disclosed and noindex until a person reviews it. Rate-limited per person.",
"tags": [
"deals.offer"
],
@@@ -143,7 +143,7 @@
"deals.offer.submit"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-write",
"security": [
@@@ -191,7 +191,7 @@
"patch": {
"operationId": "patch_api_v1_offers_id",
"summary": "Edit an offer the acting person submitted (title, description, category, stated expiry, product link), or record a new observation of any active offer for the acting person (POST …/observations: price",
-- "description": "**deals.offer.update** (first-party): Edit an offer the acting person submitted (title, description, category, stated expiry, product link), or record a new observation of any active offer for the acting person (POST …/observations: price with currency, shipping, condition, availability, with the time it was observed). Prices are never edited in place; each observation is a new row. Services may state observed_at (never in the future).",
++ "description": "**deals.offer.update** (public): Edit an offer the acting person submitted (title, description, category, stated expiry, product link), or record a new observation of any active offer for the acting person (POST …/observations: price with currency, shipping, condition, availability, with the time it was observed). Prices are never edited in place; each observation is a new row. Services may state observed_at (never in the future).",
"tags": [
"deals.offer"
],
@@@ -199,7 +199,7 @@
"deals.offer.update"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-write",
"security": [
@@@ -455,7 +455,7 @@
"post": {
"operationId": "post_api_v1_offers_id_flags",
"summary": "Report a problem with an offer for the acting person (expired, price_wrong, duplicate, spam, other).",
-- "description": "**deals.flag.create** (first-party): Report a problem with an offer for the acting person (expired, price_wrong, duplicate, spam, other). One open report per person and offer; rate-limited. Flags never change an offer by themselves.",
++ "description": "**deals.flag.create** (public): Report a problem with an offer for the acting person (expired, price_wrong, duplicate, spam, other). One open report per person and offer; rate-limited. Flags never change an offer by themselves.",
"tags": [
"deals.flag"
],
@@@ -463,7 +463,7 @@
"deals.flag.create"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-write",
"security": [
@@@ -587,7 +587,7 @@
"post": {
"operationId": "post_api_v1_offers_id_observations",
"summary": "Edit an offer the acting person submitted (title, description, category, stated expiry, product link), or record a new observation of any active offer for the acting person (POST …/observations: price",
-- "description": "**deals.offer.update** (first-party): Edit an offer the acting person submitted (title, description, category, stated expiry, product link), or record a new observation of any active offer for the acting person (POST …/observations: price with currency, shipping, condition, availability, with the time it was observed). Prices are never edited in place; each observation is a new row. Services may state observed_at (never in the future).",
++ "description": "**deals.offer.update** (public): Edit an offer the acting person submitted (title, description, category, stated expiry, product link), or record a new observation of any active offer for the acting person (POST …/observations: price with currency, shipping, condition, availability, with the time it was observed). Prices are never edited in place; each observation is a new row. Services may state observed_at (never in the future).",
"tags": [
"deals.offer"
],
@@@ -595,7 +595,7 @@
"deals.offer.update"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-write",
"security": [
@@@ -785,7 +785,7 @@
"delete": {
"operationId": "delete_api_v1_offers_id_vote",
"summary": "Remove the acting person's vote on an offer (kept as a removed row for history).",
-- "description": "**deals.vote.remove** (first-party): Remove the acting person's vote on an offer (kept as a removed row for history). Same abuse controls as deals.vote.set.",
++ "description": "**deals.vote.remove** (public): Remove the acting person's vote on an offer (kept as a removed row for history). Same abuse controls as deals.vote.set.",
"tags": [
"deals.vote"
],
@@@ -793,7 +793,7 @@
"deals.vote.remove"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-vote",
"security": [
@@@ -839,7 +839,7 @@
"put": {
"operationId": "put_api_v1_offers_id_vote",
"summary": "Set the acting person's vote (+1 / -1) on an offer.",
-- "description": "**deals.vote.set** (first-party): Set the acting person's vote (+1 / -1) on an offer. Server-authoritative: weight and hotness are computed by Deals (hot@1), never taken from the request. Rate-limited per person, per IP hash and per offer; no votes on one's own offer; vote-ring detection flags moderators.",
++ "description": "**deals.vote.set** (public): Set the acting person's vote (+1 / -1) on an offer. Server-authoritative: weight and hotness are computed by Deals (hot@1), never taken from the request. Rate-limited per person, per IP hash and per offer; no votes on one's own offer; vote-ring detection flags moderators.",
"tags": [
"deals.vote"
],
@@@ -847,7 +847,7 @@
"deals.vote.set"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-vote",
"security": [
@@@ -961,7 +961,7 @@
"get": {
"operationId": "get_api_v1_watches",
"summary": "List the acting person's watches and saved searches with their notification counts.",
-- "description": "**deals.watch.read** (first-party): List the acting person's watches and saved searches with their notification counts.",
++ "description": "**deals.watch.read** (public): List the acting person's watches and saved searches with their notification counts.",
"tags": [
"deals.watch"
],
@@@ -969,7 +969,7 @@
"deals.watch.read"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-read",
"security": [
@@@ -1005,7 +1005,7 @@
"post": {
"operationId": "post_api_v1_watches",
"summary": "Create a keyword, product or price-below watch, or a saved search (never notifies), for the acting person.",
-- "description": "**deals.watch.create** (first-party): Create a keyword, product or price-below watch, or a saved search (never notifies), for the acting person. A watch notifies at most once per observation (deals.watch.matched, internal; Deals never emails).",
++ "description": "**deals.watch.create** (public): Create a keyword, product or price-below watch, or a saved search (never notifies), for the acting person. A watch notifies at most once per observation (deals.watch.matched, internal; Deals never emails).",
"tags": [
"deals.watch"
],
@@@ -1013,7 +1013,7 @@
"deals.watch.create"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-write",
"security": [
@@@ -1061,7 +1061,7 @@
"delete": {
"operationId": "delete_api_v1_watches_id",
"summary": "Delete one of the acting person's watches or saved searches.",
-- "description": "**deals.watch.delete** (first-party): Delete one of the acting person's watches or saved searches.",
++ "description": "**deals.watch.delete** (public): Delete one of the acting person's watches or saved searches.",
"tags": [
"deals.watch"
],
@@@ -1069,7 +1069,7 @@
"deals.watch.delete"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "deals-write",
"security": [
ddiff --git a/generated/openapi/events.json b/generated/openapi/events.json
iindex da2a4cef..037682ea 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.207.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 e0e9240c..69805169 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.207.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 82452c71..c3447e82 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.207.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 527755b8..ac882e0f 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.207.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 ad4ea496..2ade6dad 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.207.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 f280dfc7..bec98d5c 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.207.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 d5c4ff41..7c021c0e 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.207.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 efa52fa9..3cc3dc25 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.207.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 25f204d0..0d199eb8 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.207.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 54716930..654738a2 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.207.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 110bbcb9..cd163b8f 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.207.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 400c4597..f6da5f60 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.207.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 cc4623d5..971fef77 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.207.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 9fa66288..ab1ab97c 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.207.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 06362d12..54ec3255 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.207.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 d54936b6..b2aa81e7 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.207.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 ccebcd8d..ae9f0f92 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.207.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 1fa0dc6a..061780e5 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.207.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 bccb9560..e54e6dda 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.207.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 e7f6729a..b5a5784e 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.207.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 080668fc..ee25336b 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.207.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 d87ccf4a..5c740bda 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.207.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.208.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"
@@@ -20,7 +20,7 @@
"get": {
"operationId": "get_api_v1_alerts",
"summary": "Read the alert rules and recent deliveries of the person in X-OV-Subject.",
-- "description": "**trade.alert.read** (first-party): Read the alert rules and recent deliveries of the person in X-OV-Subject.",
++ "description": "**trade.alert.read** (public): Read the alert rules and recent deliveries of the person in X-OV-Subject.",
"tags": [
"trade.alert"
],
@@@ -28,7 +28,7 @@
"trade.alert.read"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-read",
"security": [
@@@ -64,7 +64,7 @@
"post": {
"operationId": "post_api_v1_alerts",
"summary": "Create an alert rule for the person in X-OV-Subject: threshold (a crossing of a metric in a unit), filing_type or new_document.",
-- "description": "**trade.alert.create** (first-party): Create an alert rule for the person in X-OV-Subject: threshold (a crossing of a metric in a unit), filing_type or new_document. Deliveries are unique per (rule, triggering observation or document) and are sent as trade.alert.triggered (visibility subject); no email.",
++ "description": "**trade.alert.create** (public): Create an alert rule for the person in X-OV-Subject: threshold (a crossing of a metric in a unit), filing_type or new_document. Deliveries are unique per (rule, triggering observation or document) and are sent as trade.alert.triggered (visibility subject); no email.",
"tags": [
"trade.alert"
],
@@@ -72,7 +72,7 @@
"trade.alert.create"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-write",
"security": [
@@@ -120,7 +120,7 @@
"delete": {
"operationId": "delete_api_v1_alerts_id",
"summary": "Delete an alert rule of the person in X-OV-Subject.",
-- "description": "**trade.alert.delete** (first-party): Delete an alert rule of the person in X-OV-Subject.",
++ "description": "**trade.alert.delete** (public): Delete an alert rule of the person in X-OV-Subject.",
"tags": [
"trade.alert"
],
@@@ -128,7 +128,7 @@
"trade.alert.delete"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-write",
"security": [
@@@ -176,7 +176,7 @@
"get": {
"operationId": "get_api_v1_alerts_deliveries",
"summary": "Read the alert rules and recent deliveries of the person in X-OV-Subject.",
-- "description": "**trade.alert.read** (first-party): Read the alert rules and recent deliveries of the person in X-OV-Subject.",
++ "description": "**trade.alert.read** (public): Read the alert rules and recent deliveries of the person in X-OV-Subject.",
"tags": [
"trade.alert"
],
@@@ -184,7 +184,7 @@
"trade.alert.read"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-read",
"security": [
@@@ -586,7 +586,7 @@
"get": {
"operationId": "get_api_v1_instruments_resolve",
"summary": "Resolve a ticker, SEC CIK or exact company name to an instrument, deterministically (CIK, then ticker, then exact normalised name; several name matches are \"ambiguous\" and none is chosen).",
-- "description": "**trade.instrument.resolve** (first-party): Resolve a ticker, SEC CIK or exact company name to an instrument, deterministically (CIK, then ticker, then exact normalised name; several name matches are \"ambiguous\" and none is chosen). Browsers and anonymous readers need no capability.",
++ "description": "**trade.instrument.resolve** (public): Resolve a ticker, SEC CIK or exact company name to an instrument, deterministically (CIK, then ticker, then exact normalised name; several name matches are \"ambiguous\" and none is chosen). Browsers and anonymous readers need no capability.",
"tags": [
"trade.instrument"
],
@@@ -594,7 +594,7 @@
"trade.instrument.resolve"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-read",
"security": [
@@@ -688,7 +688,7 @@
"get": {
"operationId": "get_api_v1_watchlists",
"summary": "Read the watchlists of the person in X-OV-Subject (never anyone else's: another person's watchlist is 404).",
-- "description": "**trade.watchlist.read** (first-party): Read the watchlists of the person in X-OV-Subject (never anyone else's: another person's watchlist is 404).",
++ "description": "**trade.watchlist.read** (public): Read the watchlists of the person in X-OV-Subject (never anyone else's: another person's watchlist is 404).",
"tags": [
"trade.watchlist"
],
@@@ -696,7 +696,7 @@
"trade.watchlist.read"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-read",
"security": [
@@@ -732,7 +732,7 @@
"post": {
"operationId": "post_api_v1_watchlists",
"summary": "Create a private watchlist for the person in X-OV-Subject.",
-- "description": "**trade.watchlist.create** (first-party): Create a private watchlist for the person in X-OV-Subject.",
++ "description": "**trade.watchlist.create** (public): Create a private watchlist for the person in X-OV-Subject.",
"tags": [
"trade.watchlist"
],
@@@ -740,7 +740,7 @@
"trade.watchlist.create"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-write",
"security": [
@@@ -788,7 +788,7 @@
"delete": {
"operationId": "delete_api_v1_watchlists_id",
"summary": "Delete a watchlist of the person in X-OV-Subject.",
-- "description": "**trade.watchlist.delete** (first-party): Delete a watchlist of the person in X-OV-Subject.",
++ "description": "**trade.watchlist.delete** (public): Delete a watchlist of the person in X-OV-Subject.",
"tags": [
"trade.watchlist"
],
@@@ -796,7 +796,7 @@
"trade.watchlist.delete"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-write",
"security": [
@@@ -842,7 +842,7 @@
"get": {
"operationId": "get_api_v1_watchlists_id",
"summary": "Read the watchlists of the person in X-OV-Subject (never anyone else's: another person's watchlist is 404).",
-- "description": "**trade.watchlist.read** (first-party): Read the watchlists of the person in X-OV-Subject (never anyone else's: another person's watchlist is 404).",
++ "description": "**trade.watchlist.read** (public): Read the watchlists of the person in X-OV-Subject (never anyone else's: another person's watchlist is 404).",
"tags": [
"trade.watchlist"
],
@@@ -850,7 +850,7 @@
"trade.watchlist.read"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-read",
"security": [
@@@ -896,7 +896,7 @@
"patch": {
"operationId": "patch_api_v1_watchlists_id",
"summary": "Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
-- "description": "**trade.watchlist.update** (first-party): Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
++ "description": "**trade.watchlist.update** (public): Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
"tags": [
"trade.watchlist"
],
@@@ -904,7 +904,7 @@
"trade.watchlist.update"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-write",
"security": [
@@@ -962,7 +962,7 @@
"delete": {
"operationId": "delete_api_v1_watchlists_id_items_symbol",
"summary": "Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
-- "description": "**trade.watchlist.update** (first-party): Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
++ "description": "**trade.watchlist.update** (public): Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
"tags": [
"trade.watchlist"
],
@@@ -970,7 +970,7 @@
"trade.watchlist.update"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-write",
"security": [
@@@ -1027,7 +1027,7 @@
"put": {
"operationId": "put_api_v1_watchlists_id_items_symbol",
"summary": "Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
-- "description": "**trade.watchlist.update** (first-party): Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
++ "description": "**trade.watchlist.update** (public): Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
"tags": [
"trade.watchlist"
],
@@@ -1035,7 +1035,7 @@
"trade.watchlist.update"
],
"x-openvibe-visibility": [
-- "first-party"
++ "public"
],
"x-openvibe-quota-class": "trade-write",
"security": [
ddiff --git a/generated/openapi/vip.json b/generated/openapi/vip.json
iindex 2eb20051..ebdb7b4c 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.207.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 d8242f7e..c36f402e 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.207.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 3a2dfb7f..efca6284 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.207.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 14216c62..3d7ce216 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.207.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.208.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 9db12d52..1e9702a4 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.207.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.207.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.208.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.208.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/manifests/capabilities/coupons.coupon.lookup.json b/manifests/capabilities/coupons.coupon.lookup.json
iindex 0208ee1a..3cf4920b 100644
---- a/manifests/capabilities/coupons.coupon.lookup.json
++++ b/manifests/capabilities/coupons.coupon.lookup.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "coupons",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Read a merchant's active codes (status, confidence, report aggregates, restrictions, expiry or unknown, evidence) or one code. Public data only, the same response for every caller; anonymous callers may use the routes with tighter rate limits. The charter's coupons.lookup.",
"permissions": [
"coupons:read"
ddiff --git a/manifests/capabilities/coupons.coupon.submit.json b/manifests/capabilities/coupons.coupon.submit.json
iindex eb6580a8..a6be1003 100644
---- a/manifests/capabilities/coupons.coupon.submit.json
++++ b/manifests/capabilities/coupons.coupon.submit.json
@@@ -3,7 +3,8 @@
"version": "1.0",
"owner": "coupons",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
++ "sensitive": true,
"description": "Submit a coupon code for a merchant (by merchant id, host or URL) on behalf of a person (X-OV-Subject) or as AI output (X-OV-Origin: ai, held for staff review). The code starts with status unknown; a status, confidence or 'verified' field is refused. A site no merchant covers becomes a pending merchant for staff review. The charter's coupons.submit.",
"permissions": [
"coupons:write"
ddiff --git a/manifests/capabilities/coupons.merchant.resolve.json b/manifests/capabilities/coupons.merchant.resolve.json
iindex d2b7c05b..8f5c8291 100644
---- a/manifests/capabilities/coupons.merchant.resolve.json
++++ b/manifests/capabilities/coupons.merchant.resolve.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "coupons",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Resolve a hostname to an active merchant (normalized host, eTLD+1 from a bundled public-suffix subset, subdomain rules; path rules never match host-only lookups). Public data only; anonymous callers may use the route with tighter rate limits.",
"permissions": [
"coupons:read"
ddiff --git a/manifests/capabilities/coupons.report.create.json b/manifests/capabilities/coupons.report.create.json
iindex dd1cb0d9..cbf0953a 100644
---- a/manifests/capabilities/coupons.report.create.json
++++ b/manifests/capabilities/coupons.report.create.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "coupons",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Report that a code worked or failed, on behalf of a person (X-OV-Subject). One report per person, code and UTC day; only the latest per person counts; rate-limited per person; AI output (X-OV-Origin: ai) is refused. The response carries aggregates only, never a reporter. The charter's coupons.report.",
"permissions": [
"coupons:report"
ddiff --git a/manifests/capabilities/deals.flag.create.json b/manifests/capabilities/deals.flag.create.json
iindex 8226fe5f..1a4d1c11 100644
---- a/manifests/capabilities/deals.flag.create.json
++++ b/manifests/capabilities/deals.flag.create.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "deals",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Report a problem with an offer for the acting person (expired, price_wrong, duplicate, spam, other). One open report per person and offer; rate-limited. Flags never change an offer by themselves.",
"permissions": [
"deals:write"
ddiff --git a/manifests/capabilities/deals.offer.submit.json b/manifests/capabilities/deals.offer.submit.json
iindex 5b14fe41..8a5d895d 100644
---- a/manifests/capabilities/deals.offer.submit.json
++++ b/manifests/capabilities/deals.offer.submit.json
@@@ -3,7 +3,8 @@
"version": "1.0",
"owner": "deals",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
++ "sensitive": true,
"description": "Submit a deal for the acting person (X-OV-Subject): a link, title and what the person sees now (price with its currency, shipping, condition, availability — each optional, never defaulted). The first observation is recorded with its time. A link already posted answers 409 offer.duplicate with the existing offer. With X-OV-Origin: ai the text is AI-assisted: disclosed and noindex until a person reviews it. Rate-limited per person.",
"permissions": [
"deals:write"
ddiff --git a/manifests/capabilities/deals.offer.update.json b/manifests/capabilities/deals.offer.update.json
iindex bb618648..0a5199d5 100644
---- a/manifests/capabilities/deals.offer.update.json
++++ b/manifests/capabilities/deals.offer.update.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "deals",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Edit an offer the acting person submitted (title, description, category, stated expiry, product link), or record a new observation of any active offer for the acting person (POST …/observations: price with currency, shipping, condition, availability, with the time it was observed). Prices are never edited in place; each observation is a new row. Services may state observed_at (never in the future).",
"permissions": [
"deals:write"
ddiff --git a/manifests/capabilities/deals.vote.remove.json b/manifests/capabilities/deals.vote.remove.json
iindex dd6db60f..11aa7b6d 100644
---- a/manifests/capabilities/deals.vote.remove.json
++++ b/manifests/capabilities/deals.vote.remove.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "deals",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Remove the acting person's vote on an offer (kept as a removed row for history). Same abuse controls as deals.vote.set.",
"permissions": [
"deals:vote"
ddiff --git a/manifests/capabilities/deals.vote.set.json b/manifests/capabilities/deals.vote.set.json
iindex 67c60db2..7106c113 100644
---- a/manifests/capabilities/deals.vote.set.json
++++ b/manifests/capabilities/deals.vote.set.json
@@@ -3,7 +3,8 @@
"version": "1.0",
"owner": "deals",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
++ "sensitive": true,
"description": "Set the acting person's vote (+1 / -1) on an offer. Server-authoritative: weight and hotness are computed by Deals (hot@1), never taken from the request. Rate-limited per person, per IP hash and per offer; no votes on one's own offer; vote-ring detection flags moderators.",
"permissions": [
"deals:vote"
ddiff --git a/manifests/capabilities/deals.watch.create.json b/manifests/capabilities/deals.watch.create.json
iindex e93fd2b5..38906d0c 100644
---- a/manifests/capabilities/deals.watch.create.json
++++ b/manifests/capabilities/deals.watch.create.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "deals",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Create a keyword, product or price-below watch, or a saved search (never notifies), for the acting person. A watch notifies at most once per observation (deals.watch.matched, internal; Deals never emails).",
"permissions": [
"deals:watch"
ddiff --git a/manifests/capabilities/deals.watch.delete.json b/manifests/capabilities/deals.watch.delete.json
iindex d0a5dcbc..557910d5 100644
---- a/manifests/capabilities/deals.watch.delete.json
++++ b/manifests/capabilities/deals.watch.delete.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "deals",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Delete one of the acting person's watches or saved searches.",
"permissions": [
"deals:watch"
ddiff --git a/manifests/capabilities/deals.watch.read.json b/manifests/capabilities/deals.watch.read.json
iindex d8b30abe..f1721994 100644
---- a/manifests/capabilities/deals.watch.read.json
++++ b/manifests/capabilities/deals.watch.read.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "deals",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "List the acting person's watches and saved searches with their notification counts.",
"permissions": [
"deals:watch"
ddiff --git a/manifests/capabilities/trade.alert.create.json b/manifests/capabilities/trade.alert.create.json
iindex d742f14d..b5e5a898 100644
---- a/manifests/capabilities/trade.alert.create.json
++++ b/manifests/capabilities/trade.alert.create.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "trade",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Create an alert rule for the person in X-OV-Subject: threshold (a crossing of a metric in a unit), filing_type or new_document. Deliveries are unique per (rule, triggering observation or document) and are sent as trade.alert.triggered (visibility subject); no email.",
"permissions": [
"trade:write"
ddiff --git a/manifests/capabilities/trade.alert.delete.json b/manifests/capabilities/trade.alert.delete.json
iindex 4edcf463..833d7c94 100644
---- a/manifests/capabilities/trade.alert.delete.json
++++ b/manifests/capabilities/trade.alert.delete.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "trade",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Delete an alert rule of the person in X-OV-Subject.",
"permissions": [
"trade:write"
ddiff --git a/manifests/capabilities/trade.alert.read.json b/manifests/capabilities/trade.alert.read.json
iindex 1560f50c..72100adc 100644
---- a/manifests/capabilities/trade.alert.read.json
++++ b/manifests/capabilities/trade.alert.read.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "trade",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Read the alert rules and recent deliveries of the person in X-OV-Subject.",
"permissions": [
"trade:read"
ddiff --git a/manifests/capabilities/trade.instrument.resolve.json b/manifests/capabilities/trade.instrument.resolve.json
iindex fac655fc..f70a203b 100644
---- a/manifests/capabilities/trade.instrument.resolve.json
++++ b/manifests/capabilities/trade.instrument.resolve.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "trade",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Resolve a ticker, SEC CIK or exact company name to an instrument, deterministically (CIK, then ticker, then exact normalised name; several name matches are \"ambiguous\" and none is chosen). Browsers and anonymous readers need no capability.",
"permissions": [
"trade:read"
ddiff --git a/manifests/capabilities/trade.watchlist.create.json b/manifests/capabilities/trade.watchlist.create.json
iindex 89e51d56..747a6bd9 100644
---- a/manifests/capabilities/trade.watchlist.create.json
++++ b/manifests/capabilities/trade.watchlist.create.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "trade",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Create a private watchlist for the person in X-OV-Subject.",
"permissions": [
"trade:write"
ddiff --git a/manifests/capabilities/trade.watchlist.delete.json b/manifests/capabilities/trade.watchlist.delete.json
iindex a92b626d..50a221a0 100644
---- a/manifests/capabilities/trade.watchlist.delete.json
++++ b/manifests/capabilities/trade.watchlist.delete.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "trade",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Delete a watchlist of the person in X-OV-Subject.",
"permissions": [
"trade:write"
ddiff --git a/manifests/capabilities/trade.watchlist.read.json b/manifests/capabilities/trade.watchlist.read.json
iindex 26c86f93..ae4fed2f 100644
---- a/manifests/capabilities/trade.watchlist.read.json
++++ b/manifests/capabilities/trade.watchlist.read.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "trade",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Read the watchlists of the person in X-OV-Subject (never anyone else's: another person's watchlist is 404).",
"permissions": [
"trade:read"
ddiff --git a/manifests/capabilities/trade.watchlist.update.json b/manifests/capabilities/trade.watchlist.update.json
iindex 9dad8950..7188f350 100644
---- a/manifests/capabilities/trade.watchlist.update.json
++++ b/manifests/capabilities/trade.watchlist.update.json
@@@ -3,7 +3,7 @@
"version": "1.0",
"owner": "trade",
"status": "active",
-- "visibility": "first-party",
++ "visibility": "public",
"description": "Rename a watchlist of the person in X-OV-Subject, or add and remove instruments on it.",
"permissions": [
"trade:write"
ddiff --git a/package-lock.json b/package-lock.json
iindex da83c391..6c2fb505 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -1,12 +1,12 @@
{
"name": "openvibe-contracts",
-- "version": "0.207.0",
++ "version": "0.208.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openvibe-contracts",
-- "version": "0.207.0",
++ "version": "0.208.0",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex df3c64b0..fe950e50 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.207.0",
++ "version": "0.208.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",