Skip to main content
A session is a time-bound grant in an Agent Vault project. It’s scoped to one access bundle, to inline services that an admin sends with the session, or to both. Infisical returns a session token that identifies the session, and the agent uses that token to authenticate to the proxy on every outbound request. The proxy then attaches the real credential from the matching service at the network boundary. Every session expires on a schedule you set. When the session expires (or you revoke it), the proxy stops attaching credentials to the agent’s requests within one poll interval. A session only works through a proxy in the same project as its access bundle.

Create a session

Anyone granted at least one access bundle in a project can create a session in that project. Admins of the project can create one with any of its access bundles.
If you want to create sessions programmatically, you can have a machine identity create a new session for each run using the CLI, the API, the Python SDK, or the Node.js SDK. A machine identity can also create sessions on behalf of users, so that each agent uses the personal values of the person it runs for and gets no more access than that person.
1
In your Agent Vault project, go to Sessions and select Create Session.
2
Pick the Access Bundle the agent should use, optionally enter a Label that says what the session is for, set a duration under Expires, then select Create Session.
The Create Session dialog with the on-call access bundle picked, Incident bot as the label, and a seven day expiry
3
Copy the command shown. The session token appears once and can’t be retrieved again.
The Session Created dialog showing the infisical agent-vault run command with the session token, which is shown once
Hand the copied command to whoever will start the agent. No Infisical login is needed on that machine.You can also pass the token in the environment instead:
Picking Never as the duration keeps the session working until someone revokes it. Only use this for long-running agents, and revoke the session once the agent has finished.

Label a session

A label is a short description of what a session is for, such as nightly deploy or support ticket triage. If one identity creates many sessions, the label is how you tell the sessions apart on the Sessions page, and you can search sessions by their label. A label can be up to 128 characters, and can’t contain line breaks, tabs, or invisible characters such as zero-width spaces. You can add, change, or remove a session’s label, even after the session expires or is revoked:
  • In your Agent Vault project, go to Sessions, open the session’s menu, and select Add Label or Edit Label
  • From an agent or a script, call the endpoint that updates a session, for example to record what the agent is working on
The Sessions page with the menu of the Nightly deploy session open, showing View Session Logs, Edit Label, and Revoke Session

View session logs

Session logs record every request an agent makes during a session. To view them, go to Sessions in your Agent Vault project and select View Session Logs on the session’s row. You can filter and search the requests, and while the session is active, new logs keep appearing.
The Session Logs sheet for the Review PR #1486 session, listing each request's time, method, host, path, upstream status, and outcome: brokered requests to GitHub, Anthropic, and Slack, a DELETE blocked by the service's method rules, and requests to registry.npmjs.org and pastebin.com blocked by the proxy's traffic policy

Revoke a session

To revoke a session before it expires, go to Sessions in your Agent Vault project, open the session’s menu, and select Revoke Session. The proxy stops attaching credentials for the session within one poll interval. The Sessions page shows each session as Active, Revoked, or Expired, and keeps expired and revoked sessions so you can audit what an agent had access to during the session:
The Sessions page listing active, revoked, and expired sessions with their label, identity, access bundle, creation time, and expiry, including a release-bot session on behalf of a user and a session with an inline service

Access changes

The access bundle and any inline services are chosen when you create the session and can’t be changed afterwards. However, the proxy re-checks whether the agent still gets credentials once every poll interval (60 seconds by default). Here’s how common access changes affect a session:
  • If someone no longer has any grant on an access bundle, directly or through a group, their sessions for that bundle stop getting credentials
  • If someone still has another grant on the bundle, such as through a group, revoking one grant doesn’t affect their sessions
  • If you delete an access bundle, every session scoped to it stops getting credentials (the session still lists the bundle’s name, so you can see what it was)
  • If you remove someone from the project, the proxy refuses every request on their sessions
  • If the user or machine identity that created a session loses the Admin role in the project, the session stops getting credentials for its inline services
None of these changes removes the skills that the CLI already installed on the agent’s host. To stop agents from using those skills, delete the installed copies.
If a session stops getting credentials because of a lost grant, a deleted bundle, or a lost Admin role, the proxy still forwards the agent’s requests, without credentials. Whether those requests reach the upstream host depends on the proxy’s traffic policy.

Audit trail

When you create a session, change its label, or revoke it, Infisical writes an audit event. To review these events, open Audit Logs in your Agent Vault project, or scope an audit log stream to the Agent Vault product. Audit events cover what you changed in Infisical. To see which requests an agent made while its session was running, view its session logs.