Skip to content

feat: audit log, TLS and e2e for the S3 mode, docs and AWS sketch (#220) - #229

Merged
iheitlager merged 10 commits into
mainfrom
feat/#220-s3-audit-tls
Nov 9, 2026
Merged

iheitlager merged 10 commits into
mainfrom
feat/#220-s3-audit-tls

Conversation

@iheitlager

@iheitlager iheitlager commented Nov 8, 2026 •

Copy link
Copy Markdown
Member

Summary

Finishes #220 after #225 and #226 (sightings in S3, Garage compose profile).

  • Audit in S3 (audit.rs): with FRANK_STORE, one object per line under audit/YYYY-MM-DD/<ns>-<pid>-<n>.jsonl, read back by prefix in order, retention deletes the days' objects.
  • Retention on S3 sightings: test that the objects leave the bucket (after db-core's 10-minute delete grace).
  • TLS (objects.rs): tls feature, a db-core Transport over ureq + rustls/ring and the platform store, on in the image (CA bundle copied into scratch, gcc in the build stage).
  • deny.toml and a cargo deny check CI job; the SBOM comes from the binary's auditable data, so it includes the TLS crates.
  • S3=1 make e2e: throwaway Garage on its own network; checks the bucket holds the table.
  • Docs: README "Storage: filesystem or S3" with the mode-switch copy (tested both ways in a_local_table_copied_to_a_store_is_the_same_table), ADR-019, CHANGELOG.

Decisions to check

  • FRANK_WAL_DIR is not added: the WAL already lives in <data>/s3/sightings, and <data> is the EFS volume on AWS. Say if you want the separate setting.
  • Audit is one object per line, not batched; fine at tens of lines a day (ADR-019 point 3).
  • CDLA-Permissive-2.0 and Zlib are in the deny.toml allow-list (webpki-roots via the platform verifier; foldhash).

Test plan

Closes #220

🤖 Generated with Claude Code

iheitlager and others added 8 commits November 8, 2026 21:35
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
db-core's S3 store speaks http:// only. With --features tls an https://
endpoint (AWS) goes through a Transport over ureq with rustls and ring,
trusting the platform's certificate store; the image builds with it and
carries the CA bundle.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…R-019 (#220)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Not needed: nothing exercises it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
iheitlager and others added 2 commits November 8, 2026 22:19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@iheitlager
iheitlager merged commit 756f0ef into main Nov 9, 2026
3 checks passed
@iheitlager
iheitlager deleted the feat/#220-s3-audit-tls branch November 9, 2026 05:57
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.

Dual-mode storage: filesystem or S3 (Garage trial, AWS target) for sightings and audit

1 participant