Knowledge Hub
Comprehensive guides and references for the OpenFrame platform
OpenFrame Gen1 is Here · The AI platform for autonomous IT is out of beta and ready for production.
Comprehensive guides and references for the OpenFrame platform
After cloning and building OpenFrame OSS Tenant, here are the first 5 things to do to understand and work with the platform.
OpenFrame OSS Tenant is a polyglot monorepo. Familiarize yourself with the key directories:
openframe-oss-tenant/
├── openframe/services/ # Java/Spring Boot microservices
│ ├── openframe-api/ # GraphQL + REST API (port 8080)
│ ├── openframe-gateway/ # Spring Cloud Gateway (port 8081)
│ ├── openframe-authorization-server/ # OAuth2/OIDC (port 8082)
│ ├── openframe-external-api/ # Public REST API (port 8083)
│ ├── openframe-client/ # Agent lifecycle service (port 8084)
│ ├── openframe-stream/ # Kafka Streams (port 8085)
│ └── openframe-management/ # Platform management service
├── clients/
│ └── openframe-client/ # Rust endpoint agent
├── manifests/ # Kubernetes manifests for infrastructure
└── pom.xml # Root Maven POM
Each Spring Boot service has its own src/main/resources/application.yml for configuration.
The platform architecture documentation describes how all components interconnect. Read it to understand the request lifecycle:
See the Architecture Overview for diagrams.
After building the openframe-client Rust agent, run the built-in diagnostics to verify your local environment:
cd clients/openframe-client
OPENFRAME_VERSION=0.0.0-dev cargo build
./target/debug/openframe-client doctor
The doctor command runs environment health checks against the agent configuration and reports any missing dependencies or configuration issues.
The repository includes initialization scripts for development infrastructure:
| Script | Purpose |
|---|---|
setup_dev_init_config.sh (in openframe-oss-lib, under clients/openframe-client/scripts/) |
Sets up development initialization config for the Rust agent |
manifests/datasources/mongodb/scripts/readiness-command.sh |
MongoDB readiness probe |
manifests/datasources/mongodb-meshcentral/scripts/meshcentral-mongodb-init.sh |
Initializes MongoDB for MeshCentral integration |
To set up the Rust agent for local development (the script moved to openframe-oss-lib with the agent sources):
bash <openframe-oss-lib>/clients/openframe-client/scripts/setup_dev_init_config.sh
Each Spring Boot service reads configuration from src/main/resources/application.yml. Key properties to configure for local development:
spring:
data:
mongodb:
uri: mongodb://localhost:27017/openframe
kafka:
bootstrap-servers: localhost:9092
# Service-specific NATS configuration (Client Service)
nats:
url: nats://localhost:4222
The Rust agent reads its configuration from a platform-specific directory. For local development, set OPENFRAME_DEV_MODE=1 to use a user-local config directory:
export OPENFRAME_DEV_MODE=1
The agent can be installed as a system service (requires admin/root):
sudo ./target/release/openframe-client install \
--serverUrl https://your-openframe-instance.example.com \
--initialKey YOUR_INITIAL_KEY \
--orgId YOUR_ORG_ID
Note: Replace the server URL, initial key, and org ID values with those from your running OpenFrame instance. Refer to your environment configuration for these values.
OpenFrame OSS Tenant is community-supported through the OpenMSP Slack workspace. This is the primary place for questions, feature requests, and announcements.
Once running, key features to explore:
| Feature | How to Access |
|---|---|
| GraphQL API | API Service at port 8080 — use a GraphQL client like GraphiQL or Insomnia |
| Agent Registration | Use openframe-client install with a valid initial key |
| OAuth2 Login | Authorization Server at port 8082 handles tenant-scoped login |
| Multi-Tenant Isolation | All API queries are automatically scoped by JWT tenant_id claim |
| Script Execution (RMM) | GraphQL mutations on the API Service dispatch scripts via NATS |