Expand description
Storage backends for a kopia repository.
ADR-0003 §3.1: Backend is a #[serde(tag = "kind")] enum. This is the
load-bearing example of the ADR’s type-safety thesis — a deserialized
Backend is always exactly one variant, so the “exactly one backend block”
rule that predecessor drafts enforced with a JSON-schema oneOf + webhook
check becomes a compile-time invariant. The webhook still validates content
(bucket names, credential reachability) but cannot receive a multi-variant value.
Structs§
- Azure
Backend - Azure Blob Storage backend.
- B2Backend
- Backblaze B2 backend.
- Backend
Auth - Credentials for a cloud object-store backend with an IAM plane (S3 / Azure / GCS).
- Filesystem
Backend - Local-filesystem backend: kopia writes the repository to a path inside the mover pod.
- GcsBackend
- Google Cloud Storage backend.
- Gdrive
Backend - Google Drive backend using kopia’s native
gdriveprovider. - NfsVolume
- An inline NFS export mounted directly into the mover pod — no PVC, no StorageClass.
- PvcVolume
- A
PersistentVolumeClaimmounted into the mover pod. - Rclone
Backend - rclone-remote backend; kopia shells out to
rcloneso any rclone-supported provider is reachable. - S3Backend
- S3 / S3-compatible object-store backend.
- Secret
Auth - Credentials for a backend without a cloud IAM plane (B2, SFTP, WebDAV): static Secret only.
- Sftp
Backend - SFTP backend.
- WebDav
Backend - WebDAV backend.
- Workload
Identity - Cloud workload-identity binding: the mover runs as a federated
ServiceAccount, not static keys.
Enums§
- Backend
- The discriminated backend union (
backend: { s3: {...} }); exactly one variant by construction. - Repo
Volume - What backs a filesystem repository’s mount path (a PVC or an inline NFS export).