Enterprise Runtime Configuration Management Implementation
Overview
Implement dynamic runtime configuration management to match enterprise tools like Heimdall2, enabling administrators to modify settings, manage users, and perform bulk operations without application restarts.
Research Summary
Current State
- ✅ Comprehensive environment variable documentation (ENVIRONMENT_VARIABLES.md)
- ✅ OIDC auto-discovery reducing configuration complexity
- ❌ All configuration requires application restart
- ❌ No web-based administration interface
- ❌ Limited bulk operation capabilities
Enterprise Requirements (from #654)
Based on user feedback comparing to Heimdall2 capabilities:
- Runtime configuration changes without restarts
- Web-based administration interface
- Bulk user management operations
- STIG/SRG bulk import and update capabilities
- Scalable configuration management
Implementation Strategy
Recommended Technology Stack
Proven Rails gems for rapid implementation:
- rails-settings-cached - Database-backed configuration with automatic caching
- ActiveAdmin - Complete admin interface framework
- Flipper - Feature flags and A/B testing capabilities
- Flipper-UI - Web interface for feature management
Architecture Approach
Security Boundaries
# Keep as environment variables (security-critical):
- Database connections (DATABASE_URL)
- OIDC client secrets (VULCAN_OIDC_CLIENT_SECRET)
- Encryption keys
- LDAP bind credentials
# Move to database-backed (administrative):
- Welcome text and UI customizations
- Session timeout settings
- Email templates and contact information
- Feature flags for experimental features
- User registration and project creation permissions
Technical Implementation
# Database-backed settings with validation
class Setting < RailsSettingsCached::Base
field :welcome_text, type: :string, default: "Welcome to Vulcan"
field :session_timeout_minutes, type: :integer, default: 60
field :contact_email, type: :string, default: "admin@vulcan.local"
validates :session_timeout_minutes,
inclusion: { in: 15..480, message: "must be between 15 minutes and 8 hours" }
end
# Runtime usage throughout application
# Before: ENV['VULCAN_WELCOME_TEXT'] || 'Welcome to Vulcan'
# After: Setting.welcome_text
Implementation Phases
Phase 1: Foundation (4-6 hours)
Dependencies: Ruby 3.2+, Rails 7+, Modern asset pipeline
Deliverables:
- Install and configure rails-settings-cached
- Install and configure ActiveAdmin
- Create admin authentication and authorization
- Migrate 5-10 safe settings to database-backed configuration
- Basic admin interface for settings management
Settings to migrate first:
- Welcome text and contact information
- Session timeout (with validation limits)
- User registration enablement
- Project creation permissions
- Email template customizations
Phase 2: User Management (2-3 hours)
Deliverables:
- Complete admin interface for user management
- Batch operations (bulk admin assignment, account confirmation)
- User search and filtering capabilities
- Audit logging for administrative actions
Phase 3: Feature Flags (1-2 hours)
Deliverables:
- Install and configure Flipper with web UI
- Implement feature flags for experimental features
- A/B testing capabilities for UI improvements
- Gradual feature rollout mechanisms
Phase 4: Bulk Operations (2-4 hours)
Deliverables:
- STIG/SRG bulk import operations
- Component batch management
- Automated maintenance task scheduling
- Background job monitoring interface
Benefits Analysis
Enterprise Administration Capabilities
✅ Zero-restart configuration changes
✅ Web-based administrative interface
✅ Scalable user management with batch operations
✅ Feature toggles for safe deployments
✅ Bulk STIG/SRG management operations
✅ Audit trails for configuration changes
Implementation Advantages
- Rapid Development: 8-12 hours total using proven gems vs. weeks of custom development
- Battle-Tested: ActiveAdmin powers thousands of Rails applications
- Maintainable: Standard Rails patterns, extensive documentation
- Secure: Maintains separation between security-critical and administrative settings
- Scalable: Database-backed with automatic caching
Dependencies
Prerequisites
Technical Requirements
- Ruby 3.2+ (for gem compatibility)
- Rails 7+ (current: 7.0.8.7)
- PostgreSQL (current setup)
- Redis/Memcached (for settings caching)
Success Criteria
Functional Requirements
Performance Requirements
Security Requirements
Timeline Estimate
Total Implementation: 8-12 hours over 2-3 sprints
Sprint 1 (Post-Webpacker Migration):
- Phase 1: Foundation (4-6 hours)
Sprint 2:
- Phase 2: User Management (2-3 hours)
- Phase 3: Feature Flags (1-2 hours)
Sprint 3:
- Phase 4: Bulk Operations (2-4 hours)
- Documentation and testing
Related Issues
References
Priority: Medium (after infrastructure upgrades)
Labels: enhancement, enterprise, administration, configuration
Estimated LOE: 8-12 hours across 2-3 sprints
Enterprise Runtime Configuration Management Implementation
Overview
Implement dynamic runtime configuration management to match enterprise tools like Heimdall2, enabling administrators to modify settings, manage users, and perform bulk operations without application restarts.
Research Summary
Current State
Enterprise Requirements (from #654)
Based on user feedback comparing to Heimdall2 capabilities:
Implementation Strategy
Recommended Technology Stack
Proven Rails gems for rapid implementation:
Architecture Approach
Security Boundaries
Technical Implementation
Implementation Phases
Phase 1: Foundation (4-6 hours)
Dependencies: Ruby 3.2+, Rails 7+, Modern asset pipeline
Deliverables:
Settings to migrate first:
Phase 2: User Management (2-3 hours)
Deliverables:
Phase 3: Feature Flags (1-2 hours)
Deliverables:
Phase 4: Bulk Operations (2-4 hours)
Deliverables:
Benefits Analysis
Enterprise Administration Capabilities
✅ Zero-restart configuration changes
✅ Web-based administrative interface
✅ Scalable user management with batch operations
✅ Feature toggles for safe deployments
✅ Bulk STIG/SRG management operations
✅ Audit trails for configuration changes
Implementation Advantages
Dependencies
Prerequisites
Technical Requirements
Success Criteria
Functional Requirements
Performance Requirements
Security Requirements
Timeline Estimate
Total Implementation: 8-12 hours over 2-3 sprints
Sprint 1 (Post-Webpacker Migration):
Sprint 2:
Sprint 3:
Related Issues
References
Priority: Medium (after infrastructure upgrades)
Labels: enhancement, enterprise, administration, configuration
Estimated LOE: 8-12 hours across 2-3 sprints