Files
kawa 31a6d00a67 docs(06-03): complete new backends UI wiring plan
- SUMMARY.md: all 7 backends wired in RemoteConfigStep, human-verified
- STATE.md: progress updated to 100%, decision and metrics recorded
- ROADMAP.md: phase 6 marked Complete (4/4 plans)
2026-03-31 08:59:26 +02:00

4.0 KiB

phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, requirements-completed, duration, completed
phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established requirements-completed duration completed
06-new-backends 03 ui
react
wizard
rclone
sftp
onedrive
gcs
b2
vitest
phase provides
06-new-backends/06-01 OneDrive, GCS, B2 registry entries and schemas
phase provides
06-new-backends/06-02 SFTP registry entry, SftpAuthToggle component, RCLONE_TYPE_MAP and BACKEND_SCHEMAS extended for all 7 backends
RemoteConfigStep.tsx extended to handle all 7 BackendType values
SFTP branch with SftpAuthToggle (CSS-hidden password/private-key toggle)
OneDrive/GCS/B2 rendered via registry loop (no custom branch needed)
All four new backends visually verified in wizard UI by user
07-validation-ux — RemoteConfigStep is the primary config form; any field-level validation work targets these same fields
added patterns
Three-branch JSX ternary in RemoteConfigStep (azureblob → sftp → registry loop)
Auth toggle subcomponent pattern (SftpAuthToggle mirrors AzureAuthToggle)
created modified
src/components/wizard/RemoteConfigStep.tsx
Three-branch ternary: azureblob (AzureAuthToggle), sftp (SftpAuthToggle), all others (registry loop) — minimal custom branching, maximal registry reuse
OneDrive/GCS/B2 render entirely via registry loop with zero custom JSX branches — registry is the single source of truth
New auth-toggle pattern: import toggle component, add named branch in ternary, render host/user via FieldRenderer then toggle for pass/key fields
Registry-loop default: any new backend that doesn't need a custom auth toggle is automatically handled by the else branch
BACK-01
BACK-02
BACK-03
BACK-04
~10min 2026-03-30

Phase 06 Plan 03: New Backends UI Wiring Summary

RemoteConfigStep extended to all 7 backends via three-branch ternary — SFTP uses SftpAuthToggle, OneDrive/GCS/B2 render via registry loop, human-verified in running app

Performance

  • Duration: ~10 min
  • Started: 2026-03-30T16:15:00Z
  • Completed: 2026-03-30T16:25:00Z
  • Tasks: 2 (1 auto + 1 human-verify)
  • Files modified: 1

Accomplishments

  • Extended backendLabel record to cover all 7 BackendType values (onedrive, sftp, gcs, b2 added)
  • Added SFTP branch in JSX ternary: renders host + user via FieldRenderer, then SftpAuthToggle for pass/key_pem toggle
  • OneDrive, GCS, and B2 render through the existing registry loop — no new custom branches
  • Full Vitest suite green, zero TypeScript errors confirmed
  • All four new backends visually verified in the wizard UI by the user

Task Commits

Each task was committed atomically:

  1. Task 1: Extend RemoteConfigStep.tsx — backendLabel + sftp branch + all four new backends - 09adff0 (feat)
  2. Task 2: Human verify all four new backends in the wizard UI - human-approved (no code commit)

Plan metadata: (this docs commit — see below)

Files Created/Modified

  • src/components/wizard/RemoteConfigStep.tsx - Extended to handle all 7 backends; SFTP branch with SftpAuthToggle; backendLabel exhaustive over all BackendType values

Decisions Made

  • Three-branch ternary (azureblob / sftp / else) keeps custom logic minimal: only backends with non-standard auth flows get their own branch
  • OneDrive, GCS, and B2 required zero custom JSX because their fields are all standard input/password/select types fully covered by FieldRenderer and the registry loop

Deviations from Plan

None - plan executed exactly as written.

Issues Encountered

None.

User Setup Required

None - no external service configuration required.

Next Phase Readiness

  • All 7 backends are now wired end-to-end: registry → schema → rclone-conf → wizard UI
  • Phase 7 (Validation & UX Polish) can target any field in any of the 7 backends — the UI layer is complete
  • No blockers for Phase 7

Phase: 06-new-backends Completed: 2026-03-30