Data Retention
What is stored
The issuer service stores the following ojects during the issuance process:
IssuanceSession:
- Session data (ID, expiration, status)
- the credential to be issued. You first initiate the issuance request with the data (or endpoints you want the data to be fetched from).
Retention policy
- Default expiration: 5 minutes
- Storage backend: Configurable (memory/Redis/Redis-cluster)
- Automatic cleanup: Yes, via TTL expiration
How to configure the retention policy
Per-Request TTL Override
You can override the default TTL for individual sessions via HTTP headers:
Include the sessionTtl header in your issuance request:
POST /openid4vc/mdoc/issue
sessionTtl: 600
Content-Type: application/json
Body: {...}
The sessionTtl value is in seconds. Example above sets TTL to 600 seconds (10 minutes).
Storage backend
This is useful for distributed architectures. You can configure the storage backend to use a shared database to store session data.
In the waltid-services/waltid-issuer-api/config/persistence.conf config file, you can configure the storage backend to use a shared database to store session data.
// Default storage backend is memory.
type = "memory"
// Using redis as a shared database to store session data.
type = "redis"
nodes = [{host = "127.0.0.1", port = 6379}]
user: ""
password: ""
Last updated on December 29, 2025
