Development Documentation
Welcome to the OpenFrame OSS Tenant development documentation. This section covers everything you need to contribute to and work with the platform.
OpenFrame OSS Tenant is a polyglot platform built across two primary technology stacks:
Java / Spring Boot 3.3 — Backend microservices (API, Gateway, Auth, Stream, Management, Client Service)
Rust — Cross-platform endpoint agent (openframe-client)
This documentation section guides you through setting up your development environment, understanding the architecture, and contributing code effectively.
Technology Stack at a Glance
Service
Tech
Port
openframe-api
Spring Boot 3.3 + Netflix DGS (GraphQL)
8080
openframe-gateway
Spring Cloud Gateway
8081
openframe-authorization-server
Spring Authorization Server (OAuth2/OIDC)
8082
openframe-external-api
Spring Boot REST
8083
openframe-client (service)
Spring Boot + NATS
8084
openframe-stream
Spring Boot + Kafka Streams
8085
openframe-management
Spring Boot
—
openframe-config
Spring Cloud Config Server
—
Application
Tech
Purpose
clients/openframe-client
Rust
Cross-platform endpoint agent
Component
Purpose
MongoDB
Primary document store (multi-tenant, tenant-scoped collections)
Apache Kafka
Event streaming between services
NATS JetStream
Real-time agent ↔ platform messaging
Apache Cassandra
Time-series log and command result storage
Apache Pinot
Real-time analytics
Redis
Cache, session storage, rate limiting
The openframe-oss-lib dependency (version 5.64.0 at time of writing) provides shared Java libraries consumed by all Spring Boot services:
Library
Purpose
openframe-core
Core utilities, validation, pagination
openframe-security-core
JWT validation, AuthPrincipal, cookie service
openframe-data-mongo-common
MongoDB documents, repositories, tenant scoping
openframe-api-service-core
GraphQL data fetchers, controllers, mappers
openframe-gateway-service-core
Gateway filters, WebSocket proxy, rate limiting
openframe-authorization-service-core
OAuth2/OIDC controllers, SSO flows
openframe-data-kafka
Kafka producers, retry, tenant-aware configuration
openframe-data-nats
NATS publishers, notification broadcaster
All development questions, issues, and discussions are handled in the OpenMSP Slack community — GitHub Issues and Discussions are not used.