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
This guide covers how to clone, set up, and run OpenFrame OSS Tenant services locally for development.
git clone https://github.com/flamingo-stack/openframe-oss-tenant.git
cd openframe-oss-tenant
openframe-oss-tenant/
├── openframe/
│ └── services/
│ ├── openframe-api/ # GraphQL + REST API (port 8080)
│ ├── openframe-gateway/ # Spring Cloud Gateway (port 8081)
│ ├── openframe-authorization-server/ # OAuth2 (port 8082)
│ ├── openframe-external-api/ # Public API (port 8083)
│ ├── openframe-client/ # Agent service (port 8084)
│ ├── openframe-stream/ # Kafka Streams (port 8085)
│ ├── openframe-management/ # Management tasks
│ ├── openframe-config/ # Config Server
│ └── openframe-test/ # E2E test runner
├── clients/
│ └── openframe-client/ # Rust endpoint agent
├── manifests/ # Kubernetes + datasource configs
└── pom.xml # Root Maven POM
# Build all modules, skip tests
mvn clean install -DskipTests
# Build with tests
mvn clean install
# Build only the API service and its dependencies
mvn clean install -pl openframe/services/openframe-api -am -DskipTests
Each Spring Boot service can be run from its module directory:
# Start the API service
cd openframe/services/openframe-api
mvn spring-boot:run
Or from the root using the module flag:
mvn spring-boot:run -pl openframe/services/openframe-api
To run the full stack locally, start services in this order (infrastructure first):
openframe-config (Spring Cloud Config Server)openframe-authorization-serveropenframe-apiopenframe-client (Spring Boot agent service)openframe-streamopenframe-managementopenframe-gatewayopenframe-external-apicd clients/openframe-client
# Development build
OPENFRAME_VERSION=0.0.0-dev cargo build
# Enable dev mode for local directories and relaxed TLS
export OPENFRAME_DEV_MODE=1
# Run the agent directly (no system service)
./target/debug/openframe-client run
# Run health checks
./target/debug/openframe-client doctor
Rust does not have built-in hot reload, but cargo-watch provides file-watching:
# Install cargo-watch
cargo install cargo-watch
# Watch and rebuild on changes
OPENFRAME_VERSION=0.0.0-dev cargo watch -x build
The setup script moved to openframe-oss-lib with the agent sources; run it from a side-by-side checkout:
bash <openframe-oss-lib>/clients/openframe-client/scripts/setup_dev_init_config.sh
This script creates the necessary configuration files in the development directory layout used when OPENFRAME_DEV_MODE=1 is set.
ApiApplication.java)main() or use Run → DebugRemote Debug (attach to running process):
# Start the service with JVM debug options
mvn spring-boot:run \
-pl openframe/services/openframe-api \
-Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
Then attach IntelliJ to port 5005 via Run → Attach to Process.
For openframe-client, use the CodeLLDB extension in VS Code:
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug openframe-client",
"cargo": {
"args": ["build", "--manifest-path", "clients/openframe-client/Cargo.toml"]
},
"args": ["run"],
"env": {
"OPENFRAME_DEV_MODE": "1"
}
}
]
}
# Build and tail output
mvn clean install -DskipTests 2>&1 | tee build.log
cd clients/openframe-client
cargo clean
Each Spring Boot service exposes a Spring Actuator health endpoint:
# API service health check
curl http://localhost:8080/actuator/health
# Gateway health check
curl http://localhost:8081/actuator/health
| Task | Command |
|---|---|
| Build all backend services | mvn clean install -DskipTests |
| Run API service | mvn spring-boot:run -pl openframe/services/openframe-api |
| Build Rust agent | cd clients/openframe-client && OPENFRAME_VERSION=0.0.0-dev cargo build |
| Run Rust agent (dev) | OPENFRAME_DEV_MODE=1 ./target/debug/openframe-client run |