|
|
8cf112a68a
|
feat(02-02): add users migration, JIT PrincipalResolver, /api/v1/me route
|
2026-04-28 13:14:59 +02:00 |
|
|
|
36c1b2c822
|
feat(02-02): wire AuthConfig, JWT verifier, and CallLogging redaction
|
2026-04-28 13:06:50 +02:00 |
|
|
|
68655eae1a
|
Phase 1 work
|
2026-04-24 20:21:03 +02:00 |
|
|
|
daefe6c26d
|
refactor(01-05): rewrite Application.kt with ContentNegotiation, Flyway boot, /health
- Remove wildcard Ktor imports (D-11 allWarningsAsErrors safety) — all imports explicit
- Install ContentNegotiation { json() } for @Serializable response bodies
- Call Database.migrate(this) at boot — fails loudly if Postgres unreachable
- Extract configureRouting() extension so tests can compose routing without DB
- Replace template root greeting with GET /health → {"status":"ok"} (D-16)
- main() shape unchanged: embeddedServer(Netty, SERVER_PORT, "0.0.0.0", ...)
|
2026-04-24 18:22:37 +02:00 |
|
|
|
24018efe67
|
feat(01-05): add HOCON config, Flyway migration dir, fail-loud Database.migrate
- application.conf: HOCON with ktor.deployment.port (8080 + ${?PORT}) and
database.url/user/password (localhost defaults + ${?DATABASE_URL/USER/PASSWORD})
- db/migration/.gitkeep: placeholder so classpath:db/migration resolves
- Database.kt: object Database.migrate(app) reads HOCON config, runs Flyway
with baselineOnMigrate + validateOnMigrate + cleanDisabled, throws
IllegalStateException on any failure (D-16 fail-loud contract)
- SLF4J (not Kermit); server logs url+user only, never password
|
2026-04-24 18:22:08 +02:00 |
|
|
|
bf8b46bff2
|
Initial commit
|
2026-04-23 22:50:48 +02:00 |
|