UNPKG

agentic-data-stack-community

Version:

AI Agentic Data Stack Framework - Community Edition. Open source data engineering framework with 4 core agents, essential templates, and 3-dimensional quality validation.

437 lines (375 loc) 14.5 kB
# Configuration Template # Standardized template for application and system configuration management across the AI Agentic Data Stack Framework metadata: template_id: "configuration-tmpl" name: "Configuration Template" version: "1.0.0" description: "Comprehensive template for managing application configurations, environment variables, and system settings" category: "technical-implementation" tags: ["configuration", "environment", "settings", "parameters", "management"] created_by: "AI Agentic Data Stack Framework" created_date: "2025-01-23" template: name: "Configuration Template" description: "Template for configuration implementation and management" version: "1.0.0" # Configuration Management Setup config_management: config_id: "${configuration_id}" config_name: "${configuration_name}" application_name: "${application_name}" environment: "${target_environment}" # development, staging, production, disaster_recovery config_version: "${configuration_version}" config_owner: "${configuration_owner}" # Application Configuration application_config: # Application Details application_details: application_id: "${application_id}" application_version: "${application_version}" runtime_environment: "${runtime_environment}" # java, python, node, .net deployment_platform: "${deployment_platform}" # kubernetes, docker, vm, serverless # Server Configuration server_config: server_port: ${server_port} server_host: "${server_host}" server_protocol: "${server_protocol}" # http, https context_path: "${server_context_path}" # Thread Pool Configuration thread_pool: core_pool_size: ${thread_pool_core_size} max_pool_size: ${thread_pool_max_size} queue_capacity: ${thread_pool_queue_capacity} keep_alive_time: ${thread_pool_keep_alive_time} # Session Configuration session_config: session_timeout: ${session_timeout_minutes} session_store_type: "${session_store_type}" # memory, redis, database session_cookie_name: "${session_cookie_name}" session_cookie_secure: ${session_cookie_secure} # Database Configuration database_config: # Primary Database primary_database: database_type: "${primary_db_type}" # mysql, postgresql, oracle, mongodb connection_url: "${primary_db_connection_url}" username: "${primary_db_username}" password_reference: "${primary_db_password_reference}" # Connection Pool Settings connection_pool: initial_size: ${primary_db_pool_initial_size} max_active: ${primary_db_pool_max_active} max_idle: ${primary_db_pool_max_idle} min_idle: ${primary_db_pool_min_idle} max_wait: ${primary_db_pool_max_wait} # Connection Properties connection_properties: auto_commit: ${primary_db_auto_commit} read_only: ${primary_db_read_only} transaction_isolation: "${primary_db_transaction_isolation}" # Read Replica Configuration read_replica: enabled: ${read_replica_enabled} connection_url: "${read_replica_connection_url}" load_balancing_strategy: "${read_replica_load_balancing}" # Database Migration migration_config: migration_enabled: ${database_migration_enabled} migration_tool: "${migration_tool}" # flyway, liquibase migration_location: "${migration_scripts_location}" baseline_on_migrate: ${migration_baseline_on_migrate} # Cache Configuration cache_config: # Application Cache application_cache: cache_provider: "${cache_provider}" # redis, memcached, hazelcast, ehcache cache_nodes: ["${cache_nodes}"] # Redis Configuration redis_config: host: "${redis_host}" port: ${redis_port} password_reference: "${redis_password_reference}" database: ${redis_database} timeout: ${redis_timeout} # Redis Pool Settings pool_config: max_total: ${redis_pool_max_total} max_idle: ${redis_pool_max_idle} min_idle: ${redis_pool_min_idle} # Cache Policies cache_policies: - cache_name: "${cache_name}" time_to_live: ${cache_ttl_seconds} max_entries: ${cache_max_entries} eviction_policy: "${cache_eviction_policy}" # lru, lfu, fifo # Distributed Cache distributed_cache: enabled: ${distributed_cache_enabled} consistency_level: "${cache_consistency_level}" # strong, eventual replication_factor: ${cache_replication_factor} # Message Queue Configuration message_queue_config: # Queue Provider queue_provider: "${queue_provider}" # rabbitmq, kafka, aws_sqs, azure_service_bus # RabbitMQ Configuration rabbitmq_config: host: "${rabbitmq_host}" port: ${rabbitmq_port} username: "${rabbitmq_username}" password_reference: "${rabbitmq_password_reference}" virtual_host: "${rabbitmq_virtual_host}" # Connection Settings connection_settings: connection_timeout: ${rabbitmq_connection_timeout} heartbeat: ${rabbitmq_heartbeat} network_recovery_interval: ${rabbitmq_network_recovery_interval} # Kafka Configuration kafka_config: bootstrap_servers: ["${kafka_bootstrap_servers}"] security_protocol: "${kafka_security_protocol}" # Producer Settings producer_config: acks: "${kafka_producer_acks}" retries: ${kafka_producer_retries} batch_size: ${kafka_producer_batch_size} linger_ms: ${kafka_producer_linger_ms} # Consumer Settings consumer_config: group_id: "${kafka_consumer_group_id}" auto_offset_reset: "${kafka_consumer_auto_offset_reset}" enable_auto_commit: ${kafka_consumer_enable_auto_commit} max_poll_records: ${kafka_consumer_max_poll_records} # Security Configuration security_config: # Authentication Configuration authentication: auth_provider: "${auth_provider}" # oauth2, ldap, database, jwt # OAuth2 Configuration oauth2: client_id: "${oauth2_client_id}" client_secret_reference: "${oauth2_client_secret_reference}" authorization_uri: "${oauth2_authorization_uri}" token_uri: "${oauth2_token_uri}" user_info_uri: "${oauth2_user_info_uri}" # JWT Configuration jwt: secret_key_reference: "${jwt_secret_key_reference}" token_expiration: ${jwt_token_expiration_hours} refresh_token_expiration: ${jwt_refresh_token_expiration_hours} # SSL/TLS Configuration ssl_tls: enabled: ${ssl_enabled} keystore_location: "${ssl_keystore_location}" keystore_password_reference: "${ssl_keystore_password_reference}" truststore_location: "${ssl_truststore_location}" truststore_password_reference: "${ssl_truststore_password_reference}" # CORS Configuration cors: enabled: ${cors_enabled} allowed_origins: ["${cors_allowed_origins}"] allowed_methods: ["${cors_allowed_methods}"] allowed_headers: ["${cors_allowed_headers}"] allow_credentials: ${cors_allow_credentials} # Logging Configuration logging_config: # Log Levels log_levels: root_level: "${root_log_level}" # trace, debug, info, warn, error application_level: "${application_log_level}" framework_levels: - framework_name: "${framework_name}" # spring, hibernate, kafka log_level: "${framework_log_level}" # Log Appenders log_appenders: # Console Appender console: enabled: ${console_logging_enabled} pattern: "${console_log_pattern}" # File Appender file: enabled: ${file_logging_enabled} file_path: "${log_file_path}" max_file_size: "${log_max_file_size}" max_history: ${log_max_history} total_size_cap: "${log_total_size_cap}" # Centralized Logging centralized: enabled: ${centralized_logging_enabled} log_aggregator: "${log_aggregator}" # elk, splunk, fluentd aggregator_endpoint: "${log_aggregator_endpoint}" # Structured Logging structured_logging: enabled: ${structured_logging_enabled} log_format: "${structured_log_format}" # json, logstash include_mdc: ${structured_logging_include_mdc} # Monitoring Configuration monitoring_config: # Metrics Configuration metrics: enabled: ${metrics_enabled} metrics_provider: "${metrics_provider}" # micrometer, prometheus, statsd # Prometheus Configuration prometheus: enabled: ${prometheus_metrics_enabled} endpoint_path: "${prometheus_metrics_endpoint}" include_jvm_metrics: ${prometheus_include_jvm_metrics} # Health Checks health_checks: enabled: ${health_checks_enabled} endpoint_path: "${health_check_endpoint}" # Custom Health Indicators custom_indicators: - indicator_name: "${health_indicator_name}" indicator_class: "${health_indicator_class}" enabled: ${health_indicator_enabled} # Application Performance Monitoring apm: enabled: ${apm_enabled} apm_provider: "${apm_provider}" # new_relic, datadog, elastic_apm service_name: "${apm_service_name}" # External Service Configuration external_services: # HTTP Clients http_clients: - client_name: "${http_client_name}" base_url: "${http_client_base_url}" connection_timeout: ${http_client_connection_timeout} read_timeout: ${http_client_read_timeout} # Authentication authentication: auth_type: "${http_client_auth_type}" # basic, bearer, api_key credentials_reference: "${http_client_credentials_reference}" # Retry Configuration retry_config: max_attempts: ${http_client_max_retry_attempts} backoff_strategy: "${http_client_backoff_strategy}" # Third-Party APIs third_party_apis: - api_name: "${third_party_api_name}" api_endpoint: "${third_party_api_endpoint}" api_key_reference: "${third_party_api_key_reference}" rate_limit: ${third_party_api_rate_limit} # Environment Variables environment_variables: # Application Variables application_variables: - variable_name: "${app_env_var_name}" variable_value: "${app_env_var_value}" variable_type: "${app_env_var_type}" # string, number, boolean required: ${app_env_var_required} # System Variables system_variables: - variable_name: "${system_env_var_name}" variable_value: "${system_env_var_value}" description: "${system_env_var_description}" # Secret Variables secret_variables: - variable_name: "${secret_env_var_name}" secret_reference: "${secret_env_var_reference}" secret_provider: "${secret_provider}" # aws_secrets, azure_keyvault, kubernetes # Feature Flags feature_flags: # Feature Flag Configuration feature_flag_config: provider: "${feature_flag_provider}" # launch_darkly, split, flipt environment_key: "${feature_flag_environment_key}" # Feature Definitions features: - feature_name: "${feature_name}" feature_key: "${feature_key}" default_value: ${feature_default_value} description: "${feature_description}" # Feature Variations variations: - variation_name: "${feature_variation_name}" variation_value: ${feature_variation_value} percentage: ${feature_variation_percentage} # Resource Limits resource_limits: # JVM Configuration (for Java applications) jvm_config: heap_size_initial: "${jvm_heap_initial}" heap_size_maximum: "${jvm_heap_maximum}" garbage_collector: "${jvm_garbage_collector}" jvm_options: ["${jvm_additional_options}"] # Container Resources container_resources: cpu_request: "${container_cpu_request}" cpu_limit: "${container_cpu_limit}" memory_request: "${container_memory_request}" memory_limit: "${container_memory_limit}" # File System file_system: temp_directory: "${temp_directory_path}" max_file_upload_size: "${max_file_upload_size}" max_request_size: "${max_request_size}" # Backup and Recovery backup_recovery: # Backup Configuration backup_config: backup_enabled: ${backup_enabled} backup_frequency: "${backup_frequency}" backup_retention: "${backup_retention_period}" backup_location: "${backup_storage_location}" # Recovery Configuration recovery_config: recovery_enabled: ${recovery_enabled} recovery_point_objective: "${recovery_point_objective}" recovery_time_objective: "${recovery_time_objective}" # Configuration Validation configuration_validation: # Validation Rules validation_rules: - property_name: "${validation_property_name}" validation_type: "${validation_type}" # required, range, pattern, custom validation_criteria: "${validation_criteria}" error_message: "${validation_error_message}" # Configuration Schema configuration_schema: schema_location: "${config_schema_location}" schema_format: "${config_schema_format}" # json_schema, xml_schema validation_enabled: ${config_schema_validation_enabled} # Configuration Management config_management_strategy: # Configuration Sources config_sources: - source_type: "${config_source_type}" # file, environment, consul, etcd source_location: "${config_source_location}" priority: ${config_source_priority} # Configuration Refresh config_refresh: auto_refresh_enabled: ${config_auto_refresh_enabled} refresh_interval: ${config_refresh_interval_seconds} refresh_triggers: ["${config_refresh_triggers}"] # Configuration Encryption config_encryption: encryption_enabled: ${config_encryption_enabled} encryption_key_reference: "${config_encryption_key_reference}" encrypted_properties: ["${encrypted_config_properties}"] # Validation Rules validation_rules: required_fields: - config_id - config_name - application_name - target_environment - application_config - database_config # Template Metadata template_metadata: author: "AI Agentic Data Stack Framework" maintainer: "Configuration Manager" last_updated: "2025-01-23" sections: - name: "overview" description: "Overview and objectives" required: true - name: "configuration" description: "Configuration and setup" required: true - name: "implementation" description: "Implementation details" required: true - name: "validation" description: "Validation and testing" required: false