The recovery set
required
Users, sessions, conversations, messages, encrypted provider and MCP
configuration, workspace records, branding, and audit history.
required
Decrypts provider API keys, custom headers, MCP headers, OIDC client secrets,
and workspace identity tokens. Without it, those rows are unreadable
ciphertext.
required
Signs sessions. Restoring without it forces every user to sign in again, which
is survivable but disruptive.
required
Remote project/chat artifact bytes. PostgreSQL stores their metadata and
authorization but not their contents.
Each user’s private home directory. Not recoverable from the database.
The GHCR pull secret and any
AWR_* values needed to bring the installation
back up.Back up the database
For the bundled PostgreSQL, take a logical dump:Back up the secrets
Export the Secret and store it in a secrets manager, not in Git:This file contains base64-encoded plaintext credentials. It is as sensitive as
the database itself. Encrypt it at rest.
Back up artifact storage
The chart’s retained artifact claim is named<release>-r5d-chat-artifacts, uses ReadWriteOnce, and mounts whole at
/var/lib/r5d-chat/artifacts. Snapshot it at the same recovery point as the
PostgreSQL dump. If CSI snapshots are unavailable, copy the mounted directory
from the control-plane pod:
Back up workspace volumes
Use your CSI driver’s snapshot support. With aVolumeSnapshotClass available:
ReadWriteOnce volume are crash-consistent. For a
consistent point-in-time copy, scale the workspace to zero first.
Alternatively, copy files out of a running workspace:
Restore
1
Prepare an empty namespace
Restore into a clean namespace rather than on top of a damaged one, so you
can compare before cutting over.
2
Restore the original secrets first
The encryption key must be in place before the application reads any
encrypted row.
3
Restore the database
Install the chart so the database exists, then load the dump:
4
Restore artifact storage
Recreate the artifact PVC from its snapshot using the release-derived name
before starting the control plane. If restoring a tar archive, use a temporary
helper pod that mounts the whole claim at a dedicated directory; never use
subPath.5
Restore workspace volumes
Recreate each PVC from its snapshot using the same name as the original.
Names are derived from the user ID hash, so a renamed PVC will not be found.
6
Deploy the matching application version
Use the chart version that matches the backup. A newer version may expect a
schema the restored database does not have; run the upgrade afterwards so
migrations apply in order.
Validate the restore
Do not declare success on a green rollout alone.Authentication
Authentication
Sign in with a local account and, if configured, through SSO.
Decryption
Decryption
Open Settings → Providers. Providers should list correctly and Test
connection should succeed. Failure here means the encryption key does not
match the database.
Conversation history
Conversation history
Open an older conversation and confirm messages and tool results render.
Workspace identity and private files
Workspace identity and private files
Start a workspace and browse the home directory. Private files should match
the snapshot. Recoll indexes can be rebuilt from the files if search is stale.
Artifacts
Artifacts
Browse and download an older artifact through the application, then run
r5dchat artifacts list from a workspace shell in an authorized chat.A real agent task
A real agent task
Run a task that writes a file and returns a download link, end to end.
Retention and deletion
helm uninstall is not a data purge. It removes chart-managed compute and
routing, while these persist:
- The bundled database’s StatefulSet PVC
- The control-plane artifact PVC, which carries keep semantics
- Every workspace PVC, which carries keep semantics
- Database rows, encrypted credentials, and conversations if the database is external