normogen/docs/adr/README.md
goose d7d09482da docs: ADR for zero-knowledge encryption Phase 1
Records the decision: client-side AES-256-GCM, double-PBKDF2 auth/enc-key
split, server-as-blind-store, in-memory key lifecycle, and Phase 1 limitations
(forgotten password = data loss; Phase 2 recovery wrapping deferred).
2026-06-28 21:51:47 -03:00

1.8 KiB
Raw Blame History

Architecture Decision Records

This directory holds the project's decision records — the "why" behind the major technical choices. These were originally written during Phase 1 research (dated JanFeb 2026) and moved here from the old thoughts/research/ tree during the documentation reconciliation. They are historical context, not current specs.

Decisions

Record Topic
tech-stack-decision.md Master stack choice: Rust/Axum backend, React frontend, MongoDB, JWT
mongodb-schema-decision.md Document model + at-rest encryption approach
jwt-authentication-decision.md JWT access/refresh tokens, recovery phrases
frontend-decision-summary.md React (web) + React Native (mobile, future) split
state-management-decision.md Client state — superseded: decision was Redux Toolkit, actual code uses Zustand
monorepo-structure.md Repository layout (backend/, web/, mobile/, docs/)
backend-deployment-constraints.md Deployment requirements (Solaria, Docker)
mobile-health-frameworks-data.md HealthKit / Health Connect data-type reference (for future mobile work)
android-health-connect-data-types.md Android Health Connect data types
zero-knowledge-encryption.md Client-side zero-knowledge encryption (AES-256-GCM, double-PBKDF2, Phase 1)

Note

: Where a decision diverges from the implemented code (e.g. state management), the code is the source of truth and the ADR is kept only as historical record of the reasoning at the time.