Redis
mail_intake.credentials.redis
Summary
Redis-backed credential persistence for Mail Intake.
This module provides a Redis-based implementation of the
CredentialStore abstraction, enabling credential persistence
across distributed and horizontally scaled deployments.
The Redis credential store is designed for environments where authentication credentials must be shared safely across multiple processes, containers, or nodes, such as container orchestration platforms and microservice architectures.
Key characteristics:
- Distributed-safe, shared storage using Redis.
- Explicit, caller-defined serialization and deserialization.
- No reliance on unsafe mechanisms such as
pickle. - Optional time-to-live (TTL) support for automatic credential expiry.
This module is responsible solely for persistence concerns. Credential validation, refresh, rotation, and acquisition remain the responsibility of authentication provider implementations.
Classes
RedisCredentialStore
Bases: CredentialStore[T]
Redis-backed implementation of CredentialStore.
This store persists credentials in Redis and is suitable for distributed and horizontally scaled deployments where credentials must be shared across multiple processes or nodes.
Notes
Responsibilities:
1 2 3 | |
Guarantees:
1 2 3 4 | |
Initialize a Redis-backed credential store.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
redis_client |
Any
|
Initialized Redis client instance used for persistence. |
required |
key |
str
|
Storage key under which credentials are persisted. |
required |
serialize |
Callable[[T], bytes]
|
Callable that encodes credentials to bytes for storage. |
required |
deserialize |
Callable[[bytes], T]
|
Callable that decodes stored bytes back into credentials. |
required |
ttl_seconds |
int | None
|
Optional time-to-live in seconds after which stored
credentials expire automatically. |
None
|
Functions
clear
Remove stored credentials from Redis.
Notes
Lifecycle:
1 2 | |
load
Load credentials from Redis.
Returns:
| Type | Description |
|---|---|
T | None
|
T | None:
An instance of type |
Notes
Guarantees:
1 2 3 4 5 6 | |
save
Persist credentials to Redis.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
credentials |
T
|
The credential object to persist. |
required |
Notes
Responsibilities:
1 2 | |