R-49 (D21 = B): a template may exclude a named volume from every backup (backup.volumes, class excluded) — Immich's model cache; guarded, red-proved; unreleased
gates / gates (push) Successful in 1m50s
gates / gates (push) Successful in 1m50s
This commit is contained in:
@@ -51,6 +51,19 @@ type BackupSpec struct {
|
||||
// WHOLE-BLOCK, so a stale `userdata: import/<app>` would discard the app's OTHER classifications
|
||||
// (e.g. an hdd appdata path classed mandatory) and silently degrade it to legacy.
|
||||
Import []BindSpec `yaml:"import,omitempty" json:"import,omitempty"`
|
||||
// Volumes classifies the compose file's top-level NAMED volumes (R-49, operator ruling D21 = B, 2026-10-22).
|
||||
// Only `excluded` means anything: the volume is never dumped, so it is in no recovery unit — not on the
|
||||
// drive's copy, the second drive or off-site. For a pure cache the app rebuilds by itself (Immich's model
|
||||
// cache). Deliberately NOT checked by ValidateBackupSpec: a wrong entry must never cost the app its bind
|
||||
// classifications (that rejection is whole-block) — ExcludedDockerVolumes ignores it with a reason instead.
|
||||
Volumes []VolumeSpec `yaml:"volumes,omitempty" json:"volumes,omitempty"`
|
||||
}
|
||||
|
||||
// VolumeSpec is one classified named volume: Name is the compose `volumes:` key (not the project-prefixed
|
||||
// Docker name).
|
||||
type VolumeSpec struct {
|
||||
Name string `yaml:"name" json:"name"`
|
||||
Class BindClass `yaml:"class" json:"class"`
|
||||
}
|
||||
|
||||
// BindSpec is one classified entry in a BackupSpec.
|
||||
|
||||
Reference in New Issue
Block a user