Configuration Management - API Specification
Introduction
This API specification documents the programmatic interfaces for the Configuration Management module of Codomyrmex. The module provides comprehensive configuration management, validation, and deployment capabilities for the Codomyrmex ecosystem, supporting multiple configuration sources, validation schemas, and secure secret management.
Functions
Function: load_configuration(config_paths: List[str], environment: str = "development", overrides: Optional[Dict] = None, **kwargs) -> Configuration
- Description: Load and merge configuration from multiple sources with environment-specific overrides.
- Parameters:
config_paths: List of file paths or URLs to configuration files.environment: Target environment (development, staging, production).overrides: Optional runtime configuration overrides.**kwargs: Additional loading options (format, validation, etc.).
- Return Value: Merged and validated Configuration object.
- Errors: Raises
ConfigurationErrorfor loading failures or validation errors.
Function: validate_configuration(config: Union[Dict, Configuration], schema: Optional[ConfigSchema] = None, **kwargs) -> Dict
-
Description: Validate configuration against schemas and business rules.
-
Parameters:
config: Configuration to validate (dict or Configuration object).schema: Optional JSON schema for validation.**kwargs: Validation options (strict_mode, custom_validators, etc.).
-
Return Value:
{"valid": <bool>,"errors": [<list_of_validation_errors>],"warnings": [<list_of_warnings>],"schema_compliant": <bool>,"business_rules_passed": <bool>} -
Errors: Raises
ValidationErrorfor schema violations or business rule failures.
Function: manage_secrets(operation: str, secret_path: str, value: Optional[str] = None, **kwargs) -> Dict
-
Description: Secure secret management including storage, retrieval, and rotation.
-
Parameters:
operation: Operation type (get, set, rotate, delete).secret_path: Path/key for the secret.value: Value for set operations.**kwargs: Operation-specific options (encryption, ttl, etc.).
-
Return Value:
{"operation": <str>,"secret_path": <str>,"success": <bool>,"value": <str>, # Only for get operations"metadata": {"created_at": <timestamp>,"last_rotated": <timestamp>,"encryption": <str>}} -
Errors: Raises
SecretManagementErrorfor security or access failures.
Function: deploy_configuration(config: Configuration, target: str, strategy: str = "rolling", **kwargs) -> ConfigDeployment
- Description: Deploy configuration to target environments with rollback capabilities.
- Parameters:
config: Configuration to deploy.target: Deployment target (environment, service, file path).strategy: Deployment strategy (rolling, blue_green, canary).**kwargs: Deployment options (timeout, validation, backup, etc.).
- Return Value: ConfigDeployment object with tracking and rollback capabilities.
- Errors: Raises
DeploymentErrorfor deployment failures.
Function: monitor_config_changes(config_path: str, callback: Optional[Callable] = None, **kwargs) -> ConfigurationMonitor
- Description: Monitor configuration files for changes and drift detection.
- Parameters:
config_path: Path to configuration file or directory to monitor.callback: Optional callback function for change notifications.**kwargs: Monitoring options (interval, patterns, recursive, etc.).
- Return Value: ConfigurationMonitor object providing real-time change tracking.
- Errors: Raises
MonitoringErrorfor filesystem or permission issues.
Function: audit_configuration(config: Configuration, audit_rules: Optional[List] = None, **kwargs) -> ConfigAudit
- Description: Audit configuration for compliance, security, and best practices.
- Parameters:
config: Configuration to audit.audit_rules: Optional custom audit rules to apply.**kwargs: Audit options (severity_levels, categories, etc.).
- Return Value: ConfigAudit object with findings, recommendations, and compliance status.
- Errors: Raises
AuditErrorfor audit execution failures.
Data Structures
Configuration
Represents a loaded and validated configuration:
{
"data": {<configuration_data>},
"metadata": {
"sources": [<list_of_source_files>],
"environment": <str>,
"loaded_at": <timestamp>,
"validated": <bool>,
"schema_version": <str>
},
"overrides": {<runtime_overrides>},
"secrets": {<encrypted_secret_references>}
}
ConfigSchema
JSON schema definition for configuration validation:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {<schema_properties>},
"required": [<list_of_required_fields>],
"additionalProperties": <bool>,
"metadata": {
"version": <str>,
"description": <str>,
"created_by": <str>
}
}
ConfigDeployment
Tracks configuration deployment status and history:
{
"id": <str>,
"config_id": <str>,
"target": <str>,
"strategy": <str>,
"status": "pending|in_progress|completed|failed|rolled_back",
"start_time": <timestamp>,
"end_time": <timestamp>,
"backup_path": <str>,
"rollback_available": <bool>,
"validation_results": {<deployment_validation>},
"error_message": <str>
}
ConfigAudit
Results of configuration audit and compliance checking:
{
"config_id": <str>,
"audit_timestamp": <timestamp>,
"overall_score": <float>,
"compliance_status": "compliant|non_compliant|warning",
"findings": [
{
"rule": <str>,
"severity": "critical|high|medium|low|info",
"message": <str>,
"path": <str>,
"recommendation": <str>
}
],
"categories": {
"security": <score>,
"performance": <score>,
"maintainability": <score>,
"compliance": <score>
}
}
SecretManager
Manages encrypted secrets and credentials:
{
"backend": <str>, # vault, aws_secretsmanager, azure_keyvault, etc.
"encryption_method": <str>,
"rotation_policy": {<rotation_rules>},
"access_policies": [<list_of_access_policies>],
"audit_log": [<list_of_secret_access_events>]
}
Error Handling
All functions follow consistent error handling patterns:
- Configuration Errors:
ConfigurationErrorfor loading, parsing, or merging failures - Validation Errors:
ValidationErrorfor schema violations or business rule failures - Security Errors:
SecretManagementErrorfor encryption, access, or key management issues - Deployment Errors:
DeploymentErrorfor configuration deployment failures - Monitoring Errors:
MonitoringErrorfor filesystem monitoring issues - Audit Errors:
AuditErrorfor compliance checking failures
Integration Patterns
With Environment Setup
from codomyrmex.config_management import load_configuration
from codomyrmex.environment_setup import validate_environment
# Validate the runtime environment before loading configuration
env_report = validate_environment(min_python="3.11")
if not env_report.valid:
raise RuntimeError(f"Environment incomplete: {env_report.missing_items}")
# Load environment-specific configuration: config/app.yaml merged with
# config/environments/$ENVIRONMENT/app.yaml and APP_* environment variables
config = load_configuration("app")
With Security Audit
from codomyrmex.config_management import ConfigurationMonitor
from codomyrmex.security.digital import scan_secrets
# Audit configuration files for compliance issues
monitor = ConfigurationMonitor()
config_audit = monitor.audit_configuration("production", "config/")
print(config_audit.compliance_status, config_audit.issues_found)
# Follow up with secret scanning
secret_findings = scan_secrets("config/")
With Project Orchestration
from codomyrmex.config_management import deploy_configuration
from codomyrmex.logistics.orchestration.project import execute_workflow
# Deploy configuration as part of workflow
result = execute_workflow("config_deployment", {
"config_management": {
"config_path": "config/production.yaml",
"target": "production_cluster",
"strategy": "blue_green"
}
})
Security Considerations
- Secret Encryption: All secrets are encrypted at rest and in transit
- Access Control: Configuration access is controlled by roles and permissions
- Audit Logging: All configuration changes are logged for compliance
- Validation: Strict validation prevents injection and configuration attacks
- Backup Security: Configuration backups are encrypted and access-controlled
- Key Rotation: Automatic rotation of encryption keys for long-term security
Performance Characteristics
- Lazy Loading: Configurations are loaded on-demand to reduce startup time
- Caching: Validated configurations are cached for performance
- Efficient Validation: Schema validation is optimized for large configurations
- Monitoring Overhead: Minimal performance impact from configuration monitoring
- Secret Retrieval: Efficient secret caching with automatic refresh
Navigation Links
- Parent: Project Overview
- Module Index: All Agents
- Documentation: Reference Guides
- Home: Root README