Skip to content

Access policies

Allow and deny rules that decide who may reach which servers, as whom, and for how long.

GET/api/policies/my-access
POST/api/policies/evaluate
GET/api/policies
POST/api/policies
GET/api/policies/:id
PUT/api/policies/:id
GET/api/policies/:id/delete-impact
DELETE/api/policies/:id

Servers the caller can access ​

GET/api/policies/my-access

Authentication: bearer token.
Permission: any signed-in user.

bash
curl -X GET "https://shellius.example.com/api/policies/my-access" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Dry-run policy evaluation for any user/server ​

POST/api/policies/evaluate

Debugging/admin tool Must be registered before /:id for the same reason.

Authentication: bearer token.
Permission: policies.view.

Request body

NameTypeRequiredNotes
userIdstringYes
serverIdstringYes
requestedPrincipalstringNo
policyIdstringNo
policyobjectNo
bash
curl -X POST "https://shellius.example.com/api/policies/evaluate" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "…",
    "serverId": "…"
  }'

200 OK

json
{ "success": true, "data": { … } }

List policies ​

GET/api/policies

Authentication: bearer token.
Permission: policies.view.

Query parameters

NameTypeRequiredNotes
customerIdstringNo
effectstringNo
isActivebooleanNo
pagenumberNoDefault 1. At least 1.
pageSizenumberNoDefault 25. 1–100.
bash
curl -X GET "https://shellius.example.com/api/policies" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Create policy ​

POST/api/policies

Authentication: bearer token.
Permission: policies.manage.

Request body

NameTypeRequiredNotes
namestringYes1–255 characters.
descriptionstringNoAt most 1000 characters. May be null.
effectstringYes
customerIdstringNoMay be null.
targetEnvironmentsarrayNoDefault [].
targetLabelsobjectNo
targetServerIdsarrayNoDefault [].
allowedPrincipalsarrayNoDefault [].
maxSessionDurationnumberYes60–604800.
requireApprovalbooleanNoDefault false.
autoApprovebooleanNoDefault false.
isActivebooleanNoDefault true.
prioritynumberNoDefault 100. 1–9999.
osProvisioningobjectNo
allowKeyDownloadbooleanNoDefault false.
isBreakGlassbooleanNoDefault false.
approverGroupIdstringNoMay be null.
approverRolesarrayNoDefault []. At most 100.
approverUserIdsarrayNoDefault [].
subjectsarrayNoDefault [].
bash
curl -X POST "https://shellius.example.com/api/policies" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "…",
    "effect": "…",
    "maxSessionDuration": 0
  }'

201 Created

json
{ "success": true, "data": { … } }

Get policy ​

GET/api/policies/:id

Authentication: bearer token.
Permission: policies.view.

Path parameters

NameTypeNotes
idstring
bash
curl -X GET "https://shellius.example.com/api/policies/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Update policy ​

PUT/api/policies/:id

Authentication: bearer token.
Permission: policies.manage.

Path parameters

NameTypeNotes
idstring

Request body

NameTypeRequiredNotes
namestringNo1–255 characters.
descriptionstringNoAt most 1000 characters. May be null.
effectstringNo
customerIdstringNoMay be null.
targetEnvironmentsarrayNo
targetLabelsobjectNo
targetServerIdsarrayNo
allowedPrincipalsarrayNo
maxSessionDurationnumberNo60–604800.
requireApprovalbooleanNo
autoApprovebooleanNo
isActivebooleanNo
prioritynumberNo1–9999.
osProvisioningobjectNo
allowKeyDownloadbooleanNo
isBreakGlassbooleanNo
approverGroupIdstringNoMay be null.
approverRolesarrayNoAt most 100.
approverUserIdsarrayNo
subjectsarrayNo
bash
curl -X PUT "https://shellius.example.com/api/policies/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "…",
    "description": "…",
    "effect": "…"
  }'

200 OK

json
{ "success": true, "data": { … } }

Preview policy delete ​

GET/api/policies/:id/delete-impact

Authentication: bearer token.
Permission: policies.manage.

Path parameters

NameTypeNotes
idstring
bash
curl -X GET "https://shellius.example.com/api/policies/{id}/delete-impact" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }

Delete policy ​

DELETE/api/policies/:id

Authentication: bearer token.
Permission: policies.manage.

Path parameters

NameTypeNotes
idstring
bash
curl -X DELETE "https://shellius.example.com/api/policies/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

json
{ "success": true, "data": { … } }
Was this page helpful?No, tell us why