Skip to content

feat(api): publish quarantine-parity export lookup stored-request CLI - #474

Merged
seonghobae merged 2 commits into
feat/export-idempotency-lookup-cli-gap-003afrom
feat/export-idempotency-lookup-stored-request-cli-gap-003a
Sep 1, 2026
Merged

feat(api): publish quarantine-parity export lookup stored-request CLI#474
seonghobae merged 2 commits into
feat/export-idempotency-lookup-cli-gap-003afrom
feat/export-idempotency-lookup-stored-request-cli-gap-003a

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

GAP-003A unique slice: published tepp-export-lookup-request get is quarantine-parity of ADR 0099.

ADR 0099 quarantines GET /v1/exports/by-idempotency/{idempotency_key}/request because a consumer-only lookup can disclose another tenant's stored authorization request. This CLI does not disclose that payload. Compose calls the typed exchange builder, which returns authorization_denied after origin/key validation. Stdout never contains tenant_workspace_id or principal_id.

Stale snapshots that still prefer project-history by-idempotency lookup on #429 are wrong — GET-by-id already keys by idempotency_key (#429 CLOSED). Stale snapshots that still prefer temporal-context stored-request GET on #451 are wrong — already #464 (#451 CLOSED). Stale snapshots that still prefer a disclosure CLI for this route would weaken fail-closed.

Does not duplicate lookup GET/CLI (#466), {export_id}/request CLI (#459), GET-by-id (#411), retrieval CLI (#417), collection GET/CLI (#443/#444), or cancel lineages (closed). Does not weaken ADR 0099.

Test plan

  • cargo test -p tepp_api --test export_idempotency_lookup_stored_request_cli_contract --lib lookup_stored
  • cargo clippy -p tepp_api --all-targets -- -D warnings
  • Independent current-head APPROVE from two humans (not Devin/CodeRabbit/author COMMENTED, not Copilot)

Devin Review

Publish tepp-export-lookup-request get as ADR 0099 parity. Valid origin
and key still fail closed with authorization_denied. The CLI never
prints a stored export-authorization request or tenant/principal
fields. LineageWeave refused. NaruonLiveService stays POST-only.
@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: cfc2f7a4-3566-4693-86e4-0fe8cc58cd5e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

devin-ai-integration[bot]

This comment was marked as resolved.

Module and compose docs no longer promise stored-create stdout. The
typed exchange remains authorization_denied after origin/key validation.
@seonghobae
seonghobae merged commit 71f34b8 into feat/export-idempotency-lookup-cli-gap-003a Sep 1, 2026
5 of 8 checks passed

Copy link
Copy Markdown
Contributor Author

Folded without force into the existing Analysis Run/export lookup landing vehicle #466. Verified ancestry first: 12e8337d68d3263feab21c63cf66a8578e997d07 was both #466's exact head and this PR's merge base; this PR was exactly two commits ahead with zero divergence. #466 now points to 71f34b890bbd096eee152947c5e22d9778d323e8, so all implementation/tests and this PR's immutable review history are preserved there. Closing this parallel micro-PR reduces WIP; its route-level ADR remains implementation lineage pending #437 normalization.

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