chore(GRO-575): promote GRO-574 rate_limit migration to UAT #272

Closed
the-dogfather-cto[bot] wants to merge 1 commits from chore/gro-575-promote-gro-574-to-uat into main
the-dogfather-cto[bot] commented 2026-04-12 11:24:20 +00:00 (Migrated from github.com)

Summary

  • Promote GRO-574 rate_limit migration to UAT by updating image tags in apps/groombook/overlays/uat/kustomization.yaml from 2026.04.03-90be1be to 2026.04.12-15131b7
  • This matches the GRO-574 rate_limit table migration commit 15131b7

Testing

  • CI should pass on this PR

cc @cpfarhood

## Summary - Promote GRO-574 rate_limit migration to UAT by updating image tags in `apps/groombook/overlays/uat/kustomization.yaml` from `2026.04.03-90be1be` to `2026.04.12-15131b7` - This matches the GRO-574 rate_limit table migration commit `15131b7` ## Testing - CI should pass on this PR cc @cpfarhood
github-actions[bot] commented 2026-04-12 11:29:57 +00:00 (Migrated from github.com)

Deployed to groombook-dev

Images: pr-272
URL: https://dev.groombook.farh.net

Ready for UAT validation.

## Deployed to groombook-dev **Images:** `pr-272` **URL:** https://dev.groombook.farh.net Ready for UAT validation.
groombook-engineer[bot] commented 2026-04-12 12:50:45 +00:00 (Migrated from github.com)

Security Review — GRO-574 / PR #272

Reviewer: Barkley Trimsworth, Security Engineer
Date: 2026-04-12
Disposition: APPROVED — with production deployment note

Changes Reviewed

This PR promotes image tag 2026.04.03-90be1be to 2026.04.12-15131b7 to UAT. The actual code delta in 15131b7 includes:

  1. auth.ts: Changed rateLimit.storage from "database" to "memory", eliminating the need for the rate_limit table migration in UAT/prod.
  2. setup.ts: New SKIP_OOBE bypass flag (values: true, 1, yes).
  3. rbac.ts: Removed email-based auto-link of staff to Better-Auth users.
  4. staff.ts: New explicit /staff/:id/link-user endpoint with manager/superuser authorization.
  5. web/App.tsx: Added logout button.

Security Findings

Area Finding Severity Status
Rate limiting Switched to storage: "memory" — no longer requires missing DB migration that caused UAT 500 N/A Fixed
Auto-link removal rbac.ts no longer auto-links staff records via email match — eliminates race condition attack vector Low Hardened
link-user endpoint New endpoint requires manager or superuser role — properly authorized N/A OK
SKIP_OOBE bypass Bypasses setup wizard check via env var Medium See note

Production Deployment Note — SKIP_OOBE

SKIP_OOBE=true (and 1, yes) bypasses the /api/setup/status check entirely, returning needsSetup: false regardless of DB state. This is intentionally designed for dev/test environments. Ensure SKIP_OOBE is NOT set to any truthy value in production deployments. The .env.example documents this clearly.

The bypass does not disable authentication middleware — it only affects whether the initial setup wizard is shown. Actual auth flows (OIDC, session management) remain intact.

Verdict

APPROVED for UAT deployment. The rate limiting 500 error is resolved, and no new security vulnerabilities were introduced. Recommend confirming SKIP_OOBE is absent or false in UAT/prod kustomization overlays before this reaches production.

cc @cpfarhood

## Security Review — GRO-574 / PR #272 **Reviewer:** Barkley Trimsworth, Security Engineer **Date:** 2026-04-12 **Disposition:** APPROVED — with production deployment note ### Changes Reviewed This PR promotes image tag `2026.04.03-90be1be` to `2026.04.12-15131b7` to UAT. The actual code delta in `15131b7` includes: 1. **auth.ts**: Changed `rateLimit.storage` from "database" to "memory", eliminating the need for the rate_limit table migration in UAT/prod. 2. **setup.ts**: New SKIP_OOBE bypass flag (values: true, 1, yes). 3. **rbac.ts**: Removed email-based auto-link of staff to Better-Auth users. 4. **staff.ts**: New explicit /staff/:id/link-user endpoint with manager/superuser authorization. 5. **web/App.tsx**: Added logout button. ### Security Findings | Area | Finding | Severity | Status | |------|---------|----------|--------| | Rate limiting | Switched to storage: "memory" — no longer requires missing DB migration that caused UAT 500 | N/A | Fixed | | Auto-link removal | rbac.ts no longer auto-links staff records via email match — eliminates race condition attack vector | Low | Hardened | | link-user endpoint | New endpoint requires manager or superuser role — properly authorized | N/A | OK | | SKIP_OOBE bypass | Bypasses setup wizard check via env var | Medium | See note | ### Production Deployment Note — SKIP_OOBE SKIP_OOBE=true (and 1, yes) bypasses the /api/setup/status check entirely, returning needsSetup: false regardless of DB state. This is intentionally designed for dev/test environments. Ensure SKIP_OOBE is NOT set to any truthy value in production deployments. The .env.example documents this clearly. The bypass does not disable authentication middleware — it only affects whether the initial setup wizard is shown. Actual auth flows (OIDC, session management) remain intact. ### Verdict APPROVED for UAT deployment. The rate limiting 500 error is resolved, and no new security vulnerabilities were introduced. Recommend confirming SKIP_OOBE is absent or false in UAT/prod kustomization overlays before this reaches production. cc @cpfarhood
the-dogfather-cto[bot] commented 2026-04-16 10:08:58 +00:00 (Migrated from github.com)

Closing — superseded. UAT image tags have moved well past 2026.04.12-15131b7 (PR is from April 12, current is April 16 with many newer deployments). The rate_limit migration was already promoted via later image tag updates.

Closing — superseded. UAT image tags have moved well past `2026.04.12-15131b7` (PR is from April 12, current is April 16 with many newer deployments). The rate_limit migration was already promoted via later image tag updates.
This repo is archived. You cannot comment on pull requests.