miroir/crates
jedarden ecb27e78ff feat(ui): implement scoped key creation on search UI enable (P5.21.a)
Implements plan §13.21 auth model layer 1 - when search UI is first
enabled for an index, the orchestrator now creates a scoped search-only
key on every Meilisearch node via POST /keys with actions: [search],
indexes scoped. The key is stored in Redis hash with metadata
(primary_uid, rotated_at, generation) for retrieval at request time.

Changes:
- Add imports for MeilisearchClient and mint_scoped_key
- Implement get_or_create_scoped_key to create keys when needed
- Store new keys in Redis via set_search_ui_scoped_key
- Return the scoped key for use in JWT session minting

The scoped key has a hard expiration of scoped_key_max_age_days (60d
default) and will be auto-rotated by the background rotation loop at
scoped_key_rotate_before_expiry_days (30d default) - see P10.5 for
the rotation coordination implementation.

Closes: miroir-uhj.21.1
2026-05-24 18:13:16 -04:00
..
miroir-core feat(reshard): implement P5.1.e alias swap + dual-write stop 2026-05-24 18:05:30 -04:00
miroir-ctl docs(miroir-ctl): add subcommand runbooks and help text (P11.4, miroir-uyx.4) 2026-05-24 11:47:36 -04:00
miroir-proxy feat(ui): implement scoped key creation on search UI enable (P5.21.a) 2026-05-24 18:13:16 -04:00