Flea Flicker
e9ad92de01
uat→main (PROD): GRO-2157 nav export + GRO-2225/2235 (frozen @4868f18) ( #192 )
...
CI / Test (push) Successful in 28s
CI / Lint & Typecheck (push) Successful in 31s
CI / Build & Push Docker Images (push) Successful in 28s
feat: nav export + conflict guard + UAT seed (GRO-2157, GRO-2225, GRO-2235)
Squash-merges PR #192 : uat→main PROD promotion.
Freezes at validated SHA 4868f18 (UAT regression GRO-2261 11/11 PASS).
Bundles: GRO-2157 (nav export), GRO-2225 (UAT seed), GRO-2235 (conflict guard).
CTO-reviewed and approved (review #4542 ).
Co-authored-by: Flea Flicker <22+gb_flea@noreply.git.farh.net >
Co-committed-by: Flea Flicker <22+gb_flea@noreply.git.farh.net >
2026-06-09 01:23:06 +00:00
Flea Flicker
d1a68d93de
fix(GRO-2123): serialize seed.ts with Postgres advisory lock
...
CI / Test (pull_request) Successful in 13s
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Build & Push Docker Images (pull_request) Successful in 58s
The reset-demo-data CronJob in groombook-uat intermittently failed with
FK 23503 on invoice_tip_splits because two pods could run the seed
concurrently: the new pod's TRUNCATE deleted rows the old pod was still
inserting.
Acquire a session-level advisory lock for the full duration of the seed.
CRITICAL: with postgres-js connection pooling, a pg_advisory_lock
acquired on one pooled connection and released on a different one is a
no-op (the lock is bound to the pg-backend that took it). We therefore
reserve a dedicated connection for the lock, take pg_advisory_lock(KEY)
on it, run the seed on the pooled connections, and release the lock +
reserved connection in a try/finally so a thrown seed error cannot leak
the lock or the connection.
Defence-in-depth with the infra PR that switches
concurrencyPolicy: Replace → Forbid on the reset-demo-data CronJob.
- Adds withSeedAdvisoryLock helper and runSeedBody extracted function
- Wraps seed() body in the helper; client.end() runs after the lock
releases so a reserved connection is not returned to a closed pool
- SEED_ADVISORY_LOCK_KEY = 0x47524f4f ("GROO" in ASCII) — arbitrary
stable 32-bit key, referenced in runbooks
- UAT_PLAYBOOK.md §3.29 documents the regression check
cc @cpfarhood
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-06-04 11:12:17 +00:00
Flea Flicker
e9f94a2bd7
fix(seed): GRO-2100 run uat-groomer linkage AFTER services seed (regression in #151 ) ( #153 )
...
CI / Test (push) Successful in 12s
CI / Test (pull_request) Successful in 12s
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Build & Push Docker Images (pull_request) Successful in 29s
CI / Lint & Typecheck (push) Failing after 12m57s
CI / Build & Push Docker Images (push) Has been skipped
fix(seed): GRO-2100 run uat-groomer linkage after services seed (#153 )
Co-authored-by: Flea Flicker <flea@groombook.dev >
Co-committed-by: Flea Flicker <flea@groombook.dev >
2026-06-02 20:11:45 +00:00
Flea Flicker
de16c50040
fix(seed): GRO-2100 deterministic uat-groomer ↔ UAT Pup Alpha linkage ( #151 )
CI / Test (pull_request) Successful in 13s
CI / Lint & Typecheck (pull_request) Successful in 18s
CI / Build & Push Docker Images (pull_request) Successful in 45s
CI / Test (push) Successful in 2m20s
CI / Lint & Typecheck (push) Successful in 2m25s
CI / Build & Push Docker Images (push) Successful in 28s
2026-06-02 18:09:31 +00:00
Flea Flicker
fc6c6ef752
fix(db): make services seed idempotent across resets (GRO-2064, GRO-2033 close-out) ( #148 )
CI / Test (push) Successful in 12s
CI / Lint & Typecheck (push) Successful in 15s
CI / Build & Push Docker Images (push) Successful in 28s
CI / Test (pull_request) Successful in 14s
CI / Lint & Typecheck (pull_request) Successful in 20s
CI / Build & Push Docker Images (pull_request) Successful in 39s
2026-06-02 04:54:33 +00:00
The Dogfather
b15a53a19b
fix(seed): restore deterministic alerts for TestCooper/TestRocky (GRO-1962) ( #122 )
...
CI / Test (push) Successful in 11s
CI / Lint & Typecheck (push) Successful in 17s
CI / Test (pull_request) Successful in 12s
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Build & Push Docker Images (pull_request) Successful in 45s
CI / Build & Push Docker Images (push) Successful in 1m7s
Co-authored-by: The Dogfather <20+gb_dogfather@noreply.git.farh.net >
Co-committed-by: The Dogfather <20+gb_dogfather@noreply.git.farh.net >
2026-06-01 00:35:35 +00:00
Scrubs McBarkley
bec7b014be
fix(seed): remove stale uc.petName closure ref, correct medicalAlerts distribution to 30% ( #115 )
CI / Test (push) Successful in 11s
CI / Lint & Typecheck (push) Successful in 18s
CI / Build & Push Docker Images (push) Successful in 1m4s
CI / Test (pull_request) Successful in 12s
CI / Lint & Typecheck (pull_request) Successful in 14s
CI / Build & Push Docker Images (pull_request) Successful in 1m4s
2026-05-31 22:14:30 +00:00
Flea Flicker
01cff9006a
GRO-1961: populate extended fields on UAT Pup Alpha/Beta on re-runs ( #114 )
...
CI / Test (push) Successful in 10s
CI / Lint & Typecheck (push) Successful in 22s
CI / Build & Push Docker Images (push) Successful in 59s
GRO-1961: populate extended fields on UAT Pup Alpha/Beta on re-runs
2026-05-31 21:52:06 +00:00
Flea Flicker
c588c94dcb
GRO-1955: hotfix seed.ts broken uc reference in random pet batch ( #112 )
CI / Test (push) Failing after 9s
CI / Lint & Typecheck (push) Successful in 20s
CI / Build & Push Docker Images (push) Has been skipped
2026-05-30 04:42:33 +00:00
Scrubs McBarkley
1891b9c523
GRO-1949: add behavioral and skin medicalAlertPool types, deterministic seeding for TestCooper/TestRocky ( #109 )
CI / Test (push) Successful in 12s
CI / Lint & Typecheck (push) Failing after 15s
CI / Build & Push Docker Images (push) Has been skipped
2026-05-30 04:12:06 +00:00
Flea Flicker
0ab16b82e0
GRO-1921: Fix UAT reset CronJob to seed full UAT profile with extended pet fields ( #106 )
CI / Test (push) Successful in 11s
CI / Test (pull_request) Successful in 10s
CI / Lint & Typecheck (push) Successful in 16s
CI / Lint & Typecheck (pull_request) Successful in 16s
CI / Build & Push Docker Images (push) Successful in 57s
CI / Build & Push Docker Images (pull_request) Successful in 1m2s
2026-05-30 03:42:43 +00:00
Flea Flicker
280c699d0d
fix(seed): add uat-customer client record for SSO bridge UAT (GRO-1935) ( #104 )
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Successful in 10s
CI / Build & Push Docker Images (pull_request) Failing after 37s
CI / Lint & Typecheck (push) Successful in 14s
CI / Test (push) Successful in 2m19s
CI / Build & Push Docker Images (push) Failing after 33s
2026-05-30 03:10:48 +00:00
Flea Flicker
86a6e3245c
fix(seed): use typeof on enum.enumValues for db build ( #100 )
CI / Lint & Typecheck (push) Successful in 21s
CI / Test (push) Failing after 13m48s
CI / Build & Push Docker Images (push) Has been skipped
2026-05-29 15:40:51 +00:00
Flea Flicker
aee82efbac
feat(seed): populate extended pet profile fields for UAT verification ( #99 )
CI / Lint & Typecheck (push) Successful in 1m53s
CI / Test (push) Successful in 1m55s
CI / Build & Push Docker Images (push) Failing after 3m24s
2026-05-29 14:39:05 +00:00
Flea Flicker
9b24e299db
feat(GRO-1445): provision Better-Auth credential accounts in seed.ts
...
CI / Lint & Typecheck (push) Failing after 6s
CI / Test (push) Failing after 6s
CI / Build & Push Docker Image (push) Has been skipped
GRO-1325 was marked done but never implemented. This adds the missing
Better-Auth user + account seeding for UAT email+password logins.
For each SEED_UAT_*_PASSWORD env var present, the seed now:
1. Creates (or links to existing) a Better-Auth user record with
emailVerified: true
2. Creates a credential account with providerId: "credential"
and a bcrypt-hashed password (using better-auth/crypto)
3. Links the staff record to the Better-Auth user via userId
Idempotent: skips user/account creation if already seeded.
Updated UAT_PLAYBOOK.md §4.1 — TC-API-1.4 through 1.9 now reference
the new seed provisioning (GRO-1325 was the missing piece).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-21 11:28:30 +00:00
Chris Farhood
abac9dfe6c
Extract groombook/api from monorepo with CI workflow
...
- Add source code from apps/api
- Add packages/db and packages/types workspace dependencies
- Add GitHub Actions CI workflow (lint, typecheck, test, docker)
- Generate pnpm-lock.yaml
- Add .gitignore
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-11 01:26:56 +00:00