Search operations
Available in the local environment
Katra uses Laravel Scout and self-hosted Meilisearch for derived full-text search. PostgreSQL remains authoritative for content and access.
Security model
Section titled “Security model”The Server determines the user’s authorized conversation scope before search ranking. It reconciles authorization again before returning results. Meilisearch is not exposed directly to the browser.
Index synchronization
Section titled “Index synchronization”Run index-setting synchronization after a deployment changes the searchable schema:
docker compose exec server php artisan scout:sync-index-settingsRebuild
Section titled “Rebuild”Rebuild the message index from PostgreSQL rather than restoring Meilisearch as authoritative data:
docker compose exec server php artisan scout:flush "App\\Models\\Message"docker compose exec server php artisan scout:import "App\\Models\\Message"Use the current application model name if it changes. Validate the exact command against the installed Server before a consequential rebuild.
Health
Section titled “Health”curl http://localhost:7700/healthdocker compose exec server php artisan katra:foundation:checkDo not expose Meilisearch outside the trusted service network. Search results must never become a shortcut around organization, conversation, participant, or guest authorization.