<aside> 💡

ACA stands for Access Control Architecture

</aside>

🔐 Selective Internal API Access for Dual Libraries

Designing a system where trusted sources (Microsoft, enterprise partners, vetted developers) can access internal APIs while maintaining security from untrusted community extensions.


🎯 The Challenge

Requirements:


🏗️ Proposed Architecture: Three-Tier System

📦 Library Structure

// Tier 1: Public Community API
symphony-extension-api/
├── src/lib.rs                 # Public APIs only
└── Cargo.toml                 # Published to crates.io

// Tier 2: Trusted Partner API
symphony-trusted-api/
├── src/lib.rs                 # Public + some internal APIs
└── Cargo.toml                 # Private registry or signed distribution

// Tier 3: Full Internal API
symphony-internal-api/
├── src/lib.rs                 # All APIs including infrastructure
└── Cargo.toml                 # Never distributed externally

🔑 Access Control Matrix

Extension Type Public APIs Trusted APIs Internal APIs Distribution
🌍 Community ✅ Full ❌ None ❌ None crates.io
🤝 Trusted Partners ✅ Full ✅ Full ⚠️ Selected Private registry
🏢 Enterprise Customers ✅ Full ✅ Full ❌ None Signed packages
🎼 Symphony Internal ✅ Full ✅ Full ✅ Full Direct access

🔐 Implementation Strategies

Strategy 1: Private Crate Registry