Global Rhema Configuration Reference
Overview
The global rhema configuration file is stored at ~/.rhema/config.yaml and contains user-wide settings that apply across all rhema projects. This file manages personal preferences, application settings, security configurations, and integration settings.
File Location
~/.rhema/config.yamlComplete Configuration Structure
version: "1.0.0"
user:
id: "user123"
name: "John Doe"
email: "john@example.com"
preferences:
default_output_format: "yaml"
default_editor: "vim"
color_scheme: "dark"
language: "en"
timezone: "UTC"
date_format: "YYYY-MM-DD"
time_format: "HH:mm:ss"
notifications:
email_enabled: true
desktop_enabled: true
sound_enabled: false
frequency: "immediate"
types: ["errors", "warnings"]
ui:
theme: "dark"
font_size: 14
show_line_numbers: true
show_minimap: false
word_wrap: true
auto_save: true
auto_save_interval: 30
application:
name: "Rhema"
version: "1.0.0"
description: "Git-Based Agent Context Protocol CLI"
settings:
debug_mode: false
verbose_logging: false
log_level: "info"
log_file: null
max_log_size: 100
log_rotation_count: 5
telemetry_enabled: true
telemetry_endpoint: "https://telemetry.rhema.dev"
auto_update_enabled: true
update_check_interval: 24
features:
experimental_features: false
beta_features: false
advanced_features: true
ai_features: true
cloud_features: false
collaboration_features: true
analytics_features: true
plugins:
plugin_directory: "~/.rhema/plugins"
auto_load_plugins: true
enabled_plugins: ["git", "ai", "analytics"]
disabled_plugins: []
plugin_settings: {}
environment:
current: "development"
environments:
development:
name: "Development"
description: "Development environment"
variables:
DEBUG: "true"
LOG_LEVEL: "debug"
paths:
data: "~/.rhema/data/dev"
cache: "~/.rhema/cache/dev"
settings: {}
testing:
name: "Testing"
description: "Testing environment"
variables:
DEBUG: "false"
LOG_LEVEL: "info"
paths:
data: "~/.rhema/data/test"
cache: "~/.rhema/cache/test"
settings: {}
staging:
name: "Staging"
description: "Staging environment"
variables:
DEBUG: "false"
LOG_LEVEL: "warn"
paths:
data: "~/.rhema/data/staging"
cache: "~/.rhema/cache/staging"
settings: {}
production:
name: "Production"
description: "Production environment"
variables:
DEBUG: "false"
LOG_LEVEL: "error"
paths:
data: "~/.rhema/data/prod"
cache: "~/.rhema/cache/prod"
settings: {}
environment_variables:
RHEMA_HOME: "~/.rhema"
RHEMA_CONFIG: "~/.rhema/config.yaml"
paths:
home: "~/.rhema"
config: "~/.rhema"
data: "~/.rhema/data"
cache: "~/.rhema/cache"
log: "~/.rhema/logs"
temp: "~/.rhema/temp"
workspace: null
custom: {}
security:
encryption:
enabled: true
algorithm: "AES-256-GCM"
key_size: 256
kdf: "PBKDF2"
salt_size: 32
iteration_count: 100000
key_file: "~/.rhema/keys/master.key"
master_password_required: true
authentication:
method: "password"
session_timeout: 60
max_failed_attempts: 5
lockout_duration: 30
require_mfa: false
mfa_method: null
sso_enabled: false
sso_provider: null
authorization:
rbac_enabled: true
default_role: "user"
admin_role: "admin"
user_role: "user"
guest_role: "guest"
permission_inheritance: true
permission_cache_enabled: true
permission_cache_timeout: 15
audit:
enabled: true
log_level: "info"
log_file: "~/.rhema/logs/audit.log"
retention_days: 90
events: ["config_change", "auth", "access"]
filters: {}
compliance:
framework: "SOC2"
level: "Type II"
reporting_enabled: true
checks: ["encryption", "access_control", "audit"]
rules: {}
performance:
cache:
enabled: true
cache_type: "file"
cache_size: 1000
cache_ttl: 3600
cache_directory: "~/.rhema/cache"
compression_enabled: true
encryption_enabled: false
threading:
max_threads: 8
thread_pool_size: 4
async_runtime_threads: 4
blocking_thread_pool_size: 2
memory:
max_memory_usage: 2048
memory_limit: 4096
gc_enabled: true
gc_interval: 300
network:
connection_timeout: 30
request_timeout: 60
max_connections: 100
keep_alive_enabled: true
keep_alive_timeout: 60
proxy: null
integrations:
git:
enabled: true
provider: "github"
credentials:
username: "johndoe"
email: "john@example.com"
ssh_key_path: "~/.ssh/id_rsa"
personal_access_token: null
oauth_token: null
hooks_enabled: true
hooks_directory: null
workflow: "github-flow"
branch_naming:
feature: "feature/{ticket}-{description}"
bugfix: "bugfix/{ticket}-{description}"
hotfix: "hotfix/{ticket}-{description}"
ide:
enabled: true
supported_ides: ["vscode", "intellij", "vim"]
ide_settings:
vscode:
auto_sync: true
extensions: ["rhema-vscode"]
intellij:
auto_sync: true
plugins: ["rhema-intellij"]
auto_sync_enabled: true
sync_interval: 30
cicd:
enabled: false
provider: "github-actions"
settings: {}
auto_deploy_enabled: false
deployment_environments: []
cloud:
enabled: false
provider: "aws"
credentials:
access_key_id: null
secret_access_key: null
session_token: null
credentials_file: null
profile_name: null
regions: ["us-east-1"]
services: ["s3", "ec2"]
external_services: {}
custom: {}
audit_log:
changes: []
created_at: "2024-01-01T00:00:00Z"
updated_at: "2024-01-01T00:00:00Z"
health:
status: "healthy"
issues: []
recommendations: []
last_check: "2024-01-01T00:00:00Z"
stats:
total_configs: 1
global_configs: 1
repository_configs: 0
scope_configs: 0
encrypted_configs: 1
backup_count: 0
last_backup: null
validation_errors: 0
migration_pending: 0
updated_at: "2024-01-01T00:00:00Z"Configuration Sections
1. User Section
The user section contains personal information and preferences:
-
id: Unique user identifier
-
name: User’s full name
-
email: User’s email address
-
preferences: User-specific settings including:
-
Output format preferences
-
Editor settings
-
UI theme and appearance
-
Notification settings
-
Language and timezone preferences
-
2. Application Section
The application section manages core application behavior:
-
name: Application name
-
version: Current version
-
settings: Core application settings including:
-
Debug and logging configuration
-
Telemetry settings
-
Auto-update preferences
-
-
features: Feature flags for enabling/disabling functionality
-
plugins: Plugin management settings
3. Environment Section
The environment section handles environment-specific configurations:
-
current: Currently active environment
-
environments: Environment-specific settings for development, testing, staging, and production
-
environment_variables: Global environment variables
-
paths: Directory paths for various data types
4. Security Section
The security section manages all security-related configurations:
-
encryption: Encryption algorithm and key management
-
authentication: Authentication methods and session management
-
authorization: Role-based access control settings
-
audit: Audit logging configuration
-
compliance: Compliance framework settings
5. Performance Section
The performance section optimizes application performance:
-
cache: Cache configuration and settings
-
threading: Thread pool and concurrency settings
-
memory: Memory management and garbage collection
-
network: Network connection and timeout settings
6. Integrations Section
The integrations section configures external service integrations:
-
git: Git provider and workflow settings
-
ide: IDE integration settings
-
cicd: CI/CD pipeline configuration
-
cloud: Cloud service provider settings
-
external_services: Additional external service configurations
7. System Sections
-
custom: Custom configuration extensions
-
audit_log: Configuration change tracking
-
health: System health status and recommendations
-
stats: Configuration statistics and metrics
CLI Commands for Configuration Management
# Display global configuration
rhema config show global [--format <format>]
# Edit global configuration
rhema config edit global [--editor <editor>]
# Validate global configuration
rhema config validate global [--fix]
# Check configuration health
rhema config health global
# Backup global configuration
rhema config backup global
# Export global configuration
rhema config export global --format yaml --output global-config.yaml
# Import global configuration
rhema config import global --format yaml --input global-config.yamlConfiguration Hierarchy
The rhema configuration system follows this hierarchy:
-
Global Configuration (
~/.rhema/config.yaml) - User-wide settings -
Repository Configuration (
.rhema/config.yaml) - Project-specific settings -
Scope Configuration - Scope-specific settings within projects
Global configuration provides defaults that can be overridden by repository-specific configurations.
Best Practices
-
Backup Regularly: Use
rhema config backup globalto create regular backups -
Validate Changes: Always validate configuration after making changes
-
Use Version Control: Consider versioning your global configuration
-
Secure Sensitive Data: Ensure encryption is enabled for sensitive configurations
-
Environment Separation: Use different configurations for different environments
Troubleshooting
Common Issues
-
Configuration Not Found: Ensure the file exists at
~/.rhema/config.yaml -
Permission Errors: Check file permissions and ownership
-
Validation Errors: Use
rhema config validate global --fixto auto-fix issues -
Performance Issues: Review and adjust performance settings
Health Checks
# Check configuration health
rhema config health global
# View health recommendations
rhema config health global --verboseMigration and Updates
When updating rhema versions, the configuration system automatically handles migrations:
# Check for pending migrations
rhema config migrate global --dry-run
# Apply migrations
rhema config migrate global