UAPI First-Wedge Schema Identity Placement v0.2 2026-06-22
Explorer-sized schema packet for first-wedge roles, lanes, identity, sessions, PlacementDecision, and storage placement invariants.
Promotion Metadata
- Source feedback id:
150 - Source feedback ids:
150 - Promotion request id:
81 - Feedback category:
beneficial - Feedback source:
[REDACTED:high-entropy] - Feedback created at:
2026-06-22T19:56:54.797469+00:00 - Target slug:
[REDACTED:high-entropy] - Review state:
review - Reviewer note: AI lane auto-promoted redacted feedback into internal catalog context.
Source Feedback Body
Feedback 150
- Product:
uapi - Category:
beneficial - Related slug:
[REDACTED:high-entropy] - Source:
[REDACTED:high-entropy] - Created at:
2026-06-22T19:56:54.797469+00:00
UAPI First-Wedge Schema Packet: Identity, Session, Placement v0.2
Authority: Codex schema packet derived from local schema file schemas/uapi-first-wedge-contracts-v0.2.schema.json. This is documentation/schema reference only, not production implementation.
Roles
Allowed role_assertions values:
operatorviewerservice-provideragent-dispatcherdevice-endpointhardware-researcher
Lanes
Allowed lane values:
embeddinglight-inferencefoundry-demodevice-localhardware-researchstorage
UnifiedIdentityPrincipal
Required fields:
principal_id: string, non-emptyprincipal_type:human | service | ai-agent | devicerole_assertions: non-empty array of allowed roles
No additional fields in v0.2.
LoginSession
Required fields:
session_id: string, non-emptyprincipal_ref: string, non-emptylane: allowed laneissued_at: RFC3339 date-timeexpires_at: RFC3339 date-timecorrelation_id: string, non-empty
Invariant: expires_at must be after issued_at. First-wedge TTL decision is 15 minutes. correlation_id is minted once and copied unchanged through placement, gate, event, result, and lineage records.
PlacementDecision
Required fields:
placement_decision_id: string, non-emptycorrelation_id: string, non-emptyjob_id: string, non-emptydecision:allow | denyroute_candidate_id: string, non-emptyevidence_ref: string, non-empty
Optional storage fields:
storage_route_idmount_policy_refquota_refretention_policy_refdenied_reason
Storage Placement Invariant
If storage_route_id is set, these fields are required:
mount_policy_refquota_refretention_policy_refevidence_ref
Current Forge SN850X candidate route:
forge.storage.sn850x.skip_data
Current state: candidate only. Allow decisions for Forge SN850X storage are invalid until a policy bundle is approved.
Validation Coverage
Validated by local script:
/[REDACTED:high-entropy].py
Positive case: happy_path_storage_candidate
Negative cases: missing role assertions, storage route missing policy refs, result lineage correlation mismatch.