chore: archive v1.1 Enhanced Reports milestone
Some checks failed
Release SharePoint Toolbox v2 / release (push) Failing after 14s
Some checks failed
Release SharePoint Toolbox v2 / release (push) Failing after 14s
v1.1 shipped with 4 phases (25 plans), 10/10 requirements complete: - Global site selection (toolbar picker, all tabs consume) - User access audit (Graph people-picker, direct/group/inherited) - Simplified permissions (plain-language labels, risk levels, detail toggle) - Storage visualization (LiveCharts2 pie/donut + bar charts) Post-phase polish: centralized site selection (removed per-tab pickers), claims prefix stripping, StorageMetrics backfill, chart tooltip fix, summary stats in app + HTML exports. 205 tests passing, 10,484 LOC. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
57
.planning/milestones/v1.1-REQUIREMENTS.md
Normal file
57
.planning/milestones/v1.1-REQUIREMENTS.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Requirements Archive: SharePoint Toolbox v1.1 Enhanced Reports
|
||||
|
||||
**Defined:** 2026-04-07
|
||||
**Completed:** 2026-04-08
|
||||
**Coverage:** 10/10 requirements complete
|
||||
|
||||
## Requirements
|
||||
|
||||
### Global Site Selection
|
||||
|
||||
- [x] **SITE-01**: User can select one or multiple target sites from the toolbar and all feature tabs use that selection as default
|
||||
- [x] **SITE-02**: User can override global site selection per-tab for single-site operations
|
||||
- *Outcome: Initially implemented, later removed — per-tab selectors replaced by centralized global-only selection*
|
||||
|
||||
### User Access Audit
|
||||
|
||||
- [x] **UACC-01**: User can export all SharePoint/Teams accesses a specific user has across selected sites
|
||||
- [x] **UACC-02**: Export includes direct assignments, group memberships, and inherited access
|
||||
|
||||
### Simplified Permissions
|
||||
|
||||
- [x] **SIMP-01**: User can toggle plain-language permission labels (e.g., "Can edit files" instead of "Contribute")
|
||||
- [x] **SIMP-02**: Permissions report includes summary counts and color coding for untrained readers
|
||||
- [x] **SIMP-03**: User can choose detail level (simple/detailed) for reports
|
||||
|
||||
### Storage Visualization
|
||||
|
||||
- [x] **VIZZ-01**: Storage Metrics tab includes a graph showing space by file type
|
||||
- [x] **VIZZ-02**: User can toggle between pie/donut chart and bar chart views
|
||||
- [x] **VIZZ-03**: Graph updates automatically when storage scan completes
|
||||
|
||||
## Traceability
|
||||
|
||||
| Requirement | Phase | Status | Notes |
|
||||
|-------------|-------|--------|-------|
|
||||
| SITE-01 | Phase 6 | Complete | |
|
||||
| SITE-02 | Phase 6 | Complete | Per-tab override later removed in favor of global-only |
|
||||
| UACC-01 | Phase 7 | Complete | |
|
||||
| UACC-02 | Phase 7 | Complete | |
|
||||
| SIMP-01 | Phase 8 | Complete | 11 standard SharePoint roles mapped |
|
||||
| SIMP-02 | Phase 8 | Complete | 4 risk levels: High/Medium/Low/ReadOnly |
|
||||
| SIMP-03 | Phase 8 | Complete | |
|
||||
| VIZZ-01 | Phase 9 | Complete | LiveCharts2 SkiaSharp backend |
|
||||
| VIZZ-02 | Phase 9 | Complete | |
|
||||
| VIZZ-03 | Phase 9 | Complete | |
|
||||
|
||||
## Out of Scope
|
||||
|
||||
| Feature | Reason |
|
||||
|---------|--------|
|
||||
| Cross-platform (Mac/Linux) | WPF is Windows-only |
|
||||
| Real-time monitoring / alerts | Requires background service |
|
||||
| Automated remediation (auto-revoke) | Liability risk |
|
||||
| Content migration between tenants | Separate product category |
|
||||
|
||||
---
|
||||
*Archived: 2026-04-08*
|
||||
81
.planning/milestones/v1.1-ROADMAP.md
Normal file
81
.planning/milestones/v1.1-ROADMAP.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# v1.1 Enhanced Reports — Milestone Archive
|
||||
|
||||
**Goal:** Add user access audit, simplified permissions, storage visualization, and global multi-site selection
|
||||
**Status:** Shipped 2026-04-08
|
||||
**Timeline:** 2026-04-07 to 2026-04-08
|
||||
|
||||
## Stats
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Phases | 4 (Phases 6-9) |
|
||||
| Plans | 25 |
|
||||
| Commits | 29 |
|
||||
| C# LOC (total) | 10,484 |
|
||||
| Tests | 205 pass / 22 skip |
|
||||
| Requirements | 10/10 complete |
|
||||
|
||||
## Key Accomplishments
|
||||
|
||||
1. **Global Site Selection (Phase 6)** — Toolbar-level multi-site picker consumed by all feature tabs. Per-tab site selectors removed in favor of centralized selection. WeakReferenceMessenger broadcast pattern.
|
||||
|
||||
2. **User Access Audit (Phase 7)** — New feature tab: people-picker with Graph API autocomplete, audit every permission a specific user holds across selected sites, distinguish direct/group/inherited access, export to CSV/HTML. Claims prefix stripping for clean display.
|
||||
|
||||
3. **Simplified Permissions (Phase 8)** — Plain-language labels mapped from 11 standard SharePoint roles, color-coded risk levels (High/Medium/Low/ReadOnly), summary cards with counts, detail-level toggle (simple/detailed), simplified export overloads for both CSV and HTML.
|
||||
|
||||
4. **Storage Visualization (Phase 9)** — LiveCharts2 (SkiaSharp) integration for pie/donut and bar chart views of storage by file type. CamlQuery-based file enumeration to work around StorageMetrics API zeros. Custom single-slice tooltip. Per-library backfill for accurate folder-level metrics. Chart data included in HTML/CSV exports with summary stat cards.
|
||||
|
||||
5. **Post-phase Polish** — Removed per-tab site selectors from 8 tabs (centralized to global toolbar), fixed UserAccessAudit DataGrid binding (CollectionViewSource disconnect), added site-level summary totals to Storage tab and HTML reports, suppressed NU1701 NuGet warnings.
|
||||
|
||||
## Phases
|
||||
|
||||
### Phase 6: Global Site Selection (5 plans)
|
||||
- GlobalSitesChangedMessage + FeatureViewModelBase extension
|
||||
- MainWindowViewModel global selection state + command
|
||||
- Toolbar UI, dialog wiring, and localization keys
|
||||
- Tab VM updates for global site consumption
|
||||
- Unit tests for global site selection flow
|
||||
|
||||
### Phase 7: User Access Audit (10 plans)
|
||||
- UserAccessEntry model + service interfaces
|
||||
- UserAccessAuditService implementation
|
||||
- GraphUserSearchService implementation
|
||||
- UserAccessAuditViewModel
|
||||
- UserAccessAuditView XAML layout
|
||||
- CSV + HTML export services
|
||||
- Tab wiring, DI, localization
|
||||
- Unit tests
|
||||
- Gap closure: DataGrid visual indicators + ObjectType column
|
||||
- Gap closure: Debounced search unit test
|
||||
|
||||
### Phase 8: Simplified Permissions (6 plans)
|
||||
- RiskLevel enum, PermissionLevelMapping, SimplifiedPermissionEntry, PermissionSummary
|
||||
- PermissionsViewModel simplified mode, detail toggle, summary computation
|
||||
- PermissionsView XAML: toggles, summary panel, color-coded DataGrid
|
||||
- HTML + CSV export simplified overloads
|
||||
- Localization keys (EN/FR) + export command wiring
|
||||
- Unit tests: mapping, summary, ViewModel toggle behavior
|
||||
|
||||
### Phase 9: Storage Visualization (4 plans)
|
||||
- LiveCharts2 NuGet + FileTypeMetric model + IStorageService extension
|
||||
- StorageService file-type enumeration implementation
|
||||
- ViewModel chart properties + View XAML + localization
|
||||
- Unit tests for chart ViewModel behavior
|
||||
|
||||
## Requirements Covered
|
||||
|
||||
| Requirement | Description | Status |
|
||||
|-------------|-------------|--------|
|
||||
| SITE-01 | Global multi-site selection from toolbar | Complete |
|
||||
| SITE-02 | Per-tab override capability | Complete (later removed — centralized) |
|
||||
| UACC-01 | Export all user accesses across sites | Complete |
|
||||
| UACC-02 | Distinguish direct/group/inherited access | Complete |
|
||||
| SIMP-01 | Plain-language permission labels | Complete |
|
||||
| SIMP-02 | Summary counts with color coding | Complete |
|
||||
| SIMP-03 | Detail-level selector | Complete |
|
||||
| VIZZ-01 | Charting library integration | Complete |
|
||||
| VIZZ-02 | Toggle pie/donut vs bar chart | Complete |
|
||||
| VIZZ-03 | Auto-update chart on scan complete | Complete |
|
||||
|
||||
---
|
||||
*Archived: 2026-04-08*
|
||||
Reference in New Issue
Block a user