# ============================================================================= # Apache Airflow — Configuration (Airflow 3.3.x) # Referensi arsitektur: bab 4.5.1 (Apache Airflow — Orchestrator) # ============================================================================= # ⚠️ Airflow 3.3 memakai SimpleAuthManager (bukan FabAuthManager). # Config [api] auth_backends dan [webserver] auth_backend dari Airflow 2.x # TIDAK berlaku lagi — dihapus agar task runner bisa autentikasi internal. # ============================================================================= [core] executor = LocalExecutor simple_auth_manager_users = admin:Admin simple_auth_manager_passwords_file = /opt/airflow/simple_auth_manager_passwords.json parallelism = 32 max_active_tasks_per_dag = 16 dagbag_import_timeout = 30 load_examples = False default_timezone = Asia/Jakarta [database] # ⚠️ ConfigParser does NOT expand ${VAR} syntax — this is a placeholder only. # The actual connection string is set via AIRFLOW__DATABASE__SQL_ALCHEMY_CONN # environment variable in docker-compose.yml. sql_alchemy_conn = postgresql+psycopg2://airflow:PLACEHOLDER@postgres:5432/airflow sql_alchemy_pool_enabled = True sql_alchemy_pool_size = 10 sql_alchemy_max_overflow = 20 [webserver] # base_url internal (container) — task runner connect ke sini base_url = http://airflow-webserver:8080 default_ui_timezone = Asia/Jakarta expose_config = True [scheduler] parsing_processes = 4 max_threads = 4 scheduler_heartbeat_sec = 5 [dag_processor] # Airflow 3.x: dag_dir_list_interval dipindah dari [scheduler] ke sini # (menghindari DeprecationWarning saat start). refresh_interval = 30 [logging] remote_logging = False log_level = INFO [email] email_backend = airflow.utils.email.send_email_smtp [smtp] smtp_host = localhost smtp_port = 25 smtp_timeout = 30 smtp_mail_from = airflow@sicabe.local