- SUMMARY.md: RED test stubs for all four generators + barrel - STATE.md: progress 63%, decisions recorded, session updated - ROADMAP.md: phase 2 plan progress updated (1/4 summaries) - REQUIREMENTS.md: CONF-01, DEPL-01-05 marked complete
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
- 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):
- Vite dev server starts and serves a React + TypeScript app with no console errors
- The Backend Schema Registry defines at least Azure Blob, S3, and S3-compatible backends with typed field definitions
- Zod validation schemas can be derived from the registry and validate correct/incorrect input correctly
- 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):
buildRcloneConf()produces a valid INI-format rclone.conf string with correct key/value pairs for each supported backend- The Intune install script writes config using UTF-8 no-BOM encoding, places it at the correct path, and never echoes credential values
- The Intune detection script exits 0 when both rclone.exe and the config file are present, and non-zero otherwise
- The RMM script is self-contained, idempotent, and runs correctly in a generic SYSTEM context
- 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):
- User can select a storage backend from a list where Azure Blob and S3 appear first
- User can navigate forward through all wizard steps (backend selection → backend config → deployment options) and back without losing entered values
- User can configure an Azure Blob remote by entering a storage account name and choosing SAS token or access key authentication
- User can configure an Amazon S3 or S3-compatible remote (access key, secret, region, optional endpoint override)
- 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):
- A live preview of the rclone.conf content updates in real time as the user fills in the wizard forms
- Before any download is enabled, the user must acknowledge a security warning that credentials are stored in plain text
- The app prominently displays that no data is sent to any server, and wizard state is never written to localStorage or sessionStorage
- User can download each artifact individually (rclone.conf, Intune install script, Intune detection script, RMM script) or all together as a ZIP bundle
- 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 | 1/4 | In Progress | |
| 3. Wizard UI | 0/? | Not started | - |
| 4. Review, Download & Security | 0/? | Not started | - |