Commit Graph

36 Commits

Author SHA1 Message Date
chattie
71165911ab fix(storefront+TPV): storefront live search proxy, product expiry/weight display, TPV receipt popup timestamp 2026-08-24 22:11:04 +02:00
chattie
2ed2ac8cd1 fix(admin): trend chart height 100px, logs 3-column layout, KPI cards clickable links, AI timeout 120s env var, X/Pinterest settings 2026-08-24 22:09:12 +02:00
chattie
0dcb0f63a0 feat(POS-FIX-6): completed feature 2026-08-24 15:40:01 +02:00
chattie
d103b634aa feat(POS-FIX-11): completed feature 2026-08-24 08:13:43 +02:00
chattie
2467a02dd4 feat(POS-FIX-7): completed feature 2026-08-24 07:23:55 +02:00
chattie
18a518e58b F-201 F-202 F-203: POS cash close report + email + PIN admin
F-201: GET /pos/reports/cash-close/:id with financial summary, sales
  by state, payments breakdown, items sold. Extended /pos/sessions/:id.

F-202: Cash close email sent on session close to smtpReportEmail
  (best-effort). smtpReportEmail field added to admin SMTP settings.

F-203: Admin POS terminal config: selfpayMode, closeSessionRequiresPin,
  closeSessionPin (4-6 digits) with dedicated settings section.
2026-08-23 09:24:37 +02:00
chattie
4b3a506166 feat(F-193): completed feature 2026-08-23 07:58:50 +02:00
chattie
6b93e91ef4 feat(F-189): completed feature 2026-08-22 23:02:00 +02:00
chattie
ca12f46bff feat(F-187): completed feature 2026-08-22 22:23:50 +02:00
chattie
a3f6edd325 feat(F-186): completed feature 2026-08-22 22:08:30 +02:00
chattie
b79f50f0b1 feat(F-185): completed feature 2026-08-22 19:30:45 +02:00
chattie
abdb03b6b5 feat(F-177): completed feature 2026-08-22 18:54:41 +02:00
chattie
699dfc6fca feat(FIX-158): completed feature 2026-08-22 17:26:02 +02:00
chattie
926add3c97 feat(F-140): completed feature 2026-08-22 13:16:27 +02:00
chattie
62a3681657 feat(F-145): completed feature 2026-08-22 12:47:16 +02:00
chattie
2ea628fd62 feat(F-144): completed feature 2026-08-22 12:40:23 +02:00
chattie
0a1d32ecc3 feat(POS-002): completed feature 2026-08-21 21:55:43 +02:00
chattie
20f92b701e feat(F-136): completed feature 2026-08-21 21:10:29 +02:00
chattie
b9610bf546 feat(F-120): completed feature 2026-08-21 15:31:13 +02:00
chattie
77133c0ecf feat(F-112): completed feature 2026-08-21 13:31:28 +02:00
chattie
c05c0b0582 feat(F-113): completed feature 2026-08-21 12:27:13 +02:00
chattie
027cacd871 feat(F-102): completed feature 2026-08-21 12:02:15 +02:00
chattie
b87f4f0c85 feat(F-111): completed feature 2026-08-21 10:10:35 +02:00
chattie
dca7c3214f feat(F-106): completed feature 2026-08-21 09:27:55 +02:00
chattie
5458789634 feat(F-105): completed feature 2026-08-21 08:06:31 +02:00
chattie
c07776822d feat(F-103): completed feature 2026-08-21 07:55:18 +02:00
chattie
822bc7546c feat(F-086): completed feature 2026-08-20 06:13:37 +02:00
chattie
22ad15325f feat(F-083): completed feature 2026-08-20 06:08:32 +02:00
chattie
352033e3fc feat(F-072): completed feature 2026-08-19 19:22:08 +02:00
chattie
cf67f51d07 feat(F-071): completed feature 2026-08-19 19:04:41 +02:00
chattie
ddcf2e0c28 feat(F-069): completed feature 2026-08-19 18:09:23 +02:00
chattie
835ab66eda feat(F-048): completed feature 2026-08-19 07:17:14 +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
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