openvibers/openvibe.publishing STATUS.json

STATUS.json

main 4.7 KB · 84 lines · 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