Roadmap
S2DCartographer follows a milestone-based release cadence. Each milestone targets a focused capability area. The current stable release is v1.4.2.
Live status of everything below is tracked on GitHub Milestones.
Next Release — v1.5.0 — Output Quality
Stabilisation milestone. Fixes broken PDF graphs and Word document layout in the current product before any new capability is added.
| Issue |
Fix |
| #53 |
PDF: capacity model waterfall bar graph renders incorrectly — bar chart visual is wrong despite correct data values. |
| #54 |
PDF: pool allocation and storage pool health bar graphs display incorrectly. |
| #55 |
Word: executive summary table is cramped and unreadable — cell spacing, padding, and sizing need correction. |
| #56 |
Word: overall document formatting and layout does not meet customer-facing quality standards. |
v1.6.0 — Visualization, Scoring & Output
Feature uplift covering interactive diagrams, graduated health check scoring, PDF layout improvements, and operational robustness.
Health Check & Scoring
| Issue |
Feature |
| #57 |
Graduated threshold scoring — partial-credit rules for health checks; replaces flat pass/fail with weighted, threshold-based scoring. |
| #58 |
Named calculation references — pre-computed aggregates defined in health check config; depends on #57. |
| #59 |
Health check config download and hot-swap — download and upload the health check JSON config via CLI without re-running collection; depends on #57, #58. |
Visualization
| Issue |
Feature |
| #60 |
vis.js interactive topology diagram — cluster, pool, and volume hierarchy rendered as an interactive in-browser diagram. |
| #61 |
html2canvas diagram capture — embed the interactive vis.js diagram as a PNG in PDF and Word reports; depends on #60. |
PDF & Report Layout
| Issue |
Feature |
| #62 |
Page-break-aware table helper — automatic header repeat across page breaks for all multi-page tables. |
| #63 |
Portrait/landscape page switching per PDF section — wide tables switch to landscape and back; depends on #62. |
| #64 |
Conditional cell coloring — status and severity-based colour coding in HTML and PDF tables; depends on #62. |
Output & Cost
| Issue |
Feature |
| #65 |
JSON evidence export — raw collected data export with no scoring metadata, for downstream tooling and audit trails. |
| #68 |
Azure Hybrid Benefit and licensing cost savings — surface AHB coverage, per-core cost, and potential savings in the report. |
UX
| Issue |
Feature |
| #66 |
Full-screen progress overlay — named collection stage labels shown during run so operators know what is happening. |
| #67 |
Per-section search and filter — search input in HTML report to filter table rows per section. |
Robustness
| Issue |
Feature |
| #69 |
Concurrent collection guard and empty-data safeguards — prevent overlapping runs; handle empty collector results without crashing report generation. |
v2.0.0 — Extended Hardware Coverage
| Issue |
Feature |
| #25 |
OEM-specific disk enrichment — extend Get-S2DPhysicalDiskInventory with vendor-specific data from Dell iDRAC, HPE iLO, Lenovo XClarity, and DataON interfaces. Surfaces drive bay location, predicted failure, and platform-level health alongside standard S2D disk data. Pending a validation environment across all four vendors. |
Completed
| Version |
Highlights |
| v1.4.2 |
Fix RebuildCapacity false Critical when NodeName grouping is unreliable after pool-member disk deduplication. |
| v1.4.1 |
Fix pool-member disk duplication on multi-node clusters — Get-PhysicalDisk on any S2D node returns all pool members globally; deduplicate by UniqueId to prevent 4× inflation of Stage 1 raw capacity. Adds top-level NodeCount to JSON snapshot. |
| v1.4.0 |
7-stage waterfall (Stage 8 removed), stage health isolation (all stages always OK, reserve health on ReserveStatus only), reserve formula corrected, infra volume detection extended (UserStorage_N, HCI_UserStorage_N, SBEAgent), HTML delta column, Word report waterfall table, Invoke-S2DCapacityWhatIf delta loop fix. Closes #46–#52. |
| v1.3.1 |
Sample output reports in docs. |
| v1.3.0 |
What-if capacity modeling (Invoke-S2DCapacityWhatIf), thin provisioning risk detection (Check 6 tiered thresholds + new Check 11 ThinReserveRisk), ThinGrowthHeadroom / MaxPotentialFootprint volume properties, Thin Provision Risk KPI in HTML report, Invoke-S2DWaterfallCalculation pure function. Closes #27, #44. |
| v1.2.1 |
Capacity model correctness — pool-member-only Stage 1, purely theoretical Stages 7/8, resiliency factor from pool settings. Closes #43. |
| v1.2.0 |
JSON snapshot export (SchemaVersion 1.0), opt-in CSV per-collector tables, pool-member disk filter (IsPoolMember) across reports and health checks, Surveyor cross-link in docs, -IncludeNonPoolDisks switch. Closes #35, #40, #41, #42. |
| v1.1.1 |
Fix parameter-set splat in Invoke-S2DCartographer that broke -KeyVaultName and explicit -Authentication; added -Username parameter for Key Vault secrets without a ContentType tag. Closes #39. |
| v1.1.0 |
Default -Format changed to All; ImportExcel bundled as a RequiredModules dependency; per-run output folder structure <OutputDir>\<ClusterName>\<yyyyMMdd-HHmm>\; session log file; thicker pool allocation breakdown bar; full authentication / remoting / node fan-out docs with flowchart diagram. Closes #34, #36, #37, #38. |
| v1.0.8 |
Fix Get-S2DHealthStatus crash on live clusters — replaced Generic.List[S2DHealthCheck] with a plain array to work around PowerShell class type resolution on dot-sourced classes. |
| v1.0.7 |
Storage Pool Health bar (WAC-style), Pool Allocation Breakdown bar, Capacity Model stage descriptions, Critical Reserve Status KPI. |
| v1.0.2 – v1.0.6 |
Workgroup / non-domain-joined connectivity fixes — WinRM authentication inheritance, TrustedHosts short-name resolution, per-node CIM fan-out FQDN resolution, pre-flight credential validation. |
| v1.0.0 |
Full pipeline: all 6 collectors, HTML/Word/PDF/Excel reports, 6 SVG diagram types, Invoke-S2DCartographer orchestrator, 119 Pester tests, MkDocs documentation site. |
| v0.1.0-preview2 |
Bug fix: non-domain-joined connectivity (Connect-S2DCluster). |
| v0.1.0-preview1 |
Foundation: S2DCapacity class, ConvertTo-S2DCapacity, Connect-S2DCluster, Get-S2DPhysicalDiskInventory. |
Requesting Features
Open an issue at AzureLocal/azurelocal-s2d-cartographer using the feature request template. Include the cluster configuration context (node count, drive types, Azure Local version) — most useful features come from real deployment scenarios.