Safely publish caches, bound HTTP requests, and redact response metadata - #53
Open
alexandrutodor wants to merge 5 commits into
Open
Safely publish caches, bound HTTP requests, and redact response metadata#53alexandrutodor wants to merge 5 commits into
alexandrutodor wants to merge 5 commits into
Conversation
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
0666readable default filtered by the process umask, while leaving non-POSIX providers on their native defaults. AddCacheHealthCMD <portal>with exact0(healthy) /1(unhealthy or invalid invocation) status behavior.syncrequest behavior unchanged.Compatibility
ResultCache.flush(String)remains public for source compatibility. Cache generation remains all-or-nothing: a candidate publishes only when every source acronym has a result. Legitimate catalogue shrinkage still publishes when the complete candidate count matches the smaller source count.Test evidence
Base:
24def6b4b01fb7690e938adfc8477d6436c3cc1fHead:
cbe511dfd7bde4c8ba579ed3a5878eaec8d18765Focused assertions cover:
1/10incomplete candidates preserving the old cache bytes and POSIX permissions exactly while leaving no temporary files;0640mode, owner, and an available supplementary group for cross-account readability; the test safely assumes/skips when POSIX group changes cannot be exercised;10 -> 4source/candidate shrink publication;0/1command outcomes;syncstill bypassing cache;Residual risks
ResultCache.FILE_SAVE_NAMEremains mutable static state and may race during concurrent multi-portal work; changing that requires a separate compatibility refactor.save()retains the existing logging-and-swallowing failure contract;CacheHealthCMDproves structural health, not freshness.FileChannel.force(true)plus atomic rename does not portably fsync the parent directory.