{"id":"pg_01M362MX7EBV0TX3V0WSR42195","space":"openvibe","slug":"openvibe-search","url":"https://openvibe.wiki/w/openvibe/openvibe-search","state":"published","visibility":"public","revision":1,"title":"OpenVibe.Search","summary":"Permission-aware search and indexing service for the OpenVibe network; alpha and not deployed at the cited commit.","body_markdown":"**OpenVibe.Search** provides \"permission-aware discovery for the network\": a canonical index document, event-fed indexing, an ACL-filtered query API, and deletion and visibility propagation. Its README gives the status as **alpha** (roadmap Wave 14): it \"runs and is tested; not deployed, and no product indexes into it yet\". The README names `search.openvibe.network` as its domain, which is \"still a placeholder on OpenVibe.Sites\".\n\n## Purpose\n\nPublication products and other services with discoverable content describe their resources to Search with one contract, the proposed `search.index-document@1`, and Search answers queries without ever returning a document the caller may not see. The owning service stays the source of truth; Search keeps a revision-ordered copy that can be reconciled against it.\n\n## How it works\n\n- Owners write documents with a Network service token holding `search.document.write`, or, as the README prefers, by publishing index-document events through [[OpenVibe.Events]].\n- Anonymous callers see only public, published, indexable documents; signed-in users and delegating services can also see restricted documents whose ACL matches them.\n- Drafts, unpublished, retracted and deleted documents are returned to nobody.\n- A change that lowers a document's exposure emits `search.document.removed`, so caches and sitemaps can purge it.\n\n## What it owns and does not own\n\nSearch owns the index document contract, its SQLite index tables, the query API and its ACL filtering. It does not own any product's content, publication state or indexability decision, which belong to the owners and the publishing packages ([[OpenVibe.Publishing]]). It also does not own sitemaps, feeds, page caches, identity, groups or entitlements.\n\n## Dependencies and gaps\n\nSearch depends on OpenVibe.Contracts, [[OpenVibe.Network]] and [[OpenVibe.Events]]. The README states that an end-to-end run with a real product publishing through a deployed Events has not been demonstrated, and that [[OpenVibe.Sources]]' `sources/item` documents are the first producer. There is no HTML search page yet, only the JSON API and a text index at `/`. STATUS.json gives the runtime as Node 22, Express and better-sqlite3 (FTS5) on port 4710. The license is AGPL-3.0.\n","published_at":"2026-09-23T02:48:49.647Z","revision_published_at":"2026-09-23T02:48:49.647Z","revision_created_at":"2026-09-23T02:48:49.646Z","authorship":{"mode":"imported","workflow":null,"reviewed":false},"infobox":[{"key":"repository","label":"Repository","type":"url","value":"https://github.com/OpenVibers/OpenVibe.Search"},{"key":"status","label":"Status","type":"text","value":"alpha"},{"key":"deployment","label":"Deployment","type":"text","value":"not deployed"},{"key":"domain","label":"Domain","type":"text","value":"search.openvibe.network"},{"key":"port","label":"Port","type":"number","value":4710},{"key":"runtime","label":"Runtime","type":"text","value":"node 22, express, better-sqlite3 (FTS5)"},{"key":"license","label":"License","type":"text","value":"AGPL-3.0"}],"citations":[{"url":"https://github.com/OpenVibers/OpenVibe.Search/blob/12b4046db06a4fd34beb9fe5d4e7a7544787b96b/README.md","title":"OpenVibe.Search README (commit 12b4046)","source_item_id":null,"retrieved_at":"2026-09-22T12:00:00.000Z","quote":"Runs and is tested; not deployed, and no product indexes into it yet.","license_note":null},{"url":"https://github.com/OpenVibers/OpenVibe.Search/blob/12b4046db06a4fd34beb9fe5d4e7a7544787b96b/STATUS.json","title":"OpenVibe.Search STATUS.json (commit 12b4046)","source_item_id":null,"retrieved_at":"2026-09-22T12:00:00.000Z","quote":"\"deployed\": false","license_note":null}],"attachments":[],"links":[{"space":"openvibe","slug":"openvibe-events"},{"space":"openvibe","slug":"openvibe-network"},{"space":"openvibe","slug":"openvibe-publishing"},{"space":"openvibe","slug":"openvibe-sources"}],"indexability":{"indexable":false,"reasons":["ai_generated_unreviewed"]}}