Skip to content

Prove authorized staging execution and Pact replay protection - #4

Merged
etvjay merged 11 commits into
mainfrom
agent/live-authorized-proof
Aug 13, 2026
Merged

etvjay merged 11 commits into
mainfrom
agent/live-authorized-proof

Conversation

@etvjay

@etvjay etvjay commented Aug 13, 2026

Copy link
Copy Markdown
Owner

What changed

  • add a live-proof step for an authorized deploy_staging action with explicit human approval
  • assert the reversible staging simulator was invoked and emitted evidence
  • repeat the same signed request and assert one-shot replay protection blocks it
  • collect execution and replay responses in the workflow artifact
  • refresh live-proof and Devpost references to the corrected DataHub run

Why

The existing proof demonstrated live reads and fail-closed denials, but did not exercise the positive enforcement path. This closes that evidence gap without enabling production mutation or DataHub write-back.

Safety boundary

  • target remains staging
  • executor remains the reversible built-in simulator
  • IGRAPH_ENABLE_WRITEBACK=false
  • no production deployment or real database mutation is claimed

Validation

GitHub Actions will run ordinary CI and the full DataHub live-proof workflow against the PR branch.

@etvjay
etvjay marked this pull request as ready for review August 13, 2026 22:34
@etvjay
etvjay merged commit 4e40ed8 into main Aug 13, 2026
2 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: abdee4fe66

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

test -n "$ARTIFACT_SHA"
test "$ARTIFACT_SHA" != "null"
jq -n --slurpfile pact /tmp/pact.json --arg artifact "$ARTIFACT_SHA" \
'{pact:$pact[0], action:"deploy_staging", parameters:{target:"staging", artifact_sha256:$artifact}, human_approved:true}' \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Back the approval claim with a human-controlled gate

On automatic pull_request and push runs, the workflow unconditionally sets human_approved:true; there is no protected environment, reviewer gate, or approval-derived input anywhere in this workflow. The run therefore proves only that a caller-controlled Boolean unlocks the approval branch, not the documented claim that an explicitly human-approved action executed. Source this value from a human-controlled gate or qualify the proof as simulated approval.

Useful? React with 👍 / 👎.

run: |
mkdir -p /tmp/igraph-live-proof
for file in /tmp/health.json /tmp/datahub-health.txt /tmp/discover.json /tmp/analyze-request.json /tmp/analyze.json /tmp/verify.json /tmp/pact.json /tmp/tampered-pact.json /tmp/tampered-request.json /tmp/tampered-response.json /tmp/expired-pact.json /tmp/expired-request.json /tmp/expired-response.json /tmp/unavailable-health.json /tmp/unavailable-response.json /tmp/igraph.log /tmp/igraph-unavailable.log; do
for file in /tmp/health.json /tmp/datahub-health.txt /tmp/discover.json /tmp/analyze-request.json /tmp/analyze.json /tmp/verify.json /tmp/pact.json /tmp/execute-request.json /tmp/execute-response.json /tmp/replay-response.json /tmp/tampered-pact.json /tmp/tampered-request.json /tmp/tampered-response.json /tmp/expired-pact.json /tmp/expired-request.json /tmp/expired-response.json /tmp/unavailable-health.json /tmp/unavailable-response.json /tmp/igraph.log /tmp/igraph-unavailable.log; do

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include the target discovery response in the artifact

The new deterministic discovery request writes its evidence to /tmp/target-discover.json, but the collector omits that file. When the linked proof artifact is used to audit the documented claim that /v1/discover found order_items with lineage, it contains only the unrelated wildcard response and cannot substantiate that specific assertion; add the target response to this collection list.

Useful? React with 👍 / 👎.

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