openvibers/openvibe.sources STATUS.json
STATUS.json
| 1 | { |
| 2 | "repository": "OpenVibers/OpenVibe.Sources", |
| 3 | "stage": "alpha", |
| 4 | "code": true, |
| 5 | "wave": "W14", |
| 6 | "plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)", |
| 7 | "runtime": "node 22, express, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9, fast-xml-parser", |
| 8 | "port": 4720, |
| 9 | "domain": "sources.openvibe.network (vhost in deploy/nginx: an internal-service page, the merchant opt-in pages, health and JSON 404s; the JSON API is loopback-only; README \"Public host\")", |
| 10 | "contracts": "openvibe-contracts v0.419.0", |
| 11 | "sdk": "openvibe-sdk v0.161.0", |
| 12 | "shared": "openvibe-shared v4.237.0", |
| 13 | "capabilities": [ |
| 14 | "sources.source.read", |
| 15 | "sources.item.read", |
| 16 | "sources.source.manage" |
| 17 | ], |
| 18 | "capabilitiesRegistered": true, |
| 19 | "contractsProposed": [ |
| 20 | "sources.source@1 (released in openvibe-contracts v0.12.0)", |
| 21 | "sources.item@1 (released in openvibe-contracts v0.12.0)", |
| 22 | "sources.category@1 (released in openvibe-contracts v0.295.0)" |
| 23 | ], |
| 24 | "adapters": [ |
| 25 | "rss", |
| 26 | "atom", |
| 27 | "sitemap", |
| 28 | "jsonld", |
| 29 | "api", |
| 30 | "manual", |
| 31 | "crawl" |
| 32 | ], |
| 33 | "seededSources": 47, |
| 34 | "enabledSources": 43, |
| 35 | "deployed": true, |
| 36 | "deployment": "Deployed with `sudo ovhost deploy sources`: /opt/openvibe.sources, unit openvibe-sources, 127.0.0.1:4720, principal sources. On 2026-10-22, 43 of the 47 sources were enabled in production (reviews 22, hosting 5, news 4, trade 4, games 3, coupons 2, and blog, crowdfunding and deals 1 each; none failing), with 55,683 items from 4,762 fetch runs since the first on 2026-10-07; they feed OpenVibe.News, Reviews, Deals (with its crowdfunding search), Coupons, Trade, Host, Games and Blog's desks. Restore drill passed 2026-09-23.", |
| 37 | "features": [ |
| 38 | "source registry with terms, robots and licence notes", |
| 39 | "rss, atom, sitemap, jsonld, api, manual and crawl adapters", |
| 40 | "merchant opt-in: a signed-in merchant proves a domain by DNS TXT or meta tag, names a sitemap or product feed, and a source is created only on verification with the explicit permission in its terms note; withdrawal disables it and keeps the note; /api/v1/merchant/sources is the JSON read for Report", |
| 41 | "categories: news, blog, reviews, deals, coupons, trade, hosting, crowdfunding, games, and since contracts 0.210.0 housing, food and jobs (read from sources.source@1)", |
| 42 | "a deal feed's own offer elements kept as stated (feed@3: DealNews' price, currency, retailer, end date, category and editors' pick)", |
| 43 | "api mappings: keyed maps, where conditions and patterns, $index for ranked lists; per-endpoint timeout_ms and max_bytes", |
| 44 | "facts a feed states in prose (extract): coupon codes with the shop and expiry", |
| 45 | "polite scheduler: robots.txt, per-host spacing, conditional GET, backoff", |
| 46 | "SSRF-guarded fetcher", |
| 47 | "failed fetches recorded, never fabricated", |
| 48 | "item revisions and sticky removals with provenance", |
| 49 | "retire_after_sec: items a feed stopped showing are removed as gone_from_source (jobs, listings)", |
| 50 | "per-category item retention: one sources.category@1 window per category, pruned daily", |
| 51 | "cursor item API by capability", |
| 52 | "openvibe-sdk transactional outbox to Events (service_outbox)", |
| 53 | "staff-only index documents for Search", |
| 54 | "per-actor limits (openvibe-sdk/limits)" |
| 55 | ], |
| 56 | "updated": "2026-11-13" |
| 57 | } |
| 58 |