openvibers/openvibe.publishing STATUS.json
STATUS.json
| 1 | { |
| 2 | "repository": "OpenVibers/OpenVibe.Publishing", |
| 3 | "stage": "alpha", |
| 4 | "code": true, |
| 5 | "wave": "W15", |
| 6 | "kind": "packages", |
| 7 | "package": "openvibe-publishing", |
| 8 | "version": "1.7.1", |
| 9 | "plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)", |
| 10 | "runtime": null, |
| 11 | "port": null, |
| 12 | "domain": null, |
| 13 | "database": "none of its own: the stores use tables in each product's PostgreSQL database through the product's openvibe-sdk/db handle (ADR-035); DDL from schema(prefix) in the product's migrations", |
| 14 | "modules": [ |
| 15 | "revisions", |
| 16 | "schedule", |
| 17 | "taxonomy", |
| 18 | "citations", |
| 19 | "media", |
| 20 | "discussion", |
| 21 | "seo", |
| 22 | "authorship", |
| 23 | "index-hooks", |
| 24 | "ai", |
| 25 | "ssr", |
| 26 | "blocks", |
| 27 | "ingest", |
| 28 | "publication", |
| 29 | "layout", |
| 30 | "search-feed", |
| 31 | "search-relay" |
| 32 | ], |
| 33 | "consumers": [ |
| 34 | "OpenVibe.Wiki (https://openvibe.wiki): revisions, schedule, taxonomy, citations, media, discussion, seo, authorship, index-hooks, ssr, layout", |
| 35 | "OpenVibe.Blog (https://openvibe.blog): the same plus ai and ingest", |
| 36 | "OpenVibe.News (https://openvibe.news): revisions, taxonomy, citations, discussion, seo, authorship, index-hooks, ssr, ingest, publication, layout", |
| 37 | "OpenVibe.Reviews (https://openvibe.reviews): revisions, discussion, seo, authorship, index-hooks, ssr, ingest, publication, layout", |
| 38 | "OpenVibe.Deals (https://openvibe.deals): discussion, seo, index-hooks, ssr, ingest, publication, layout", |
| 39 | "OpenVibe.Coupons (https://openvibe.coupons): seo, index-hooks, ssr, ingest, publication, layout", |
| 40 | "OpenVibe.Trade (https://openvibe.trade): revisions, seo, authorship, index-hooks, ssr, ingest, publication, layout", |
| 41 | "OpenVibe.Help (https://openvibe.help): search-feed", |
| 42 | "OpenVibe.Host (https://openvibe.host): search-feed, ingest, discussion", |
| 43 | "OpenVibe.Inventory (https://inventory.openvibe.network): search-feed", |
| 44 | "OpenVibe.Quest (https://openvibe.quest): search-feed", |
| 45 | "OpenVibe.Rent (https://openvibe.rent): search-feed, ai", |
| 46 | "OpenVibe.Work (https://openvibe.work): search-feed", |
| 47 | "OpenVibe.Games (https://openvibe.games, apps/server): search-feed for creator worlds", |
| 48 | "OpenVibe.Food (https://openvibe.food): ai" |
| 49 | ], |
| 50 | "consumerPins": "each consumer pins one release tag; OpenVibe.Contracts docs/ESTATE.md lists them", |
| 51 | "plannedConsumers": [], |
| 52 | "exitProof": "examples/two-products + test/two-products.test.js", |
| 53 | "contracts": "openvibe-contracts v0.419.0 (devDependency): emits search.index-document@1 and events.event-envelope@1 (validated in tests)", |
| 54 | "sdk": "openvibe-sdk v0.161.0", |
| 55 | "shared": "openvibe-shared v4.235.0", |
| 56 | "dependsOn": [ |
| 57 | "openvibe-sdk >=0.15.0 (peer; tests pin v0.60.0)", |
| 58 | "openvibe-shared >=1.5.0 (optional peer; tests pin v4.4.0; layout needs >=2.6.0)", |
| 59 | "PostgreSQL 18 through PgBouncer (the product's database)" |
| 60 | ], |
| 61 | "tests": "npm test (Node 22): 19 files, 143 cases; test/postgres.test.js runs on PostgreSQL 18 + PgBouncer when OV_TEST_PG_URL is set (CI starts the containers), else it is listed as skipped", |
| 62 | "released": true, |
| 63 | "deployed": false, |
| 64 | "deployment": "none: a package released as git tags; products pin the tag and deploy it with their own releases", |
| 65 | "features": [ |
| 66 | "async stores on PostgreSQL through openvibe-sdk/db, with the caller's transaction handle, schema(prefix) DDL for migrations, indexes for every query and bounded, keyset-paged lists", |
| 67 | "revisions with optimistic concurrency, diff and revert", |
| 68 | "idempotent lease-based scheduling", |
| 69 | "taxonomy with hierarchical categories", |
| 70 | "append-only citations", |
| 71 | "Media attachment references with honest broken states", |
| 72 | "Community discussion references", |
| 73 | "deterministic indexability gate, redirects, sitemaps and feeds", |
| 74 | "authorship and AI disclosure, held until a person's review", |
| 75 | "OpenVibe.AI draft client", |
| 76 | "Search index documents, tombstones and publication events", |
| 77 | "auto-escaping SSR and a safe Markdown subset", |
| 78 | "the ingest chassis: the OpenVibe.Sources client, a change cursor + pull loop with per-item savepoint isolation and an {applied|hold|removed} apply contract, a signed event consumer with an exactly-once inbox, the normalisers and PSL/registrable-host and freshness helpers the five content products share", |
| 79 | "the publication glue: gate → document → sequencer.stamp → events → outbox.enqueue on the caller's transaction handle, tombstones on unpublish/merge, and the IndexNow ping", |
| 80 | "the page document through openvibe-shared/shell page(): robots and canonical from the gate's decision, article times, prev/next, feeds, app icon, stylesheets, boost marker and the footer init, plus the AI summary (ai-summary meta, WebPage JSON-LD, facts block) when the caller passes summary/facts/updated/url" |
| 81 | ], |
| 82 | "updated": "2026-11-13" |
| 83 | } |
| 84 |