Files
Sharepoint-Toolbox/.planning/codebase/STACK.md
Kawa 63cf69f114 docs: map existing codebase
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:28:40 +02:00

3.0 KiB

Technology Stack

Analysis Date: 2026-04-02

Languages

Primary:

  • PowerShell 5.1+ - All application logic, UI, and SharePoint integration

Runtime

Environment:

  • Windows PowerShell 5.1+ or PowerShell Core 7.0+
  • .NET Framework (built-in with PowerShell)

Execution Model:

  • Desktop application (WinForms GUI)
  • Synchronous runspace threading for async operations without blocking UI

Frameworks

UI:

  • System.Windows.Forms (native .NET, bundled with PowerShell)
  • System.Drawing (native .NET for graphics and colors)

SharePoint/Cloud Integration:

  • PnP.PowerShell (latest version) - All SharePoint Online API interactions
  • Azure AD App Registration for authentication (required)

Testing:

  • No dedicated test framework detected (manual testing assumed)

Build/Dev:

  • No build system (single .ps1 script file executed directly)

Key Dependencies

Critical:

  • PnP.PowerShell - Required for all SharePoint Online operations
    • Location: Installed via Install-Module PnP.PowerShell
    • Used for: Site enumeration, permissions scanning, storage metrics, file search, templating, bulk operations
    • Connection: Interactive authentication via Azure AD App (ClientId required)

Infrastructure:

  • System.Windows.Forms - Desktop UI framework
  • System.Drawing - UI graphics and rendering
  • Microsoft.SharePoint.Client - Underlying SharePoint CSOM (via PnP.PowerShell)

Configuration

Environment:

  • Sharepoint_Settings.json - User preferences (data folder location, language)
  • Sharepoint_Export_profiles.json - Saved connection profiles (Tenant URL, Client ID)
  • Sharepoint_Templates.json - Site structure templates (captured and reapplied)

Build:

  • Single executable: Sharepoint_ToolBox.ps1
  • Launched directly: .\Sharepoint_Toolbox.ps1

Localization:

  • File: lang/fr.json - French translations
  • Default: English (en)
  • Loaded dynamically at runtime

Platform Requirements

Development:

  • Windows Operating System (WinForms is Windows-only)
  • PowerShell 5.1+
  • Internet connection for Azure AD authentication
  • Access to SharePoint Online tenant

Production:

  • Windows 10/11 (or Windows Server 2016+)
  • PowerShell 5.1 minimum
  • Azure AD tenant with properly configured app registration
  • Network access to target SharePoint Online sites

Data Persistence

Local Storage:

  • JSON files in configurable data folder (default: Sharepoint_Export_profiles.json, Sharepoint_Templates.json, Sharepoint_Settings.json)
  • CSV exports of reports and bulk operation results
  • HTML reports with interactive UI

No external databases - All storage is file-based and local

Authentication

Method:

  • Azure AD Interactive Login (user-initiated browser-based auth)
  • Client ID (App Registration ID) required
  • No client secrets or certificates (interactive auth flow only)
  • PnP.PowerShell handles Azure AD token acquisition

Known Versions

  • PowerShell: 5.1 (minimum requirement stated in README)
  • PnP.PowerShell: Not pinned (latest version recommended)

Stack analysis: 2026-04-02