apache / apache/airflow

Publish JSON schema for airflow.cfg

Open
#42,850 16 comments 0 reactions 0 assignees View on GitHub
area:dev-env good first issue kind:feature
Dominant language
Python
Stars
46.9k
Forks
17.8k
Avg merge
2d 7h
Merged PRs (30d)
484

Description

### Description

There is already a good structured YAML file providing metadata about all valid configuration options in `airflow.cfg`: [airflow/config_templates/config.yml](https://github.com/apache/airflow/blob/9c4b81d71f3caee3a3b1c6d9c626ee5d16f0db7c/airflow/config_templates/config.yml).

I think publishing the same data as a JSON schema and eventually to https://www.schemastore.org/json/ could be very useful.

### Use case/motivation

- People could use extensions like [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) with their IDE to benefit from validation and powerful auto-completion while editing `airflow.cfg`
- It would be easy to leverage pre-commit hooks or other CI tools to catch mistakes in the config file.

Airflow won't complain if the configuration file contains a typo or a non-existent configuration key making it easy to make mistakes. It could also make it easier to catch invalid values earlier.

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

Contributor guide

Open the contributing guide

Research direction

Start by reading airflow/config_templates/config.yml to understand the existing metadata for airflow.cfg options and how it could be represented as a JSON schema. Done means publishing an equivalent schema and, eventually, making it suitable for submission to schemastore.org; no specific test file is named.

Written by the indexing model from the issue text.

Assessment

Tech stack
json, yaml
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.