59cc1742ccf2f71e1c2ea082ff5cf008e73c7a20
- Add portalRouter.patch("/pets/:id", ...) handler in src/routes/portal.ts
- Ownership validation: return 403 if pet's clientId != portalClientId
- Uses same update schema as staff PATCH /api/pets/:id minus staff-only fields
- Returns pet in portal shape matching GET /portal/pets response
- Add 5 test cases covering: success, 401 missing/expired session, 403 wrong owner, 404 not found
- Fix mock to support pets table + insert for impersonationAuditLogs
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Merge pull request 'fix(GRO-1576): add provenance: false to all build-push-action steps' (#64) from fix/gro-1576-ci-provenance-false into dev
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%