Airflow Access Control
You set up airflow access control by mapping user accounts to specific workspace roles. These roles define who can view, edit, or run data pipelines in the app. Most teams start by linking their corporate login system to the web server. They then group users by team and assign broad roles to get work done fast. Still, broad roles often let users read shared keys or trigger the wrong jobs. How airflow access control works in practice The platform uses a role-based model to check every user act
Role-Based Access Control (RBAC): the complete guide
Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.
You set up airflow access control by mapping user accounts to specific workspace roles. These roles define who can view, edit, or run data pipelines in the app. Most teams start by linking their corporate login system to the web server. They then group users by team and assign broad roles to get work done fast. Still, broad roles often let users read shared keys or trigger the wrong jobs.
How airflow access control works in practice
The platform uses a role-based model to check every user action in the web app. Admins assign each user one or more roles when they log in. Each role holds a list of rules that pair an action with a target. An action might be reading, creating, editing, or deleting an item. A target might be the whole website, a specific view, or a single workflow.
Built-in roles cover common jobs like viewer, operator, user, and admin. A viewer can only look at pipeline status and read task logs. A user can start new runs and clear failed tasks to try again. An operator can manage more state changes across the system. An admin can change role rules, add new users, and read stored secrets.
Teams can also lock down specific workflows so only one group can touch them. You place a role rule directly inside the workflow file or the web view. When a user logs in, the web server checks their assigned roles. The app hides workflows that do not match the user's role list. This keeps the screen clean and stops one team from breaking another team's jobs.
What native roles solve and what they miss
Native roles are great at deciding who can log into the web server. They stop guests from clicking the run button on sensitive finance pipelines. They also stop junior staff from deleting past run records or changing global variables. For day-to-day screen management, this setup handles basic team splits well.
Still, web roles only check what happens inside the scheduling app itself. They do not inspect what individual tasks or queries do once a job starts. Workflows need database keys and cloud credentials to move data from place to place. If a user can edit a workflow file, their code runs with those stored keys. A broad role on the worker side lets one bad script read every table.
Role-Based Access Control (RBAC): architecture patterns and best practices
Continue reading? Get the full guide.
Free. No spam. Unsubscribe anytime.
Why stored secrets create a second risk
Data pipelines store target database passwords and cloud keys in a central metadata store. Many teams share one set of database credentials across dozens of different workflows. Even if web rules split teams up, the tasks still use the same database role. Anyone who can trigger a task or read debug logs might see raw results.
Those results often hold sensitive fields like emails, phone numbers, or card numbers. Native scheduler roles do not rewrite or mask these fields inside query results. They also do not ask for peer approval before a task runs a destructive command. Teams need a way to check queries and commands at the moment they run.
Govern statements and responses across databases and APIs
Good config and scoped roles are needed setup. They do not check single queries in flight or mask sensitive fields in returned rows. Across Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, and internal HTTP endpoints, hoop.dev runs beside each supported service as an open-source proxy, a sidecar for your database or API.
First, hoop.dev guardrails block banned queries before they run. Then hoop.dev data masking rewrites matched sensitive values in responses in memory. The audit trail records every statement and verdict per resource. Furthermore, hoop.dev holds SOC 2 Type II and is open source on GitHub.
Frequently asked questions
How do you limit a user to a single workflow?
You create a custom role that holds read and edit rules for that workflow name. Then you assign only that custom role to the user's account.
Can viewers see database passwords in the web app?
Standard viewer roles hide the connections tab where the system stores passwords. Still, poor task code can still print secrets into the plain text task logs.
Do workflow roles stop tasks from dropping database tables?
No, scheduler roles only control who can start or edit the workflow in the app. The target database permissions decide what queries the running task can execute.
Related guides
In this post