Manage API keys, users, RBAC roles, audit logs, and organization settings

Admin & Settings


The Admin section is visible to users with the admin role. It covers API key management, user accounts, audit logging, and organization settings.


API Keys

Go to Admin → API Keys.

Service keys page showing existing keys with names, creation dates, and Revoke buttons, plus a Create new key form at the topService keys page showing existing keys with names, creation dates, and Revoke buttons, plus a Create new key form at the top

Key format

Every 9thSense API key follows the pattern zk_<prefix>_<secret>:

  • zk — fixed sentinel so you can grep for leaked keys
  • <prefix> — 12 hex characters, stored in plaintext for lookup
  • <secret> — 32 hex characters, never stored — shown once at creation

Keys are bcrypt-hashed server-side. If you lose a key, revoke it and create a new one.

Creating a key

Click New Key

Click + New Key in the top-right of the API Keys list.

Name the key

Give it a descriptive name so you can identify it later (e.g. "Production backend", "CI pipeline").

Select scopes

Choose one or more scopes:

ScopePermitted operations
readGET endpoints — list cases, get executions, view analytics
writePOST/PUT/PATCH — create cases, upload documents, run pipelines
adminKey management — create, list, revoke API keys

Use the minimum scope required. Most backend integrations need only write.

Copy the key

Click Create. The full key is displayed once. Copy it immediately — it cannot be retrieved after you close this dialog.

Revoking a key

Click the trash icon next to any key and confirm. Revoked keys return 401 immediately. Revocation is permanent and cannot be undone.

Revoking a key breaks every service using it. Before revoking, rotate the key first: create a new one, update your services, then revoke the old one.


Users

Go to Admin → Users.

Users management page showing user accounts with role badges, invite status, and Remove actionsUsers management page showing user accounts with role badges, invite status, and Remove actions

Inviting a user

  1. Click Invite User.
  2. Enter their email address and select a role.
  3. Click Send Invite.

The invited user receives an email with a link to set their password. The invite expires after 48 hours. Resend from the Pending Invites table.

Roles

RoleWhat they can do
ViewerRead-only access to Cases, Agents, and Analytics. Cannot run tools or modify anything.
OperatorCreate and review cases. Cannot build agents or access Admin.
BuilderFull access to Cases, Agents, Playground, and Document Types. Cannot access Admin.
AdminFull access to everything, including Admin settings.

Changing a role

Click the role badge next to any user to open the role editor. Select a new role and confirm. The change takes effect immediately — the user's next request will use the new permissions.

Removing a user

Click Remove next to a user. Their account is deactivated immediately. Any cases they opened remain intact. A removed user can be re-invited by email.


Audit Logs

Go to Admin → Audit Logs.

Every action taken in the dashboard and via the API is logged here. Each entry records:

FieldDescription
TimestampExact time of the action (UTC, millisecond precision)
ActorUser email or API key prefix that performed the action
ActionWhat happened (e.g. case.created, agent.deployed, key.revoked)
ResourceThe specific resource affected (e.g. case ID, agent ID)
IP addressSource IP of the request
Resultsuccess or denied

Filtering

Use the search bar to filter by actor email, action type, or resource ID. Use the date range picker to narrow the window.

Export

Click Export CSV to download the visible log entries. The log is retained for 90 days by default (contact your account manager to extend retention).


Organization Settings

Go to Admin → Organization.

Organization Settings page showing organization name field, allowed email domains, session timeout, webhook secret, and self-hosted AI endpoint configurationOrganization Settings page showing organization name field, allowed email domains, session timeout, webhook secret, and self-hosted AI endpoint configuration

SettingDescription
Organization nameDisplay name shown in the dashboard header
Allowed email domainsRestrict invitations to users at specific domains (e.g. yourcompany.com)
Session timeoutHow long before an idle dashboard session is logged out (default: 8 hours)
Webhook secretGlobal HMAC-SHA256 secret used to sign all outbound webhook events. Rotate here if compromised.
Self-hosted AIEnable/disable routing inference to your own self-hosted model endpoint. Configure the endpoint URL here.

Click Save after any change. Changes take effect within 60 seconds.


Connectors

Go to Admin → Connectors to configure integrations with external systems:

  • Storage — configure an S3-compatible bucket for document storage (default: 9thSense-managed encrypted object storage)
  • SMTP — configure your own SMTP server for system emails (password resets, invitations)
  • Slack — send case review notifications to a Slack channel via webhook

Each connector shows a Test button that sends a test payload to verify the integration before saving.