Commit Graph

33 Commits

Author SHA1 Message Date
q792602257 f42b88e57d feat(audit): recorder with pg implementation and ip parsing 2026-04-28 22:53:22 +08:00
q792602257 0b323b91ee feat(notify): http handler for inbox list / unread count / mark read 2026-04-28 22:37:19 +08:00
q792602257 13032c1192 feat(notify): dispatcher with sync persist and async channel fanout 2026-04-28 22:33:14 +08:00
q792602257 83c63c5f93 feat(notify): dummy notifier writing structured log lines 2026-04-28 22:28:47 +08:00
q792602257 d9a8c04195 feat(notify): postgres repository for notifications inbox 2026-04-28 22:25:23 +08:00
q792602257 f25078dc8c feat(notify): sqlc queries for notifications crud 2026-04-28 22:18:41 +08:00
q792602257 32e313d5f7 feat(notify): channel/severity types and Notifier interface 2026-04-28 18:07:19 +08:00
q792602257 e0a7018226 feat(user): http handler for login/me/logout with middleware integration 2026-04-28 18:02:09 +08:00
q792602257 c6c4edcd14 feat(user): service with login/logout/resolve/bootstrap (with unit tests) 2026-04-28 17:51:50 +08:00
q792602257 2141ddafe1 feat(user): postgres repository wrapping sqlc queries 2026-04-28 17:45:49 +08:00
q792602257 42d44800b6 feat(user): sqlc queries for users and sessions 2026-04-28 17:40:30 +08:00
q792602257 62ff9ed1fe feat(user): session token generator with sha256 storage hash 2026-04-28 15:50:47 +08:00
q792602257 da316725fc feat(user): argon2id password hashing helpers 2026-04-28 15:46:23 +08:00
q792602257 46fda4f594 feat(user): domain types and Service interface 2026-04-28 15:39:38 +08:00
q792602257 782247a239 feat(http/mw): bearer token auth middleware with optional mode 2026-04-28 15:34:38 +08:00
q792602257 f88c352e55 feat(http/mw): structured request logger middleware 2026-04-28 15:26:05 +08:00
q792602257 e01db86fb6 feat(http/mw): recover middleware with structured panic log 2026-04-28 15:10:55 +08:00
q792602257 5bd56de013 feat(http/mw): request id middleware with context propagation 2026-04-28 15:04:00 +08:00
q792602257 98c9ce139f feat(http): chi router skeleton + Google-style error response 2026-04-28 14:59:02 +08:00
q792602257 b26a7e9a6f feat(crypto): AES-256-GCM encryptor for secret fields 2026-04-28 14:53:28 +08:00
q792602257 b95bd13377 feat(errs): AppError type with HTTP status mapping 2026-04-28 14:49:43 +08:00
q792602257 222335e604 fix(db): add MaxConnLifetimeJitter to prevent synchronized conn expiration storms 2026-04-28 14:45:02 +08:00
q792602257 903d872e3f feat(db): add pgxpool with health check and integration test 2026-04-28 14:32:37 +08:00
q792602257 d491a7047a feat(sqlc): scaffold sqlc config and placeholder queries 2026-04-28 14:23:53 +08:00
q792602257 5c5687b9dc feat(db): add 0001_init migration (users/sessions/notifications/audit) 2026-04-28 14:13:18 +08:00
q792602257 d7127351a7 feat(db): add golang-migrate runner 2026-04-28 14:07:19 +08:00
q792602257 34b8cd09e6 fix(logger): expose AddSource option; FromEnv enables caller in non-dev (spec §8.2) 2026-04-28 14:02:10 +08:00
q792602257 b4933a6fd1 feat(logger): slog-based logger with JSON and text handlers 2026-04-28 13:53:02 +08:00
q792602257 baf296abfb fix(config): redact MasterKey type; drop os.Clearenv; add hex validation test 2026-04-28 13:44:06 +08:00
q792602257 26d6c72c33 feat(config): viper-based config loader with env + file + master key validation 2026-04-28 13:30:14 +08:00
q792602257 c5071d93eb chore: add dev postgres via docker compose (verification deferred -- docker not installed) 2026-04-28 13:21:38 +08:00
q792602257 14765eac25 fix(scaffold): golangci-lint v2 format; posix shell note; drop redundant .gitkeep 2026-04-28 12:47:08 +08:00
q792602257 1d38ce90bb chore: initialize repo skeleton with Makefile and lint config 2026-04-28 12:33:46 +08:00