Commit Graph

50 Commits

Author SHA1 Message Date
chattie
c4d0206d5d chore: update reporting handoff status 2026-08-21 22:07:36 +02:00
chattie
852b1c1873 feat(F-137): completed feature 2026-08-21 21:03:28 +02:00
chattie
a3ddb93dc5 chore: finalize F-115, F-116, F-117 (SKU revert, ES translations, Title Case fix) 2026-08-21 14:27:05 +02:00
chattie
4e4ebfdc4f chore: finalize F-100, F-112 backlog close 2026-08-21 13:33:01 +02:00
chattie
7418624df1 chore: finalize F-113 / F-114 work, deploy services 2026-08-21 13:21:13 +02:00
chattie
21aeac307e feat(F-114): completed feature 2026-08-21 13:01:42 +02:00
chattie
c05c0b0582 feat(F-113): completed feature 2026-08-21 12:27:13 +02:00
chattie
840c839f67 feat(F-108): completed feature 2026-08-21 09:57:11 +02:00
chattie
5177a851aa feat(F-099): completed feature 2026-08-21 07:29:07 +02:00
chattie
f1bf8c90c3 chore: finalize F-097 runtime state 2026-08-20 22:33:41 +02:00
chattie
d211797a09 chore: finalize F-096 runtime state 2026-08-20 22:27:33 +02:00
chattie
5561776627 feat(F-096): completed feature 2026-08-20 22:12:01 +02:00
chattie
4b60db026b feat(F-095): completed feature 2026-08-20 22:05:54 +02:00
chattie
418bdca7f4 feat(F-094): completed feature 2026-08-20 22:01:54 +02:00
chattie
c56037492d feat(F-093): completed feature 2026-08-20 21:57:43 +02:00
chattie
387e9b2943 chore: finalize F-092 runtime state 2026-08-20 21:52:17 +02:00
chattie
715a8dac56 feat(F-092): completed feature 2026-08-20 21:51:46 +02:00
chattie
4d0970df5d feat(F-091): completed feature 2026-08-20 21:47:31 +02:00
chattie
d29c9b71c9 chore: finalize F-090 runtime state 2026-08-20 21:41:09 +02:00
chattie
84bf380987 feat(F-090): completed feature 2026-08-20 21:40:41 +02:00
chattie
760b4d0be2 chore: finalize F-089 runtime state 2026-08-20 21:34:50 +02:00
chattie
a591992840 feat(F-089): completed feature 2026-08-20 21:34:12 +02:00
chattie
fbf6eeae25 chore: finalize F-088 runtime state 2026-08-20 21:30:12 +02:00
chattie
699c01ade5 feat(F-088): completed feature 2026-08-20 21:29:14 +02:00
chattie
fffb52721a feat(F-078): completed feature 2026-08-20 05:55:46 +02:00
chattie
d799dd07d7 docs: update history and current after F-077 close 2026-08-19 19:34:05 +02:00
chattie
77b9b590b3 feat(F-077): completed feature 2026-08-19 19:33:26 +02:00
chattie
5a31f3945e feat(F-076): completed feature 2026-08-19 19:31:46 +02:00
chattie
a17dad6bd0 feat(F-075): completed feature 2026-08-19 19:29:11 +02:00
chattie
e699285b1d feat(F-074): completed feature 2026-08-19 19:25:39 +02:00
chattie
1fe9b8babd feat(F-073): completed feature 2026-08-19 19:23:44 +02:00
chattie
9bdcc8e20e docs: update history and current after F-071 close 2026-08-19 19:05:27 +02:00
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
60a567d22f docs: update history and current after F-069 close 2026-08-19 18:10:35 +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
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
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
d595b4871f feat(ADM-018): completed feature 2026-08-17 22:23:10 +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
rikrdo
41f144d7bd feat(F-003): HTTP foundation with request context and error envelope
- request_id generated or sanitized-propagated on every request (x-request-id)
- structured JSON logging (pino), one correlated line per request, injectable logger
- error envelope v2 { error: { statusCode, code, message, details? }, requestId }
- 5xx messages always generic; stack traces stay in server logs only
- explicit parseJson (zod) input validation hook at the API layer
- README HTTP contract section; deps justified in spec/tech.md
- all gates approved; verify.sh green
2026-08-14 22:13:28 +02:00
rikrdo
425fedd13e feat(F-002): database foundation with migrations and dev compose
- node-pg-migrate + pg: baseline migration (extensions, app_meta) with working down
- src/infrastructure/db fail-fast pool and typed query helper
- docker-compose: postgres:16-alpine + redis:7-alpine with one-command up
- table naming convention <module>_<table> documented in README
- integration tests (6) against real PostgreSQL; strict identifier validation
  for test DDL after security-gate hardening round
- deps justified in spec/tech.md; all gates approved; verify.sh green
2026-08-14 22:00:16 +02:00
rikrdo
1d4eebca54 feat(F-001): scaffold modular monolith skeleton with boundary checker
- TypeScript + Fastify skeleton under project/ (src/modules, shared, infrastructure, app)
- scripts/check-module-boundaries.mjs enforcing module public-API rules (tested with fixtures)
- GET /health endpoint, error envelope without stack leakage
- specs/F-001-scaffold (SPEC/DESIGN/TASKS/TESTS), spec/tech.md dependency justification
- 30-ticket MercadoDeVida roadmap in backlog/features.json, spec/roadmap.md
- All gates approved: reviewer, security, qa; verify.sh green
2026-08-14 21:46:54 +02:00