7f3c048cbfc2ec15a48479de77d40e2e43bc69e7
UAT seed reproducibility fix for route optimization (§4.16). No live geocoder (UAT has no Google Maps key; provider is nearest_neighbor) — coordinates are hand-picked Seattle-metro fixtures. - seedUatRouteCohort(): 12 fixed-id clients/pets/appointments for uat-groomer on fixed date 2026-09-15. 10 pre-geocoded (multi-stop optimized route) + 2 intentionally un-geocoded (skip-and-surface path, TC-API-16.4). Idempotent: clients/pets/appointments upserted by deterministic UUID; skips cleanly when uat-groomer is absent (prod/demo). - UAT receptionist: standing `uat-receptionist@groombook.dev` staff record (role=receptionist) + Better-Auth credential from SEED_UAT_RECEPTIONIST_PASSWORD, so the route 403 path (TC-API-16.9) is reproducible without a hand-built session. - UAT_PLAYBOOK §4.16: replace manual-PATCH/geocoding pre-condition with the seeded cohort + receptionist. The SEED_UAT_RECEPTIONIST_PASSWORD secret/env wiring in groombook/infra is a separate change; the seed degrades gracefully (warn + skip) without it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
GroomBook API
GroomBook API service — extracted from the groombook/app monorepo.
Overview
This repository contains the GroomBook API service, including:
- REST API endpoints
- Database schema and migrations (via Drizzle ORM)
- Authentication (via Better Auth)
- Background job handlers
Structure
src/ # API service source
packages/db/ # Database schema, migrations, and utilities
packages/types/ # Shared TypeScript types
Setup
pnpm install
cp .env.example .env # Fill in required environment variables
pnpm --filter @groombook/api dev
Docker
docker build -t ghcr.io/groombook/api:latest .
docker run -p 3000:3000 ghcr.io/groombook/api:latest
License
AGPL-3.0-only
Description
Languages
TypeScript
99.3%
JavaScript
0.4%
Dockerfile
0.2%