A modern, enterprise-grade SharePoint Embedded integration platform built with .NET 8, Power Platform, and Microsoft Graph.
SDAP provides secure, scalable document management through SharePoint Embedded with comprehensive Power Platform integration, featuring clean architecture, thin plugins, and robust authorization patterns.
- 🔌 SharePoint Embedded API: .NET 8 Minimal API with Graph SDK v5
- ⚡ Power Platform Plugins: Lightweight validation and projection plugins (<50ms)
- 🔐 Authorization Framework: Rule-based access control with secure defaults
- 📊 Monitoring & Observability: Structured logging with correlation tracking
- 🧪 Comprehensive Testing: Unit, integration, and end-to-end test coverage
The repository is organized as follows:
artifacts/ # Build artifacts (zips, packages)
config/ # Configuration files (local settings, props)
docs/ # Documentation (ADRs, guides, project management)
scripts/ # Build, deploy, and utility scripts
src/
client/ # Client-side components
canvas-apps/ # Canvas Apps source
model-driven-apps/ # Model Driven Apps source
pcf/ # PCF Controls (UniversalQuickCreate, etc.)
power-pages/ # Power Pages sites
webresources/ # Web Resources (JavaScript, HTML)
server/ # Server-side components
plugins/ # Dataverse Plugins (C#)
solutions/ # Dataverse Solution projects
tests/ # Unit and Integration tests
tools/ # Development tools (PAC CLI, Postman)
- .NET 8 SDK
- .NET Framework 4.8 Developer Pack
- Visual Studio 2022 or VS Code
- Azure CLI
# Clone repository
git clone https://github.com/spaarke-dev/spaarke.git
cd spaarke
# Restore packages
dotnet restore
# Build solution
dotnet build
# Run API
dotnet run --project src/server/api/Sprk.Bff.Api/API Available: https://localhost:5001
Create these files in the config/ directory:
// config/azure-config.local.json
{
"ClientId": "your-client-id",
"TenantId": "your-tenant-id"
}
// config/sharepoint-config.local.json
{
"SiteUrl": "your-sharepoint-site",
"ClientId": "your-spe-client-id"
}- Ping:
GET /ping- Service information - Health:
GET /healthz- Dependency health status
- Project Restart Guide - Complete development continuation guide
- Repository Structure - Complete codebase organization
- ADR-002 - Thin plugin architecture (<50ms, <200 LoC)
- All ADRs - Complete architectural decision record
# Run all tests
dotnet test --collect:"XPlat Code Coverage"
# Run specific test suite
dotnet test tests/unit/Sprk.Bff.Api.Tests/- Review: Project Restart Guide
- Follow: Architecture Decision Records (ADRs)
- Test: Comprehensive testing required
- Document: Update relevant documentation
Built with: .NET 8 • Microsoft Graph • SharePoint Embedded • Power Platform • Azure