Skip to content

Keystore

Stored identities and SSH keys for hosts that cannot use certificates.

GET/api/keystore/keys
GET/api/keystore/keys/:id
POST/api/keystore/keys/generate
POST/api/keystore/keys/inspect
POST/api/keystore/keys/import
PATCH/api/keystore/keys/:id
DELETE/api/keystore/keys/:id
POST/api/keystore/keys/:id/export
POST/api/keystore/keys/:id/move-to-org
GET/api/keystore/credentials
GET/api/keystore/credentials/:id
POST/api/keystore/credentials
PATCH/api/keystore/credentials/:id
DELETE/api/keystore/credentials/:id
POST/api/keystore/credentials/:id/test
POST/api/keystore/credentials/:id/move-to-org
POST/api/keystore/deployments
GET/api/keystore/deployments/batches
GET/api/keystore/deployments
POST/api/keystore/deployments/:id/retry

List keys ​

GET/api/keystore/keys

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

Query parameters

NameTypeRequiredNotes
scope—No
search—No
bash
curl -X GET "https://shellius.example.com/api/keystore/keys" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

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

Get key ​

GET/api/keystore/keys/:id

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

Path parameters

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

200 OK

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

Generate key ​

POST/api/keystore/keys/generate

Authentication: bearer token.
Permission: keystore.manage or vault.use.

Request body

NameTypeRequiredNotes
scopeobjectNo
namestringYes1–200 characters.
descriptionstringNoAt most 1000 characters. May be null.
keyTypestringNoDefault ed25519.
bitsnumberNo
commentstringNoAt most 255 characters. May be null.
passphrasestringNoAt most 255 characters. May be null.
bash
curl -X POST "https://shellius.example.com/api/keystore/keys/generate" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "…"
  }'

201 Created

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

Parse a pasted private key ​

POST/api/keystore/keys/inspect

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

Request body

NameTypeRequiredNotes
privateKeystringYes
passphrasestringNoAt most 255 characters. May be null.
bash
curl -X POST "https://shellius.example.com/api/keystore/keys/inspect" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "privateKey": "…"
  }'

200 OK

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

Import key ​

POST/api/keystore/keys/import

Authentication: bearer token.
Permission: keystore.manage or vault.use.

Request body

NameTypeRequiredNotes
scopeobjectNo
namestringYes1–200 characters.
descriptionstringNoAt most 1000 characters. May be null.
privateKeystringYes
passphrasestringNoAt most 255 characters. May be null.
publicKeystringNoMay be null.
certificatestringNoMay be null.
bash
curl -X POST "https://shellius.example.com/api/keystore/keys/import" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "…",
    "privateKey": "…"
  }'

201 Created

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

Update key metadata/cert ​

PATCH/api/keystore/keys/:id

Authentication: bearer token.
Permission: keystore.manage or vault.use.

Path parameters

NameTypeNotes
idstring

Request body

NameTypeRequiredNotes
namestringNo1–200 characters.
descriptionstringNoAt most 1000 characters. May be null.
commentstringNoAt most 255 characters. May be null.
certificatestringNoMay be null.
bash
curl -X PATCH "https://shellius.example.com/api/keystore/keys/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "…",
    "description": "…",
    "comment": "…"
  }'

200 OK

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

Delete key ​

DELETE/api/keystore/keys/:id

Authentication: bearer token.
Permission: keystore.manage or vault.use.

Path parameters

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

200 OK

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

Export decrypted PRIVATE key ​

POST/api/keystore/keys/:id/export

Authentication: bearer token.
Permission: keystore.export_private or vault.use.

Path parameters

NameTypeNotes
idstring

Request body

NameTypeRequiredNotes
includePrivatebooleanYesOne of true.
bash
curl -X POST "https://shellius.example.com/api/keystore/keys/{id}/export" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "includePrivate": "true"
  }'

200 OK

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

Keys move to org ​

POST/api/keystore/keys/:id/move-to-org

Authentication: bearer token.
Permission: keystore.manage.

Path parameters

NameTypeNotes
idstring
bash
curl -X POST "https://shellius.example.com/api/keystore/keys/{id}/move-to-org" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

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

List identities ​

GET/api/keystore/credentials

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

Query parameters

NameTypeRequiredNotes
scope—No
search—No
bash
curl -X GET "https://shellius.example.com/api/keystore/credentials" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

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

Get identity ​

GET/api/keystore/credentials/:id

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

Path parameters

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

200 OK

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

Create identity ​

POST/api/keystore/credentials

Authentication: bearer token.
Permission: keystore.manage or vault.use.

Request body

NameTypeRequiredNotes
scopeobjectNo
namestringYes1–200 characters.
descriptionstringNoAt most 1000 characters. May be null.
usernamestringYes1–255 characters.
authTypestringYes
passwordstringNoAt most 1000 characters. May be null.
sshKeyIdstringNo
newKeyobjectNo
tagsarrayNo
bash
curl -X POST "https://shellius.example.com/api/keystore/credentials" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "…",
    "username": "…",
    "authType": "…"
  }'

201 Created

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

Update identity ​

PATCH/api/keystore/credentials/:id

Authentication: bearer token.
Permission: keystore.manage or vault.use.

Path parameters

NameTypeNotes
idstring

Request body

NameTypeRequiredNotes
namestringNo1–200 characters.
descriptionstringNoAt most 1000 characters. May be null.
usernamestringNo1–255 characters.
authTypestringNo
passwordstringNoAt most 1000 characters. May be null.
clearPasswordbooleanNo
sshKeyIdstringNoMay be null.
newKeyobjectNo
tagsarrayNo
bash
curl -X PATCH "https://shellius.example.com/api/keystore/credentials/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "…",
    "description": "…",
    "username": "…"
  }'

200 OK

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

Delete identity ​

DELETE/api/keystore/credentials/:id

Authentication: bearer token.
Permission: keystore.manage or vault.use.

Path parameters

NameTypeNotes
idstring

Query parameters

NameTypeRequiredNotes
force—No
bash
curl -X DELETE "https://shellius.example.com/api/keystore/credentials/{id}" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

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

Test identity against serverId OR arbitrary host ​

POST/api/keystore/credentials/:id/test

Authentication: bearer token.
Permission: keystore.test or vault.use.

Path parameters

NameTypeNotes
idstring

Request body

NameTypeRequiredNotes
serverIdstringNo
hoststringNo
portnumberNoDefault 22. 1–65535.
bash
curl -X POST "https://shellius.example.com/api/keystore/credentials/{id}/test" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "serverId": "…",
    "host": "…",
    "port": 0
  }'

200 OK

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

Credentials move to org ​

POST/api/keystore/credentials/:id/move-to-org

Authentication: bearer token.
Permission: keystore.manage.

Path parameters

NameTypeNotes
idstring
bash
curl -X POST "https://shellius.example.com/api/keystore/credentials/{id}/move-to-org" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

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

Deploy/remove/rotate key on servers ​

POST/api/keystore/deployments

Authentication: bearer token.
Permission: keystore.deploy.

Request body

NameTypeRequiredNotes
sshKeyIdstringYes
serverIdsarrayYesAt least 1.
actionstringYesOne of deploy, remove, rotate.
targetUserstringNoMay be null.
authobjectYes
useSudobooleanNoDefault false.
rotatestringYesDefault false.
bash
curl -X POST "https://shellius.example.com/api/keystore/deployments" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "sshKeyId": "…",
    "serverIds": [],
    "action": "deploy",
    "auth": {},
    "rotate": "…"
  }'

200 OK

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

List deployment batches ​

GET/api/keystore/deployments/batches

Authentication: bearer token.
Permission: keystore.view.

Query parameters

NameTypeRequiredNotes
limit—No
bash
curl -X GET "https://shellius.example.com/api/keystore/deployments/batches" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

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

List deployments ​

GET/api/keystore/deployments

Authentication: bearer token.
Permission: keystore.view.

Query parameters

NameTypeRequiredNotes
batchIdstringNo
sshKeyIdstringNo
serverIdstringNo
pagenumberNoDefault 1. At least 1.
pageSizenumberNoDefault 25. 1–100.
bash
curl -X GET "https://shellius.example.com/api/keystore/deployments" \
  -H "Authorization: Bearer $SHELLIUS_TOKEN"

200 OK

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

Retry deployment ​

POST/api/keystore/deployments/:id/retry

Authentication: bearer token.
Permission: keystore.deploy.

Path parameters

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

200 OK

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