Local docker-compose dev stack with PostgREST, Postgres, and Azurite
Commit `56cadfe6` adds a self-contained local dev environment: Postgres 16, PostgREST v12.2.3, and Azurite wired together in `docker-compose.dev.yml`, with helper scripts for role setup, JWT minting, and a smoke check. No hosted dependency required to run the backend locally.
The compose file mirrors the fork's production topology at development scale. Postgres 16 gets the web_anon / authenticated / service_role role topology seeded via scripts/local-stack/00-init-roles.sql - the same three roles that migration 0005_postgres_roles creates in production. PostgREST v12.2.3 (pinned to match the fork's Azure Container Registry image) points at the local Postgres, with the anon role defaulting to service_role to match entra-mode behavior.
scripts/local-stack/forge-jwt.mjs generates HS256 JWTs against JWT_SECRET for both the service-role and authenticated-role personas. The quick-start in the compose file comment shows the pattern: generate a random secret, spin up the stack, run migrations, mint a JWT, and the backend is talking to a fully functional PostgREST instance.
scripts/dev-infra-check.ps1 does a human-readable status report: checks Docker is present, inspects container health, probes Postgres reachability, verifies the PostgREST schema cache endpoint responds, and checks Azurite blob/queue/table ports. It's PowerShell, so it runs on Windows or Linux with pwsh.
The whole thing is coupled to this fork's role naming and auth-provider abstraction. Pulling just the compose file without the surrounding migration runner and AUTH_PROVIDER logic would need adjustment.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?