Skip to content
Registry StackDocsLatest

Read redacted runtime posture

GET
/admin/v1/posture
curl --request GET \
--url 'https://example.com/admin/v1/posture?tier=default' \
--header 'X-Api-Key: <X-Api-Key>'

Returns redacted runtime posture for the requested tier. The response body is a registry.ops.posture.v1 document describing instance, configuration, notary, deployment, and audit posture.

tier
string
Allowed values: default restricted

Redaction tier for the posture document. Defaults to default.

Redacted posture for the requested tier

Media typeapplication/json
Example
{
"audit": {
"anchoring": "none",
"checkpoints": "unsupported",
"hash_chain": "process_local",
"keyed_integrity": "hmac",
"redaction_mode": "redacted",
"retention_owner": "operator",
"sink_class": "file",
"write_policy": "fail_closed_route_families"
},
"build": {
"package": "registry-notary",
"version": "0.1.0"
},
"component": "registry-notary",
"configuration": {
"dynamic_reload_supported": false,
"last_apply_at": null,
"last_apply_result": null,
"last_bundle_id": null,
"last_bundle_sequence": null,
"last_bundle_signer_kids": [],
"last_config_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"restart_required": false,
"source": "local_file"
},
"deployment": {
"findings": [],
"profile": "production"
},
"instance": {
"environment": "production",
"id": "civil-notary-prod",
"jurisdiction": "example-country",
"owner": "Ministry of Interior"
},
"notary": {
"claim_count": 6,
"credential_profile_count": 2,
"credential_status": {
"enabled": true,
"storage": "redis"
},
"federation": {
"allowed_profile_count": 3,
"allowed_purpose_count": 4,
"enabled": true,
"peer_count": 2,
"supported_protocol_versions": [
"registry-notary-federation/v0.1"
]
},
"oid4vci": {
"credential_configuration_count": 1,
"enabled": true
},
"replay": {
"ready": true,
"storage": "redis"
},
"self_attestation": {
"allowed_claim_count": 1,
"allowed_purpose_count": 1,
"credential_profile_count": 1,
"enabled": true,
"rate_limit_mode": "in_process",
"wallet_origin_count": 1
},
"source_connection_counts": {
"http": 2,
"postgres": 1
}
},
"observed_at": "2026-06-04T10:00:00Z",
"posture": {
"audit": {
"checkpoint_status": "unavailable",
"configured": true,
"latest_sequence": null,
"latest_tail_hash": null,
"shipping_health": "ok",
"shipping_observed_at": "2026-06-04T09:59:00Z",
"shipping_target": "declared_external",
"shipping_target_configured": true,
"sink_type": "file",
"verification_status": "not_supported",
"verified_at": null
},
"findings": [],
"warnings": []
},
"runtime": {
"admin_enabled": true,
"auth_mode": "oidc",
"readiness": "ready"
},
"schema": "registry.ops.posture.v1",
"standards_artifacts": {
"evidence_service_discovery": {
"media_type": "application/json",
"observed_status": "available"
},
"jwks": {
"media_type": "application/jwk-set+json",
"observed_status": "available"
}
},
"tier": "default"
}

Posture tier is invalid

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "registry.admin.posture.invalid_tier",
"detail": "posture tier must be default or restricted",
"message": "posture tier must be default or restricted",
"schema": "registry.admin.error.v1",
"status": 400,
"title": "Admin posture tier invalid",
"type": "https://id.registrystack.org/problems/registry-notary/registry/admin/posture/invalid_tier"
}

Missing or invalid credential

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "auth.missing_credential",
"detail": "missing authentication credential",
"status": 401,
"title": "Missing credential",
"type": "https://id.registrystack.org/problems/registry-notary/auth/missing_credential"
}

Caller lacks registry_notary:ops_read scope

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "auth.scope_denied",
"detail": "missing required scope",
"status": 403,
"title": "Scope denied",
"type": "https://id.registrystack.org/problems/registry-notary/auth/scope_denied"
}

Posture could not be filtered for the requested tier

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "posture.filter_failed",
"detail": "admin posture could not be filtered for the requested tier",
"status": 500,
"title": "Admin posture unavailable",
"type": "https://id.registrystack.org/problems/registry-notary/posture/filter_failed"
}

Posture state is unavailable

Media typeapplication/problem+json
object
code
required
string
detail
required
string
request_id
required
string
status
required
integer format: int32
title
required
string
type
required
string format: uri
key
additional properties
any
Example
{
"code": "posture.unavailable",
"detail": "posture state is unavailable",
"message": "posture state is unavailable",
"schema": "registry.admin.error.v1",
"status": 503,
"title": "Admin posture unavailable",
"type": "https://id.registrystack.org/problems/registry-notary/posture/unavailable"
}