Date: June 12th 2024
Authors: Elad Kalif, Shahar Epstein
This doc presents the current state of who is the Airflow user?
followed by open questions for discussions about the Airflow user in Airflow 3.
Airflow defines a user as someone who interacts with the Airflow application. From Airflow’s point of view, as of version 2.x, the user has the knowledge, skills, and permissions to act on any Airflow components.
For example, if a user wants to set a non-standard scheduling interval for his DAG and the documentation recommends using Timetables, then we presume that the feature exists and the problem is solved.
However, from the user's perspective, the problem may not be solved as they might not have the skills needed to register new plugins, or have the skills but not the permissions.
In some organizations, especially large corporates, the authors of pipelines may not have full access to all of the components of the Airflow application.
Airflow already acknowledges the existence of different actors, as can be seen in the architecture docs. This doc will focus on:
An actor can be seen as an Airflow user with a specific role. In smaller deployments, all actors can be single users while in larger deployments there can be many actors with conflicting interests.
The conflicts may be caused by different agenda, roadmaps, etc.
For example, I need to deploy a plugin that requires the assistance of the actor in charge in this area, but they don’t have the time to do it.
Considering the existing architecture of Airflow, we could distinguish between four basic types of actors:
Actor | Required Skills | Required permissions | Responsibility | Notes |
Operational user | Non-technical | UI | run/view existing DAGs | |
Dag Author | Python Knowledge | UI, API, DAG folder | Deploy DAGs | |
Deployment Manager | Python, Infrastructure | All components of Airflow | Health and stability of the application | |
Infrastructure Manager | Provides DB/K8s cluster to run the Airflow application | Sometimes, they’re not even aware of Airflow. Airflow is just one of the many applications that run on the infrastructure. | ||
It’s important to note that with multi-tenancy, there might be additional sub-actors.
For example, the deployment manager creates a new tenant. Each tenant has an operational user and DAG authors, but also a tenant deployment manager who manages the infrastructure of the tenant.