Repository navigation
Release Python Storages v1.1.0 - #963
Merged
Merged
Conversation
stas-schaller
force-pushed
the
release/sdk/python/storage/v1.1.0
branch
2 times, most recently
from
March 10, 2026 15:14
2638bf6 to
f03bc6d
Compare
stas-schaller
force-pushed
the
release/sdk/python/storage/v1.1.0
branch
from
March 27, 2026 18:30
f03bc6d to
4beeabb
Compare
stas-schaller
force-pushed
the
release/sdk/python/storage/v1.1.0
branch
from
April 9, 2026 19:38
4beeabb to
ba3e9bb
Compare
stas-schaller
force-pushed
the
release/sdk/python/storage/v1.1.0
branch
from
May 12, 2026 16:14
ba3e9bb to
40a2862
Compare
There was a problem hiding this comment.
An organization admin can view or raise the cap at claude.ai/admin-settings/claude-code. The cap resets at the start of the next billing period.
Once the cap resets or is raised, push a new commit or reopen this pull request to trigger a review.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
idimov-keeper
previously approved these changes
May 22, 2026
idimov-keeper
approved these changes
May 27, 2026
Bug-fix and hardening release for the storage backends, plus publish
workflow alignment with the GCP/Oracle KMS template.
Fixes:
- KSM-959: add threading.RLock to all storage backends
- KSM-960: replace MD5 with SHA-256 and fix Azure AES-GCM nonce
- KSM-961: make encrypt/decrypt failures raise instead of returning empty
- KSM-962: delete_all() removes backing file instead of writing empty blob
- KSM-963: defer config update until after successful disk write
- KSM-964: flip decrypt_config() default from autosave=True to autosave=False
- KSM-965: use 'is not None' check to avoid treating {} as a decrypt trigger
- KSM-966: propagate AwsConfigProvider region and read errors
- KSM-967: AwsSecretStorage default constructor + json-without-privateKey handling
- KSM-969: lower Python floor 3.10 -> 3.9.2 to match GCP/Oracle storage
- KSM-972: raise a clear exception on a non-UTF8 corrupt config file
- KSM-977: populate err in __load_config so construction raises on AWS errors
- KSM-978: raise on empty __decrypt_buffer result in HsmNfast and AwsKms
- KSM-979: atomic write for __save_config and create_config_file_if_missing
CI:
- align v1.1.0 publish workflow with GCP/Oracle template
- harden publish workflow, pin wheel (CVE-2026-24049), add post-build import check
- bump Manifest CLI to v0.31.0, pin ksm-action SHA (v1.3.0)
stas-schaller
force-pushed
the
release/sdk/python/storage/v1.1.0
branch
from
June 1, 2026 16:55
338fa98 to
645d278
Compare
maksimu
approved these changes
Jun 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release branch for v1.1.0: raises the Python floor to 3.9.2 and bundles 13 bug fixes addressing thread safety, crypto hygiene, silent errors, atomic writes, and config-loading edge cases across all encrypted storage backends.
Changes
Bug Fixes
threading.RLockto all 5 backends — prevents data corruption under concurrent use__encrypt_buffer/__decrypt_buffernow raise instead of silently corrupting storage statedelete_all()leaving empty blob (KSM-962): now callsos.remove()on the config file instead of writing an empty encrypted blob__save_configwrites to disk before updatingself.config— prevents in-memory/on-disk divergencedecrypt_config()autosave default (KSM-964): changed fromautosave=Truetoautosave=False— stray calls no longer silently overwrite the encrypted file with plaintext__load_configcheck changed fromif config:toif config is not None:— a plaintext{}config is now correctly re-encrypted on first load instead of falling into the binary decrypt path_get_instance_regionraises when all IMDS detection methods fail;read_configraises with the actual AWS error instead of returning an empty stringAwsSecretStorageeager load (KSM-967):__init__now calls__load_config()on construction, matching all peer backends; accepts any valid JSON dict (removedprivateKeygate)\xff\xffblob header now raise"<path> is not a valid encrypted config file"across all three encrypted backends (nfast, AWS KMS, Azure KeyVault) — replaces misleading encoding error messages and bareUnicodeDecodeError/JSONDecodeErrorescapes__load_configswallows AWS errors (KSM-977, Merges KSM-977: fix AwsSecretStorage.__load_config() silently swallowing AWS errors #1025): theexcept Exceptionblock now populateserrbefore logging, so construction raises whenread_configraises — fixes the KSM-966 × KSM-967 interaction where the exception was logged but never reached the caller"<path> is not a valid encrypted config file"when__decrypt_bufferreturns empty — matches Azure's existing behavior; HsmNfast no longer leaks a bareJSONDecodeError, AwsKms no longer silently logs without raising__save_configandcreate_config_file_if_missingnow write to<path>.tmpthenos.replaceacross all three encrypted file backends — a write failure no longer truncates the existing config to 0 bytes, and an encrypt failure increate_config_file_if_missingno longer leaves a 0-byte stub on diskMaintenance
keeper-secrets-manager-coredependency floor to>=17.2.0Breaking Changes
Python 3.6, 3.7, and 3.8 are no longer supported. Users on those versions must remain on v1.0.2.
Related Issues