Skip to main content
POST
Create Principal

Authorizations

Authorization
string
header
required

Bearer scheme name used by typed customer admin operations.

Body

application/json

Request body for POST /v1/admin/identity/principals.

Exactly one of trusted_issuer_id (reference an already-registered issuer) or issuer (inline material, de-duplicated into the issuer registry) is required.

display_name
string
required

Customer-facing principal label.

Maximum string length: 200
Example:

"ci-prod-deploy"

subject_match_value
string
required
Maximum string length: 512
Example:

"repo:Mount-Thor/mount-thor:ref:refs/heads/main"

tenant_id
string<uuid>
required

Tenant the minted sessions are bound to. Must belong to the customer.

claim_constraints
object
issuer
null | object

Inline IdP material. Mutually exclusive with trusted_issuer_id.

max_session_ttl_seconds
integer<int64> | null

Maximum TTL (seconds) for sessions minted via this binding [300, 3600].

Example:

900

scopes
string[]
Example:
subject_match_type
string

exact (match on sub) or claim-constraints.

Example:

"exact"

trusted_issuer_id
string<uuid> | null

Reference to an existing trusted issuer. Mutually exclusive with issuer.

Response

Principal registered

Principal detail response.

claim_constraints
object
required

Additional claim constraints used when subject_match_type is claim-constraints.

created_at
string
required

RFC 3339 creation timestamp.

Example:

"2026-05-25T17:20:00Z"

display_name
string
required

Customer-facing principal label.

Example:

"ci-prod-deploy"

id
string
required

Stable principal UUID.

max_session_ttl_seconds
integer<int64>
required
Example:

900

scopes
string[]
required
Example:
status
string
required

Principal lifecycle state. Disabled principals cannot mint sessions.

Example:

"active"

subject_match_type
string
required

Subject matching mode: exact or claim-constraints.

Example:

"exact"

subject_match_value
string
required

Required subject value or descriptor for the claim constraint.

Example:

"repo:Mount-Thor/mount-thor:ref:refs/heads/main"

tenant_id
string
required
trusted_issuer_id
string
required
updated_at
string
required

RFC 3339 update timestamp.

Example:

"2026-05-25T17:30:00Z"

customer_id
string
required

Stable UUID for the customer account.