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

113 lines
4.0 KiB
Markdown

---
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*