v1.20.1
1.20.1 - 2026-05-20
Added
-
Added SHA-1 idempotency primitives for
CoreFileObjectnodes:InfrahubNode.matches_local_checksum(source)/ sync variant — compare a localbytes | Path | BinaryIOsource against the node's server-stored checksum without invoking a transfer.InfrahubNode.upload_if_changed(source, name=None)/ sync variant — stage + save only when the local source differs from the server, returning anUploadResult(was_uploaded, checksum)dataclass.download_file(..., skip_if_unchanged=True)— short-circuit the download whendestalready exists on disk with a matching SHA-1. Returns0bytes written when skipped.
A shared
sha1_of_sourcehelper (streaming, 64 KiB chunks) centralises the hashing convention ininfrahub_sdk.file_handler.
Fixed
- Skip mandatory field validation during object loading when
object_profileis specified. (#908) - Render schema rejections originating in an
extensions:block as a readable one-line message ininfrahubctl schema load, instead of crashing withValueError: invalid literal for int(). (#1007) - Add
MERGINGbranch status so that a merging branch can still be correctly retrieved. (#1037)