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)
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
---
|
||||
phase: 06-new-backends
|
||||
plan: "03"
|
||||
subsystem: ui
|
||||
tags: [react, wizard, rclone, sftp, onedrive, gcs, b2, vitest]
|
||||
|
||||
# Dependency graph
|
||||
requires:
|
||||
- phase: 06-new-backends/06-01
|
||||
provides: OneDrive, GCS, B2 registry entries and schemas
|
||||
- phase: 06-new-backends/06-02
|
||||
provides: SFTP registry entry, SftpAuthToggle component, RCLONE_TYPE_MAP and BACKEND_SCHEMAS extended for all 7 backends
|
||||
|
||||
provides:
|
||||
- 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
|
||||
|
||||
affects:
|
||||
- 07-validation-ux — RemoteConfigStep is the primary config form; any field-level validation work targets these same fields
|
||||
|
||||
# Tech tracking
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns:
|
||||
- Three-branch JSX ternary in RemoteConfigStep (azureblob → sftp → registry loop)
|
||||
- Auth toggle subcomponent pattern (SftpAuthToggle mirrors AzureAuthToggle)
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- src/components/wizard/RemoteConfigStep.tsx
|
||||
|
||||
key-decisions:
|
||||
- "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"
|
||||
|
||||
patterns-established:
|
||||
- "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"
|
||||
|
||||
requirements-completed:
|
||||
- BACK-01
|
||||
- BACK-02
|
||||
- BACK-03
|
||||
- BACK-04
|
||||
|
||||
# Metrics
|
||||
duration: ~10min
|
||||
completed: 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*
|
||||
Reference in New Issue
Block a user