# 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) - [ ] **FOUND-03**: Multi-tenant session caching — user stays authenticated across tenant switches without re-logging in (MSAL token cache per tenant) - [ ] **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) - [ ] **FOUND-11**: Self-contained single EXE distribution — no .NET runtime dependency for end users - [x] **FOUND-12**: Configurable data output folder for exports ### Permissions - [ ] **PERM-01**: User can scan permissions on a single SharePoint site with configurable depth - [ ] **PERM-02**: User can scan permissions across multiple selected sites in one operation - [ ] **PERM-03**: Permissions scan includes owners, members, guests, external users, and broken inheritance - [ ] **PERM-04**: User can choose to include or exclude inherited permissions - [ ] **PERM-05**: User can export permissions report to CSV (raw data) - [ ] **PERM-06**: User can export permissions report to interactive HTML (sortable, filterable, groupable by user) - [ ] **PERM-07**: SharePoint 5,000-item list view threshold handled via pagination — no silent failures on large libraries ### Storage - [ ] **STOR-01**: User can view storage consumption per library on a site - [ ] **STOR-02**: User can view storage consumption per site with configurable folder depth - [ ] **STOR-03**: Storage metrics include total size, version size, item count, and last modified date - [ ] **STOR-04**: User can export storage metrics to CSV - [ ] **STOR-05**: User can export storage metrics to interactive HTML with collapsible tree view ### File Search - [ ] **SRCH-01**: User can search files across sites using multiple criteria (extension, name/regex, dates, creator, editor) - [ ] **SRCH-02**: User can configure maximum search results (up to 50,000) - [ ] **SRCH-03**: User can export search results to CSV - [ ] **SRCH-04**: User can export search results to interactive HTML (sortable, filterable) ### Duplicate Detection - [ ] **DUPL-01**: User can scan for duplicate files by name, size, creation date, modification date - [ ] **DUPL-02**: User can scan for duplicate folders by name, subfolder count, file count - [ ] **DUPL-03**: User can export duplicate report to HTML with grouped display and visual indicators ### Site Templates - [ ] **TMPL-01**: User can capture site structure (libraries, folders, permission groups, logo, settings) as a template - [ ] **TMPL-02**: User can apply template to create new Communication or Teams site - [ ] **TMPL-03**: Templates persist locally as JSON - [ ] **TMPL-04**: User can manage templates (create, rename, delete) ### Folder Structure - [ ] **FOLD-01**: User can create folder structures on a site from a CSV template - [ ] **FOLD-02**: Example CSV templates provided for common structures ### Bulk Operations - [ ] **BULK-01**: User can transfer files and folders between sites with progress tracking - [ ] **BULK-02**: User can add members to groups in bulk from CSV - [ ] **BULK-03**: User can create multiple sites in bulk from CSV - [ ] **BULK-04**: All bulk operations support cancellation mid-execution - [ ] **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 | Pending | | FOUND-04 | Phase 1 | Pending | | 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 | Pending | | FOUND-12 | Phase 1 | Complete | | PERM-01 | Phase 2 | Pending | | PERM-02 | Phase 2 | Pending | | PERM-03 | Phase 2 | Pending | | PERM-04 | Phase 2 | Pending | | PERM-05 | Phase 2 | Pending | | PERM-06 | Phase 2 | Pending | | PERM-07 | Phase 2 | Pending | | STOR-01 | Phase 3 | Pending | | STOR-02 | Phase 3 | Pending | | STOR-03 | Phase 3 | Pending | | STOR-04 | Phase 3 | Pending | | STOR-05 | Phase 3 | Pending | | SRCH-01 | Phase 3 | Pending | | SRCH-02 | Phase 3 | Pending | | SRCH-03 | Phase 3 | Pending | | SRCH-04 | Phase 3 | Pending | | DUPL-01 | Phase 3 | Pending | | DUPL-02 | Phase 3 | Pending | | DUPL-03 | Phase 3 | Pending | | TMPL-01 | Phase 4 | Pending | | TMPL-02 | Phase 4 | Pending | | TMPL-03 | Phase 4 | Pending | | TMPL-04 | Phase 4 | Pending | | FOLD-01 | Phase 4 | Pending | | FOLD-02 | Phase 4 | Pending | | BULK-01 | Phase 4 | Pending | | BULK-02 | Phase 4 | Pending | | BULK-03 | Phase 4 | Pending | | BULK-04 | Phase 4 | Pending | | BULK-05 | Phase 4 | Pending | **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*