Skip to content

Harden the cross-company incident response effect boundary - #103

Draft
bordumb wants to merge 2 commits into
mainfrom
codex/auths-incident-demo
Draft

Harden the cross-company incident response effect boundary#103
bordumb wants to merge 2 commits into
mainfrom
codex/auths-incident-demo

Conversation

@bordumb

@bordumb bordumb commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

What changed

  • establishes an opaque, native-owned Python authorization waist and brings the Python workflow surface up to the required Rust semantics
  • adds matching TypeScript and Python application gateways for ordered plans, durable reservation, credential acquisition, provider execution, outcomes, and signed receipts
  • expands the Rust receipt model and exposes canonical preparation, attestation, and verification through Python and WASM
  • adds Rust-generated differential fixtures covering canonical commands, commitments, receipt identifiers, and signing preimages
  • hardens the cross-company incident demo so the trusted Python service owns authorization and the browser remains only a proposer and observer
  • authenticates Northstar through authorization code + PKCE with locally verified ES256 tokens and EdgeShield through an Ed25519 signature over the exact transaction
  • reserves execution state before credentials or provider entry, blocks replay and concurrent ownership, preserves unknown outcomes, and requires explicit reconciliation
  • carries exact cache command bytes over real Iroh without treating delivery as authorization
  • updates the executable specification, threat model, architecture, feature evidence, and README happy-path/failure-path diagram

Why

The original demo illustrated the product idea but did not prove the actual effect boundary strongly enough. This change makes the claim executable: two organizations can approve the same exact, short-lived, ordered authority without sharing an identity provider, root key, or provider credential, and an agent can execute only the native-authorized commands after durable reservation.

It also closes TypeScript/Python parity gaps by keeping canonicalization, authorization, lifecycle, and receipt meaning in Rust while exposing idiomatic, type-driven ports in each SDK.

Security and product impact

  • arbitrary TypeScript, Python, browser, HTTPS, or Iroh inputs cannot mint an effect-capable command
  • mutation, widening, expiry, approval substitution, replay, concurrency, and wrong-order execution fail before provider entry
  • provider credentials are acquired only after durable reservation
  • successful delivery never becomes authorization
  • ambiguous remote effects remain outcome-unknown, cannot be retried blindly, and require explicit reconciliation
  • decision and execution receipts are canonical Rust-owned signed artifacts
  • the implementation intentionally carries no prelaunch compatibility aliases, migration paths, or deprecated receipt formats

Validation

  • cargo test -p auths-receipts — 6 passed
  • cargo check --manifest-path bindings/python/Cargo.toml
  • cargo check -p auths-proof-wasm
  • Python SDK suite — 73 passed against the rebuilt native extension
  • TypeScript full suite — contract checks, 87 integration/adversarial cases, 25 unit cases, package installs, examples, public API, capability metadata, and runtime contract
  • cross-company incident demo local suite — Python service tests, live integration, browser controls, real Iroh delivery, concurrency, replay, ambiguity, reconciliation, and EdgeShield Rust tests
  • architecture policy and dependency snapshots
  • semantic freeze
  • binding semantics
  • public naming
  • core boundary
  • specification/registry synchronization

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