The Apache Airflow FAB (Flask AppBuilder) Provider package integrates Flask-AppBuilder functionalities into Apache Airflow, primarily enhancing its User Interface (UI) and Role-Based Access Control (RBAC) capabilities. It is an actively maintained provider, with the current version being 3.6.0. New versions are released independently of core Airflow, following a strict SemVer policy, and can introduce database migrations.
pip install apache-airflow-providers-fabVerified import paths — ran on the pinned version, not inferred.
This provider primarily extends Airflow's UI and RBAC. A common interaction is through Airflow's CLI for user management, which leverages the Flask AppBuilder backend provided by this package. For advanced authentication methods like OAuth/SSO, customization of `webserver_config.py` is required.
For Airflow 2.x, downgrade to `apache-airflow-providers-fab==1.*`. For Airflow 3.x, ensure you use `apache-airflow-providers-fab >= 2.0`.
Update custom security manager implementations to use the new method/property names: `is_authorized_asset` and `oauth_allow_list`. Avoid using `AUTH_OID`.
Always run `airflow fab-db migrate` after upgrading the `apache-airflow-providers-fab` package. If `FABDBManager` is configured in `[core] external_db_managers`, migrations might run automatically with `airflow db migrate`.
Review the changelog for specific removals and update your Airflow configurations (`airflow.cfg`) and custom code to use supported alternatives.
Upgrade to `apache-airflow-providers-fab >= 1.5.2` to resolve this vulnerability. (Note: Current version 3.6.0 is not affected).
Prioritize `airflow.cfg` for standard authentication configurations. Use `webserver_config.py` only when advanced customization or SSO integrations are necessary.
Ensure all Airflow and provider dependencies are correctly installed. These warnings often occur when 'connexion' is installed without its 'flask' extra explicitly, but may still function. If issues arise, try explicitly installing `connexion[flask]` if required by your setup, or consult `connexion` documentation.
Downgrade 'werkzeug' to a compatible version by running 'pip install werkzeug==2.0.3'.
Install the package using 'pip install apache-airflow-providers-fab'.
Ensure that 'flask_appbuilder' is updated to a version that includes the 'get_oauth_user_info' method by running 'pip install flask-appbuilder==4.1.0'.
Ensure that both 'apache-airflow' and 'apache-airflow-providers-fab' are updated to compatible versions by running 'pip install apache-airflow==2.9.0 apache-airflow-providers-fab==1.2.2'.
Check the 'apache-airflow-providers-fab' documentation for updates or changes regarding the 'get_db_manager' function, and update your code accordingly.