Skip to content

Latest commit

 

History

History
148 lines (100 loc) · 3.65 KB

File metadata and controls

148 lines (100 loc) · 3.65 KB

Development Environment Setup

This guide covers IDE recommendations, required tools, editor plugins, and environment configuration for working with OpenFrame OSS Tenant.


IDE Recommendations

IntelliJ IDEA (Recommended for Java/Backend)

IntelliJ IDEA is the recommended IDE for working with the Spring Boot microservices. The Community Edition is free and sufficient for most development tasks.

Required Plugins:

  • Lombok Plugin — The codebase uses Project Lombok extensively (@Data, @Builder, @Slf4j, etc.)
  • Spring Boot — Spring support is built into IntelliJ IDEA Ultimate; Community Edition users should install the Spring Assistant plugin

Recommended Plugins:

  • GraphQL — For editing .graphqls schema files
  • Kubernetes — For editing manifests in the manifests/ directory
  • MongoDB — For browsing MongoDB collections during development
  • Checkstyle-IDEA — For code style enforcement

Import the Project:

# Open IntelliJ IDEA and import as Maven project
# File → Open → select the root pom.xml

IntelliJ will automatically detect all Maven modules.


RustRover / VS Code (Recommended for Rust)

For working on the Rust component (clients/openframe-client):

  • RustRover (JetBrains) — Dedicated Rust IDE, excellent for large Rust projects
  • VS Code with the rust-analyzer extension

VS Code Extensions for Rust:

  • rust-analyzer — Language server for Rust
  • Even Better TOML — For editing Cargo.toml files

Toolchain Installation

Java 21

# Using SDKMAN (recommended for version management)
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 21.0.3-ms

# Verify
java -version

Maven

# With SDKMAN
sdk install maven

# Or download from https://maven.apache.org/download.cgi
mvn -version

Rust

# Install rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

# Verify
rustc --version
cargo --version

Environment Variables for Development

Configure these variables in your shell profile (~/.bashrc, ~/.zshrc, etc.) or in your IDE's run configurations.

Rust Agent

# Enable development mode (local directories, relaxed TLS)
export OPENFRAME_DEV_MODE=1

Spring Boot Services

These are typically set in each service's application-local.yml or passed as JVM arguments in your IDE:

# MongoDB
export SPRING_DATA_MONGODB_URI="mongodb://localhost:27017/openframe"

# Kafka
export SPRING_KAFKA_BOOTSTRAP_SERVERS="localhost:9092"

# Redis
export SPRING_DATA_REDIS_HOST="localhost"
export SPRING_DATA_REDIS_PORT="6379"

# NATS (Client Service)
export NATS_URL="nats://localhost:4222"

IntelliJ Run Configuration

To set environment variables for a Spring Boot run configuration in IntelliJ:

  1. Open Run → Edit Configurations
  2. Select the Spring Boot application
  3. Click Modify options → Environment variables
  4. Add the required variables

Git Configuration

The repository uses standard Git with no special hooks pre-configured. Recommended settings:

# Set your identity
git config --global user.name "Your Name"
git config --global user.email "your@email.com"

# Recommended: use main as the default branch name
git config --global init.defaultBranch main

Summary Checklist

Tool Status
JDK 21 installed and JAVA_HOME set ✅ / ❌
Maven 3.9+ installed ✅ / ❌
Rust stable toolchain installed ✅ / ❌
IDE configured with recommended plugins ✅ / ❌