Skip to main content

Module backend

Module backend 

Source
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§

AzureBackend
Azure Blob Storage backend.
B2Backend
Backblaze B2 backend.
BackendAuth
Credentials for a cloud object-store backend with an IAM plane (S3 / Azure / GCS).
FilesystemBackend
Local-filesystem backend: kopia writes the repository to a path inside the mover pod.
GcsBackend
Google Cloud Storage backend.
GdriveBackend
Google Drive backend using kopia’s native gdrive provider.
NfsVolume
An inline NFS export mounted directly into the mover pod — no PVC, no StorageClass.
PvcVolume
A PersistentVolumeClaim mounted into the mover pod.
RcloneBackend
rclone-remote backend; kopia shells out to rclone so any rclone-supported provider is reachable.
S3Backend
S3 / S3-compatible object-store backend.
SecretAuth
Credentials for a backend without a cloud IAM plane (B2, SFTP, WebDAV): static Secret only.
SftpBackend
SFTP backend.
WebDavBackend
WebDAV backend.
WorkloadIdentity
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.
RepoVolume
What backs a filesystem repository’s mount path (a PVC or an inline NFS export).