Add verified browser login and human approval HTTP client
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
parent
4e103f62a0
commit
0e48355b9f
16 changed files with 1365 additions and 39 deletions
|
|
@ -1,11 +1,12 @@
|
|||
"""Claim provenance — A-16 applied to claims this surface consumes.
|
||||
|
||||
`key-cape` emits `tenant` and `principal_type` as bare strings. A consumer
|
||||
cannot tell a value the *directory asserted about the person* from one a
|
||||
*registration supplied about the client they came through*.
|
||||
`key-cape` emits `tenant_source` alongside `tenant`. Its authorization-code
|
||||
handler derives `principal_type=human` from the authenticated user flow; its
|
||||
client-credentials handler emits `service`. These are distinct provenance
|
||||
contracts, not two properties inferred from a client registration.
|
||||
|
||||
`GH-DEC-2026-013` §5 requires the claim to carry its provenance. Until it does,
|
||||
this surface records which route the value arrived by rather than storing an
|
||||
`GH-DEC-2026-013` §5 requires the claim to carry its provenance. This surface
|
||||
records which route the value arrived by rather than storing an
|
||||
undifferentiated string (PR-09), and never discharges a human-in-the-loop
|
||||
control on a registration-supplied assertion of humanity (PR-11,
|
||||
`GH-DEC-2026-016` §5).
|
||||
|
|
@ -74,9 +75,9 @@ class HumanControlNotDischargeable(Exception):
|
|||
def assert_human_control_dischargeable(principal_type: Claim) -> None:
|
||||
"""Guard for `GH-DEC-2026-016` §5 / PR-11.
|
||||
|
||||
Today `principal_type: human` is a property of the client registration, so
|
||||
this raises. That is correct and deliberate: the guard exists so the
|
||||
limitation is visible at the point of use rather than buried in a document.
|
||||
The KeyCape login adapter supplies AUTHENTICATION only after verifying the
|
||||
issuer's code-flow tokens. A bare or registration-supplied assertion still
|
||||
cannot discharge the control.
|
||||
"""
|
||||
if principal_type.value != "human":
|
||||
raise HumanControlNotDischargeable(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue