Skip to content

storage-canary: prove allowed-prefix list access (TIN-1546) - #433

Merged
Jesssullivan merged 1 commit into
mainfrom
codex/tin-1546-storage-list-gate
May 21, 2026
Merged

storage-canary: prove allowed-prefix list access (TIN-1546)#433
Jesssullivan merged 1 commit into
mainfrom
codex/tin-1546-storage-list-gate

Conversation

@Jesssullivan

@Jesssullivan Jesssullivan commented May 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • make tcfs storage canary --json exercise the same allowed-prefix list() permission used by daemon health and index enumeration
  • record list_prefix, list_ms, list_count, and listed in the canary report
  • require list proof in the storage posture workflow validator so HTTPS/scoped-credential evidence cannot false-green on object lifecycle alone
  • document the new production storage bar and let Linux/macOS package smokes override remote_prefix so production reruns can stay inside the scoped gha/storage-posture/... allow policy
  • teach the alpha-gate preflight to emit a scoped Linux prefix automatically when Linux smoke reuses the storage posture environment

Why

The production storage posture canary passed write/read/delete and deny-scope proof, but the Linux public package smoke failed because it used gha/linux-postinstall/..., outside the tcfs-storage-prod-smoke credential allow scope. The tightened canary now proves allowed-prefix list access, and package smoke workflows can be dispatched against a prefix that matches the production credential scope instead of widening the S3 policy or misclassifying package failures.

Evidence

Validation

  • ~/.cargo/bin/cargo fmt --all -- --check
  • ~/.cargo/bin/cargo test -p tcfs-cli storage_canary
  • bash scripts/test-linux-postinstall-workflow.sh
  • bash scripts/test-release-workflow-fileprovider.sh
  • bash scripts/test-tcfs-alpha-gate-preflight.sh
  • bash -n scripts/tcfs-alpha-gate-preflight.sh scripts/test-tcfs-alpha-gate-preflight.sh scripts/test-linux-postinstall-workflow.sh scripts/test-release-workflow-fileprovider.sh
  • git diff --check

Boundaries

This is branch evidence until PR #433 lands. After merge, rerun the same Linux smoke from main or the next release candidate using a prefix under gha/storage-posture/.... The macOS production FileProvider rename proof still needs a fresh package built after current-main rename-manifest preservation.

@Jesssullivan
Jesssullivan force-pushed the codex/tin-1546-storage-list-gate branch from d3f613e to 045df4f Compare May 21, 2026 05:20
@Jesssullivan
Jesssullivan had a problem deploying to tcfs-storage-prod-smoke May 21, 2026 05:20 — with GitHub Actions Failure
@Jesssullivan
Jesssullivan temporarily deployed to tcfs-storage-prod-smoke May 21, 2026 05:22 — with GitHub Actions Inactive
@Jesssullivan
Jesssullivan force-pushed the codex/tin-1546-storage-list-gate branch 2 times, most recently from c501397 to d4226c9 Compare May 21, 2026 05:27
@Jesssullivan
Jesssullivan temporarily deployed to tcfs-storage-prod-smoke May 21, 2026 05:28 — with GitHub Actions Inactive
@Jesssullivan
Jesssullivan force-pushed the codex/tin-1546-storage-list-gate branch from d4226c9 to 79dbad4 Compare May 21, 2026 05:32
@Jesssullivan
Jesssullivan force-pushed the codex/tin-1546-storage-list-gate branch from 79dbad4 to 671ee9c Compare May 21, 2026 05:38
@Jesssullivan
Jesssullivan marked this pull request as ready for review May 21, 2026 06:15
@Jesssullivan
Jesssullivan merged commit 1eab0b4 into main May 21, 2026
13 checks passed
@Jesssullivan
Jesssullivan deleted the codex/tin-1546-storage-list-gate branch May 21, 2026 06:16
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.

1 participant