feat(GRO-2225): UAT seed route cohort + receptionist credential #187
Reference in New Issue
Block a user
Delete Branch "feat/gro-2225-uat-seed-route-cohort"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
GRO-2225 — UAT seed: geocode a route cohort + provision a receptionist credential
Demo-data reproducibility fix for route optimization (§4.16). The route engine itself already passed UAT 11/11; this only removes the manual setup testers had to repeat (hand-PATCHing client coords + hand-building a receptionist session). Not a route-engine or security defect.
What changed (
packages/db/src/seed.ts)seedUatRouteCohort()— new helper, runs in the full seed after services + uat-groomer linkage:uat-groomer@groombook.devon a fixed date2026-09-15.nearest_neighbor) — coordinates are deterministic fixtures.uat-receptionist@groombook.devstaff record (role=receptionist) + Better-Auth credential fromSEED_UAT_RECEPTIONIST_PASSWORD, so the route 403 path (TC-API-16.9) is reproducible without a hand-built session./routes/*is gatedrequireRole("manager","groomer"), so a receptionist → 403.UAT_PLAYBOOK.md§4.16 — pre-condition now points at the seeded cohort + receptionist; manual-PATCH/geocoding note removed.Acceptance criteria
GET /api/routes/daily?staffId=<uat-groomer>&date=2026-09-15auto-creates a draft;POST /api/routes/optimizereturns a multi-stop ordered route with persistedstopOrder/travelMinsFromPrev/travelDistanceKmFromPrev+ totals — zero manual PATCHing.Follow-up (separate, non-blocking)
The
SEED_UAT_RECEPTIONIST_PASSWORDsecret + reset-demo-data CronJob env wiring lives in groombook/infra (SealedSecret reseal) — tracked as a child issue. The seed degrades gracefully (warn + skip) until that lands, so this PR is safe to merge first.SDLC
Standard dev→uat. Local typecheck (
packages/db) passes. Full route-opt verification is the post-deploy dev→uat route regression (Shedward) per the issue plan — no local Postgres here to run reset+seed safely. Non-blocking; does not gate the GRO-2155 uat→main promotion.Refs GRO-2225, GRO-2221, GRO-2220.