From e70ed771ca6433935fe17beb7dd55cf4df5e3532 Mon Sep 17 00:00:00 2001 From: Sharang Parnerkar Date: Tue, 19 May 2026 09:47:36 +0000 Subject: [PATCH] =?UTF-8?q?fix(dev):=20default=20port=20:8080=20=E2=86=92?= =?UTF-8?q?=20:8090?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unblock local dev: Keycloak owns :8080, so tenant-registry shifts to :8090. Prod is functionally unchanged. Refs: M5.1 --- .env.example | 11 +++++++++++ Dockerfile | 2 +- Makefile | 2 +- README.md | 8 ++++---- internal/config/config.go | 7 ++++--- internal/config/config_test.go | 4 ++-- 6 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.env.example b/.env.example index e69de29..4605320 100644 --- a/.env.example +++ b/.env.example @@ -0,0 +1,11 @@ +# tenant-registry — local dev environment. +# +# Copy to .env.local (gitignored) and edit. The service reads env vars +# directly via internal/config; this file is just documentation. + +APP_ENV=dev +ADDR=:8090 +KEYCLOAK_ISSUER=http://localhost:8080/realms/breakpilot-dev + +# Postgres DSN — unused by the skeleton (in-memory store). Wired up in M4.1. +# DATABASE_URL=postgres://platform:platform-dev-pass@localhost:5432/platform?sslmode=disable diff --git a/Dockerfile b/Dockerfile index 6fbaec1..0645f05 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,5 +11,5 @@ FROM gcr.io/distroless/static-debian12:nonroot WORKDIR / COPY --from=build /out/tenant-registry /tenant-registry USER nonroot:nonroot -EXPOSE 8080 +EXPOSE 8090 ENTRYPOINT ["/tenant-registry"] diff --git a/Makefile b/Makefile index 5c3d51d..d0eb612 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ .PHONY: help dev test build fmt vet lint docker clean -ADDR ?= :8080 +ADDR ?= :8090 APP_ENV ?= dev help: diff --git a/README.md b/README.md index b152ded..9086d0d 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Multi-tenant glue: orgs, entitlements, API keys, audit. Scaffolded under milesto cd /path/to/platform/orca-platform && make dev-up # In another — run the service: -make dev # APP_ENV=dev, listens on :8080 +make dev # APP_ENV=dev, listens on :8090 (Keycloak owns :8080 in the dev stack) make test # unit tests make build # compile to ./bin/tenant-registry ``` @@ -37,7 +37,7 @@ Env vars (override at the shell): | Var | Default | Purpose | |---|---|---| | `APP_ENV` | `dev` | one of `dev`, `stage`, `prod` | -| `ADDR` | `:8080` | listen address | +| `ADDR` | `:8090` | listen address (avoids Keycloak's :8080) | | `KEYCLOAK_ISSUER` | `http://localhost:8080/realms/breakpilot-dev` | OIDC issuer URL | | `DATABASE_URL` | empty (in-memory store in skeleton) | Postgres DSN, wired up in the M4.1 schema PR | @@ -62,7 +62,7 @@ The skeleton's store is in-memory and pre-seeded with one tenant: } ``` -So `curl http://localhost:8080/v1/tenants/by-slug/acme` works the moment `make dev` is up. +So `curl http://localhost:8090/v1/tenants/by-slug/acme` works the moment `make dev` is up. The full schema (tenants, tenant_products, audit_log) is committed at `migrations/0001_init.up.sql` for review, but unapplied until the M4.1 follow-up PR swaps the in-memory store for pgx-backed Postgres. @@ -70,7 +70,7 @@ The full schema (tenants, tenant_products, audit_log) is committed at `migration | Env | URL | How | |---|---|---| -| dev | `http://localhost:8080` | `make dev` | +| dev | `http://localhost:8090` | `make dev` | | stage | `https://tenant-registry.stage.breakpilot.com` | auto on merge to `main` | | prod | `https://tenant-registry.breakpilot.com` | manual: tag `vX.Y.Z` + sign-off | diff --git a/internal/config/config.go b/internal/config/config.go index 64d14a6..d9cf47b 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -7,7 +7,7 @@ import ( type Config struct { Env string // dev | stage | prod - Addr string // listen address, e.g. ":8080" + Addr string // listen address, e.g. ":8090" KeycloakIssuer string // e.g. http://localhost:8080/realms/breakpilot-dev DatabaseURL string // postgres DSN (unused in skeleton; in-memory store) } @@ -18,8 +18,9 @@ func Load() (*Config, error) { return nil, fmt.Errorf("invalid APP_ENV %q", env) } return &Config{ - Env: env, - Addr: getenv("ADDR", ":8080"), + Env: env, + // :8090 — Keycloak owns :8080 in the dev stack. + Addr: getenv("ADDR", ":8090"), KeycloakIssuer: getenv("KEYCLOAK_ISSUER", "http://localhost:8080/realms/breakpilot-dev"), DatabaseURL: os.Getenv("DATABASE_URL"), }, nil diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 34b3ba9..2dfd17f 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -17,8 +17,8 @@ func TestLoad_defaults(t *testing.T) { if cfg.Env != "dev" { t.Errorf("Env = %q, want dev", cfg.Env) } - if cfg.Addr != ":8080" { - t.Errorf("Addr = %q, want :8080", cfg.Addr) + if cfg.Addr != ":8090" { + t.Errorf("Addr = %q, want :8090", cfg.Addr) } if cfg.KeycloakIssuer == "" { t.Error("KeycloakIssuer is empty; expected a default")