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_writer capability
  • 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.

S
Description
GovOPlaN search module for indexing, search APIs, cross-module discovery, result permissions, and search integration surfaces.
Readme AGPL-3.0
361 KiB
Languages
Python 73.5%
TypeScript 19.4%
JavaScript 4.7%
CSS 2.4%