Dataflows in Adf

Published
Length
3 min read

Luis Felipe Dias

All posts

You set up dataflows in adf by building visual data pipelines inside Azure. These pipelines read source records, change them in memory, and write them out. Data teams often assign broad workspace roles to get pipelines running fast. Overly broad permissions let users read or alter raw data without oversight. When a shared role has wide rights, any user can run risky queries. A minor mistake during a debug test can expose private customer records. How dataflows in adf work at the architecture l

Just-in-Time Access: the complete guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free white paper. No spam. Unsubscribe anytime.

You set up dataflows in adf by building visual data pipelines inside Azure. These pipelines read source records, change them in memory, and write them out. Data teams often assign broad workspace roles to get pipelines running fast. Overly broad permissions let users read or alter raw data without oversight. When a shared role has wide rights, any user can run risky queries. A minor mistake during a debug test can expose private customer records.

How dataflows in adf work at the architecture level

Dataflows in adf run on managed Spark clusters behind the scenes. Engineers design the logic in a visual canvas without writing code. You pick a linked service that points to your source data store. Then you add steps to filter, join, or group the incoming rows. Finally, you pick a target store where the clean data will land.

When a pipeline runs, the cloud service spins up a Spark cluster. The cluster uses a managed identity or a stored key to log in. It pulls data from the source, runs the logic, and writes the output. During design time, engineers also turn on interactive debug sessions. A debug session keeps a live cluster warm for quick data previews. Both automated runs and debug sessions use the linked service permissions.

How teams manage identities and roles for data pipelines

Platform teams usually use role-based rules inside Azure to control pipeline changes. They grant contributor roles to data engineers who build and test the jobs. They also assign a managed identity to the factory workspace itself. That workspace identity holds read and write rights on the target databases. This setup avoids putting plain text passwords inside the pipeline definitions.

Still, all engineers in the workspace often share that same workspace identity. Anyone who can start a debug session can read through that shared identity. The database only sees the workspace identity, not the person at the keyboard. Teams try to fix this by creating separate workspaces for each project. Managing dozens of workspaces adds heavy admin work and slows down data builds.

Just-in-Time Access: architecture patterns and best practices

Continue reading? Get the full guide.

Free. No spam. Unsubscribe anytime.

What native controls solve and the runtime gap they leave

Native cloud roles decide who can open the workspace and edit pipelines. Managed identities also remove the need to copy database keys across teams. These native tools do a good job of guarding the front door. They verify which service or user logs in before a session starts.

Still, native setup rules do not check what happens inside an active session. Once the cluster or engineer logs in, every query runs with full rights. Native roles cannot rewrite sensitive fields like emails or card numbers in results. They also cannot block a specific read command during a live debug test. If an engineer previews a customer table, raw phone numbers appear on screen. To close this gap, teams need runtime controls that inspect queries in flight. Masking rules can then rewrite national IDs or card numbers before data returns. You also get clear logs showing which person ran each data preview.

Check database and API queries on the wire

Identity tools, roles, and network rules decide who opens a session. Setup alone cannot check what each query does or mask sensitive values in a response once a session starts. When workflows touch Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, or internal HTTP APIs, hoop.dev runs beside those services as an open-source proxy, a sidecar for your Postgres or API. It inspects requests coming in and results going back on the wire.

Your login details and client tools stay as they are while hoop.dev guardrails refuse bad deletes or drops before they run. On responses, hoop.dev data masking rewrites matched sensitive values in memory. Furthermore, hoop.dev holds SOC 2 Type II, is MIT licensed, and writes every query and decision to an audit trail that generates evidence for HIPAA, GDPR, and PCI DSS. See the source on GitHub.

Frequently asked questions

How do dataflows in adf read from source databases?

They use linked services that store database details and login methods. When the job starts, the Spark cluster logs in using those saved rules.

Why do debug sessions create a security risk for data teams?

Debug sessions let engineers preview live production tables using shared workspace identities. Without field masking, raw emails and phone numbers appear in the preview window.

Do workspace roles log individual database queries during testing?

No, workspace roles only check who can open and edit the pipeline tools. The target database only sees the shared service identity running the queries.

Save the open-source gateway.

hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.