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
YAML
# 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