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

This commit is contained in:
2026-10-22 16:21:38 +02:00
parent cbc944c3c0
commit 6a17c95815
10 changed files with 246 additions and 1 deletions
+10
View File
@@ -3123,6 +3123,16 @@ func (a *stackAdapter) GetDockerVolumes(name string) []string {
return backup.ResolveDockerVolumeNames(s.ComposePath)
}
// GetExcludedDockerVolumes (R-49, D21 = B): the named volumes the template excludes from every backup; an ignored
// template entry is logged, never fatal (backup/volume_exclusion.go).
func (a *stackAdapter) GetExcludedDockerVolumes(name string) []string {
ex, ignored := a.mgr.ExcludedDockerVolumes(name)
for _, why := range ignored {
log.Printf("[WARN] [backup] %s: template volume entry ignored — %s", name, why)
}
return ex
}
// GetImportRoot delegates to the stack manager's canonical drop-zone root (R-75). Both the backup
// and the export provider need it: ${IMPORT_PATH} binds live on the SYSTEM drive and can NOT be
// resolved from an app's HDD_PATH.