ShellHub OpenAPI (1.0.0-alpha.5)
Download OpenAPI specification:Download
THE API IS NOT STABLE YET; ERROR AND INCONSISTENCIES MAY OCCUR.
This is the OpenAPI specification for ShellHub community version. It documents the parameters and bodies for performs HTTP requests to the ShellHub server endpoints related to users, namespaces, members, devices, tags, SSH, sessions, etc.
These endpoints require a JSON Web Token (JWT) as its security scheme, that means you need to send, to almost each
request, an HTTP header called Authorization
with the bearer
token. To obtains this token, uses the /api/login
route, fulfilling its request body to return that token with some essential information about the user whom logged
in.
Auth device
Authenticate a ShellHub agent into the ShellHub server.
Every 30 seconds, this route is hit by ShellHub agent to inform device availability.
Authorizations:
header Parameters
X-Real-IP | string^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,... Example: 127.0.0.1 Device's IP address.
|
Request Body schema: application/json
required | object (deviceInfo) Device's info |
sessions | Array of strings |
hostname required | string([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z... |
object (deviceIdentity) Device's identity | |
public_key required | string Device's public key. |
tenant_id required | string <uuid> (namespaceTenantID) Namespace's tenant ID |
Responses
Request samples
- Payload
{- "info": {
- "id": "example",
- "pretty_name": "linux",
- "version": "latest",
- "arch": "x86_64",
- "platform": "docker"
}, - "sessions": [
- "string"
], - "hostname": "string",
- "identity": {
- "mac": "00:00:00:00:00:00"
}, - "public_key": "string",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65"
}
Response samples
- 200
- 401
- 500
{- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.iUCROHt6JHANdtzT6aOuUgOqVFRalOW20SbzRsn5SkI\n",
- "name": "example",
- "namespace": "examplespace"
}
Auth device
Authenticate a ShellHub agent into the ShellHub server.
Every 30 seconds, this route is hit by ShellHub agent to inform device availability.
Authorizations:
header Parameters
X-Real-IP | string^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,... Example: 127.0.0.1 Device's IP address.
|
Request Body schema: application/json
required | object (deviceInfo) Device's info |
sessions | Array of strings |
hostname required | string([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z... |
object (deviceIdentity) Device's identity | |
public_key required | string Device's public key. |
tenant_id required | string <uuid> (namespaceTenantID) Namespace's tenant ID |
Responses
Request samples
- Payload
{- "info": {
- "id": "example",
- "pretty_name": "linux",
- "version": "latest",
- "arch": "x86_64",
- "platform": "docker"
}, - "sessions": [
- "string"
], - "hostname": "string",
- "identity": {
- "mac": "00:00:00:00:00:00"
}, - "public_key": "string",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65"
}
Response samples
- 200
- 401
- 500
{- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.iUCROHt6JHANdtzT6aOuUgOqVFRalOW20SbzRsn5SkI\n",
- "name": "example",
- "namespace": "examplespace"
}
Auth SSH public key
Authenticate a SSH public key to ShellHub server.
Authorizations:
Request Body schema: application/json
fingerprint required | string (publickKeyFingerprint) ^([0-9a-f]{2}:){15}[0-9a-f]{2}$ Public key's fingerprint. |
data required | string Public key's data. |
Responses
Request samples
- Payload
{- "fingerprint": "48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a",
- "data": "string"
}
Response samples
- 200
- 401
- 500
{- "signature": "string"
}
Update device status to offline
Update device's status to offiline.
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Login
Authenticate a user, returning the session's JWT token and data about the user.
Request Body schema: application/json
username required | string (userUsername) [ 3 .. 30 ] characters ^[a-zA-Z0-9-_.@]{3,30}$ User's username. |
password required | string (userPassword) [ 5 .. 30 ] characters User's password. |
Responses
Request samples
- Payload
{- "username": "example",
- "password": "example"
}
Response samples
- 200
- 401
- 500
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJleGFtcGxlIiwibmFtZSI6ImV4YW1wbGUiLCJpYXQiOjE1MTYyMzkwMjJ9.zqCt70KspnNnitZlv89hDbFZ5iGMMRUn0wFEmmlY-to",
- "id": "507f1f77bcf86cd799439011",
- "user": "example",
- "name": "example",
- "email": "example@example.com",
- "tenant": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "role": "administrator",
- "mfa": {
- "enable": false,
- "validate": false
}
}
Auth a user
Authenticate a user, returning the session's JWT token and data about the user.
Request Body schema: application/json
username required | string (userUsername) [ 3 .. 30 ] characters ^[a-zA-Z0-9-_.@]{3,30}$ User's username. |
password required | string (userPassword) [ 5 .. 30 ] characters User's password. |
Responses
Request samples
- Payload
{- "username": "example",
- "password": "example"
}
Response samples
- 200
- 401
- 500
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJleGFtcGxlIiwibmFtZSI6ImV4YW1wbGUiLCJpYXQiOjE1MTYyMzkwMjJ9.zqCt70KspnNnitZlv89hDbFZ5iGMMRUn0wFEmmlY-to",
- "id": "507f1f77bcf86cd799439011",
- "user": "example",
- "name": "example",
- "email": "example@example.com",
- "tenant": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "role": "administrator",
- "mfa": {
- "enable": false,
- "validate": false
}
}
Login
Authenticate a user, returning the session's JWT token and data about the user.
Request Body schema: application/json
username required | string (userUsername) [ 3 .. 30 ] characters ^[a-zA-Z0-9-_.@]{3,30}$ User's username. |
password required | string (userPassword) [ 5 .. 30 ] characters User's password. |
Responses
Request samples
- Payload
{- "username": "example",
- "password": "example"
}
Response samples
- 200
- 401
- 500
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJleGFtcGxlIiwibmFtZSI6ImV4YW1wbGUiLCJpYXQiOjE1MTYyMzkwMjJ9.zqCt70KspnNnitZlv89hDbFZ5iGMMRUn0wFEmmlY-to",
- "id": "507f1f77bcf86cd799439011",
- "user": "example",
- "name": "example",
- "email": "example@example.com",
- "tenant": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "role": "administrator",
- "mfa": {
- "enable": false,
- "validate": false
}
}
Auth a user
Authenticate a user, returning the session's JWT token and data about the user.
Request Body schema: application/json
username required | string (userUsername) [ 3 .. 30 ] characters ^[a-zA-Z0-9-_.@]{3,30}$ User's username. |
password required | string (userPassword) [ 5 .. 30 ] characters User's password. |
Responses
Request samples
- Payload
{- "username": "example",
- "password": "example"
}
Response samples
- 200
- 401
- 500
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJleGFtcGxlIiwibmFtZSI6ImV4YW1wbGUiLCJpYXQiOjE1MTYyMzkwMjJ9.zqCt70KspnNnitZlv89hDbFZ5iGMMRUn0wFEmmlY-to",
- "id": "507f1f77bcf86cd799439011",
- "user": "example",
- "name": "example",
- "email": "example@example.com",
- "tenant": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "role": "administrator",
- "mfa": {
- "enable": false,
- "validate": false
}
}
Response samples
- 200
- 401
- 500
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJleGFtcGxlIiwibmFtZSI6ImV4YW1wbGUiLCJpYXQiOjE1MTYyMzkwMjJ9.zqCt70KspnNnitZlv89hDbFZ5iGMMRUn0wFEmmlY-to",
- "id": "507f1f77bcf86cd799439011",
- "user": "example",
- "name": "example",
- "email": "example@example.com",
- "tenant": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "role": "administrator",
- "mfa": {
- "enable": false,
- "validate": false
}
}
Get token
Get a token from its tenant.
Authorizations:
path Parameters
tenant | string Tenant |
Responses
Response samples
- 200
- 401
- 500
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJleGFtcGxlIiwibmFtZSI6ImV4YW1wbGUiLCJpYXQiOjE1MTYyMzkwMjJ9.zqCt70KspnNnitZlv89hDbFZ5iGMMRUn0wFEmmlY-to",
- "id": "507f1f77bcf86cd799439011",
- "user": "example",
- "name": "example",
- "email": "example@example.com",
- "tenant": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "role": "administrator",
- "mfa": {
- "enable": false,
- "validate": false
}
}
Update user data
Update user's data.
Authorizations:
path Parameters
id required | string User's ID. |
Request Body schema: application/json
name required | string User's name. |
email required | string <email> User's e-mail. |
username required | string User's username. |
Responses
Request samples
- Payload
{- "name": "string",
- "email": "user@example.com",
- "username": "string"
}
Response samples
- 400
- 401
- 409
- 500
[- "username",
- "email"
]
Update user password
Update only the user password.
Authorizations:
path Parameters
id | string User ID |
Request Body schema: application/json
current_password | string User current password |
new_password | string User new password |
Responses
Request samples
- Payload
{- "current_password": "string",
- "new_password": "string"
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Set session record
Define if sessions will be recorded.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
Request Body schema: application/json
session_record | boolean Default: false Session's record status. |
Responses
Request samples
- Payload
{- "session_record": false
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Auth device
Authenticate a ShellHub agent into the ShellHub server.
Every 30 seconds, this route is hit by ShellHub agent to inform device availability.
Authorizations:
header Parameters
X-Real-IP | string^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,... Example: 127.0.0.1 Device's IP address.
|
Request Body schema: application/json
required | object (deviceInfo) Device's info |
sessions | Array of strings |
hostname required | string([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z... |
object (deviceIdentity) Device's identity | |
public_key required | string Device's public key. |
tenant_id required | string <uuid> (namespaceTenantID) Namespace's tenant ID |
Responses
Request samples
- Payload
{- "info": {
- "id": "example",
- "pretty_name": "linux",
- "version": "latest",
- "arch": "x86_64",
- "platform": "docker"
}, - "sessions": [
- "string"
], - "hostname": "string",
- "identity": {
- "mac": "00:00:00:00:00:00"
}, - "public_key": "string",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65"
}
Response samples
- 200
- 401
- 500
{- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.iUCROHt6JHANdtzT6aOuUgOqVFRalOW20SbzRsn5SkI\n",
- "name": "example",
- "namespace": "examplespace"
}
Auth device
Authenticate a ShellHub agent into the ShellHub server.
Every 30 seconds, this route is hit by ShellHub agent to inform device availability.
Authorizations:
header Parameters
X-Real-IP | string^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,... Example: 127.0.0.1 Device's IP address.
|
Request Body schema: application/json
required | object (deviceInfo) Device's info |
sessions | Array of strings |
hostname required | string([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z... |
object (deviceIdentity) Device's identity | |
public_key required | string Device's public key. |
tenant_id required | string <uuid> (namespaceTenantID) Namespace's tenant ID |
Responses
Request samples
- Payload
{- "info": {
- "id": "example",
- "pretty_name": "linux",
- "version": "latest",
- "arch": "x86_64",
- "platform": "docker"
}, - "sessions": [
- "string"
], - "hostname": "string",
- "identity": {
- "mac": "00:00:00:00:00:00"
}, - "public_key": "string",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65"
}
Response samples
- 200
- 401
- 500
{- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.iUCROHt6JHANdtzT6aOuUgOqVFRalOW20SbzRsn5SkI\n",
- "name": "example",
- "namespace": "examplespace"
}
Accept device
Change device status to accepted
.
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Get devices
Get a list of devices.
Authorizations:
query Parameters
filter | string <byte> Filter field receives a JSON object enconded as base64 string for limit a search. The JSON enconded must follow these interafaces:
ExamplesThis is a example to filter and get only the resource what property "confirmed" is "true"
This one, filter resource by the property "id" inside "info" structure when it is equal to "manjaro" and online property is set to "true"
|
page | integer >= 1 Default: 1 Page number |
per_page | integer [ 1 .. 100 ] Default: 10 Items per page |
status | string (deviceStatus) Enum: "accepted" "rejected" "pending" "removed" "unused" Example: status=accepted Device's status |
sort_by | string Default: "last_seen" Example: sort_by=name Device's property to sort of |
order_by | string Default: "desc" Enum: "asc" "desc" Example: order_by=asc Device's list order |
Responses
Response samples
- 200
- 401
- 500
[- {
- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "name": "example",
- "identity": {
- "mac": "00:00:00:00:00:00"
}, - "info": {
- "id": "example",
- "pretty_name": "linux",
- "version": "latest",
- "arch": "x86_64",
- "platform": "docker"
}, - "public_key": "-----BEGIN RSA PUBLIC KEY-----MIIBCgKCAQEA0vH2Bob3mn+uWVaHlOoZD8ai01W6VnRTnXlnHVF7Ny1Vb7pl1Hc4D8bsBhb1vt7aZOYHbCyDR2r5lsrWXCELE8pY8vzfFDA+jNrLbBCJ66E1BcmTqfXCJcLospWD2lIAwU2O7IPxwZujuVkHrF8nYuEFsKeG60QTWNS++RTqydqe2KmFMEdWCQmYPm/ykN871fSR9+PzoRJMYWidY6Szn+X2ardGmS/Ldhl/PEu9h7xjcQXANWz6yV/RVReGVkLcK6TxlfuxgdpbsWAx+cS52P7xWrshNefHqjpdlm3KNbo6vqfTpU8Ld/FFISXXaa1Md5GyAHF+jzuRzQ5z5aKBGwIDAQAB-----END RSA PUBLIC KEY-----",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "last_seen": "2020-01-01T00:00:00Z",
- "online": true,
- "namespace": "examplespace",
- "status": "accepted",
- "status_update_at": "2020-05-01T00:00:00.000Z",
- "created_at": "2020-01-01T00:00:00Z",
- "remote_addr": "127.0.0.1",
- "position": {
- "latitude": -31.7566628,
- "longitude": -52.322474
}, - "tags": [
- "tag1",
- "tag2",
- "tag3"
], - "public_url": false,
- "acceptable": false
}
]
Get device
Get a device.
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
Responses
Response samples
- 200
- 401
- 500
{- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "name": "example",
- "identity": {
- "mac": "00:00:00:00:00:00"
}, - "info": {
- "id": "example",
- "pretty_name": "linux",
- "version": "latest",
- "arch": "x86_64",
- "platform": "docker"
}, - "public_key": "-----BEGIN RSA PUBLIC KEY-----MIIBCgKCAQEA0vH2Bob3mn+uWVaHlOoZD8ai01W6VnRTnXlnHVF7Ny1Vb7pl1Hc4D8bsBhb1vt7aZOYHbCyDR2r5lsrWXCELE8pY8vzfFDA+jNrLbBCJ66E1BcmTqfXCJcLospWD2lIAwU2O7IPxwZujuVkHrF8nYuEFsKeG60QTWNS++RTqydqe2KmFMEdWCQmYPm/ykN871fSR9+PzoRJMYWidY6Szn+X2ardGmS/Ldhl/PEu9h7xjcQXANWz6yV/RVReGVkLcK6TxlfuxgdpbsWAx+cS52P7xWrshNefHqjpdlm3KNbo6vqfTpU8Ld/FFISXXaa1Md5GyAHF+jzuRzQ5z5aKBGwIDAQAB-----END RSA PUBLIC KEY-----",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "last_seen": "2020-01-01T00:00:00Z",
- "online": true,
- "namespace": "examplespace",
- "status": "accepted",
- "status_update_at": "2020-05-01T00:00:00.000Z",
- "created_at": "2020-01-01T00:00:00Z",
- "remote_addr": "127.0.0.1",
- "position": {
- "latitude": -31.7566628,
- "longitude": -52.322474
}, - "tags": [
- "tag1",
- "tag2",
- "tag3"
], - "public_url": false,
- "acceptable": false
}
Delete device
Delete a device.
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Update device
Update device's data.
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
Request Body schema: application/json
name | string (deviceName) Device's name By default, the name is the device's MAC address when it just added. |
public_url | boolean (devicePublicURL) Device's public URL status. |
Responses
Request samples
- Payload
{- "name": "example",
- "public_url": false
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Update device status
Update device's status.
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
status required | string Enum: "accept" "reject" "pending" "unused" Example: accept Device's status |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Update device status to offline
Update device's status to offiline.
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Create a tag
Create a tag
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
Request Body schema: application/json
tag required | string (tag) [ 3 .. 255 ] characters Tag's name. |
Responses
Request samples
- Payload
{- "tag": "tag1"
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Update tags to device
Update tags to device
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
Request Body schema: application/json
tags required | Array of strings (deviceTags) [ 1 .. 3 ] items [ items [ 3 .. 255 ] characters ] Device's Tags list |
Responses
Request samples
- Payload
{- "tags": [
- "tag1",
- "tag2",
- "tag3"
]
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Delete a tag from device
Delete a tag from device.
Authorizations:
path Parameters
uid required | string (deviceUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Device's UID |
tag required | string (tag) [ 3 .. 255 ] characters Example: tag Device's tag name |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Auth SSH public key
Authenticate a SSH public key to ShellHub server.
Authorizations:
Request Body schema: application/json
fingerprint required | string (publickKeyFingerprint) ^([0-9a-f]{2}:){15}[0-9a-f]{2}$ Public key's fingerprint. |
data required | string Public key's data. |
Responses
Request samples
- Payload
{- "fingerprint": "48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a",
- "data": "string"
}
Response samples
- 200
- 401
- 500
{- "signature": "string"
}
Get public keys
Get a list from all public keys.
Authorizations:
query Parameters
filter | string <byte> Filter field receives a JSON object enconded as base64 string for limit a search. The JSON enconded must follow these interafaces:
ExamplesThis is a example to filter and get only the resource what property "confirmed" is "true"
This one, filter resource by the property "id" inside "info" structure when it is equal to "manjaro" and online property is set to "true"
|
page | integer >= 1 Default: 1 Page number |
per_page | integer [ 1 .. 100 ] Default: 10 Items per page |
Responses
Response samples
- 200
- 401
- 500
[- {
- "data": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDWWdqRkNQUWdPejBEZ0VQQUh3blEyMGYzRUlGYjd2SkNtd1YxR25uRTU2K0htaGgyY295c3o5MnZqMW9GeElxQUlKZUZxU3lQNWwzbDZjbkFUVmxhZ2MxR21OQm5vQ0NZSlpicXdOVUFiM3RMTXdiOXBaSGVWMFczWVl4OERBSVVsL2ZYaVVhQTNpQk5BcTFrczFzYjZjbVN1VmYwTVNTSjdoOXU3c2Y2RnkyVmQ0U1FqSGd3YmNvSUY1Q0kyWkZlMEx6NTNWeGQwVlZRZG5ISGNBeldRVFlTMDIxcmVXeG5QR2RRdytmWXpCRWdRMG5sTmFzQXBRc1pVUXRPZ0t4TlNFcVJ0VnJiRUR4WisrTllQaWFuNUdSZ0huZWNUUzBaVGNjZjM4SDZYTms1Qm5XWGlEN2RCWlJBRnZ1UjBkWEF1cU9mYUM3SVl5MVJnS1lkdEsrUnY=",
- "fingerprint": "48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a",
- "created_at": "2020-05-01T00:00:00.000Z",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "name": "example",
- "filter": {
- "hostname": ".*"
}, - "username": ".*"
}
]
Create public key
Create a new public key.
Authorizations:
Request Body schema: application/json
data required | string (publicKeyData) ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[... Public key's data. The |
required | object or object (publicKeyFilter) Public key's filter rule. The `filter`` rule defines how if the public key is valid to a device.
|
name required | string Public key's name. |
username required | string (publicKeyUsername) Public key's regex username. The |
Responses
Request samples
- Payload
{- "data": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDWWdqRkNQUWdPejBEZ0VQQUh3blEyMGYzRUlGYjd2SkNtd1YxR25uRTU2K0htaGgyY295c3o5MnZqMW9GeElxQUlKZUZxU3lQNWwzbDZjbkFUVmxhZ2MxR21OQm5vQ0NZSlpicXdOVUFiM3RMTXdiOXBaSGVWMFczWVl4OERBSVVsL2ZYaVVhQTNpQk5BcTFrczFzYjZjbVN1VmYwTVNTSjdoOXU3c2Y2RnkyVmQ0U1FqSGd3YmNvSUY1Q0kyWkZlMEx6NTNWeGQwVlZRZG5ISGNBeldRVFlTMDIxcmVXeG5QR2RRdytmWXpCRWdRMG5sTmFzQXBRc1pVUXRPZ0t4TlNFcVJ0VnJiRUR4WisrTllQaWFuNUdSZ0huZWNUUzBaVGNjZjM4SDZYTms1Qm5XWGlEN2RCWlJBRnZ1UjBkWEF1cU9mYUM3SVl5MVJnS1lkdEsrUnY=",
- "filter": {
- "hostname": ".*"
}, - "name": "example",
- "username": ".*"
}
Response samples
- 200
- 401
- 500
{- "data": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDWWdqRkNQUWdPejBEZ0VQQUh3blEyMGYzRUlGYjd2SkNtd1YxR25uRTU2K0htaGgyY295c3o5MnZqMW9GeElxQUlKZUZxU3lQNWwzbDZjbkFUVmxhZ2MxR21OQm5vQ0NZSlpicXdOVUFiM3RMTXdiOXBaSGVWMFczWVl4OERBSVVsL2ZYaVVhQTNpQk5BcTFrczFzYjZjbVN1VmYwTVNTSjdoOXU3c2Y2RnkyVmQ0U1FqSGd3YmNvSUY1Q0kyWkZlMEx6NTNWeGQwVlZRZG5ISGNBeldRVFlTMDIxcmVXeG5QR2RRdytmWXpCRWdRMG5sTmFzQXBRc1pVUXRPZ0t4TlNFcVJ0VnJiRUR4WisrTllQaWFuNUdSZ0huZWNUUzBaVGNjZjM4SDZYTms1Qm5XWGlEN2RCWlJBRnZ1UjBkWEF1cU9mYUM3SVl5MVJnS1lkdEsrUnY=",
- "fingerprint": "48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "name": "example",
- "filter": {
- "hostname": ".*"
}, - "username": ".*"
}
Update public key
Update a public key.
Authorizations:
path Parameters
fingerprint required | string (publickKeyFingerprint) ^([0-9a-f]{2}:){15}[0-9a-f]{2}$ Example: 48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a Public key's fingerprint. |
Request Body schema: application/json
name required | string Public key's name. |
username required | string Public key's username. |
required | object or object (publicKeyFilter) Public key's filter rule. The `filter`` rule defines how if the public key is valid to a device.
|
Responses
Request samples
- Payload
{- "name": "example",
- "username": "example",
- "filter": {
- "hostname": ".*"
}
}
Response samples
- 200
- 401
- 500
{- "data": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDWWdqRkNQUWdPejBEZ0VQQUh3blEyMGYzRUlGYjd2SkNtd1YxR25uRTU2K0htaGgyY295c3o5MnZqMW9GeElxQUlKZUZxU3lQNWwzbDZjbkFUVmxhZ2MxR21OQm5vQ0NZSlpicXdOVUFiM3RMTXdiOXBaSGVWMFczWVl4OERBSVVsL2ZYaVVhQTNpQk5BcTFrczFzYjZjbVN1VmYwTVNTSjdoOXU3c2Y2RnkyVmQ0U1FqSGd3YmNvSUY1Q0kyWkZlMEx6NTNWeGQwVlZRZG5ISGNBeldRVFlTMDIxcmVXeG5QR2RRdytmWXpCRWdRMG5sTmFzQXBRc1pVUXRPZ0t4TlNFcVJ0VnJiRUR4WisrTllQaWFuNUdSZ0huZWNUUzBaVGNjZjM4SDZYTms1Qm5XWGlEN2RCWlJBRnZ1UjBkWEF1cU9mYUM3SVl5MVJnS1lkdEsrUnY=",
- "fingerprint": "48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a",
- "created_at": "2020-05-01T00:00:00.000Z",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "name": "example",
- "filter": {
- "hostname": ".*"
}, - "username": ".*"
}
Delete public key
Delete a public key.
Authorizations:
path Parameters
fingerprint required | string (publickKeyFingerprint) ^([0-9a-f]{2}:){15}[0-9a-f]{2}$ Example: 48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a Public key's fingerprint. |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Add tag public key
Add a tag to a public key.
Authorizations:
path Parameters
fingerprint required | string (publickKeyFingerprint) ^([0-9a-f]{2}:){15}[0-9a-f]{2}$ Example: 48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a Public key's fingerprint. |
Request Body schema: application/json
tag required | string (tag) [ 3 .. 255 ] characters Tag's name. |
Responses
Request samples
- Payload
{- "tag": "tag"
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Update tags public key
Update all tags in a public key.
Authorizations:
path Parameters
fingerprint required | string (publickKeyFingerprint) ^([0-9a-f]{2}:){15}[0-9a-f]{2}$ Example: 48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a Public key's fingerprint. |
Request Body schema: application/json
tags | Array of strings (tag) [ 1 .. 3 ] items unique [ items [ 3 .. 255 ] characters ] Public key's new tags. |
Responses
Request samples
- Payload
{- "tags": [
- "tag1",
- "tag2",
- "tag3"
]
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Remove tag public key
Remove a tag from public key.
Authorizations:
path Parameters
fingerprint required | string (publickKeyFingerprint) ^([0-9a-f]{2}:){15}[0-9a-f]{2}$ Example: 48:6e:fc:94:01:01:74:57:eb:57:49:91:15:e4:9c:7a Public key's fingerprint. |
tag required | string (tag) [ 3 .. 255 ] characters Example: tag Tag's name. |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
An API key serves as a distinctive identifier utilized to access protected endpoints. It is associated with a user and namespace, and possesses a defined lifespan. Typically, it supplants login-based authentication when automating processes.
To use an API key, it must be included in the X-API-KEY
header.
Creates an API Key
Creates an API Key.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
Request Body schema: application/json
name required | string (apiKeyName) [ 1 .. 32 ] characters API Key name. |
expires_at required | integer (apiKeyExpiresAt) Enum: 30 60 90 365 -1 API Key expiration date. Expiry date time following this pattern: 30 to 30 days 60 to 60 days 90 to 90 days 365 to 1 year -1 for token without expiration date |
Responses
Request samples
- Payload
{- "name": "my api key",
- "expires_at": 30
}
Response samples
- 200
- 401
- 500
{- "key": "3e5a5194-9dec-4a32-98db-7434c6d49df1"
}
List API Keys
List API Keys.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
query Parameters
page | integer >= 1 Default: 1 Page number |
per_page | integer [ 1 .. 100 ] Default: 10 Items per page |
order_by | string Default: "desc" Enum: "asc" "desc" Example: order_by=asc API Key's list order. |
sort_by | string Default: "expires_in" Example: sort_by=name API Key's property to sort of. |
Responses
Response samples
- 200
- 401
- 500
[- {
- "id": "3e5a5194-9dec-4a32-98db-7434c6d49df1",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "user_id": "507f1f77bcf86cd799439011",
- "name": "my api key",
- "expires_in": 1707958989
}
]
Update an API key
Update an API key.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
key required | string <uuid> (apiKeyID) Example: 3e5a5194-9dec-4a32-98db-7434c6d49df1 Api key ID. |
Request Body schema: application/json
name required | string (apiKeyName) [ 1 .. 32 ] characters API Key name. |
Responses
Request samples
- Payload
{- "name": "my api key"
}
Response samples
- 200
- 401
- 500
{- "id": "3e5a5194-9dec-4a32-98db-7434c6d49df1",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "user_id": "507f1f77bcf86cd799439011",
- "name": "my api key",
- "expires_in": 1707958989
}
Delete an API key
Delete an API key.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
key required | string <uuid> (apiKeyID) Example: 3e5a5194-9dec-4a32-98db-7434c6d49df1 Api key ID. |
Responses
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Get a new namespace's token
This route works like a login's one; returns a JWT token and extra information about namespace.
You can use this route to swap between namespaces.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
Responses
Response samples
- 200
- 401
- 500
{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJleGFtcGxlIiwibmFtZSI6ImV4YW1wbGUiLCJpYXQiOjE1MTYyMzkwMjJ9.zqCt70KspnNnitZlv89hDbFZ5iGMMRUn0wFEmmlY-to",
- "id": "507f1f77bcf86cd799439011",
- "user": "example",
- "name": "example",
- "email": "example@example.com",
- "tenant": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "role": "administrator",
- "mfa": {
- "enable": false,
- "validate": false
}
}
Get namespaces list
Returns a list of namespaces.
Authorizations:
query Parameters
filter | string^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[... Example: filter=W3sidHlwZSI6InByb3BlcnR5IiwicGFyYW1zIjp7Im5hbWUiOiJuYW1lIiwib3BlcmF0b3IiOiJjb250YWlucyIsInZhbHVlIjoiZXhhbXBsZXNwYWNlIn19XQ== Namespaces's filter. Filter field receives a base64 enconded JSON object for limit a search.
The JSON object should have a property called If you want get only Namespaces name as
So, the output encoded string will result on:
|
page | integer >= 1 Default: 1 Page number |
per_page | integer [ 1 .. 100 ] Default: 10 Items per page |
Responses
Response samples
- 200
- 401
- 500
[- {
- "name": "examplespace",
- "owner": "507f1f77bcf86cd799439011",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "members": [
- {
- "id": "507f1f77bcf86cd799439011",
- "role": "administrator"
}
], - "settings": {
- "session_record": true,
- "connection_announcement": "my awesome connection announcement"
}, - "max_devices": 3,
- "device_count": 0,
- "created_at": "2020-05-01T00:00:00.000Z",
- "billing": null
}
]
Create namespace
Create a namespace.
Authorizations:
Request Body schema: application/json
name required | string (namespaceName) Namespace's name |
Responses
Request samples
- Payload
{- "name": "examplespace"
}
Response samples
- 200
- 401
- 500
{- "name": "examplespace",
- "owner": "507f1f77bcf86cd799439011",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "members": [
- {
- "id": "507f1f77bcf86cd799439011",
- "role": "administrator"
}
], - "settings": {
- "session_record": true,
- "connection_announcement": "my awesome connection announcement"
}, - "max_devices": 3,
- "device_count": 0,
- "created_at": "2020-05-01T00:00:00.000Z",
- "billing": null
}
Get a namespace
Get a namespace.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
Responses
Response samples
- 200
- 401
- 500
{- "name": "examplespace",
- "owner": "507f1f77bcf86cd799439011",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "members": [
- {
- "id": "507f1f77bcf86cd799439011",
- "role": "administrator"
}
], - "settings": {
- "session_record": true,
- "connection_announcement": "my awesome connection announcement"
}, - "max_devices": 3,
- "device_count": 0,
- "created_at": "2020-05-01T00:00:00.000Z",
- "billing": null
}
Edit namespace
Edit a namespace.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
Request Body schema: application/json
name | string (namespaceName) Namespace's name |
object (namespaceSettings) Namespace's settings. |
Responses
Request samples
- Payload
{- "name": "examplespace",
- "settings": {
- "session_record": true,
- "connection_announcement": "my awesome connection announcement"
}
}
Response samples
- 200
- 401
- 500
{- "name": "examplespace",
- "owner": "507f1f77bcf86cd799439011",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "members": [
- {
- "id": "507f1f77bcf86cd799439011",
- "role": "administrator"
}
], - "settings": {
- "session_record": true,
- "connection_announcement": "my awesome connection announcement"
}, - "max_devices": 3,
- "device_count": 0,
- "created_at": "2020-05-01T00:00:00.000Z",
- "billing": null
}
Add a member to a namespace
Add a member to a namespace.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
Request Body schema: application/json
username required | string Member's username. |
role required | string (namespaceMemberRole) Enum: "administrator" "operator" "observer" "owner" Namespace's member role |
Responses
Request samples
- Payload
{- "username": "string",
- "role": "administrator"
}
Response samples
- 200
- 401
- 500
{- "name": "examplespace",
- "owner": "507f1f77bcf86cd799439011",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "members": [
- {
- "id": "507f1f77bcf86cd799439011",
- "role": "administrator"
}
], - "settings": {
- "session_record": true,
- "connection_announcement": "my awesome connection announcement"
}, - "max_devices": 3,
- "device_count": 0,
- "created_at": "2020-05-01T00:00:00.000Z",
- "billing": null
}
Remove a member from a namespace
Remove a member from a namespace.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
uid required | string Member's ID |
Responses
Response samples
- 200
- 401
- 500
{- "name": "examplespace",
- "owner": "507f1f77bcf86cd799439011",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "members": [
- {
- "id": "507f1f77bcf86cd799439011",
- "role": "administrator"
}
], - "settings": {
- "session_record": true,
- "connection_announcement": "my awesome connection announcement"
}, - "max_devices": 3,
- "device_count": 0,
- "created_at": "2020-05-01T00:00:00.000Z",
- "billing": null
}
Update a member from a namespace
Update a member role from a namespace.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
uid required | string Member's ID |
Request Body schema: application/json
role | string (namespaceMemberRole) Enum: "administrator" "operator" "observer" "owner" Namespace's member role |
Responses
Request samples
- Payload
{- "role": "administrator"
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Set session record
Define if sessions will be recorded.
Authorizations:
path Parameters
tenant required | string <uuid> (namespaceTenantID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Namespace's tenant ID |
Request Body schema: application/json
session_record | boolean Default: false Session's record status. |
Responses
Request samples
- Payload
{- "session_record": false
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
Get sessions
Get a list sessions.
Authorizations:
query Parameters
page | integer >= 1 Default: 1 Page number |
per_page | integer [ 1 .. 100 ] Default: 10 Items per page |
Responses
Response samples
- 200
- 401
- 500
[- {
- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "device_uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "device": {
- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "name": "example",
- "identity": {
- "mac": "00:00:00:00:00:00"
}, - "info": {
- "id": "example",
- "pretty_name": "linux",
- "version": "latest",
- "arch": "x86_64",
- "platform": "docker"
}, - "public_key": "-----BEGIN RSA PUBLIC KEY-----MIIBCgKCAQEA0vH2Bob3mn+uWVaHlOoZD8ai01W6VnRTnXlnHVF7Ny1Vb7pl1Hc4D8bsBhb1vt7aZOYHbCyDR2r5lsrWXCELE8pY8vzfFDA+jNrLbBCJ66E1BcmTqfXCJcLospWD2lIAwU2O7IPxwZujuVkHrF8nYuEFsKeG60QTWNS++RTqydqe2KmFMEdWCQmYPm/ykN871fSR9+PzoRJMYWidY6Szn+X2ardGmS/Ldhl/PEu9h7xjcQXANWz6yV/RVReGVkLcK6TxlfuxgdpbsWAx+cS52P7xWrshNefHqjpdlm3KNbo6vqfTpU8Ld/FFISXXaa1Md5GyAHF+jzuRzQ5z5aKBGwIDAQAB-----END RSA PUBLIC KEY-----",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "last_seen": "2020-01-01T00:00:00Z",
- "online": true,
- "namespace": "examplespace",
- "status": "accepted",
- "status_update_at": "2020-05-01T00:00:00.000Z",
- "created_at": "2020-01-01T00:00:00Z",
- "remote_addr": "127.0.0.1",
- "position": {
- "latitude": -31.7566628,
- "longitude": -52.322474
}, - "tags": [
- "tag1",
- "tag2",
- "tag3"
], - "public_url": false,
- "acceptable": false
}, - "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "username": "string",
- "ip_address": "127.0.0.1",
- "started_at": "2020-01-01T00:00:00Z",
- "last_seen": "2020-01-01T00:00:00Z",
- "active": true,
- "authenticated": true,
- "recorded": true,
- "type": "web",
- "term": "xterm.js",
- "position": {
- "latitude": -31.7566628,
- "longitude": -52.322474
}
}
]
Get session
Get a session.
Authorizations:
path Parameters
uid required | string (sessionUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Session's UID |
Responses
Response samples
- 200
- 401
- 500
{- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "device_uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "device": {
- "uid": "13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a",
- "name": "example",
- "identity": {
- "mac": "00:00:00:00:00:00"
}, - "info": {
- "id": "example",
- "pretty_name": "linux",
- "version": "latest",
- "arch": "x86_64",
- "platform": "docker"
}, - "public_key": "-----BEGIN RSA PUBLIC KEY-----MIIBCgKCAQEA0vH2Bob3mn+uWVaHlOoZD8ai01W6VnRTnXlnHVF7Ny1Vb7pl1Hc4D8bsBhb1vt7aZOYHbCyDR2r5lsrWXCELE8pY8vzfFDA+jNrLbBCJ66E1BcmTqfXCJcLospWD2lIAwU2O7IPxwZujuVkHrF8nYuEFsKeG60QTWNS++RTqydqe2KmFMEdWCQmYPm/ykN871fSR9+PzoRJMYWidY6Szn+X2ardGmS/Ldhl/PEu9h7xjcQXANWz6yV/RVReGVkLcK6TxlfuxgdpbsWAx+cS52P7xWrshNefHqjpdlm3KNbo6vqfTpU8Ld/FFISXXaa1Md5GyAHF+jzuRzQ5z5aKBGwIDAQAB-----END RSA PUBLIC KEY-----",
- "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "last_seen": "2020-01-01T00:00:00Z",
- "online": true,
- "namespace": "examplespace",
- "status": "accepted",
- "status_update_at": "2020-05-01T00:00:00.000Z",
- "created_at": "2020-01-01T00:00:00Z",
- "remote_addr": "127.0.0.1",
- "position": {
- "latitude": -31.7566628,
- "longitude": -52.322474
}, - "tags": [
- "tag1",
- "tag2",
- "tag3"
], - "public_url": false,
- "acceptable": false
}, - "tenant_id": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "username": "string",
- "ip_address": "127.0.0.1",
- "started_at": "2020-01-01T00:00:00Z",
- "last_seen": "2020-01-01T00:00:00Z",
- "active": true,
- "authenticated": true,
- "recorded": true,
- "type": "web",
- "term": "xterm.js",
- "position": {
- "latitude": -31.7566628,
- "longitude": -52.322474
}
}
Set session authentication status
Set session authentication status.
Authorizations:
path Parameters
uid required | string (sessionUID) ^[0-9a-f]{64}$ Example: 13b0c8ea878e61ff849db69461795006a9594c8f6a6390ce0000100b0c9d7d0a Session's UID |
Request Body schema: application/json
authenticated | boolean Session's authentication status. |
Responses
Request samples
- Payload
{- "authenticated": true
}
Response samples
- 401
- 500
{- "message": "missing or malformed jwt or API token"
}
List announcements
List the announcements posted by ShellHub Cloud.
query Parameters
page | integer >= 1 Default: 1 Page number |
per_page | integer [ 1 .. 100 ] Default: 10 Items per page |
order_by | string Default: "desc" Enum: "asc" "desc" Example: order_by=asc Announcements' list order. |
Responses
Response samples
- 200
- 500
[- [
- {
- "title": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
- "date": "2017-07-21T17:32:28Z"
}, - {
- "title": "Vivamus egestas rhoncus massa, id volutpat sapien porttitor sed.",
- "date": "2017-06-21T17:32:28Z"
}, - {
- "title": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.",
- "date": "2017-05-21T17:32:28Z"
}
]
]
Get a announcement
Get a announcement.
path Parameters
uuid required | string <uuid> (announcementUUID) Example: 3dd0d1f8-8246-4519-b11a-a3dd33717f65 Announcement UUID. |
Responses
Response samples
- 200
- 500
{- "uuid": "3dd0d1f8-8246-4519-b11a-a3dd33717f65",
- "title": "string",
- "content": "# Pendent ignarus\n\n## Inmittitur insula praecipiunt viro odiumque campis securus\n\nLorem markdownum quamvis Sipylus sanguine, *feramus deam* virtus nosse clamor\nsuperbia me vivit, lumen. Quid clamore: hi quem. Dea dedit coram, patriam crura\ndum necis de exanimem. Sub habendus, iubet gentis transformat iter; latet nemus\nes somnum praecepta saxa.\n\n if (firewire(daw, word_southbridge)) {\n art.api.displayHdtvRom(access * minimize_hover_exif,\n animated_redundancy);\n }\n var drop = real;\n var pci_mtu_binary = dropPartitionGigabit.open_sound_computer(metal -\n repositoryUrl, directx_memory + grep_remote_ram,\n zifFlopsDevice.bar.wimax(ribbonVpiSip, commerce, 65));\n if (web) {\n sectorThird = ipComputerCharacter(5, pppoe_raw_brouter(\n vpnAnimatedSubnet));\n } else {\n volumeRate += zebibyte_wired * responsiveIo;\n vram_undo += function_ppc_ole.leaf_graphic(broadbandCleanUdp);\n pci.compression_source_adsl += frozenServerNvram(tape_io, transistor);\n }\n\n## Operosa si inque\n\nIacuere ut frontem *primum* nympha nec, ex mihi; nec in! Poma dolori incomitata\nNec. Sua senex quod, flavescunt libro nostris cum.\n\n1. Subiere bracchia ergo tumulavit namque inania\n2. Ictu bellum\n3. Feratis matrumque inritata Ophionides fila agricolis quique\n\n## Quaeritis sitim\n\nVelatus quae prodest manet reparabile antraque Pallas viridique\n[ducentem](http://modo-sic.net/) arcus. Alta per, cum. **Est** vinctum animae\nanima monte Propoetides praevitiat aliter montibus sua colligit [vasta\nrabiemque](http://mox.com/pereunt) habet. Edere iste aut, peregrina feramus,\niusserat sibilat huius, et.\n\n- Corpora a sequor muneris in pietas abdidit\n- Terribili tantum\n- Ubi potitur aberat aut animi quaesita manat\n- Eas duros valerem convivia et videt mirator\n- Sonitum et ait digna persequitur Trachinia est\n- Ipse corpora et totis temptaretque neque\n\n## Iterum in tinnulaque frondes culpae spumantis\n\nSub Mavortia illa nudos obstupuere **quantum** secum mitia Apolline tumere, non\nadhuc audistis ferre. Accepto vocabant movit spe; vere medii adloquitur vano\npernocte, everterit harundine simul, sortis causa. Animam [duo\ncausa](http://augustumme.com/puppim) mihi solent in ego quaecumque tarda, et\nquas: aere quae Avernae Amphitryoniaden.\n\n> Ventos fixit culpam vocavit iubasque. Sic venit tam ferinas freto pallescere\n> vadit: tamen Editus nil te, habet tantum minatur species et enixa. Conplevit\n> tenens Ladon, fugit studioque ausae Cerberon non maiora, tollit adhuc ait in\n> quae Atlantiades altae pulcherrime. Anima signa membra cursus, grandior\n> morientis fidem.\n\nMaduere in lacrimis in ultima verbaque pelle. Cervus suas tauro eripitur traho\nscelerata Hippason et est posse exuit quem per possent valet Alcmena annis et,\nut. Utrumque nam nitor sua ultima ferox liquerunt stetimusque **Semeles ianua**.\nIlli poma implesset sive: inde sub contingere veneratur salientis pectore mirata\net Neptunum veniet turis exitium. Quem sensit iam reclusa plus resurgere nescio\nmiratur ibat flamma [tuentes Minervae\nfortibus](http://intervitae.org/caputex.aspx) canebat et.",
- "date": "2019-08-24T14:15:22Z"
}