Access Control

Copy page

Multi-tenant authentication with organizations, team management, and fine-grained project permissions

The Inkeep Agent Framework provides two layers of access control:

LayerWhat it does
AuthenticationUsers sign in, belong to organizations, manage teams
AuthorizationFine-grained project-level roles and permissions

Authentication handles user sign-in and organization membership. Authorization adds granular control over who can do what within each project.

Note
Note

For deployment configuration including OAuth providers, see Authentication Setup.

Sign-In Methods

MethodDescription
Email & PasswordDefault sign-in with email and password credentials
GoogleOAuth sign-in (requires configuration)

To add Google sign-in, see Adding OAuth Providers.

Organizations & Team Management

Each organization operates as an isolated tenant:

  • Separate workspaces: Each organization has its own projects, agents, MCP servers, and credentials
  • Team collaboration: Multiple users can belong to the same organization
  • Role-based access: Team members have different permission levels

Organization Roles

RolePermissions
AdminFull access to all projects and settings, can add members
MemberAccess determined by project-level roles

Inviting Team Members

  1. Go to Settings in the left sidebar
  2. View current members and their roles
  3. Click Invite to invite a new team member
  4. Enter the member's email and select a role (Admin or Member)
  5. Click Send Invitation

If email is enabled for your tenant, the invited user receives a branded email with a link to accept the invitation and set up their account. The invitation expires after 7 days.

If email is not configured, the invitation link is displayed directly in the UI — copy and share it manually with the team member.

Tip
Tip

For self-hosted deployments, email requires SMTP configuration. See Configure Email for setup instructions.

Password Reset

If email is enabled for your tenant, users can reset their password through a self-service flow:

  1. On the sign-in page, click Forgot password?
  2. Enter the email address associated with your account
  3. Check your inbox for a password reset link
  4. Click the link and set a new password

The reset link expires after 30 minutes. If you don't receive the email, check your spam folder.

If email is not configured for your tenant, contact your organization administrator to reset your password.

Active Sessions

View every device currently signed in to your account and revoke any session you no longer recognize.

To open the surface:

  1. Click your avatar in the top-right corner
  2. Select Profile
  3. Scroll to the Active sessions section below your profile details

Each row represents one signed-in device and shows:

FieldWhat it shows
DeviceBrowser and operating system (e.g., "Safari on macOS"). Falls back to "Unknown device" when the user-agent cannot be parsed.
IP addressThe IP address recorded when the session was created. Displays "—" when unavailable.
Signed inWhen the session was first established.
Last activeThe most recent time the session made an authenticated request.
ExpiresWhen the session will be automatically terminated.
This deviceA badge marks the session you are currently using. It is always pinned to the top of the list.

Revoking a Single Session

  1. Click Revoke on any session row
  2. Confirm in the dialog
  3. The row disappears from the list and a confirmation toast appears

Revoking your own current session signs you out of the current device and redirects you to the login page.

Revoking All Other Sessions

When you suspect a device has been compromised, use the panic button to terminate every other session in one step.

  1. Click Revoke all other sessions at the top of the section
  2. The confirmation dialog displays how many sessions will be terminated
  3. Confirm to revoke every session except your current one

The button is hidden when only your current session exists.

Note
Note

A revoked session may continue to work for up to 30 seconds on the revoked device. This is the maximum age of the server-side session cache and the lag cannot be reduced without affecting performance.

Tip
Tip

Every session deletion is recorded in the server logs with the associated user and session identifiers, so administrators can audit revocation events through log search.

Project Roles & Permissions

Assign granular roles at the project level to give organization Members specific access to individual projects.

Role Hierarchy

RoleViewUseEdit
Project Admin
Project Member
Project Viewer

Permission Breakdown

PermissionWhat it allows
ViewSee project configuration, agents, and settings (read-only)
UseInvoke agents, create API keys, view traces
EditModify agents, tools, credentials, project settings, and evaluations (test suites, evaluators, configs)

Managing Project Members

  1. Navigate to your project
  2. Go to Members
  3. Search for members by email and select one or more to add
  4. Choose a role for the selected members and click Add
Tip
Tip

Organization Admins always have full access to all projects, regardless of project-level roles.

User-Scoped vs Project-Scoped Resources

Certain resources can be configured with different scopes:

ScopeDescription
Project-scopedShared across all users in the project
User-scopedConfigured separately for each user

Example: MCP Servers

MCP servers can be configured as either project-scoped or user-scoped:

Use CaseRecommended Scope
Shared company tools (internal APIs, databases)Project-scoped
Personal integrations (user's Slack, GitHub, email)User-scoped
Services requiring per-user authorizationUser-scoped
Tools where data should be separated by userUser-scoped
Tip
Tip

You only configure a user-scoped MCP server once. Each user sees the same server but connects with their own credentials. The framework automatically manages the per-user authentication.

To select the scope, go to MCP Servers → create a server → select the scope.

See MCP Servers for more details.