feat(api): authorize purpose-bound exports via loopback CLI - #410
feat(api): authorize purpose-bound exports via loopback CLI#410seonghobae wants to merge 1 commit into
Conversation
Operators can POST /v1/exports through `tepp-exports authorize` against `tepp-naruon-live` without writing raw HTTP. Metric-free decision JSON only. tepp.scientific_acceptance.v1 never appears. tepp-loopback remains AnalysisRunLiveService and does not serve /v1/exports. Not GAP-010 Figma/export. Not analysis-run CLIs. Stacked on protected main.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Hour-27 exact-head: |
seonghobae
left a comment
There was a problem hiding this comment.
Exact-head COMMENT on 0c0341e (draft). Unique occupied: tepp-exports authorize POST /v1/exports on NaruonLiveService / tepp-naruon-live (ADR 0026). tepp-loopback (AnalysisRunLiveService) does not serve /v1/exports. Non-loopback host is AuthorizationDenied. Forbidden keys include rmse family, se_gate, scientific_acceptance, terminal_result. Consumer is naruon.
Do not duplicate this authorize CLI. Retrieval is #417; collection is #444; stored-request is #459; lookup/quarantine is #466. Do not un-draft. Zero reviews on this SHA before this COMMENT. Never self-approve. Do not weaken fail-closed. No Buyer language.
Why
Protected main already serves
POST /v1/exportsonNaruonLiveService, but operators still had to write raw HTTP/1.1.tepp-loopbackisAnalysisRunLiveServiceand does not serve this path. Stdout stays purpose-bound.tepp.scientific_acceptance.v1never appears.Live slices that this PR does not duplicate:
analysis_enginescientific-acceptance librarylistWhat
Purpose-bound export CLI stacked on protected main
1bc02f580cf48e1d39da239f0e818453437c31c3:tepp-naruon-livebindsNaruonLiveServiceon127.0.0.1:18082by defaulttepp-exports authorizeclient ofPOST /v1/exportsExportAuthorizationRequestJSON; onlymodular_service_consumerprincipal_idtepp.scientific_acceptance.v1never printsNot an ADR 0014 scientific claim. Not persistence. Not
GET /v1/exports/{export_id}.Verification
cargo clippy -p tepp_api --all-targets -- -D warningscargo test -p tepp_api --lib export_authorize_clicargo test -p tepp_api --test export_authorize_cli_contractRUSTDOCFLAGS='-D warnings' cargo doc -p tepp_api --no-depspython3 scripts/validate_documentation.pypython3 scripts/check_docstrings.pyExact head:
0c0341e39f0fb166c8fc37bb8368cf26652095f3Do not merge without two independent APPROVE reviews on this exact head and current Checks. Author COMMENTED is not independent APPROVE.