tasks.md 1.8 KB

Implementation Tasks - OAuth 2.0 Email Support

Status Overview

Final Status: Production-Ready (2026-02-10) Requirements Coverage: 35/37 (95%)

Completed Tasks

Phase A: Critical Production Requirements (3 tasks)

  • 1. Retry logic with exponential backoff (1s, 2s, 4s) - Req: 5.1, 5.2
  • 2. Failed email storage after retry exhaustion - Req: 5.3
  • 3. Enhanced OAuth 2.0 error logging - Req: 5.4, 5.7

Session 2 additional fixes:

  • Credential validation changed to falsy check (nodemailer XOAuth2 compatibility)
  • PUT handler preserves secrets when empty values submitted
  • Config types changed to NonBlankString | undefined
  • GET response returns undefined for secrets
  • Browser autofill prevention (autoComplete="new-password")
  • Static IDs replaced with useId() hook (Biome lint compliance)

Baseline Implementation (12 tasks)

  • Configuration schema (4 config keys, encryption, NonBlankString types) - Req: 1.1, 1.5, 6.1
  • OAuth 2.0 transport creation (nodemailer Gmail service) - Req: 2.1, 2.2, 3.1-3.3, 3.5, 6.2
  • Service initialization and token management (S2S integration) - Req: 2.3, 2.5, 2.6, 3.6, 5.6, 6.2, 6.4
  • API validation and persistence (PUT/GET endpoints) - Req: 1.3, 1.4, 1.5, 1.6, 5.5, 6.5
  • Field-specific validation error messages - Req: 1.7
  • OAuth2Setting UI component (react-hook-form integration) - Req: 1.2, 4.1
  • AdminAppContainer state management (4 state properties) - Req: 4.2, 6.3
  • Mail settings form submission - Req: 1.3, 1.6, 1.7
  • Transmission method selection ('oauth2' option) - Req: 1.1, 1.2
  • Multi-language translations (en, ja, fr, ko, zh) - Req: 1.2, 4.1, 4.3

Not Implemented (Optional Enhancements)

  • Help text for 2 of 4 fields incomplete (Req 4.3)
  • Credential field masking in UI (Req 4.4)
  • Test email button for OAuth 2.0 (Req 4.5)