A self‑hosted stack where every secret is never exposed in plain text, access is granted only at the moment it is needed, and every use is recorded for audit represents the ideal state of secrets management. In that world developers retrieve a password, token, or API key through a controlled request, the system masks the value in logs, and a replayable session proves exactly who saw what and when.
How teams actually handle secrets today
Most organizations start with a handful of static files, environment variables checked into repositories, or a shared vault password that multiple engineers know. Those secrets are copied onto bastion hosts, embedded in container images, or written to disk for convenience. The result is a sprawling surface of plain‑text credentials that any process with local access can read. Because the request goes straight from the client to the database, SSH server, or API, there is no central point that can see the operation, enforce a policy, or log the exact command that used the secret.
What the missing control layer fixes – and what it still leaves open
Introducing a central authority that authenticates users and issues short‑lived tokens solves the identity problem: only authorized identities can start a connection. However, without placing a gateway on the data path, the request still reaches the target directly. That means the system cannot mask the secret in the response, cannot require an approval step before a privileged command runs, and cannot record the session for later review. The gap is the enforcement point – the place where policy must be applied.
Why hoop.dev belongs in the data path
hoop.dev is built to sit between the identity layer and the infrastructure resource. As a Layer 7 gateway, it intercepts the wire‑protocol traffic for databases, SSH, RDP, and internal HTTP services. Because hoop.dev is the only component that sees the full request and response, it can enforce secrets management policies in real time.
How the architecture works
First, an OIDC or SAML identity provider authenticates the engineer. hoop.dev validates the token, extracts group membership, and decides whether the user may request a connection. A network‑resident agent holds the actual service credentials – the password or key that the target expects – so the engineer never sees the secret. When the user initiates a session, the request passes through hoop.dev, which checks the policy, optionally routes the request for human approval, and then forwards it to the target.
