Narakim provides an encrypted secrets vault for storing sensitive credentials like API keys, bot tokens, and webhook signing secrets. Secrets are never stored or transmitted in plaintext after initial entry.
How Secrets Work
- You enter a secret value in the UI.
- Narakim encrypts it using AES-256-GCM before storing it in the database.
- When a bot is deployed, the Automation Engine retrieves and decrypts the required secrets at runtime.
- Secrets are injected into extension calls—they are never exposed in logs or execution outputs.
Secret Scopes
| Scope | Description |
|---|---|
| Bot Secret | Scoped to a single bot. Used for credentials specific to that bot (e.g., a Discord bot token). |
| Team Secret | Shared across all bots in your team. Use for common API keys (e.g., your OpenRouter API key). |
Required Secrets
When you install an extension, its requiredSecrets list determines which secrets must be configured before the bot can deploy. In the Configurations tab, any missing required secret is flagged with a warning.
Common required secrets by extension:
| Extension | Required Secrets |
|---|---|
| Discord (all Discord extensions) | DISCORD_BOT_TOKEN, DISCORD_APPLICATION_ID |
| OpenRouter AI | OPENROUTER_API_KEY |
| HTTP Request (authenticated) | Custom key (you define the name) |
Configuring Secrets
Bot Secrets
- Go to Bot Dossier → Configurations tab → Extension Secrets.
- Enter the value for each required secret field.
- Click Save. The value is encrypted and stored immediately.
Team Secrets
- Go to Studio → Settings → Secrets.
- Click Add Secret.
- Provide a key name and value.
- Click Save.
Security Model
- Secrets are encrypted at rest with AES-256-GCM.
- The encryption key is stored separately from the database.
- Secret values are masked after initial entry — you cannot retrieve the plaintext from the UI after saving.
- To update a secret, overwrite the existing value with a new one.
- Deleting a bot also deletes its associated secrets.
Warning: Do not put raw secret values into node configuration fields or template strings. Always use the Secrets vault and reference them through the extension's requiredSecrets mechanism.
Secret Rotation
To rotate a compromised secret:
- Go to the Configurations tab for the affected bot.
- Find the secret field and enter the new value.
- Save. The new value takes effect on the next execution.
For production bots, you may want to temporarily pause the bot during secret rotation to avoid execution failures with stale credentials.
