Commit Graph

11 Commits

Author SHA1 Message Date
3145dba255 fix(lint): resolve all golangci-lint v2 issues
- Disable revive exported/package-comments rules (style, not correctness)
- Use errors.Is instead of == for pgx.ErrNoRows comparisons
- Use errors.As instead of type assertion on validator errors
- Use http.NewRequestWithContext instead of client.Get (noctx)
- Check resp.Body.Close error return (errcheck)
- Run gofmt on files with formatting drift
2026-02-22 10:09:46 +01:00
dd5366f931 fix(lint): remove gosimple (merged into staticcheck in golangci-lint v2) 2026-02-22 10:05:37 +01:00
4b871c67cc fix(lint): remove goimports from linters (formatter in golangci-lint v2) 2026-02-22 10:04:09 +01:00
f6f07b2139 fix(deploy): add seccompProfile RuntimeDefault to satisfy PodSecurity restricted policy 2026-02-22 10:03:41 +01:00
a58368e9d0 fix(lint): move gofmt to formatters section for golangci-lint v2 2026-02-22 10:02:25 +01:00
015189e648 fix(ci): force GOTOOLCHAIN=local to compile golangci-lint with go1.25 2026-02-22 09:57:06 +01:00
a12c1b48f1 fix(ci): correct registry to somegit.dev, add golangci-lint v2 version field 2026-02-22 09:50:46 +01:00
10e1d15462 chore(deploy): remove superseded raw k8s manifests 2026-02-22 09:33:41 +01:00
7780c3378b feat(deploy): add Helm chart and update CI for k8s deployment
- Replace raw k8s manifests with a full Helm chart (deploy/helm/)
- Add CloudNativePG cluster with PostGIS extensions and hcloud-volumes storage
- Add DragonflyDB (Redis-compatible) cache via operator CRD
- Add migration Job as Helm pre-install/pre-upgrade hook
- Add NetworkPolicy restricting ingress to nginx-gateway, egress to DB/cache/DNS/HTTPS
- Add ServiceAccount with automountServiceAccountToken disabled
- Use HTTPRoute (Gateway API) instead of Ingress to match cluster setup
- Fix Dockerfile: explicit UID 65534, add golang-migrate CLI for migration Job
- Update CI: push immutable SHA tags, deploy via helm upgrade --install --atomic
2026-02-22 09:32:01 +01:00
a1d93f7a8e feat: implement MVP backend API
Go backend with Gin, pgx, Valkey (go-valkey), and PostGIS.

Domains:
- Market search with PostGIS geo-queries (ST_DWithin, ST_Distance),
  German full-text search (tsvector + ILIKE fallback for compound words),
  date range filtering, pagination, and slug-based detail endpoint
- Auth with email+password (bcrypt), JWT access tokens (15min),
  session tokens (30d, dual Valkey+Postgres storage), OAuth
  (Google/GitHub/Facebook), magic links, and TOTP 2FA
- User profile with CRUD, soft-delete (30d grace), and restore

Infrastructure:
- 6 database migrations (users, sessions, oauth_accounts, magic_links,
  markets with PostGIS+FTS, totp_secrets)
- Middleware: recovery, request ID, structured logging (slog), CORS,
  per-IP rate limiting, JWT auth
- Seed data: 10 medieval markets across DACH region
- Docker Compose (PostGIS 17 + Valkey 8), multi-stage Dockerfile,
  Woodpecker CI pipeline, Kubernetes manifests
- Justfile, golangci-lint config, env example
2026-02-18 05:52:20 +01:00
9784d93a4a initial commit 2026-02-18 04:49:23 +01:00