id = "airflow" name = "Apache Airflow" homepage = "https://airflow.apache.org" description = "Apache Airflow is a platform to programmatically author, schedule, and monitor workflows." icon = "SimpleIcons:apacheairflow" executables = ["airflow"] [dotfiles] # https://airflow.apache.org/docs/apache-airflow/stable/howto/set-config.html # "The first time you run Airflow, it will create a file called airflow.cfg in # your $AIRFLOW_HOME directory (~/airflow by default)." paths = ["~/airflow/airflow.cfg"] # The rest of AIRFLOW_HOME is state, not configuration: the metadata database, # task logs and the scheduler's pid file. exclude = [ "~/airflow/logs/", "~/airflow/airflow.db", "~/airflow/airflow-webserver.pid", ] secret = [] # Absolute paths into this machine's AIRFLOW_HOME. Where this user keeps # their DAGs is their own choice and the first thing they would need back # after rebuilding the machine, so the values are kept: backup. [[dotfiles.machine_lines]] file = "~/airflow/airflow.cfg" match = { prefix = ["dags_folder", "plugins_folder", "base_log_folder"] } scope = "backup" # The same page lists these among the settings "you should not store in plain # text": the metadata database URL carries its password, and the Fernet key # decrypts every stored connection. [[dotfiles.secret_paths]] file = "~/airflow/airflow.cfg" match = { prefix = ["fernet_key", "sql_alchemy_conn", "secret_key", "smtp_password"] } [commands] format = 1 label = "Apache Airflow CLI" description = "Work with DAGs and tasks. Celery, db, users, connections and other admin commands are left out." quality = "ai-draft" base = "fig:airflow" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/airflow.ts" license = "MIT" [[commands.subcommand]] path = ["dags", "list"] label = "List DAGs" description = "List all DAGs." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/airflow.ts" license = "MIT" [[commands.subcommand.field]] id = "output" label = "Output format" type = "string" option = ["--output", "-o"] suggestions = [{ value = "table", label = "table" }, { value = "json", label = "json" }, { value = "yaml", label = "yaml" }, { value = "plain", label = "plain" }] sources = ["fig"] [[commands.subcommand.field]] id = "subdir" label = "DAG file or directory" description = "Defaults to AIRFLOW_HOME/dags." type = "path" option = ["--subdir", "-S"] path = { kind = "any", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.task]] id = "list" label = "List DAGs" fields = ["output"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["output"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["subdir"] [[commands.subcommand]] path = ["dags", "trigger"] label = "Trigger a DAG run" description = "Trigger a run of a DAG." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/airflow.ts" license = "MIT" [[commands.subcommand.field]] id = "dag_id" label = "DAG id" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "conf" label = "Run configuration (JSON)" type = "string" option = ["--conf", "-c"] sources = ["fig"] [[commands.subcommand.field]] id = "run_id" label = "Run id" type = "string" option = ["--run-id", "-r"] sources = ["fig"] [[commands.subcommand.field]] id = "exec_date" label = "Execution date" type = "string" option = ["--exec-date", "-e"] sources = ["fig"] [[commands.subcommand.field]] id = "subdir" label = "DAG file or directory" description = "Defaults to AIRFLOW_HOME/dags." type = "path" option = ["--subdir", "-S"] path = { kind = "any", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.task]] id = "trigger" label = "Trigger a run" fields = ["dag_id", "conf", "run_id", "exec_date"] required = ["dag_id"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dag_id", "conf", "run_id", "exec_date"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["subdir"] [[commands.subcommand]] path = ["dags", "pause"] label = "Pause a DAG" description = "Pause a DAG." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/airflow.ts" license = "MIT" [[commands.subcommand.field]] id = "dag_id" label = "DAG id" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.task]] id = "pause" label = "Pause" fields = ["dag_id"] required = ["dag_id"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dag_id"] [[commands.subcommand]] path = ["dags", "unpause"] label = "Unpause a DAG" description = "Resume a paused DAG." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/airflow.ts" license = "MIT" [[commands.subcommand.field]] id = "dag_id" label = "DAG id" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.task]] id = "unpause" label = "Unpause" fields = ["dag_id"] required = ["dag_id"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dag_id"] [[commands.subcommand]] path = ["tasks", "list"] label = "List tasks of a DAG" description = "List the tasks within a DAG." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/airflow.ts" license = "MIT" [[commands.subcommand.field]] id = "dag_id" label = "DAG id" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "tree" label = "Tree view" type = "boolean" option = ["--tree", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "subdir" label = "DAG file or directory" description = "Defaults to AIRFLOW_HOME/dags." type = "path" option = ["--subdir", "-S"] path = { kind = "any", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.task]] id = "list" label = "List tasks" fields = ["dag_id", "tree"] required = ["dag_id"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dag_id", "tree"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["subdir"] [[commands.subcommand]] path = ["tasks", "test"] label = "Test a task" description = "Test one task instance without recording state." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/airflow.ts" license = "MIT" [[commands.subcommand.field]] id = "dag_id" label = "DAG id" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "task_id" label = "Task id" type = "string" position = 1 sources = ["fig"] [[commands.subcommand.field]] id = "execution_date" label = "Execution date or run id" type = "string" position = 2 sources = ["fig"] [[commands.subcommand.field]] id = "dry_run" label = "Dry run (render templates only)" type = "boolean" option = ["--dry-run", "-n"] sources = ["fig"] [[commands.subcommand.field]] id = "task_params" label = "Task params (JSON)" type = "string" option = ["--task-params", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "subdir" label = "DAG file or directory" description = "Defaults to AIRFLOW_HOME/dags." type = "path" option = ["--subdir", "-S"] path = { kind = "any", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.task]] id = "test" label = "Test a task" fields = ["dag_id", "task_id", "execution_date", "dry_run"] required = ["dag_id", "task_id"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["dag_id", "task_id", "execution_date", "dry_run"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["task_params", "subdir"]