Commit Graph

8 Commits

Author SHA1 Message Date
Ryan Moon
1ab449cf83 fix: skip teardownCustomerDatabase if database no longer exists
Some checks failed
Build & Release / build (push) Has been cancelled
2026-04-03 19:44:45 -05:00
Ryan Moon
bbe5bd9a0e fix: use semver constraint instead of 'latest' for ArgoCD OCI helm targetRevision
Some checks failed
Build & Release / build (push) Has been cancelled
2026-04-03 19:43:35 -05:00
Ryan Moon
b8002af82b fix: skip git commit/push in removeCustomerChart if file was never tracked
Some checks failed
Build & Release / build (push) Has been cancelled
2026-04-03 19:38:52 -05:00
Ryan Moon
19135b0520 feat: provision k8s namespace and secrets during customer setup
Some checks failed
Build & Release / build (push) Has been cancelled
- k8s.ts: add createNamespace, deleteNamespace, createSecret, createDockerRegistrySecret
- customers.ts: create namespace + DOCR pull secret + app secrets (DATABASE_URL, JWT_SECRET, REDIS_URL) before pushing ArgoCD chart
- customers.ts: delete namespace on deprovision, search name field too
- git.ts: use DOCR OCI chart URL and helm parameters for customer ArgoCD apps
- Add 'namespace' and 'secrets' steps to provisioning step tracker
2026-04-03 18:54:12 -05:00
Ryan Moon
d1c4aa7d6f feat: customers management UI with paginated table and full delete
All checks were successful
Build & Release / build (push) Successful in 12s
- Fix SSH key missing trailing newline (error in libcrypto)
- Pass env with SSH command through all git operations
- Add customers table (modules, start/expiration dates, created/updated timestamps)
- Idempotent ALTER TABLE for existing deployments
- GET /customers with pagination, search, and sort
- POST /customers persists slug with modules and dates to DB
- DELETE /customers/:slug removes ArgoCD chart, DO DB, pgbouncer pool, and manager record
- Redesigned frontend: dark slate theme, customers table page with search/sort/pagination, delete confirm dialog, module checkboxes, slate buttons
2026-04-03 17:48:25 -05:00
Ryan Moon
4bd1918e3b feat: add JWT auth with db-backed users
Some checks failed
Build & Release / build (push) Has been cancelled
- users table created on startup via migrate()
- POST /api/auth/setup to create first user (blocked once any user exists)
- POST /api/auth/login returns httpOnly JWT cookie (7d expiry)
- POST /api/auth/logout clears cookie
- GET /api/auth/me for auth check
- All /api/customers routes require valid JWT
- Frontend shows login form when unauthenticated
- Fix type errors in k8s, do, and pgbouncer services
2026-04-03 07:41:36 -05:00
Ryan Moon
6e68cb83c0 feat: restrict customer DB user permissions on provision
Some checks failed
Build & Release / build (push) Failing after 1m3s
2026-04-03 06:25:51 -05:00
Ryan Moon
8287fbf5b8 feat: initial lunarfront-manager app 2026-04-03 06:23:56 -05:00