All runbooks
runbookuapiredacted view

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.

Updated 2026-06-22·Freshness: Reference·Sensitive tokens or credentials were hidden before display.

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:

  • operator
  • viewer
  • service-provider
  • agent-dispatcher
  • device-endpoint
  • hardware-researcher

Lanes

Allowed lane values:

  • embedding
  • light-inference
  • foundry-demo
  • device-local
  • hardware-research
  • storage

UnifiedIdentityPrincipal

Required fields:

  • principal_id: string, non-empty
  • principal_type: human | service | ai-agent | device
  • role_assertions: non-empty array of allowed roles

No additional fields in v0.2.

LoginSession

Required fields:

  • session_id: string, non-empty
  • principal_ref: string, non-empty
  • lane: allowed lane
  • issued_at: RFC3339 date-time
  • expires_at: RFC3339 date-time
  • correlation_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-empty
  • correlation_id: string, non-empty
  • job_id: string, non-empty
  • decision: allow | deny
  • route_candidate_id: string, non-empty
  • evidence_ref: string, non-empty

Optional storage fields:

  • storage_route_id
  • mount_policy_ref
  • quota_ref
  • retention_policy_ref
  • denied_reason

Storage Placement Invariant

If storage_route_id is set, these fields are required:

  • mount_policy_ref
  • quota_ref
  • retention_policy_ref
  • evidence_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.