Skip to content

feat(storage): hash pins on S3/GCS via object metadata - #952

Merged
ertime037 merged 1 commit into
mainfrom
reland/pr-947-signed
Sep 4, 2026
Merged

feat(storage): hash pins on S3/GCS via object metadata#952
ertime037 merged 1 commit into
mainfrom
reland/pr-947-signed

Conversation

@devitway

@devitway devitway commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Signed reland of #947 (by @jgrund) — main requires verified signatures and the original commits were unsigned, so this lands the reviewed diff as one web-flow-signed commit.

Records the SHA-256 integrity pin as object metadata (x-amz-meta-sha256 / x-goog-meta-sha256) on the S3 and GCS backends, written atomically with the object so bytes are never stored unpinned; get re-verifies on read and fails closed on a mismatch. Raw uploads are validated against an RFC 9530 Repr-Digest header when present. Also adds a direct validate_storage_key() at the top of Storage::get() for defense in depth.

Supersedes #951. Closes #947

Signed reland of #947 (by @jgrund).

Records the SHA-256 integrity pin as object metadata (x-amz-meta-sha256 / x-goog-meta-sha256) on the S3 and GCS backends, written atomically with the object so bytes are never stored unpinned; get re-verifies the pin on read and fails closed on a mismatch. Raw uploads are validated against an RFC 9530 Repr-Digest header when present. Also adds a direct validate_storage_key() at the top of Storage::get() for defense in depth.

main requires verified signatures and the original commits were unsigned, so this re-lands the reviewed diff as one web-flow-signed commit.

Co-authored-by: Joe Grund <grundjoseph@gmail.com>

Closes #947
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🐳 Test image pushed: ghcr.io/getnora-io/nora:pr-952

docker pull ghcr.io/getnora-io/nora:pr-952
docker run --rm -p 4000:4000 ghcr.io/getnora-io/nora:pr-952

@ertime037
ertime037 added this pull request to the merge queue Sep 4, 2026
Merged via the queue into main with commit f76779e Sep 4, 2026
21 checks passed
@ertime037
ertime037 deleted the reland/pr-947-signed branch September 4, 2026 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants