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. ADR §3.1.
B2Backend
Backblaze B2 backend. ADR §3.1.
BackendAuth
Credentials for an object-store backend. Always a Secret reference. ADR §3.1.
FilesystemBackend
Local-filesystem backend, backed by a PVC the operator mounts. ADR §3.1.
GcsBackend
Google Cloud Storage backend. ADR §3.1.
RcloneBackend
rclone-remote backend; kopia shells out to rclone so any rclone-supported provider is reachable. ADR §3.1.
S3Backend
S3 / S3-compatible object-store backend. ADR §3.1.
SftpBackend
SFTP backend. ADR §3.1.
WebDavBackend
WebDAV backend. ADR §3.1.
WorkloadIdentity
Cloud workload-identity binding (IRSA / GKE Workload Identity / Azure WIF): the mover authenticates as a Kubernetes ServiceAccount instead of a static Secret. Deprioritized for the homelab default. ADR §4.11.

Enums§

Backend
The discriminated backend union. Exactly one variant by construction.