Commit Graph

253 Commits

Author SHA1 Message Date
chattie
cf67f51d07 feat(F-071): completed feature 2026-08-19 19:04:41 +02:00
chattie
16e4e86fbe docs: update current.md and history.md after F-070 close 2026-08-19 18:22:05 +02:00
chattie
4b12cacd65 feat(F-070): completed feature 2026-08-19 18:21:01 +02:00
chattie
60a567d22f docs: update history and current after F-069 close 2026-08-19 18:10:35 +02:00
chattie
ddcf2e0c28 feat(F-069): completed feature 2026-08-19 18:09:23 +02:00
chattie
ba2ac939c7 feat(F-068): completed feature 2026-08-19 17:36:09 +02:00
chattie
f62bd6a578 feat(F-067): completed feature 2026-08-19 17:30:00 +02:00
chattie
9f1858f6d7 feat(F-066): completed feature 2026-08-19 17:22:39 +02:00
chattie
e60e22ca30 feat(F-065): completed feature 2026-08-19 17:12:25 +02:00
chattie
a6d65310df feat(F-064): completed feature 2026-08-19 17:09:37 +02:00
chattie
c34241134f feat(F-063): completed feature 2026-08-19 17:07:45 +02:00
chattie
52e30c39d7 feat(F-062): completed feature 2026-08-19 17:02:14 +02:00
chattie
e0411bc5a4 feat(F-061): completed feature 2026-08-19 16:56:06 +02:00
chattie
5e2e935f76 feat(F-060): completed feature 2026-08-19 16:49:16 +02:00
chattie
72ba84456c feat(F-059): completed feature 2026-08-19 15:32:56 +02:00
chattie
4cdb5fb487 feat(F-058): completed feature 2026-08-19 15:17:51 +02:00
chattie
9c4557a1bf feat(F-057): completed feature 2026-08-19 15:10:47 +02:00
chattie
a967e49851 feat(F-056): completed feature 2026-08-19 15:10:09 +02:00
chattie
cc84f24658 feat(F-055): completed feature 2026-08-19 13:48:32 +02:00
chattie
de41a42d88 feat(F-054): completed feature 2026-08-19 13:15:30 +02:00
chattie
6a74f5ede6 feat(F-053): completed feature 2026-08-19 10:48:35 +02:00
chattie
adf1d20c4c feat(F-052): completed feature 2026-08-19 10:47:17 +02:00
chattie
30c131a809 feat(F-051): completed feature 2026-08-19 10:43:17 +02:00
chattie
984f278bca feat(F-050): completed feature 2026-08-19 07:54:36 +02:00
chattie
e86034a62c feat(F-049): completed feature 2026-08-19 07:34:15 +02:00
chattie
ae922c09d7 feat(F-048): completed feature 2026-08-19 07:18:17 +02:00
chattie
835ab66eda feat(F-048): completed feature 2026-08-19 07:17:14 +02:00
chattie
8ee1938af9 feat(BD-09): completed feature 2026-08-18 06:23:37 +02:00
chattie
60a8dc01ed feat(ADM-41): completed feature 2026-08-17 22:34:41 +02:00
chattie
6e9006f32d feat(FE-04): completed feature 2026-08-17 22:33:40 +02:00
chattie
543ef98e44 feat(ADM-28): completed feature 2026-08-17 22:31:41 +02:00
chattie
978ea028ce feat(ADM-40): completed feature 2026-08-17 22:31:41 +02:00
chattie
d54e556049 feat(ADM-39): completed feature 2026-08-17 22:31:41 +02:00
chattie
194ebb3bb0 feat(ADM-36): completed feature 2026-08-17 22:31:40 +02:00
chattie
71a17376b6 feat(FE-01): completed feature 2026-08-17 22:31:32 +02:00
chattie
848ff7fa09 feat(ADM-026): completed feature 2026-08-17 22:31:31 +02:00
chattie
6d533adca5 feat(ADM-025): completed feature 2026-08-17 22:31:31 +02:00
chattie
bb8803528d feat(ADM-022): completed feature 2026-08-17 22:31:31 +02:00
chattie
2450e2c6fe feat(ADM-021): completed feature 2026-08-17 22:31:31 +02:00
chattie
720bc489b1 feat(ADM-020): completed feature 2026-08-17 22:31:31 +02:00
chattie
18a9a4bec1 feat(ADM-019): completed feature 2026-08-17 22:31:31 +02:00
chattie
7c43ee8cf8 feat(BD-10): completed feature 2026-08-17 22:30:29 +02:00
chattie
2e5ca24271 feat(BD-08): completed feature 2026-08-17 22:30:10 +02:00
chattie
5ebf0dd325 feat(BD-07): completed feature 2026-08-17 22:30:10 +02:00
chattie
405bdd86a4 feat(BD-06): completed feature 2026-08-17 22:30:10 +02:00
chattie
d595b4871f feat(ADM-018): completed feature 2026-08-17 22:23:10 +02:00
rikrdo
cf1c69fc8b chore(harness): isolate pi stage execution 2026-08-15 09:51:25 +02:00
rikrdo
546971280f feat(F-006): users profile, addresses and RBAC
- users module: profile + address CRUD behind use cases (users_profiles,
  users_addresses)
- roles customer/admin on identity_users; role resolved from DB per request
- shared auth contract (Authenticate, requireRole, requireOwnerOrAdmin)
  injected from composition root; users never imports identity
- authorization runs before existence checks; address SQL scoped by user_id
- @fastify/cookie registered once at app root (cross-module)
- migrations 003_identity_roles + 004_users (reversible)
- no new npm dependencies; tests: unit 52, integration 22

Gates: reviewer/security/qa APPROVED; verify.sh green
2026-08-15 09:28:15 +02:00
rikrdo
75293f39bc feat(identity): F-005 register/login/logout with argon2 sessions and rate limiting
- Hexagonal identity module: domain ports, use cases, argon2id hasher, pg repos
- Migration 002_identity: identity_users + identity_sessions (token hash only)
- Opaque 512-bit session tokens; DB stores SHA-256 hash; 7-day TTL in SQL
- Cookie HttpOnly + Secure (COOKIE_SECURE, default true) + SameSite=Lax
- LoginRateLimiter: 10 failures -> 429 + Retry-After, 15-min cooldown
- Anti-enumeration: identical generic 401 + dummy-hash timing equalization
- buildApp gains optional pool/cookieSecure; foundation-only app preserved
- 47 unit + 14 integration tests; live smoke covers all acceptance criteria
2026-08-14 22:58:32 +02:00
rikrdo
4851692031 feat(F-004): typed fail-fast config and feature flag module
- loadConfig: pure over env object, accumulates all problems, names var names only
- DATABASE_URL now required at startup; PORT/HOST/LOG_LEVEL/NODE_ENV/REDIS_URL defaulted
- flags module behind FeatureFlagProvider; unknown flags OFF; runtime setEnabled (no redeploy)
- buildApp decorates app.flags; server.ts fail-fast before app boot
- tests caught and fixed flag-store case-normalization bug before gates
- zero new dependencies; all gates approved; verify.sh green
2026-08-14 22:29:18 +02:00