Butkhuzi Env Cutover Rehearsal
Canonical Target
- Canonical extracted Butkhuzi runtime target:
http://localhost:4024
No temporary override port was needed for the Sprint 78 rehearsal. The rehearsal used the canonical target directly.
Env Settings Used
Temporary rehearsal API:
PORT=4002AUTH_SERVICE_URL=http://127.0.0.1:4100TENDERS_SERVICE_URL=http://127.0.0.1:4020
Fallback mode:
BUTKHUZI_SERVICE_URL=http://127.0.0.1:4020
Cutover mode:
BUTKHUZI_SERVICE_URL=http://127.0.0.1:4024
Rollback mode:
BUTKHUZI_SERVICE_URL=http://127.0.0.1:4020
Cutover Steps
- Started old host on
:4020. - Started extracted
svc-butkhuzion:4024. - Started temporary API on
:4002withBUTKHUZI_SERVICE_URL=http://127.0.0.1:4020. - Verified fallback-mode gateway responses on:
GET /api/v1/butkhuzi/norms?page=1&pageSize=1GET /api/v1/butkhuzi/suggest?query=SNIP&limit=2GET /api/v1/butkhuzi/search?query=SNIP&page=1&pageSize=2POST /api/v1/butkhuzi/upsertwithout bearer tokenPOST /api/v1/butkhuzi/chunks/rebuildwith bearer token
- Stopped the temporary API on
:4002. - Restarted the temporary API on
:4002withBUTKHUZI_SERVICE_URL=http://127.0.0.1:4024. - Re-ran the same gateway checks.
Rollback Steps
- Stopped the temporary cutover API on
:4002. - Restarted the temporary API on
:4002withBUTKHUZI_SERVICE_URL=http://127.0.0.1:4020. - Re-checked
GET /api/v1/butkhuzi/norms?page=1&pageSize=1. - Confirmed fallback behavior resumed cleanly.
Observations
- Gateway route shape stayed unchanged.
- Auth behavior stayed unchanged.
- Fallback-mode gateway results matched the old host.
- Cutover-mode gateway results matched the extracted host.
- Rollback succeeded with a simple env-target flip plus API restart.
- Canonical target clarity is now explicit:
http://localhost:4024is the correct extracted-runtime dev target.
Remaining Risks
- Sprint 78 was still a controlled rehearsal on a temporary API instance, not a live gateway cutover.
- Migration ownership and legacy-host retirement were intentionally out of scope.
- Parity is verified for the grounded route set above; full live cutover confidence still belongs in the next sprint.