Plans cover plain-language permission labels, risk-level color coding, summary counts, detail-level toggle, export integration, and unit tests. PermissionEntry record is NOT modified — uses wrapper pattern. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
111 lines
6.8 KiB
Markdown
111 lines
6.8 KiB
Markdown
# Roadmap: SharePoint Toolbox v2
|
|
|
|
## Milestones
|
|
|
|
- ✅ **v1.0 MVP** — Phases 1-5 (shipped 2026-04-07) — [archive](milestones/v1.0-ROADMAP.md)
|
|
- 🔄 **v1.1 Enhanced Reports** — Phases 6-9 (in progress)
|
|
|
|
## Phases
|
|
|
|
<details>
|
|
<summary>✅ v1.0 MVP (Phases 1-5) — SHIPPED 2026-04-07</summary>
|
|
|
|
- [x] Phase 1: Foundation (8/8 plans) — completed 2026-04-02
|
|
- [x] Phase 2: Permissions (7/7 plans) — completed 2026-04-02
|
|
- [x] Phase 3: Storage and File Operations (8/8 plans) — completed 2026-04-02
|
|
- [x] Phase 4: Bulk Operations and Provisioning (10/10 plans) — completed 2026-04-03
|
|
- [x] Phase 5: Distribution and Hardening (3/3 plans) — completed 2026-04-03
|
|
|
|
</details>
|
|
|
|
**v1.1 Enhanced Reports**
|
|
|
|
- [x] **Phase 6: Global Site Selection** — Toolbar-level multi-site picker that all feature tabs consume as their default target (completed 2026-04-07)
|
|
- [x] **Phase 7: User Access Audit** — New feature tab: export every SharePoint/Teams access a specific user holds across selected sites (completed 2026-04-07)
|
|
- [ ] **Phase 8: Simplified Permissions** — Plain-language labels, summary counts, color coding, and detail-level toggle on the permissions report
|
|
- [ ] **Phase 9: Storage Visualization** — Charting dependency + pie/donut and bar chart views of storage by file type in the Storage Metrics tab
|
|
|
|
## Phase Details
|
|
|
|
### Phase 6: Global Site Selection
|
|
**Goal**: Administrators can select one or more target sites once from the toolbar and have every feature tab use that selection by default
|
|
**Depends on**: Phase 5 (v1.0 foundation — toolbar and tab architecture in place)
|
|
**Requirements**: SITE-01, SITE-02
|
|
**Success Criteria** (what must be TRUE):
|
|
1. A multi-site picker control is visible in the main toolbar at all times, regardless of which tab is active
|
|
2. Selecting sites in the toolbar causes all feature tabs to default to those sites when an operation is run
|
|
3. A user can override the global selection on any individual tab without clearing the global state
|
|
4. The global site selection persists across tab switches within the same session
|
|
**Plans:** 5/5 plans complete
|
|
Plans:
|
|
- [ ] 06-01-PLAN.md — GlobalSitesChangedMessage + FeatureViewModelBase extension
|
|
- [ ] 06-02-PLAN.md — MainWindowViewModel global selection state + command
|
|
- [ ] 06-03-PLAN.md — Toolbar UI, dialog wiring, and localization keys
|
|
- [ ] 06-04-PLAN.md — Tab VM updates for global site consumption
|
|
- [ ] 06-05-PLAN.md — Unit tests for global site selection flow
|
|
|
|
### Phase 7: User Access Audit
|
|
**Goal**: Administrators can audit every permission a specific user holds across selected sites, distinguish access types (direct/group/inherited), and export results to CSV or HTML
|
|
**Depends on**: Phase 6
|
|
**Requirements**: UACC-01, UACC-02
|
|
**Success Criteria** (what must be TRUE):
|
|
1. A User Access Audit tab (or panel) is accessible and accepts a user identifier and site selection as inputs
|
|
2. Running the audit returns a list of all access entries the user holds across the selected sites
|
|
3. Results distinguish between direct role assignments, SharePoint group memberships, and inherited access
|
|
4. Results can be exported to CSV or HTML in the same format established by v1.0 export patterns
|
|
**Plans:** 10/10 plans complete
|
|
Plans:
|
|
- [ ] 07-01-PLAN.md — UserAccessEntry model + service interfaces (Wave 1)
|
|
- [ ] 07-02-PLAN.md — UserAccessAuditService implementation (Wave 2)
|
|
- [ ] 07-03-PLAN.md — GraphUserSearchService implementation (Wave 2)
|
|
- [ ] 07-04-PLAN.md — UserAccessAuditViewModel (Wave 3)
|
|
- [ ] 07-05-PLAN.md — UserAccessAuditView XAML layout (Wave 4)
|
|
- [ ] 07-06-PLAN.md — CSV + HTML export services (Wave 2)
|
|
- [ ] 07-07-PLAN.md — Tab wiring, DI, localization (Wave 4)
|
|
- [ ] 07-08-PLAN.md — Unit tests (Wave 5)
|
|
- [ ] 07-09-PLAN.md — Gap closure: DataGrid visual indicators + ObjectType column (Wave 6)
|
|
- [ ] 07-10-PLAN.md — Gap closure: Debounced search unit test (Wave 6)
|
|
|
|
### Phase 8: Simplified Permissions
|
|
**Goal**: Permissions reports are readable by non-technical users through plain-language labels, color coding, and a configurable detail level
|
|
**Depends on**: Phase 6
|
|
**Requirements**: SIMP-01, SIMP-02, SIMP-03
|
|
**Success Criteria** (what must be TRUE):
|
|
1. The permissions report displays human-readable labels (e.g., "Can edit files") alongside or instead of raw SharePoint role names (e.g., "Contribute") when the simplified mode toggle is on
|
|
2. The report shows summary counts per permission level with color indicators distinguishing high, medium, and low access levels
|
|
3. A detail-level selector (simple / detailed) controls whether individual item-level rows are shown or collapsed into summary rows
|
|
4. Toggling modes and detail level does not require re-running the scan — it re-renders from the already-fetched data
|
|
**Plans:** 6 plans
|
|
Plans:
|
|
- [ ] 08-01-PLAN.md — RiskLevel enum, PermissionLevelMapping, SimplifiedPermissionEntry, PermissionSummary (Wave 1)
|
|
- [ ] 08-02-PLAN.md — PermissionsViewModel simplified mode, detail toggle, summary computation (Wave 2)
|
|
- [ ] 08-03-PLAN.md — PermissionsView XAML: toggles, summary panel, color-coded DataGrid (Wave 3)
|
|
- [ ] 08-04-PLAN.md — HTML + CSV export simplified overloads (Wave 3)
|
|
- [ ] 08-05-PLAN.md — Localization keys (EN/FR) + export command wiring (Wave 4)
|
|
- [ ] 08-06-PLAN.md — Unit tests: mapping, summary, ViewModel toggle behavior (Wave 5)
|
|
|
|
### Phase 9: Storage Visualization
|
|
**Goal**: The Storage Metrics tab displays an interactive chart of space consumption by file type, togglable between pie/donut and bar chart views
|
|
**Depends on**: Phase 6
|
|
**Requirements**: VIZZ-01, VIZZ-02, VIZZ-03
|
|
**Success Criteria** (what must be TRUE):
|
|
1. A WPF charting library (LiveCharts2 or OxyPlot) is integrated as a NuGet dependency and renders correctly in the self-contained EXE build
|
|
2. After a storage scan completes, a chart appears in the Storage Metrics tab showing space broken down by file type
|
|
3. A toggle control switches the chart between pie/donut and bar chart representations without re-running the scan
|
|
4. The chart updates automatically whenever a new storage scan finishes, without requiring manual refresh
|
|
**Plans**: TBD
|
|
|
|
## Progress
|
|
|
|
| Phase | Milestone | Plans Complete | Status | Completed |
|
|
|-------|-----------|----------------|--------|-----------|
|
|
| 1. Foundation | v1.0 | 8/8 | Complete | 2026-04-02 |
|
|
| 2. Permissions | v1.0 | 7/7 | Complete | 2026-04-02 |
|
|
| 3. Storage and File Operations | v1.0 | 8/8 | Complete | 2026-04-02 |
|
|
| 4. Bulk Operations and Provisioning | v1.0 | 10/10 | Complete | 2026-04-03 |
|
|
| 5. Distribution and Hardening | v1.0 | 3/3 | Complete | 2026-04-03 |
|
|
| 6. Global Site Selection | 5/5 | Complete | 2026-04-07 | - |
|
|
| 7. User Access Audit | 10/10 | Complete | 2026-04-07 | - |
|
|
| 8. Simplified Permissions | v1.1 | 0/6 | Planned | - |
|
|
| 9. Storage Visualization | v1.1 | 0/? | Not started | - |
|