A recently offboarded contractor still has a hard‑coded database password in a CI script, exposing a dlp failure. The script runs nightly, pulls rows that contain customer PII, and writes them to a log file that is archived for weeks. When the contractor leaves, the password remains in the repository, the log continues to grow, and nobody notices that raw personal data is being stored unprotected.
This pattern is common in self‑hosted deployments. Teams often grant engineers or automation jobs long‑lived credentials that can read any column in a database. Logs, backups, and monitoring pipelines capture full result sets, including social security numbers, credit‑card digits, or health information. Because the data path is uncontrolled, the organization has no guarantee that sensitive fields are ever hidden, that every access is recorded, or that a breach can be traced back to a specific request.
Typical remediation starts with better identity management: moving from shared passwords to per‑user API tokens, integrating an OIDC provider, and assigning least‑privilege roles. Those steps answer the question of *who* can connect, but they do not change what happens once the connection reaches the database. The request still travels directly to the target, the database returns raw rows, and no central component can mask, block, or audit the payload.
Why DLP matters for self‑hosted models
Data loss prevention (DLP) is about more than just authentication. It requires a control surface that can inspect every response, redact or transform sensitive fields, enforce policy before a command executes, and retain an immutable record of the interaction. In a self‑hosted stack, the only place to apply those controls is a gateway that sits between the identity layer and the infrastructure resource. Without that gateway, any DLP policy lives in the application code or in downstream analytics, both of which are optional and can be bypassed.
How hoop.dev enables DLP in the data path
hoop.dev provides the missing data‑path enforcement point. It runs as a Layer 7 proxy that terminates the client connection, validates the user’s OIDC token, and then forwards the request to the target database, SSH host, or HTTP service. Because every packet passes through hoop.dev, it can apply DLP controls in real time:
- Inline masking: hoop.dev scans query results and redacts configured fields such as credit‑card numbers or health codes before they reach the client.
- Command‑level approval: risky statements like DROP TABLE or DELETE FROM without a WHERE clause are paused and routed to a human approver.
- Session recording: each interaction is captured, replayable, and stored with the user’s identity, providing a complete audit trail.
- Just‑in‑time scoping: access is granted for a single session and automatically revoked when the session ends.
All of those outcomes exist only because hoop.dev sits in the data path. If the gateway were removed, the database would once again return unfiltered rows, and no central log would capture the activity.
Deploying a self‑hosted DLP gateway
Because hoop.dev is open source, organizations can run the gateway inside their own network. The typical deployment flow is:
