1.7 KiB
govoplan-search
Repository type: module (platform).
Permission-aware global and contextual search for GovOPlaN.
The module works with its built-in database index and no external search service. PostgreSQL uses native full-text search; SQLite provides a bounded development fallback. Other modules may:
- register a live search provider in their module manifest
- write authorized documents through the
search.index_writercapability - announce context-sensitive WebUI search scopes through
search.contexts
An optional OpenSearch adapter is a later provider, not a hard dependency. Source modules remain responsible for defining visibility and authorization.
Index lifecycle
Source modules register a versioned search_sources provider. A provider
declares its resource types and index version, returns bounded resumable
backfill pages, and batch-rechecks current authorization for sensitive
resources. Incremental writes use SearchIndexChange and
search.index_writer.enqueue_change() so change IDs are durable and
idempotent in the same database transaction as the caller.
The built-in backend exposes opaque cursor pagination and does not return
pre-authorization totals. PostgreSQL uses full-text search and will add
trigram indexes when pg_trgm is already installed; SQLite remains a bounded
development fallback.
Tenant search administrators can inspect /api/v1/search/admin/diagnostics,
reconcile disabled modules, process queued changes, and start or continue
resumable provider rebuilds. Rows requiring a source authorization recheck
are omitted when their provider is unavailable, stale, or fails to return an
explicit allow decision.