Skip to content

Credentials

Selu handles sensitive information — API keys, passwords, tokens — with care. All credentials are encrypted at rest and never exposed in plain text through the dashboard or logs.

When you save a credential in Selu (like an LLM provider API key or a BlueBubbles password), it’s immediately encrypted before being stored. Selu uses AES-256-GCM encryption (authenticated encryption), which is the same standard used by banks and governments. This means credentials are both encrypted and tamper-proof.

The encryption key is derived from your Selu instance’s master secret, which is set during initial setup via the SELU_ENCRYPTION_KEY environment variable.

Credentials are stored in Selu’s database, never on the filesystem. The database itself should be protected too — see the Docker Setup guide for recommendations on securing your volumes.

The Credentials page showing system and user credential management.

Adding credentials

Credentials can be added in several places: through the Credentials page for system-wide secrets, LLM Providers for API keys, or directly on individual agent detail pages using the new Secrets tab.

Viewing credentials

For security, saved credentials are always masked in the dashboard. You’ll see •••••••• instead of the actual value.

Updating credentials

To change a credential, simply paste the new value into the field and save. The old value is overwritten.

Deleting credentials

Remove a credential by clearing the field and saving, or by using the “Remove” button on agent detail pages.

All users can now change their own passwords through the web interface:

  1. Go to the Users page (accessible to all users)
  2. Click the Change password button
  3. Enter your current password and the new password (minimum 8 characters)
  4. Confirm the new password and click Update password

For security, changing your password will automatically sign out all your other active sessions while keeping your current session active.

Administrators can control which agents individual users have access to through the Users page:

  1. Go to Users and find the user you want to configure
  2. Click the Edit button in the Agents column
  3. In the modal that opens, select which agents the user can access
  4. Click Save to apply the changes
The agent access modal where administrators select which agents a user can access.

By default, new users can access all available agents. If you want to restrict access:

  • All agents selected: User can access every installed agent (default behavior)
  • Specific agents selected: User can only access the chosen agents
  • No agents selected: User cannot access any agents except the default fallback

The easiest way to manage agent credentials is now through the Secrets tab on each agent’s detail page:

The Secrets tab on an agent detail page showing credential fields.
  1. Go to Agents and click on any installed agent
  2. Click the Secrets tab in the tab bar
  3. You’ll see all credentials organized by capability
  4. Each credential shows whether it’s Required or Optional
  5. Enter values directly in the form fields and click Save

Each credential declaration now includes:

  • Description — What the credential is for and where to get it
  • Scope — Whether it’s Shared (system-wide) or Personal (per-user)
  • Status — Whether it’s currently set or missing
  • Timestamp — When it was last updated (if set)
  • System credentials (marked “Shared”) are available to all users. Admins set these once and they work for everyone.
  • User credentials (marked “Personal”) are private to each user. Each person enters their own API keys.

The agent developer chooses the appropriate scope when declaring credentials in their manifest.yaml.

Selu manages the following types of credentials:

CredentialUsed forWhere to manage
LLM API keysAnthropic, OpenAI, Bedrock access keysLLM Providers page
Channel tokensTelegram bot token, BlueBubbles passwordPipes setup pages
Agent secretsPer-agent credentials for third-party servicesAgent detail pagesSecrets tab
System credentialsShared secrets used by multiple agentsCredentials page
Master secretSELU_ENCRYPTION_KEY — the root encryption keyEnvironment variable
  • Use the Secrets tab — The new agent-focused interface is cleaner than the global Credentials page for agent-specific secrets.
  • Check descriptions — Agent developers now provide helpful descriptions explaining what each credential is for.
  • Use unique API keys — Create dedicated keys for Selu rather than reusing keys from other services. This makes it easy to rotate or revoke access.
  • Rotate regularly — Change your API keys every few months. Update them in Selu immediately after rotation.
  • Monitor usage — Check your provider dashboards (Anthropic, OpenAI, AWS) for unexpected usage spikes that might indicate a compromised key.
  • Back up your master secret — Store SELU_ENCRYPTION_KEY in a password manager or secure vault, separate from your Selu backups.
  • Check agent requirements — Before installing an agent, review what credentials it needs so you can prepare the necessary API keys.
  • Restrict agent access — Only give users access to the agents they actually need. This limits exposure if credentials are compromised.
  • Change passwords regularly — Use the new self-service password change feature to keep your account secure.

If you forget your password, an administrator can reset it securely using the command line:

Terminal window
# Admin resets a user's password
echo 'new-secure-password' | docker exec -i selu-orchestrator selu-orchestrator reset-password --username alice --password-stdin

This command requires administrator access to the server and will revoke all active sessions for the affected user.