Files
kite/.planning/STATE.md
T
2026-05-21 21:31:20 +02:00

2.6 KiB

gsd_state_version, milestone, milestone_name, current_phase, status, last_updated, progress
gsd_state_version milestone milestone_name current_phase status last_updated progress
1.0 v1.0 milestone planning 2026-05-21T19:31:20.618Z
total_phases completed_phases total_plans completed_plans percent
5 0 0 0 0

Project State

Project: DocuVault Status: Planning Current Phase:Last Updated: 2026-05-21

Phase Status

Phase Name Status
1 Infrastructure Foundation Not Started
2 Users & Authentication Not Started
3 Document Migration & Multi-User Isolation Not Started
4 Folders, Sharing, Quotas & Document UX Not Started
5 Cloud Storage Backends Not Started

Current Position

Phase:Plan:Progress: ░░░░░░░░░░ 0%

Performance Metrics

Metric Value
Phases complete 0 / 5
Requirements mapped 54 / 54
Plans written 0
Plans complete 0

Accumulated Context

Key Decisions

Decision Rationale
PostgreSQL + MinIO Multi-user quotas and horizontal scaling require shared, consistent state
HKDF per-user key derivation Single Fernet key would be catastrophic on leak — must be derived before first credential is stored
Presigned MinIO URL flow FastAPI handles metadata only; bytes never pass through the API layer
Atomic PostgreSQL quota UPDATE Never perform quota arithmetic in Python between two DB statements
JWT in httpOnly cookie Refresh token in httpOnly cookie; access token in Pinia memory only — never localStorage
Refresh token family revocation RFC 9700 — reuse of a rotated token revokes entire family and alerts user
BackgroundTasks replacement FastAPI BackgroundTasks is per-instance; replace with Celery+Redis or pgqueuer before horizontal scale
Admin impersonation excluded Explicit architectural exclusion — no endpoint or UI pathway; violates privacy-first core value

Open Questions

  • Celery + Redis vs pgqueuer for Phase 3 (depends on Redis availability in deployment target)
  • Verify cloud SDK minor versions on PyPI before Phase 5 pinning
  • Confirm PyOTP valid_window default in current docs (recommend valid_window=1 for ±30s clock drift)
  • Audit existing codebase for any bcrypt hashes before removing passlib in Phase 2

Blockers

None.

Session Continuity

Updated at each phase transition.

Field Value
Last session 2026-05-21 — Roadmap created
Next action Run /gsd:plan-phase 1 to begin Phase 1 planning
Pending decisions See Open Questions above