Welcome to the documentation for OpenFrame OSS Lib (flamingo-stack/openframe-oss-lib), the core backend shared library collection of the OpenFrame platform.
This monorepo provides reusable Spring Boot modules that power every OpenFrame service: multi-tenant authentication, reactive API routing, event-driven stream processing, agent lifecycle management, and more.
- Getting Started
- Development
- Reference Architecture
- Architecture Diagrams
- CLI Tools
- Related Projects
- Quick Links
New to OpenFrame OSS Lib? Start here:
| Guide | Description |
|---|---|
| Introduction | What is OpenFrame OSS Lib, key features, and target audience |
| Prerequisites | Required software (JDK 21, Maven, Docker, Node.js, Rust) |
| Quick Start | Clone, build, and use modules in under 5 minutes |
| First Steps | Explore the module hierarchy, domain model, and key patterns |
Guides for developing, extending, testing, and contributing to the library:
| Guide | Description |
|---|---|
| Development Overview | Technology stack, repository structure, documentation map |
| Environment Setup | IDE configuration (IntelliJ, VS Code), plugins, editor extensions |
| Local Development | Clone, build, hot-reload patterns, debug configuration |
| Architecture Overview | System design, component diagrams, data flow, key design decisions |
| Security Best Practices | Auth patterns, tenant isolation, secrets management |
| Testing Overview | Test structure, running tests, Testcontainers, coverage guidelines |
| Contributing Guidelines | Code style, branch naming, PR process, commit format |
Detailed technical documentation for each core module:
| Module | Description |
|---|---|
| Authorization Service Core | OAuth2/OIDC authorization server, JWT issuance, tenant resolution |
| Authorization — Tenant Context | Tenant context filter, TenantContext ThreadLocal, scoping |
| Authorization — OAuth Persistence | MongoDB-backed OAuth2 state persistence |
| Authorization — Controllers | Registration, invitation, password reset controllers |
| Authorization — Configuration & Security | Security filter chain, Spring Authorization Server config |
| Authorization — Registration & Utilities | Registration flows and utility helpers |
| Gateway Service Core | Reactive gateway, JWT validation, API key auth, rate limiting |
| API Service Core — GraphQL | Netflix DGS GraphQL API, Relay pagination, DataLoaders |
| API Service Core — REST Controllers | Internal REST endpoints, agent secrets, API key management |
| API Service Core — DataLoaders | Batching and N+1 elimination with DataLoaders |
| API Service Core — Config & Security | Security config, JWT resource server setup |
| API Contracts and Mapping | DTOs, mappers, and API contract definitions |
| External REST API Service Core | Public versioned REST API, tool proxying, OpenAPI docs |
| Client Agent Service Core | Agent registration, heartbeat, RMM execution, watchdog |
| Data Mongo Domain Model | MongoDB document definitions across all domains |
| Data Mongo Sync Repositories | Tenant-aware repositories, cursor pagination, aggregations |
| Stream Processing Core | Kafka event ingestion, enrichment, and state projection |
Visual documentation is available as Mermaid diagram files in:
docs/diagrams/architecture/
Diagrams cover all major modules including:
authorization-service-core— OAuth2 flows, tenant contextgateway-service-core— Edge security flowapi-service-core-graphql— GraphQL execution modelclient-agent-service-core— Agent lifecyclestream-processing-core— Kafka pipelinedata-mongo-domain-model— Domain document relationshipsdata-mongo-sync-repositories— Repository query patternsconfiguration-and-security— Security filter chain
The OpenFrame Main CLI tool for self-hosted deployment is maintained in a separate repository:
- Repository: flamingo-stack/openframe-cli
- Documentation: CLI Documentation
Note: CLI tools are NOT located in this repository. Always refer to the external repository for installation and usage.
| Project | Description |
|---|---|
| openframe-oss-tenant | Main OpenFrame platform application — see how these modules are assembled |
| openframe-cli | CLI tool for self-hosted deployment |
| OpenFrame | Unified AI-driven MSP platform |
| Flamingo | Commercial MSP platform powered by OpenFrame |
Questions, ideas, and discussions live in the OpenMSP Slack community:
https://join.slack.com/t/openmsp/shared_invite/zt-36bl7mx0h-3~U2nFH6nqHqoTPXMaHEHA
We do not use GitHub Issues or GitHub Discussions — all coordination happens on Slack.
- Project README — Main project README
- Contributing — How to contribute
- License — License information
- GitHub Repository — Browse source and pull requests
- GitHub Packages — Published releases
Documentation generated by 🦩 Flamingo AI Technical Writer