Add identity trust administration surfaces

This commit is contained in:
2026-08-04 01:04:39 +02:00
parent 0ffc8b6b0f
commit 9640ec29dd
16 changed files with 1143 additions and 10 deletions
@@ -49,6 +49,28 @@ class DeviceKeyListResponse(BaseModel):
keys: list[DeviceKeyResponse]
class AssuranceEvidenceResponse(BaseModel):
id: str
tenant_id: str
account_id: str
device_key_id: str | None = None
evidence_ref: str
assurance_level: str
provider_id: str
verified_at: datetime
expires_at: datetime
active: bool
provenance: dict[str, Any] = Field(default_factory=dict)
class AssuranceEvidenceListResponse(BaseModel):
evidence: list[AssuranceEvidenceResponse]
class EpochListResponse(BaseModel):
epochs: list[EpochResponse]
class EpochRotatePayload(BaseModel):
subject_kind: Literal[
"identity", "account", "function", "postbox", "external_recipient"
@@ -102,6 +124,34 @@ class KeyAccessResponse(BaseModel):
provenance: dict[str, Any] = Field(default_factory=dict)
class KeyAccessDecisionItem(BaseModel):
id: str
decision_ref: str
account_id: str
device_key_id: str
subject_kind: str
subject_id: str
key_epoch: int
access_decision_ref: str
purpose: str
allowed: bool
reason: str
resource_ref: str | None = None
function_assignment_id: str | None = None
delegation_id: str | None = None
provenance: dict[str, Any] = Field(default_factory=dict)
created_at: datetime
class KeyAccessDecisionListResponse(BaseModel):
decisions: list[KeyAccessDecisionItem]
class ReferenceOptionsResponse(BaseModel):
options: list[dict[str, Any]] = Field(default_factory=list)
provider_available: bool = False
class AssuranceEvidencePayload(BaseModel):
account_id: str = Field(min_length=1, max_length=255)
evidence_ref: str = Field(min_length=1, max_length=1000)