apache / apache/airflow

Autogenerate API Auth RBAC docs from the FastAPI permissions

Open
#72,465 1 comment 0 reactions 0 assignees View on GitHub
kind:feature needs-triage
Dominant language
Python
Stars
46.9k
Forks
17.8k
Avg merge
2d 9h
Merged PRs (30d)
472

Description

### Description

Airflow auth managers like the KeycloakAuthManager need to model out the Airflow RBAC permissions in an external system (e.g. Keycloak clients). To do this provider maintainers need to keep an up to date model of the authentication resources and permissions. This creates maintenance burden on any providers or integrations that model the Airflow RBAC model.

### Use case/motivation

Similar to the Database ERD schema or the configuration / cli reference, create a spec for the FastAPI RBAC user roles and permissions that is automatically updated when resources in the `airflow.api_fastapi` module are updated so that developers can reference the auth model of Airflow when developing auth managers.

### 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 examining the airflow.api_fastapi module and how its resources and permissions define the FastAPI RBAC model. Compare the existing automatically generated database ERD, configuration, and CLI references to identify an appropriate specification format and generation path. Done means the API auth roles and permissions are represented in an automatically updated reference for auth-manager developers.

Written by the indexing model from the issue text.

Assessment

Tech stack
fastapi, python
Domain
api, authorization, documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.