API Reference

API Reference

Technical reference for JUDO CLI internals, configuration schemas, and extension points.

Configuration Schema

Application Configuration

# judo.properties schema
app_name: string          # Application name (required)
schema_name: string       # Database schema name
app_version: string       # Application version
app_description: string   # Application description

dbtype: enum              # postgresql | hsqldb
database_host: string     # Database hostname
database_port: integer    # Database port (1-65535)
database_name: string     # Database name
database_username: string # Database username
database_password: string # Database password

runtime: enum             # karaf | compose

karaf_port: integer       # HTTP port (1-65535)
karaf_debug_port: integer # Debug port
karaf_debug_enabled: boolean # Enable debug mode
karaf_ssh_port: integer   # SSH port
karaf_ssh_enabled: boolean # Enable SSH access

keycloak_port: integer    # Keycloak port
keycloak_realm: string    # Keycloak realm name
keycloak_enabled: boolean # Enable Keycloak
postgres_port: integer    # PostgreSQL port
postgres_version: string  # PostgreSQL version

build_skip_tests: boolean # Skip tests during build
build_parallel: boolean   # Enable parallel build
maven_profile: string     # Maven profile to use

Environment Variables

All configuration properties can be overridden using environment variables with the pattern: JUDO_ + property path in uppercase with dots replaced by underscores.

Examples

PropertyEnvironment VariableExample
app_nameJUDO_APP_NAMEJUDO_APP_NAME=myapp
database_hostJUDO_DATABASE_HOSTJUDO_DATABASE_HOST=localhost
karaf_portJUDO_KARAF_PORTJUDO_KARAF_PORT=8080
build_skip_testsJUDO_BUILD_SKIP_TESTSJUDO_BUILD_SKIP_TESTS=true

Command Exit Codes

CodeMeaningDescription
0SuccessCommand completed successfully
1General ErrorCommand failed with error
2MisuseInvalid command usage or arguments
3Configuration ErrorInvalid or missing configuration
4Service ErrorService start/stop/status error
5Build ErrorBuild or compilation error
6Database ErrorDatabase operation error
130InterruptedCommand interrupted by user (Ctrl+C)

Note: All commands output simple text messages rather than structured JSON formats.

File Locations

Configuration Files

FileLocationPurpose
judo.propertiesProject rootMain configuration
{env}.propertiesProject rootEnvironment overrides
judo-version.propertiesProject rootVersion constraints

Runtime Files

FileLocationPurpose
.judo/Project rootRuntime data directory
.judo/state.jsonProject rootCurrent state tracking
.judo/logs/Project rootApplication logs
.judo/temp/Project rootTemporary files

System Files

FileLocationPurpose
~/.judo/configUser homeGlobal configuration
~/.judo/cache/User homeDownload cache
/usr/local/bin/judoSystemBinary installation

Docker Integration

Container Management

JUDO CLI manages Docker containers for PostgreSQL and Keycloak services. The actual container configuration is handled internally and outputs simple text status messages rather than structured JSON.

Common Error Conditions

ConditionDescriptionResolution
Configuration file missingjudo.properties not foundCreate judo.properties file
Port already occupiedService port conflictChange port or stop conflicting service
Docker not runningDocker daemon unavailableStart Docker service
Build failedMaven compilation errorsCheck build logs and fix errors
Service timeoutService failed to startIncrease timeout or check service logs

See Also