keys¶
keys ¶
Per-user API key resolution with encryption at rest.
Users can configure their own API keys via the account settings panel. Keys are encrypted with Fernet before storing in the database. Only admin accounts fall back to global system keys.
resolve_user_keys
async
¶
Resolve effective API keys for a user.
Checks the database for the user's personal API keys. For admin and guest accounts, falls back to the global system keys configured via environment variables. Regular users must configure their own keys.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
The user's UUID. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, str | None]
|
Dict with keys 'deepseek', 'tavily', 'scrapingant'. Values are |
dict[str, str | None]
|
the API key strings or None if not configured. |
save_user_keys
async
¶
Save personal API keys for a user (partial update).
Only keys present in the dict are updated; others are left unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
The user's UUID. |
required |
keys
|
dict[str, str]
|
Dict with one or more of 'deepseek', 'tavily', 'scrapingant'. |
required |
clear_user_keys
async
¶
Remove all personal API keys for a user, reverting to system keys.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
The user's UUID. |
required |
get_user_key_status
async
¶
Return the key status for a user (redacted).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
str
|
The user's UUID. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, str]
|
Dict with keys 'deepseek', 'tavily', 'scrapingant' and values |
dict[str, str]
|
'personal', 'system', or 'none'. |