| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-02-15 | refactor(backend): introduce DI interfaces for testability | nsfisis | |
| Replace concrete *db.Queries and *pgxpool.Pool dependencies with db.Querier and db.TxManager interfaces across all handlers, game hub, and auth. This enables unit testing with mocks. - Enable sqlc emit_interface to generate Querier interface - Add TxManager abstraction to encapsulate transactions - Convert auth package-level functions to Authenticator struct - Add TaskQueueInterface/TaskWorkerInterface for game.Hub - Add initial unit tests for game logic and API handlers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-15 | fix(backend): resolve TODO items for transactions, validation, and error ↵ | nsfisis | |
| handling - Wrap multi-step DB operations in transactions (signup, submit, game edit, task result processing) - Add game running checks to PostGamePlayCode and PostGamePlaySubmit - Hide ranking code when game is not yet finished - Replace silenced errors in processTaskResults with slog.Error logging - Add pgxpool.Pool to Handler/Hub structs for transaction support Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-15 | refactor(log): migrate from log to log/slog for structured logging | nsfisis | |
| Replace all usages of the standard log package with log/slog across backend and swift worker. Configure Echo's request logger to emit structured log attributes via slog instead of the default format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-15 | refactor(auth): replace JWT authentication with server-side sessions | nsfisis | |
| Migrate from stateless JWT tokens to server-side session management backed by PostgreSQL. Sessions are hashed with SHA-256 before storage, cleaned up periodically, and invalidated on logout. This removes the need for JWT_SECRET/COOKIE_SECRET environment variables and the golang-jwt dependency. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-14 | feat(backend): update dependencies | nsfisis | |
| 2026-02-13 | feat(auth): store JWT in HTTP-only cookie instead of JS-accessible cookie | nsfisis | |
| Prevent XSS-based token theft by making the JWT inaccessible to JavaScript. The backend now sets/clears the cookie via Set-Cookie headers, and the frontend retrieves user info from /api/me instead of decoding the JWT directly. - Add JWTCookieMiddleware to parse cookie and inject claims into context - Add /me and /logout endpoints to OpenAPI spec and handlers - Update PostLogin to return user object + Set-Cookie header - Replace Authorization header auth with cookie-based auth throughout - Rewrite frontend auth to use /api/me instead of jwt-decode - Remove jwt-decode dependency - Configure CORS with credentials for local dev Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-13 | feat(auth): add login rate limiting per IP | nsfisis | |
| Prevent brute-force attacks by limiting POST /login to 5 requests per minute per IP address using golang.org/x/time/rate. Unused entries are cleaned up after 10 minutes of inactivity. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | |||
| 2026-02-13 | refactor: rename module/package name | nsfisis | |
| 2025-08-17 | feat: update "PHPerKaigi" to "iOSDC Japan" | nsfisis | |
| 2025-08-14 | feat(backend,frontend): Replace hard-coded base path with environment variable | nsfisis | |
| 2025-03-17 | refactor(backend): remove unused field | nsfisis | |
| 2025-03-11 | refactor(backend): remove unnecessary comments | nsfisis | |
| 2025-03-08 | websocket to polling | nsfisis | |
| 2025-03-04 | change base path | nsfisis | |
| 2025-03-04 | update go package names | nsfisis | |
| 2024-08-18 | feat(backend): do not define local-only routes in prod env | nsfisis | |
| 2024-08-18 | feat(backend): forward all unknown requests to app server in local env | nsfisis | |
| 2024-08-17 | feat(backend): fetch user icon from fortee | nsfisis | |
| 2024-08-10 | fix(backend): fix base path of login/logout pages on local env | nsfisis | |
| 2024-08-10 | feat: prepend base path | nsfisis | |
| 2024-08-08 | feat(backend/worker): enable `revive` in `golangci-lint` | nsfisis | |
| 2024-08-08 | feat(backend/worker): enable `stylecheck` in `golangci-lint` | nsfisis | |
| 2024-08-08 | feat(backend/woerker): enable `errcheck` in `golangci-lint` | nsfisis | |
| 2024-08-08 | refactor(backend): move ownership of channel to send task results | nsfisis | |
| 2024-08-05 | feat: show execution result in play page | nsfisis | |
| 2024-08-05 | feat(backend): implement task queue processor | nsfisis | |
| 2024-08-05 | feat: implement task queue | nsfisis | |
| 2024-08-04 | feat: authenticate users in admin pages | nsfisis | |
| 2024-08-04 | feat(backend): add /logout to /admin/dashboard | nsfisis | |
| 2024-08-04 | feat(backend): serve /admin/* pages from api-server | nsfisis | |
| 2024-08-01 | refactor(backend): `Id` to `ID` in echo path params | nsfisis | |
| 2024-08-01 | refactor(backend): wrap ApiHandler with user authentication | nsfisis | |
| 2024-08-01 | feat: change procedure of game starting | nsfisis | |
| 2024-07-31 | feat: "iOSDC 2024" to "iOSDC Japan 2024" | nsfisis | |
| 2024-07-29 | feat(backend): partially implement gaming | nsfisis | |
| 2024-07-29 | feat(backend): use connection pool | nsfisis | |
| 2024-07-28 | refactor(backend): move game-related code to game module | nsfisis | |
| 2024-07-28 | refactor(backend): move config-related code to config.go | nsfisis | |
| 2024-07-28 | chore(backend): rename root module | nsfisis | |
| 2024-07-28 | refactor: remove /api/ prefix from openapi.yaml | nsfisis | |
| 2024-07-28 | feat(backend): user Logger and Recover middleware | nsfisis | |
| 2024-07-28 | feat(backend): handle JWT validation manually | nsfisis | |
| 2024-07-28 | backend: openapi | nsfisis | |
| 2024-07-27 | backend: jwt | nsfisis | |
| 2024-07-27 | organize dockerfiles and compose.yaml | nsfisis | |
| 2024-07-22 | backend: replace raw net/http with echo | nsfisis | |
| 2024-07-22 | change go module name | nsfisis | |
| 2024-07-22 | user login | nsfisis | |
| 2024-07-21 | add sqldef and sqlc | nsfisis | |
| 2024-07-21 | remove racing pages | nsfisis | |
