credential_db
credential_db
¶
SQLite-backed credential store and phantom token registry.
Provides host-side storage for captured credentials (API keys, OAuth tokens) and per-task phantom tokens used by the credential proxy. The database is never mounted into task containers — only the proxy daemon reads it.
Uses sqlite3 in WAL mode for lock-free concurrent reads across multiple terok processes (CLI commands, proxy daemon, task runners). Zero external dependencies.
Encryption upgrade path: wrap the data column with
cryptography.fernet before INSERT, or swap sqlite3 for
sqlcipher3 (drop-in API replacement).
CredentialDB(db_path)
¶
SQLite-backed credential store and phantom token registry.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
db_path
|
Path
|
Path to the sqlite3 database file. Parent directories are created automatically. |
required |
Source code in src/terok_sandbox/credential_db.py
store_credential(credential_set, provider, data)
¶
Insert or replace a credential entry.
Source code in src/terok_sandbox/credential_db.py
load_credential(credential_set, provider)
¶
Return the credential dict, or None if not found.
Source code in src/terok_sandbox/credential_db.py
list_credentials(credential_set)
¶
Return provider names that have stored credentials.
Source code in src/terok_sandbox/credential_db.py
delete_credential(credential_set, provider)
¶
Remove a credential entry (idempotent).
Source code in src/terok_sandbox/credential_db.py
create_proxy_token(project, task, credential_set, provider)
¶
Create a per-task, per-provider phantom token.
Token format: terok-p-<32 hex chars>.
Source code in src/terok_sandbox/credential_db.py
lookup_proxy_token(token)
¶
Return {project, task, credential_set, provider} or None.
Source code in src/terok_sandbox/credential_db.py
revoke_proxy_tokens(project, task)
¶
Revoke all tokens for a project/task pair. Returns count revoked.