Files
Ready2Blob/.planning/ROADMAP.md
T
kawa 97651b5d59 docs(03-03): complete BackendSelectionStep plan
- SUMMARY.md: BackendSelectionStep TDD execution, WIZD-01 + WIZD-04
- STATE.md: progress updated to 85% (11/13), decisions added
- ROADMAP.md: phase 3 plan progress updated (3/5 summaries)
2026-03-27 09:34:53 +01:00

5.8 KiB

Roadmap: Ready2Blob

Overview

Ready2Blob is built inside-out: architectural foundation first, then pure generator functions, then wizard UI, then the download and security layer. This order front-loads the highest-risk correctness requirements (PowerShell encoding, SYSTEM-context paths, credential handling) before any user-facing code exists, and keeps all four phases independently verifiable.

Phases

Phase Numbering:

  • Integer phases (1, 2, 3): Planned milestone work
  • Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)

Decimal phases appear between their surrounding integers in numeric order.

  • Phase 1: Foundation - Project scaffold, TypeScript types, Backend Schema Registry, Zod schemas, and wizard state store (completed 2026-03-26)
  • Phase 2: Generators - Pure builder functions for rclone.conf and PowerShell deployment scripts, plus download manager (completed 2026-03-26)
  • Phase 3: Wizard UI - Multi-step wizard with backend selector, dynamic backend forms, and deployment options
  • Phase 4: Review, Download & Security - Live config preview, security warning gate, all download buttons, clipboard copy, and ZIP bundle

Phase Details

Phase 1: Foundation

Goal: The architectural skeleton exists and all downstream phases can build on it without rework Depends on: Nothing (first phase) Requirements: None directly — this phase creates the infrastructure that all v1 requirements depend on Success Criteria (what must be TRUE):

  1. Vite dev server starts and serves a React + TypeScript app with no console errors
  2. The Backend Schema Registry defines at least Azure Blob, S3, and S3-compatible backends with typed field definitions
  3. Zod validation schemas can be derived from the registry and validate correct/incorrect input correctly
  4. The WizardState useReducer store initializes, accepts dispatch actions, and state is accessible via Context Plans: 4 plans

Plans:

  • 01-01-PLAN.md — Scaffold Vite 6 + React 18 + TypeScript 5, install all Phase 1 deps, configure Tailwind v4, set up Vitest
  • 01-02-PLAN.md — Create Backend Schema Registry (registry.ts) and Wave 0 test stubs for SC-2, SC-3, SC-4
  • 01-03-PLAN.md — Implement Zod schemas derived from registry (index.ts), all schema tests green
  • 01-04-PLAN.md — Implement WizardState types, pure reducer, Context provider, and wire into App

Phase 2: Generators

Goal: Given a completed wizard state, the app can produce correct, deployment-ready file content for all output types Depends on: Phase 1 Requirements: CONF-01, DEPL-01, DEPL-02, DEPL-03, DEPL-04, DEPL-05 Success Criteria (what must be TRUE):

  1. buildRcloneConf() produces a valid INI-format rclone.conf string with correct key/value pairs for each supported backend
  2. The Intune install script writes config using UTF-8 no-BOM encoding, places it at the correct path, and never echoes credential values
  3. The Intune detection script exits 0 when both rclone.exe and the config file are present, and non-zero otherwise
  4. The RMM script is self-contained, idempotent, and runs correctly in a generic SYSTEM context
  5. Toggling "include rclone installation" adds a download step to all generated scripts; disabling it removes it Plans: 4 plans

Plans:

  • 02-01-PLAN.md — Wave 0 test stubs for all four generators + index.ts barrel
  • 02-02-PLAN.md — Implement buildRcloneConf (CONF-01)
  • 02-03-PLAN.md — Implement buildIntuneInstall + buildIntuneDetection + ps-helpers (DEPL-01, DEPL-02, DEPL-04, DEPL-05)
  • 02-04-PLAN.md — Implement buildRmmScript (DEPL-03, DEPL-04, DEPL-05)

Phase 3: Wizard UI

Goal: An IT admin can navigate the full wizard from backend selection through deployment options without losing data Depends on: Phase 1 Requirements: WIZD-01, WIZD-02, WIZD-03, WIZD-04, BACK-01, BACK-02, BACK-03 Success Criteria (what must be TRUE):

  1. User can select a storage backend from a list where Azure Blob and S3 appear first
  2. User can navigate forward through all wizard steps (backend selection → backend config → deployment options) and back without losing entered values
  3. User can configure an Azure Blob remote by entering a storage account name and choosing SAS token or access key authentication
  4. User can configure an Amazon S3 or S3-compatible remote (access key, secret, region, optional endpoint override)
  5. User can set a custom remote name and the field rejects names with invalid characters Plans: TBD

Phase 4: Review, Download & Security

Goal: An IT admin can see exactly what will be deployed, acknowledge the security implications, and download any combination of generated files Depends on: Phases 2, 3 Requirements: CONF-02, CONF-03, DOWN-01, DOWN-02, DOWN-03, DOWN-04, DOWN-05, DOWN-06, SECU-01, SECU-02, SECU-03 Success Criteria (what must be TRUE):

  1. A live preview of the rclone.conf content updates in real time as the user fills in the wizard forms
  2. Before any download is enabled, the user must acknowledge a security warning that credentials are stored in plain text
  3. The app prominently displays that no data is sent to any server, and wizard state is never written to localStorage or sessionStorage
  4. User can download each artifact individually (rclone.conf, Intune install script, Intune detection script, RMM script) or all together as a ZIP bundle
  5. User can copy any output block to clipboard without downloading Plans: TBD

Progress

Execution Order: Phases execute in numeric order: 1 → 2 → 3 → 4

Phase Plans Complete Status Completed
1. Foundation 4/4 Complete 2026-03-26
2. Generators 4/4 Complete 2026-03-26
3. Wizard UI 3/5 In Progress
4. Review, Download & Security 0/? Not started -