Files
clienthub/.planning/REQUIREMENTS.md
T

2.7 KiB

Requirements: ClientHub v2.3 Email & Accesso

Defined: 2026-06-21 Core Value: Il cliente apre il link e vede esattamente a che punto è il suo progetto, cosa deve ancora succedere e cosa ha già approvato — senza dover scrivere email per chiedere aggiornamenti.

v2.3 Requirements

Email OTP Gate (AUTH-OTP-01)

Portale cliente blindato da email OTP. Nuovo client_emails table (whitelist) + otp_codes table (codice, email, expires_at, consumed). Resend come provider email. Sessione 30gg con cookie dopo verifica.

  • OTP-01: Admin può aggiungere e rimuovere email dalla whitelist di ogni cliente nell'admin UI
  • OTP-02: Cliente senza sessione OTP vede una schermata "inserisci email" invece della dashboard
  • OTP-03: Sistema invia OTP via Resend solo se l'email inserita è nella whitelist di quel cliente
  • OTP-04: Cliente inserisce il codice OTP ricevuto e ottiene sessione autenticata (cookie 30 giorni)
  • OTP-05: Codici OTP scadono dopo 15 minuti dall'invio
  • OTP-06: Endpoint OTP è rate-limited per prevenire brute force
  • OTP-07: Messaggi di errore OTP non rivelano se l'email è in whitelist o no (no enumeration)

Admin invia link deck pubblico al lead direttamente dall'admin UI. Usa stessa infrastruttura Resend del OTP gate.

  • SEND-01: Admin può inviare link /preventivo/[slug] via email al lead con un'azione dall'admin UI
  • SEND-02: Email inviata via Resend include link deck + nome cliente, template minimale in italiano

v2.4+ Backlog

Conversione Commerciale

  • PROP-03: Stripe Payment Link su deck pubblico /preventivo/[slug]
  • PROP-04: Auto-provisioning cliente/progetto/fasi al "Vinto" nel CRM

Post-Vendita

  • Phase 13: Gestione servizi attivi/ricorrenti post-vendita nel portale cliente (congelata da v2.1)

Out of Scope

Feature Reason
Self-registration cliente Solo whitelist admin-gestita — nessun accesso senza approvazione esplicita
Magic link senza OTP OTP è più sicuro e già deciso come design; magic link = scope creep
Email marketing / newsletter Non pertinente al portale
Multi-admin Ancora single admin per ora

Traceability

Requirement Phase Status
OTP-01 Pending
OTP-02 Pending
OTP-03 Pending
OTP-04 Pending
OTP-05 Pending
OTP-06 Pending
OTP-07 Pending
SEND-01 Pending
SEND-02 Pending

Coverage:

  • v2.3 requirements: 9 total
  • Mapped to phases: 0 (roadmap pending)
  • Unmapped: 9 ⚠️

Requirements defined: 2026-06-21 Last updated: 2026-06-21 — initial definition