openvibers/openvibe.reviews Commits

OpenVibe.Reviews docs: public on its own domain since 2026-10-09 (#24)

OP OpenVibers committed 10 Oct 2026 · 9c129e838e · 3 files, +15 −15

Docs only. After its independent pre-launch security review, this service has been public on its own domain since 2026-10-09 (plan T11, Contracts 0.125.0). The README status, STATUS.json and docs now say so, in place of "deployed internally, not launched" and the OpenVibe.Sites placeholder.

Changes

ddiff --git a/README.md b/README.md
iindex 117002b..4bd98e0 100644
---- a/README.md
++++ b/README.md
@@@ -2,7 +2,7 @@
> Review signals gathered across sources with provenance, entity resolution and honest aggregates.
--**Status:** alpha (roadmap Wave 17, Reviews half). Tested against stub upstreams and **deployed internally, not launched**: it runs on the production host on 127.0.0.1:4830 only (`/api/ready` 200 on 2026-09-23) with an empty database (0 entities, 0 signals), and `openvibe.reviews` still shows its placeholder on OpenVibe.Sites.
++**Status:** alpha (roadmap Wave 17, Reviews half). Tested against stub upstreams and **public at `openvibe.reviews` since 2026-10-09**, after an independent pre-launch security review whose fixes shipped first. The database holds nothing yet (0 entities, 0 signals): the first entities come from editors, signals only from Sources, and no Sources review source is enabled.
**Domain:** `openvibe.reviews` · **Port:** 4830 · **Service id:** `reviews`
**Plan:** OpenVibe End-to-End Realignment & Implementation Plan, revision 3 — roadmap Wave 17, §15.13, §29, §32.
**License:** AGPL-3.0 (same as every OpenVibe service).
@@@ -291,29 +291,29 @@ fast-forward `/opt/openvibe.reviews`, install on a lockfile change, restart, wai
The unit is `openvibe-reviews.service` on `127.0.0.1:4830`, the env file `/etc/openvibe/reviews.env`. The database is
`ov_reviews` on the host's data role (`sudo /opt/openvibe.host/roles/data/add-service.sh reviews` writes its settings); the
release migrates it at boot (schema in [migrations/](migrations/)). The nginx reference is
--[deploy/nginx/openvibe.reviews.conf](deploy/nginx/openvibe.reviews.conf) (the domain still serves the
--OpenVibe.Sites placeholder).
++[deploy/nginx/openvibe.reviews.conf](deploy/nginx/openvibe.reviews.conf) (the domain has served this
++service since 2026-10-09).
Rollback: ovhost puts the previous sha back by itself when `/api/ready` does not answer 2xx after the
restart; afterwards `sudo ovhost rollback reviews --to <sha>`. Migrations only add tables and columns.
## Launch rule
--This repository does not make the product real on its own. `openvibe.reviews` keeps its placeholder
--page on [OpenVibers/OpenVibe.Sites](https://github.com/OpenVibers/OpenVibe.Sites) until all of the
--following hold (plan §12.12):
++This repository never made the product real on its own: `openvibe.reviews` kept its placeholder page
++on [OpenVibers/OpenVibe.Sites](https://github.com/OpenVibers/OpenVibe.Sites) until all of the
++following held (plan §12.12):
1. an owning runtime with health/readiness endpoints and observability — **built** (`/api/health`, `/api/ready`, `/metrics`);
2. canonical identity/auth integration (Network subjects, a scoped service principal) — **built** and provisioned in production;
3. server-rendered public routes useful without JavaScript — **built**;
--4. real persistence and end-to-end workflows — **built** and deployed on the host (loopback only, empty database); no Sources review source is enabled yet;
++4. real persistence and end-to-end workflows — **built** and deployed on the host (empty database); no Sources review source is enabled yet;
5. capability and event registration against OpenVibe.Contracts — **done** (openvibe-contracts v0.107.0);
--6. a migration/seed strategy (schema migrations in [migrations/](migrations/); nothing seeded), a security/threat review, sitemap/robots/feed behaviour — discovery **built**; threat review **written**: [docs/threat-review.md](docs/threat-review.md) (the service authors' own, from the code: controls with file:line references, the gaps fixed in that pass and the ones that remain; an independent review is still to come);
++6. a migration/seed strategy (schema migrations in [migrations/](migrations/); nothing seeded), a security/threat review, sitemap/robots/feed behaviour — discovery **built**; threat review **written**: [docs/threat-review.md](docs/threat-review.md) (the service authors' own, from the code: controls with file:line references, the gaps fixed in that pass and the ones that remain); an independent pre-launch security review followed, its fixes shipped first;
7. acceptance tests proving the advertised functionality — **built** (`npm test`).
--The launch release removes `openvibe.reviews` from `OpenVibe.Sites/sites.json`, switches routing to
--this service and registers its maturity in the ecosystem registry **in the same release it goes live**.
--A placeholder is never counted as an implemented service, and this README does not call the product
--live until that release has happened.
++The launch release removed `openvibe.reviews` from `OpenVibe.Sites/sites.json`, switched routing to
++this service and registered its maturity in the ecosystem registry in the same release it went live:
++the domain has served this service since 2026-10-09, when plan T11 deleted OpenVibe.Sites. A
++placeholder is never counted as an implemented service.
---
ddiff --git a/STATUS.json b/STATUS.json
iindex 2c77eb0..1a5b143 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -27,8 +27,8 @@
],
"capabilitiesRegistered": true,
"deployed": true,
-- "deployment": "Deployed with `sudo ovhost deploy reviews`: unit openvibe-reviews, 127.0.0.1:4830 loopback only; Events subscription sources.item.* in place; on 2026-09-23 /api/ready answered 200 and the production database held 0 entities and 0 signals. Deployed internally, not launched: openvibe.reviews still serves the OpenVibe.Sites placeholder until a person verifies a review source's terms and enables it in Sources, and an editor publishes (REVIEWS_EDITORS holds the owner only)",
-- "onOpenVibeSites": true,
++ "deployment": "Deployed with `sudo ovhost deploy reviews`: unit openvibe-reviews, 127.0.0.1:4830 behind nginx; Events subscription sources.item.* in place; on 2026-09-23 /api/ready answered 200 and the production database held 0 entities and 0 signals. Public at openvibe.reviews since 2026-10-09 after an independent pre-launch security review whose fixes shipped first; the database stays empty until a person verifies a review source's terms and enables it in Sources, and an editor publishes (REVIEWS_EDITORS holds the owner only)",
++ "onOpenVibeSites": false,
"seed": "none: no entities, signals, summaries or ratings are seeded",
"dataSource": "OpenVibe.Sources category reviews; no review source is enabled there yet (all 6 Sources seeds are disabled)",
"features": [
ddiff --git a/docs/service-manifest-proposal.json b/docs/service-manifest-proposal.json
iindex 4edeadb..e4de5ff 100644
---- a/docs/service-manifest-proposal.json
++++ b/docs/service-manifest-proposal.json
@@@ -42,5 +42,5 @@
"namespacesOwned": [
"reviews.*"
],
-- "notes": "Entities with aliases and typed links; resolution of OpenVibe.Sources review items by deterministic rules (source binding, URL, GTIN/SKU/MPN) with editor confirmation for name-only and conflicting matches; merges that rewrite nothing and splits that restore attribution exactly, both audited; typed signals with provenance (source item, item revision, retrieval time, licence note) and trust metadata; aggregates computed only from signals present (method reviews-aggregate@1, inputs and exclusions exposed, absent without qualifying signals, a new revision on every change); editor-written or AI-drafted-and-approved summaries whose points cite signals and never carry a rating; source removal withdraws signals, flags citing summaries and prepares a pending revision; corrections queue; Community discussion referenced, not copied. Server-rendered pages useful without JavaScript; AggregateRating/Product/Review JSON-LD only when signals back it; sitemaps, feeds and Search index events from the openvibe-publishing v0.2.0 gate. Not deployed; openvibe.reviews stays on OpenVibe.Sites until launch."
++ "notes": "Entities with aliases and typed links; resolution of OpenVibe.Sources review items by deterministic rules (source binding, URL, GTIN/SKU/MPN) with editor confirmation for name-only and conflicting matches; merges that rewrite nothing and splits that restore attribution exactly, both audited; typed signals with provenance (source item, item revision, retrieval time, licence note) and trust metadata; aggregates computed only from signals present (method reviews-aggregate@1, inputs and exclusions exposed, absent without qualifying signals, a new revision on every change); editor-written or AI-drafted-and-approved summaries whose points cite signals and never carry a rating; source removal withdraws signals, flags citing summaries and prepares a pending revision; corrections queue; Community discussion referenced, not copied. Server-rendered pages useful without JavaScript; AggregateRating/Product/Review JSON-LD only when signals back it; sitemaps, feeds and Search index events from the openvibe-publishing v0.2.0 gate. Deployed; public at openvibe.reviews since 2026-10-09 after an independent pre-launch security review."
}