Skip to content

Access Control

AgenFleet uses a layered access control model. Permissions are enforced at three levels: portal users (who can do what in the dashboard), agents (what each agent is allowed to do), and tools (which capabilities each agent can invoke).


Every user in your AgenFleet workspace has one of three roles:

RoleWhat they can do
AdminFull access — billing, team management, all agents, all settings, delete operations
ManagerCreate and manage agents, configure cron jobs, manage integrations — no billing or delete access
ViewerRead-only access — view agents, sessions, fleet status, and cron history — no configuration

Go to Settings → Team to invite users and assign roles. Roles can be changed at any time by an Admin.

Viewers are intentionally scoped to read-only — not configure. They cannot:

  • Create, edit, or delete agents
  • Modify cron jobs
  • Change notification settings
  • View or export audit logs
  • Access billing information
  • Invite or remove team members

This makes the Viewer role safe for client-facing or stakeholder access — they can observe the agent fleet without being able to alter it.


Each agent has an independent permission scope. An agent can only do what its configuration explicitly allows.

The tools.allowed list controls which tools an agent can invoke. This is enforced at the platform level — the agent cannot call a tool it wasn’t granted, even if it tries.

"tools": {
"allowed": ["web_search", "memory_search", "send_message"]
}

An agent without http_request in its allowed list cannot make external API calls. An agent without run_script cannot execute code. This is not advisory — it is enforced.

If an agent is ever manipulated by a malicious prompt (prompt injection), it can only do damage within the bounds of its granted tools. An agent that only has memory_search and send_message cannot exfiltrate data via http_request because that tool is simply not available to it.

Principle of least privilege at the tool level is one of the most important security configurations you can make.


Sessions are scoped to the agent that owns them. Users with portal access can view session history for agents they have access to, but:

  • Members can only see their own sessions (conversations they initiated)
  • Admins and Owners can view all sessions for all agents
  • No cross-tenant session visibility is possible — this is enforced by row-level security at the database layer

When you configure an agent to use a tool that requires credentials (e.g., http_request with an API key), credentials are:

  1. Stored in the secrets vault, not in the agent config
  2. Referenced by name in the agent’s environment variables
  3. Injected into the agent’s container at runtime — never written to disk
  4. Not visible in logs, audit trails, or the portal UI

An agent can use a credential to make an API call but cannot read or exfiltrate the raw credential value.


In multi-tenant deployments (Enterprise plan), access control extends to the tenant level:

  • Each tenant’s agents, sessions, and data are isolated in a separate database schema
  • Row-level security policies ensure queries can only return data belonging to the authenticated tenant
  • One tenant’s Admin cannot see, modify, or interact with another tenant’s agents — even if they somehow obtained a valid JWT for the wrong tenant

See Data Isolation for the full architecture details.


Portal authentication uses signed session tokens with a limited validity window. Tokens are invalidated on explicit logout and account deletion. AgenFleet is actively hardening the session token implementation — improvements including shorter token lifetimes, HTTP-only cookie storage, and automatic invalidation on role or password changes are on the active engineering backlog.