chore: complete v1.0 milestone
Archive 5 phases (36 plans) to milestones/v1.0-phases/. Archive roadmap, requirements, and audit to milestones/. Evolve PROJECT.md with shipped state and validated requirements. Collapse ROADMAP.md to one-line milestone summary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
177
.planning/milestones/v1.0-REQUIREMENTS.md
Normal file
177
.planning/milestones/v1.0-REQUIREMENTS.md
Normal file
@@ -0,0 +1,177 @@
|
||||
# Requirements Archive: v1.0 MVP
|
||||
|
||||
**Archived:** 2026-04-07
|
||||
**Status:** SHIPPED
|
||||
|
||||
For current requirements, see `.planning/REQUIREMENTS.md`.
|
||||
|
||||
---
|
||||
|
||||
# Requirements: SharePoint Toolbox v2
|
||||
|
||||
**Defined:** 2026-04-02
|
||||
**Core Value:** Administrators can audit and manage SharePoint/Teams permissions and storage across multiple client tenants from a single, reliable desktop application.
|
||||
|
||||
## v1 Requirements
|
||||
|
||||
Requirements for initial release. Each maps to roadmap phases.
|
||||
|
||||
### Foundation
|
||||
|
||||
- [x] **FOUND-01**: Application built with C#/WPF (.NET 10 LTS) using MVVM architecture
|
||||
- [x] **FOUND-02**: Multi-tenant profile registry — user can create, rename, delete, and switch between tenant profiles (tenant URL, client ID, display name)
|
||||
- [x] **FOUND-03**: Multi-tenant session caching — user stays authenticated across tenant switches without re-logging in (MSAL token cache per tenant)
|
||||
- [x] **FOUND-04**: Interactive Azure AD OAuth login via browser — no client secrets or certificates stored
|
||||
- [x] **FOUND-05**: All long-running operations report progress to the UI in real-time
|
||||
- [x] **FOUND-06**: User can cancel any long-running operation mid-execution
|
||||
- [x] **FOUND-07**: All errors surface to the user with actionable messages — no silent failures
|
||||
- [x] **FOUND-08**: Structured logging for diagnostics (Serilog or equivalent)
|
||||
- [x] **FOUND-09**: Localization system supporting English and French with dynamic language switching
|
||||
- [x] **FOUND-10**: JSON-based local storage for profiles, settings, and templates (compatible with current app's format for migration)
|
||||
- [x] **FOUND-11**: Self-contained single EXE distribution — no .NET runtime dependency for end users
|
||||
- [x] **FOUND-12**: Configurable data output folder for exports
|
||||
|
||||
### Permissions
|
||||
|
||||
- [x] **PERM-01**: User can scan permissions on a single SharePoint site with configurable depth
|
||||
- [x] **PERM-02**: User can scan permissions across multiple selected sites in one operation
|
||||
- [x] **PERM-03**: Permissions scan includes owners, members, guests, external users, and broken inheritance
|
||||
- [x] **PERM-04**: User can choose to include or exclude inherited permissions
|
||||
- [x] **PERM-05**: User can export permissions report to CSV (raw data)
|
||||
- [x] **PERM-06**: User can export permissions report to interactive HTML (sortable, filterable, groupable by user)
|
||||
- [x] **PERM-07**: SharePoint 5,000-item list view threshold handled via pagination — no silent failures on large libraries
|
||||
|
||||
### Storage
|
||||
|
||||
- [x] **STOR-01**: User can view storage consumption per library on a site
|
||||
- [x] **STOR-02**: User can view storage consumption per site with configurable folder depth
|
||||
- [x] **STOR-03**: Storage metrics include total size, version size, item count, and last modified date
|
||||
- [x] **STOR-04**: User can export storage metrics to CSV
|
||||
- [x] **STOR-05**: User can export storage metrics to interactive HTML with collapsible tree view
|
||||
|
||||
### File Search
|
||||
|
||||
- [x] **SRCH-01**: User can search files across sites using multiple criteria (extension, name/regex, dates, creator, editor)
|
||||
- [x] **SRCH-02**: User can configure maximum search results (up to 50,000)
|
||||
- [x] **SRCH-03**: User can export search results to CSV
|
||||
- [x] **SRCH-04**: User can export search results to interactive HTML (sortable, filterable)
|
||||
|
||||
### Duplicate Detection
|
||||
|
||||
- [x] **DUPL-01**: User can scan for duplicate files by name, size, creation date, modification date
|
||||
- [x] **DUPL-02**: User can scan for duplicate folders by name, subfolder count, file count
|
||||
- [x] **DUPL-03**: User can export duplicate report to HTML with grouped display and visual indicators
|
||||
|
||||
### Site Templates
|
||||
|
||||
- [x] **TMPL-01**: User can capture site structure (libraries, folders, permission groups, logo, settings) as a template
|
||||
- [x] **TMPL-02**: User can apply template to create new Communication or Teams site
|
||||
- [x] **TMPL-03**: Templates persist locally as JSON
|
||||
- [x] **TMPL-04**: User can manage templates (create, rename, delete)
|
||||
|
||||
### Folder Structure
|
||||
|
||||
- [x] **FOLD-01**: User can create folder structures on a site from a CSV template
|
||||
- [x] **FOLD-02**: Example CSV templates provided for common structures
|
||||
|
||||
### Bulk Operations
|
||||
|
||||
- [x] **BULK-01**: User can transfer files and folders between sites with progress tracking
|
||||
- [x] **BULK-02**: User can add members to groups in bulk from CSV
|
||||
- [x] **BULK-03**: User can create multiple sites in bulk from CSV
|
||||
- [x] **BULK-04**: All bulk operations support cancellation mid-execution
|
||||
- [x] **BULK-05**: Bulk operation errors are reported per-item (not silently skipped)
|
||||
|
||||
## v2 Requirements
|
||||
|
||||
Deferred to after v1 parity is confirmed. New features from project goals.
|
||||
|
||||
### User Access Audit
|
||||
|
||||
- **UACC-01**: User can export all SharePoint/Teams accesses a specific user has across selected sites
|
||||
- **UACC-02**: Export includes direct assignments, group memberships, and inherited access
|
||||
|
||||
### Simplified Permissions
|
||||
|
||||
- **SIMP-01**: User can toggle plain-language permission labels (e.g., "Can edit files" instead of "Contribute")
|
||||
- **SIMP-02**: Permissions report includes summary counts and color coding for untrained readers
|
||||
- **SIMP-03**: Configurable detail level (simple/detailed) for reports
|
||||
|
||||
### Storage Visualization
|
||||
|
||||
- **VIZZ-01**: Storage Metrics tab includes a graph showing space by file type
|
||||
- **VIZZ-02**: User can toggle between pie/donut chart and bar chart views
|
||||
- **VIZZ-03**: Graph updates when storage scan completes
|
||||
|
||||
## Out of Scope
|
||||
|
||||
| Feature | Reason |
|
||||
|---------|--------|
|
||||
| Cross-platform (Mac/Linux) | WPF is Windows-only; not justified for current user base |
|
||||
| Real-time monitoring / alerts | Requires background service, webhooks — turns desktop tool into a service |
|
||||
| Automated remediation (auto-revoke) | Liability risk; one wrong rule destroys client access |
|
||||
| SQLite / database storage | Breaks single-EXE distribution; JSON sufficient |
|
||||
| Cloud sync / shared profiles | Requires server infrastructure — out of scope for local tool |
|
||||
| AI-powered recommendations | Competes with Microsoft's own Copilot roadmap |
|
||||
| Content migration between tenants | Separate product category (ShareGate territory) |
|
||||
| Mobile app | Desktop admin tool |
|
||||
| OAuth with client secrets/certificates | Interactive login only — no stored credentials |
|
||||
| Version history management | Deep separate problem; surface totals in storage metrics only |
|
||||
|
||||
## Traceability
|
||||
|
||||
Which phases cover which requirements. Updated during roadmap creation.
|
||||
|
||||
| Requirement | Phase | Status |
|
||||
|-------------|-------|--------|
|
||||
| FOUND-01 | Phase 1 | Complete |
|
||||
| FOUND-02 | Phase 1 | Complete |
|
||||
| FOUND-03 | Phase 1 | Complete |
|
||||
| FOUND-04 | Phase 1 | Complete |
|
||||
| FOUND-05 | Phase 1 | Complete |
|
||||
| FOUND-06 | Phase 1 | Complete |
|
||||
| FOUND-07 | Phase 1 | Complete |
|
||||
| FOUND-08 | Phase 1 | Complete |
|
||||
| FOUND-09 | Phase 1 | Complete |
|
||||
| FOUND-10 | Phase 1 | Complete |
|
||||
| FOUND-11 | Phase 5 | Complete |
|
||||
| FOUND-12 | Phase 1 | Complete |
|
||||
| PERM-01 | Phase 2 | Complete |
|
||||
| PERM-02 | Phase 2 | Complete |
|
||||
| PERM-03 | Phase 2 | Complete |
|
||||
| PERM-04 | Phase 2 | Complete |
|
||||
| PERM-05 | Phase 2 | Complete |
|
||||
| PERM-06 | Phase 2 | Complete |
|
||||
| PERM-07 | Phase 2 | Complete |
|
||||
| STOR-01 | Phase 3 | Complete |
|
||||
| STOR-02 | Phase 3 | Complete |
|
||||
| STOR-03 | Phase 3 | Complete |
|
||||
| STOR-04 | Phase 3 | Complete |
|
||||
| STOR-05 | Phase 3 | Complete |
|
||||
| SRCH-01 | Phase 3 | Complete |
|
||||
| SRCH-02 | Phase 3 | Complete |
|
||||
| SRCH-03 | Phase 3 | Complete |
|
||||
| SRCH-04 | Phase 3 | Complete |
|
||||
| DUPL-01 | Phase 3 | Complete |
|
||||
| DUPL-02 | Phase 3 | Complete |
|
||||
| DUPL-03 | Phase 3 | Complete |
|
||||
| TMPL-01 | Phase 4 | Complete |
|
||||
| TMPL-02 | Phase 4 | Complete |
|
||||
| TMPL-03 | Phase 4 | Complete |
|
||||
| TMPL-04 | Phase 4 | Complete |
|
||||
| FOLD-01 | Phase 4 | Complete |
|
||||
| FOLD-02 | Phase 4 | Complete |
|
||||
| BULK-01 | Phase 4 | Complete |
|
||||
| BULK-02 | Phase 4 | Complete |
|
||||
| BULK-03 | Phase 4 | Complete |
|
||||
| BULK-04 | Phase 4 | Complete |
|
||||
| BULK-05 | Phase 4 | Complete |
|
||||
|
||||
**Coverage:**
|
||||
- v1 requirements: 42 total
|
||||
- Mapped to phases: 42
|
||||
- Unmapped: 0
|
||||
|
||||
---
|
||||
*Requirements defined: 2026-04-02*
|
||||
*Last updated: 2026-04-02 after roadmap creation — all 42 v1 requirements mapped*
|
||||
Reference in New Issue
Block a user