paperless-ngx: an empty barcodes block falls back to the chart defaults

A "barcodes:" key left without children (e.g. after deleting the last
remaining sub-key, PAPERLESS_CONSUMER_BARCODE_SCANNER, which paperless-ngx
3.0 removed) is YAML null and replaced the whole default sub-tree on merge.
Rendering then failed on the nil pointer, so the release simply stopped
updating.

An empty or null block now means "the chart defaults apply". The merge runs
through a new paperless-ngx.defaultedDict helper: nulls never delete, nested
maps merge recursively, and explicitly set values win - including false and 0,
which "default" and "mergeOverwrite" would swallow. A scalar where the
defaults define a map is rejected with the values path in the message.

Major bump: the meaning of a values override changes.

Fixes #61
This commit is contained in:
jklein committed 2026-08-23 19:31:20 +02:00
1 parent f5bbffca3c
commit 4f489b0854
5 files changed
+99 -5

No files matched your search

+7
View File
@@ -9,5 +9,12 @@ ingress:
# apply - there is no cert-manager in the CI cluster.
clusterIssuer: ci
paperless:
files:
# Regression guard for issue #61: a childless "barcodes:" key is YAML null.
# It must fall back to the chart defaults (barcodes enabled, "PATCHT") and
# neither erase them nor break rendering.
barcodes:
# smbConnection and oidc stay disabled (defaults): the SMB CSI driver and a
# real OIDC login flow are out of scope for the CI install-test.