miroir/crates
jedarden a3138eef45 feat(proxy): implement POST /_miroir/rebalance endpoint (P4.6, miroir-mkk.6)
Implements manual rebalance trigger and enhanced status endpoint:

**POST /_miroir/rebalance**
- Triggers manual rebalance operation (e.g., after config-only topology tweak)
- Returns 202 Accepted with miroir_task_id when rebalance starts
- Returns 200 OK with no-op task when already balanced
- Accepts optional index_uid and reason parameters

**GET /_miroir/rebalance/status** (enhanced)
- Returns per-shard migration progress with phase information
- Response shape includes: in_progress, triggered_by, operation_id,
  started_at, phases array, overall_pct_complete
- Phases array shows shard, state, pct_complete, source, destination

**Supporting changes**
- Added RebalancerWorker::get_all_jobs() to access job state
- Added route to admin router
- Added TriggerRebalanceRequest struct

Acceptance criteria met:
- ✓ Manual rebalance trigger via POST /_miroir/rebalance
- ✓ Returns miroir_task_id for tracking
- ✓ No-op response when already balanced
- ✓ Detailed per-shard status in GET /_miroir/rebalance/status

Closes: miroir-mkk.6
2026-05-24 06:17:16 -04:00
..
miroir-core feat(proxy): implement POST /_miroir/rebalance endpoint (P4.6, miroir-mkk.6) 2026-05-24 06:17:16 -04:00
miroir-ctl feat(proxy): implement streaming routed dump import (P5.9, §13.9) 2026-05-24 06:07:00 -04:00
miroir-proxy feat(proxy): implement POST /_miroir/rebalance endpoint (P4.6, miroir-mkk.6) 2026-05-24 06:17:16 -04:00