Update the fleet's shell access policy (fleet alias)
const url = 'https://example.com/api/fleets/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/access-policy';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"additions_require_approval":true,"allowed_tiers":["example"],"breakglass_enabled":true,"breakglass_notification_channels":["example"],"breakglass_session_timeout_minutes":1,"elevated_approval_mode":"example","elevated_approval_timeout_minutes":1,"elevated_session_timeout_minutes":1,"max_concurrent_sessions":1,"recording_retention_days":1,"recording_storage_quota_bytes":1,"standard_recording_enabled":true,"webhook_secret":"example","webhook_url":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/api/fleets/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/access-policy \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "additions_require_approval": true, "allowed_tiers": [ "example" ], "breakglass_enabled": true, "breakglass_notification_channels": [ "example" ], "breakglass_session_timeout_minutes": 1, "elevated_approval_mode": "example", "elevated_approval_timeout_minutes": 1, "elevated_session_timeout_minutes": 1, "max_concurrent_sessions": 1, "recording_retention_days": 1, "recording_storage_quota_bytes": 1, "standard_recording_enabled": true, "webhook_secret": "example", "webhook_url": "example" }'Upsert the shell access policy for the fleet (organisation).
fleet_id is the organisation UUID. Alias for
PUT /organizations/{organization_id}/access-policy — same logic, same
auth gates (OWNER / ADMIN only), same policy.changed audit event.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Request Bodyrequired
Section titled “ Request Bodyrequired ”Mutable fields for the PUT /access-policy endpoint.
All fields are optional — only supplied (non-None) values are applied. Validators enforce domain constraints so callers receive clear 422 errors rather than mysterious integrity violations or silent mis-configurations.
object
Example generated
{ "additions_require_approval": true, "allowed_tiers": [ "example" ], "breakglass_enabled": true, "breakglass_notification_channels": [ "example" ], "breakglass_session_timeout_minutes": 1, "elevated_approval_mode": "example", "elevated_approval_timeout_minutes": 1, "elevated_session_timeout_minutes": 1, "max_concurrent_sessions": 1, "recording_retention_days": 1, "recording_storage_quota_bytes": 1, "standard_recording_enabled": true, "webhook_secret": "example", "webhook_url": "example"}Responses
Section titled “ Responses ”Successful Response
Full shell access policy document for an organisation.
is_default is True when no row exists yet in shell_access_policy and
the response represents the documented model defaults. Once a PUT has been
issued, is_default is always False.
id is None when the response is a virtual defaults object (is_default=True).
object
Example
{ "has_webhook_secret": false, "is_default": false}Validation Error
object
object
object
Example generated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}