Skip to content

[EPIC] Secret Management Frontend (Password Vault UI)Β #191

@kevalyq

Description

@kevalyq

🎯 Epic Overview

Build a comprehensive Secret Management UI for SecPal with encrypted field storage, file attachments, sharing, and full offline PWA support. Backend API (SecPal/api#173) is complete βœ…


πŸ“¦ Phases

βœ… Phase 1: Secret List & Detail View - MERGED 22.11.2025

Core UI for viewing secrets in list and detail views with search, filtering, and read-only display.

Deliverables:

  • βœ… SecretList.tsx - Grid/list view with search/filter
  • βœ… SecretDetail.tsx - Full detail view with encrypted fields
  • βœ… SecretCard.tsx - Reusable card component
  • βœ… API integration: getSecrets(), getSecretById()

PR: #197 (merged 22.11.2025)
Tests: 31 new tests (450 total passing)
Coverage: 87.95%
Status: βœ… Complete
Effort: M (3-4 days) - Actual: 3 days


βœ… Phase 2: Secret Create/Edit Forms - MERGED 22.11.2025

Forms for creating and editing secrets with field-level encryption validation.

Deliverables:

  • βœ… SecretForm.tsx - Create/edit form with validation
  • βœ… SecretCreate.tsx - Create page
  • βœ… SecretEdit.tsx - Edit page
  • βœ… API integration: createSecret(), updateSecret(), deleteSecret()

PR: #198 (merged 22.11.2025)
Tests: 28 new tests (all passing)
Routes: /secrets/new, /secrets/:id/edit
Status: βœ… Complete
Effort: M (3-4 days) - Actual: 3 days


βœ… Phase 3: File Attachments UI Integration - MERGED 22.11.2025

Integrate existing encrypted file attachment system into secret detail view.

Deliverables:

  • βœ… AttachmentUpload.tsx - Drag-and-drop with validation
  • βœ… AttachmentPreview.tsx - Image/PDF preview modal
  • βœ… AttachmentList integration in SecretDetail.tsx
  • βœ… Upload/download encrypted files
  • βœ… Attachment metadata display

PR: #200 (merged 22.11.2025)
Tests: 21 new tests (547 total passing)
Coverage: 87.95%
Status: βœ… Complete
Effort: S (1-2 days) - Actual: 2 days


πŸ”œ Phase 4: Secret Sharing UI

UI for sharing secrets with other users (view/edit permissions, expiration).

Deliverables:

  • SecretShareDialog.tsx - Share modal with user search
  • ShareList.tsx - Display active shares
  • API integration: shareApi.ts (share, revoke, list shares)

Status: 🟑 Ready to start (Phase 3 complete)
Effort: M-L (4-5 days)


πŸ”œ Phase 5: Offline Support & PWA Integration

IndexedDB caching, offline sync queue, background sync, conflict resolution.

Deliverables:

  • stores/secretStore.ts - Dexie.js schema for secrets
  • Offline sync queue integration
  • Service Worker caching strategies
  • ConflictResolutionDialog.tsx - Resolve sync conflicts
  • Offline badges and sync status UI

Status: ⏸️ Blocked by Phase 4
Effort: L (5-6 days)


πŸ“Š Epic Summary

Total Effort: ~16-20 days
Progress: 3/5 phases complete (60%)
Completed Issues: #192, #193, #194
Remaining Issues: #195, #196
Dependencies:

Tech Stack:

  • React 18 + TypeScript
  • Catalyst UI Kit (Tailwind Labs)
  • React Router v7
  • Dexie.js (IndexedDB)
  • Workbox (Service Worker)
  • Zero-knowledge encryption (AES-GCM-256)

βœ… Definition of Done (Epic)


Labels: Epic, Priority: High
Estimated Completion: ~4 weeks (sequential phases)
Current Progress: 60% complete (8/20 days)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    βœ… Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions