feat(api): on-write search reindex after catalogue writes (#17)

Wire best-effort Meilisearch index sync into the admin write paths
(create/update/delete/set_fields/set_visibility). Adds
SearchClient::sync_object (reindex if the object exists, remove if gone —
one uniform path), an optional AppState.search client, and a reindex
helper that logs failures via tracing without failing the committed
write. Server gains MEILI_URL/MEILI_MASTER_KEY/MEILI_INDEX config;
search stays disabled (no-op) when unset. reindex_all remains the
recovery path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-02 23:25:43 +02:00
parent c4e0c4c834
commit d15afda9b2
17 changed files with 299 additions and 0 deletions
+3
View File
@@ -13,12 +13,15 @@ time.workspace = true
tower-sessions.workspace = true
tower-sessions-sqlx-store.workspace = true
sqlx.workspace = true
tracing.workspace = true
auth = { path = "../auth" }
db = { path = "../db" }
domain = { path = "../domain" }
search = { path = "../search" }
[dev-dependencies]
tokio.workspace = true
tower.workspace = true
http-body-util.workspace = true
serde_json.workspace = true
uuid.workspace = true