LitmusEdgeManager 2.31.x API Documentation/Admin Console APIs/Admin Console Settings - LE, LEM, LUNS API Docs
Domain Settings
GET {{LEM_adminURL}}/admin/v1/domain
Domain Settings
Returns the configured LEM domain names: LEM_BASE_DOMAIN_NAME (main UI) and LEM_REMOTE_DOMAIN_NAME (edge remote-access endpoint).
Endpoint
GET {{LEM_adminURL}}/admin/v1/domain
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"LEM_REMOTE_DOMAIN_NAME": {
"name": "LEM_REMOTE_DOMAIN_NAME",
"descr": "Edge Remote",
"value": "10.17.3.103"
},
"LEM_BASE_DOMAIN_NAME": {
"name": "LEM_BASE_DOMAIN_NAME",
"descr": "Base UI",
"value": "10.17.3.103"
}
}
SSL Settings
GET {{LEM_adminURL}}/admin/v1/domain/ssl
SSL Settings
Returns the available SSL modes (LETSENCRYPT_WEBROOT, LETSENCRYPT_DNS_CF, USER, SELFSIGNED) with each one's value indicating which is currently active.
Endpoint
GET {{LEM_adminURL}}/admin/v1/domain/ssl
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"LETSENCRYPT_WEBROOT": {
"name": "LETSENCRYPT_WEBROOT",
"descr": "Let's Encrypt Web root challenge",
"value": false
},
"USER": {
"name": "USER",
"descr": "User custom settings",
"value": false
},
"SELFSIGNED": {
"name": "SELFSIGNED",
"descr": "Self-sighed",
"value": true
},
"LETSENCRYPT_DNS_CF": {
"name": "LETSENCRYPT_DNS_CF",
"descr": "Let's Encrypt DNS challenge",
"value": false
}
}
Update SSL Settings
POST {{LEM_adminURL}}/admin/v1/domain/ssl/self-signed
Update SSL Settings
Switches LEM's SSL mode -- the URL path indicates the target mode (e.g. /self-signed, /user, /letsencrypt-webroot). The response streams nginx config validation output.
Endpoint
POST {{LEM_adminURL}}/admin/v1/domain/ssl/self-signed
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
200 OK -- text/plain. nginx configuration reload output.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
Updating SSL settings SELFSIGNED ...
nginx: [warn] only the last index in "index" directive should be absolute in /etc/nginx/conf.d/http/lem-ui.conf:107
nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/conf.d/http/lem-ui.conf:372
nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/conf.d/http/lem-ui.conf:406
nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/conf.d/http/lem-ui.conf:423
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
SSL settings is updated.
Cloud Credentials
GET {{LEM_adminURL}}/admin/v1/cloud-settings/credentials
Cloud Credentials
Returns the cloud-provider credentials configured for LEM (GCP service account, local S3, etc.).
Endpoint
GET {{LEM_adminURL}}/admin/v1/cloud-settings/credentials
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"type": "GCP",
"attrs": {
"clientEmail": "dev-gfm-vm@litmus-development.iam.gserviceaccount.com",
"creds": null,
"projectId": "litmus-development"
}
},
{
"type": "LOCAL",
"attrs": {
"secretKey": null,
"accessKey": "aaaa"
}
}
]
GCP SA Key Rotation Policy
GET {{LEM_adminURL}}/admin/v1/cloud-settings/gce-key-rotation-interval
GCP SA Key Rotation Policy
Returns the GCP service-account key rotation interval (days).
Endpoint
GET {{LEM_adminURL}}/admin/v1/cloud-settings/gce-key-rotation-interval
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
{ "interval": 180 }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"interval": 180
}
Update GCP SA Key Rotation Interval
PUT {{LEM_adminURL}}/admin/v1/cloud-settings/gce-key-rotation-interval
Update GCP SA Key Rotation Interval
Updates the GCP service-account key rotation interval.
Endpoint
PUT {{LEM_adminURL}}/admin/v1/cloud-settings/gce-key-rotation-interval
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{ "interval": 180 }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"interval": 180
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Storage Settings
GET {{LEM_adminURL}}/admin/v1/cloud-settings/storage
Storage Settings
Returns LEM's object-storage configuration: type (LOCAL / GCS / S3) and defaultBucketName.
Endpoint
GET {{LEM_adminURL}}/admin/v1/cloud-settings/storage
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"type": "LOCAL",
"defaultBucketName": ""
}
Interfaces
GET {{LEM_adminURL}}/admin/v1/system/network/interfaces
Interfaces
Returns the LEM host's network interfaces with DHCP flag and addresses.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/interfaces
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"name": "eth0",
"dhcp": true,
"addresses": [
{
"address": "10.17.3.103/22",
"gateway": null
}
]
}
]
DNS
GET {{LEM_adminURL}}/admin/v1/system/network/dns
DNS
Returns the configured DNS resolvers per interface.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/dns
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"name": "eth0",
"addresses": []
}
]
NTP
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/servers
NTP
Returns the configured NTP servers.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/servers
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
[ "0.pool.ntp.org", "1.pool.ntp.org", "2.pool.ntp.org", "3.pool.ntp.org" ]
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
"0.pool.ntp.org",
"1.pool.ntp.org",
"2.pool.ntp.org",
"3.pool.ntp.org"
]
NTP Allow List
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/allow-list
NTP Allow List
Returns the IP allow-list for the bundled NTP server -- which clients may sync from LEM.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/allow-list
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[]
NTP Status
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/status
NTP Status
Returns the live NTP client status: current server, stratum, reference time, system-vs-NTP skew.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/status
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"ntpStatus": "ON",
"ntpServer": "198.137.202.32",
"ntpStratum": "3",
"ntpRefTime": "Fri Nov 03 20:30:00 2023",
"ntpSystemTime": "0.000005316 seconds slow of NTP time"
}
Proxy Settings
GET {{LEM_adminURL}}/admin/v1/config
Proxy Settings
Returns the HTTP/HTTPS proxy configuration LEM uses for outbound connections.
Endpoint
GET {{LEM_adminURL}}/admin/v1/config
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{ "http_proxy_host": "", "http_proxy_port": "", "https_proxy_host": "", "https_proxy_port": "", "non_proxy_hosts": ""}
Email Settings
GET {{LEM_adminURL}}/admin/v1/config/email-settings
Email Settings
Returns LEM's SMTP configuration for outbound email (alerts, reports, user invitations).
Endpoint
GET {{LEM_adminURL}}/admin/v1/config/email-settings
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"smtpHost": "smtp.gmail.com",
"smtpPort": 587,
"smtpUsername": "aaaa@gmail.com",
"smtpPassword": "aaaa",
"smtpEnable": true,
"smtpAuth": true,
"smtpStartTlsEnable": true,
"smtpStartTlsRequired": true,
"smtpSendFromEmail": "no-reply@lem.com",
"smtpSendFromName": "LEM"
}
Update Email Settings
POST {{LEM_adminURL}}/admin/v1/config/email-settings
Update Email Settings
Updates LEM's SMTP configuration. Send the full record -- omitted fields are reset.
Endpoint
POST {{LEM_adminURL}}/admin/v1/config/email-settings
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{
"smtpEnable": true,
"smtpHost": "smtp.gmail.com",
"smtpPort": 587,
"smtpStartTlsEnable": true,
"smtpStartTlsRequired": true,
"smtpAuth": true,
"smtpUsername": "litmusloop@gmail.com",
"smtpPassword": "<app-password>",
"smtpSendFromEmail": "no-reply@lem.com",
"smtpSendFromName": "LEM"
}
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"smtpEnable": true,
"smtpHost": "smtp.gmail.com",
"smtpPort": 587,
"smtpStartTlsEnable": true,
"smtpStartTlsRequired": true,
"smtpAuth": true,
"smtpUsername": "litmusloop@gmail.com",
"smtpPassword": "qepnwhigguxjdaja",
"smtpSendFromEmail": "no-reply@lem.com",
"smtpSendFromName": "LEM"
}
Response
Status: 201 Created
Offline License List
GET {{LEM_adminURL}}/admin/v1/licenses2/offline
Offline License List
Returns the offline-license activation URL + host ID. Same shape as License Server Mgmt > Offline License Info.
Endpoint
GET {{LEM_adminURL}}/admin/v1/licenses2/offline
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"activationURL": "https://litmus.activate.id/",
"hostid": "005056b9a28e"
}
List Available Features
GET {{LEM_adminURL}}/admin/v1/licenses2/features
List Available Features
Returns the LEM license's available features (catalog, core) with expiry and counts.
Endpoint
GET {{LEM_adminURL}}/admin/v1/licenses2/features
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"name": "catalog",
"expires": "2099-12-31T00:00:00Z",
"count": 1,
"limited": false
},
{
"name": "core",
"expires": "2099-12-31T00:00:00Z",
"count": 1,
"limited": false
}
]
License Type
GET {{LEM_adminURL}}/admin/v1/licenses2/type
License Type
Returns the LEM license type: FLOATING or NODE_LOCKED.
Endpoint
GET {{LEM_adminURL}}/admin/v1/licenses2/type
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
{ "licenseType": "FLOATING" }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"licenseType": "FLOATING"
}
Primary License
GET {{LEM_adminURL}}/admin/v1/litmus-licensing/licenses?primary=true
Primary License
Returns the primary core license. Same payload as License Server Mgmt > Core License List -- exposed here for admin-settings convenience.
Endpoint
GET {{LEM_adminURL}}/admin/v1/litmus-licensing/licenses?primary=true
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"akey": "0000-1111-2222-3333",
"expiryDate": "2024-08-02T00:00:00Z",
"name": "litmus-scale-1y-site",
"totalCount": 1
}
]
License Components
GET {{LEM_adminURL}}/admin/v1/litmus-licensing/licenses?primary=false
License Components
Returns the feature licenses (non-primary). Same payload as License Server Mgmt > Feature License List.
Endpoint
GET {{LEM_adminURL}}/admin/v1/litmus-licensing/licenses?primary=false
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-analytics",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "ll-core",
"totalCount": 1
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-opcua",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-core",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-marketplace",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-devices",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-updates",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-backup",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-dt",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "",
"totalCount": 1
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "",
"totalCount": 1
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"limited": true,
"name": "le-tags",
"totalCount": 50000
}
]
Switch License Type
POST {{LEM_adminURL}}/admin/v1/licenses2/type?licenseType=FLOATING
Switch License Type
Switches between FLOATING and NODE_LOCKED licensing.
Endpoint
POST {{LEM_adminURL}}/admin/v1/licenses2/type?licenseType=FLOATING
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Get DigitialTwins Roles of User
GET {{LEM_adminURL}}/admin/v1/user/asset-mgmt/roles?username=demo
Get DigitalTwins Roles of User
Returns the asset-management roles granted to one LEM user (governs access to the Digital Twins / Asset Management surface).
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/asset-mgmt/roles?username=demo
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
[ "asset-mgmt-admin" ]
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
"asset-mgmt-admin"
]
Grant DigitalTwins Role to User
POST {{LEM_adminURL}}/admin/v1/user/asset-mgmt/grant
Grant DigitalTwins Role to User
Grants an asset-management role to an LEM user.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/asset-mgmt/grant
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{ "username": "user", "roleName": "role" }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"username": "user",
"roleName": "role"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Revoke DigitalTwins Role from User
POST {{LEM_adminURL}}/admin/v1/user/asset-mgmt/revoke
Revoke DigitalTwins Role from User
Revokes an asset-management role from an LEM user.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/asset-mgmt/revoke
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{ "username": "user", "roleName": "role" }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"username": "user",
"roleName": "role"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
User List
GET {{LEM_adminURL}}/admin/v1/user/list
User List
Returns the LEM users with username, name, email, locked flag, creation timestamp, admin flag.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/list
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"username": "demo",
"firstName": "demo",
"lastName": "Litmus",
"email": "demo@lem.local",
"locked": false,
"lockReason": null,
"createdAt": 1689971989046,
"admin": true
}
]
Company Teams
GET {{LEM_adminURL}}/admin/v1/user/company/teams
Company Teams
Returns the teams across companies with user counts. Use to build a permissions matrix view.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/company/teams
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"companyName": "ccsj",
"teamName": "OWNER",
"usersAmount": 1
},
{
"companyName": "hardware",
"teamName": "OWNER",
"usersAmount": 3
},
{
"companyName": "pm",
"teamName": "OWNER",
"usersAmount": 2
},
{
"companyName": "production",
"teamName": "OWNER",
"usersAmount": 2
},
{
"companyName": "solutions",
"teamName": "OWNER",
"usersAmount": 4
}
]
Project Roles
GET {{LEM_adminURL}}/admin/v1/user/project/roles
Project Roles
Returns per-(company, project, team) role grants with read/write flags and user counts.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/project/roles
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"companyName": "hardware",
"projectId": "2prp72ljt3e2149umck473xrl",
"projectName": "Emerson",
"teamName": "OWNER",
"usersAmount": 3,
"readRole": true,
"writeRole": true
},
{
"companyName": "hardware",
"projectId": "cse9ecyxjifs7yhizoqiydyu3",
"projectName": "Industrial",
"teamName": "OWNER",
"usersAmount": 3,
"readRole": true,
"writeRole": true
},
{
"companyName": "pm",
"projectId": "detk20ap42y5rcvfsdfe9790",
"projectName": "LEProduction",
"teamName": "OWNER",
"usersAmount": 2,
"readRole": true,
"writeRole": true
},
{
"companyName": "production",
"projectId": "ea13siviozaattgjd5unuoya7",
"projectName": "GA",
"teamName": "OWNER",
"usersAmount": 2,
"readRole": true,
"writeRole": true
},
{
"companyName": "production",
"projectId": "emdlptxsqpdravb1cyzya6ws2",
"projectName": "kafka",
"teamName": "OWNER",
"usersAmount": 2,
"readRole": true,
"writeRole": true
},
{
"companyName": "solutions",
"projectId": "462j1mq70mph31wa100t1yuxa",
"projectName": "demo",
"teamName": "OWNER",
"usersAmount": 4,
"readRole": true,
"writeRole": true
}
]
Create User
POST {{LEM_adminURL}}/admin/v1/user
Create User
Creates a new LEM user.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{
"username": "aa",
"firstName": "ab",
"lastName": "ac",
"email": "a@b.com"
}
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"username": "aa",
"firstName": "ab",
"lastName": "ac",
"email": "a@b.com"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Remove User
DELETE {{LEM_adminURL}}/admin/v1/user/{{LEM_admin_username}}
Remove User
Removes an LEM user by username.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/user/{{LEM_admin_username}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 204 No Content
Create Team
POST {{LEM_adminURL}}/admin/v1/user/company/team?companyName={{company_name}}
Create Team
Creates a new team inside one company with an initial user list.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/company/team?companyName={{company_name}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{ "name": "aa", "users": [] }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"name": "aa",
"users": []
}
Response
Status: 201 Created
{
"code": "S",
"message": null,
"messageDetails": null
}
Remove Team
DELETE {{LEM_adminURL}}/admin/v1/user/company/team?companyName={{company_name}}&teamName={{LEM_admin_teamname}}
Remove Team
Removes a team from a company.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/user/company/team?companyName={{company_name}}&teamName={{LEM_admin_teamname}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 204 No Content
Mange Project Teams
POST {{LEM_adminURL}}/admin/v1/user/project/grant/{{project_id}}
Manage Project Teams
Grants or updates a team's role in one project. Despite the Postman item's typo (Mange), the underlying call is manage.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/project/grant/{{project_id}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{ "role": "Write", "teamName": "bb" }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"role": "Write",
"teamName": "bb"
}
Response
Status: 201 Created
{
"code": "S",
"message": null,
"messageDetails": null
}
Get Tokens
GET {{LEM_adminURL}}/admin/v1/long-term-token
Get Tokens
Returns the long-term tokens issued by LEM with metadata (name, hash, expiry, admin flag, scopes).
Endpoint
GET {{LEM_adminURL}}/admin/v1/long-term-token
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"hash": "607008cf1c784a0dd56fe521d4a775e8",
"name": "apiTokenAdmin",
"expiresAt": 1724264785000,
"createdOn": 1692728811000,
"updatedOn": 1692728811000,
"scopes": [],
"valid": true,
"admin": true
},
{
"hash": "d0533b8f17bb58fc5387ced1c3b6cfc3",
"name": "LEMexternal",
"expiresAt": 1724264926000,
"createdOn": 1692728960000,
"updatedOn": 1692728960000,
"scopes": [
{
"companyName": "solutions",
"projectId": null,
"deviceGroups": null
}
],
"valid": true,
"admin": false
},
{
"hash": "ec88905611e667b7baa781c8bf990a18",
"name": "kafka",
"expiresAt": 1723059790000,
"createdOn": 1691523814000,
"updatedOn": 1691523814000,
"scopes": [],
"valid": true,
"admin": true
}
]
Create Admin Token
POST {{LEM_adminURL}}/admin/v1/long-term-token
Create Admin Token
Creates a new long-term token with admin scope (full LEM access). The token value is returned once -- save it immediately.
Endpoint
POST {{LEM_adminURL}}/admin/v1/long-term-token
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{
"name": "AB",
"expiresAt": 1730930379577,
"admin": true,
"scopes": []
}
Response
{ "token": "Weaaah87E4TqXbQ9NF8Qc6hVzW9iZ9lC" }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"name": "AB",
"expiresAt": 1730930379577,
"admin": true,
"scopes": []
}
Response
Status: 200 OK
{
"token": "Weaaah87E4TqXbQ9NF8Qc6hVzW9iZ9lC"
}
Create Token With Scopes
POST {{LEM_adminURL}}/admin/v1/long-term-token
Create Token With Scopes
Creates a long-term token scoped to specific companies. Pass admin: false and populate scopes[] with (companyName, projectId, deviceGroups) entries.
Endpoint
POST {{LEM_adminURL}}/admin/v1/long-term-token
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{
"name": "BBB",
"expiresAt": 1730930431370,
"admin": false,
"scopes": [
{ "companyName": "solutions", "projectId": null, "deviceGroups": null },
{ "companyName": "production", "projectId": null, "deviceGroups": null }
]
}
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"name": "BBB",
"expiresAt": 1730930431370,
"admin": false,
"scopes": [
{
"companyName": "solutions",
"projectId": null,
"deviceGroups": null
},
{
"companyName": "production",
"projectId": null,
"deviceGroups": null
}
]
}
Response
Status: 200 OK
{
"token": "vkzCL0qTqzE7PTeOnzJ0QsDQxD2BU5qi"
}
Create Token For All Companies
POST {{LEM_adminURL}}/admin/v1/long-term-token
Create Token For All Companies
Creates a long-term token with a wildcard scope (companyName: null = every company).
Endpoint
POST {{LEM_adminURL}}/admin/v1/long-term-token
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{
"name": "CA",
"expiresAt": 1730930530855,
"admin": false,
"scopes": [ { "companyName": null, "projectId": null, "deviceGroups": null } ]
}
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"name": "CA",
"expiresAt": 1730930530855,
"admin": false,
"scopes": [
{
"companyName": null,
"projectId": null,
"deviceGroups": null
}
]
}
Response
Status: 200 OK
{
"token": "6V5VzEDo6GrH50L6iQOpfEIspJeZ6cxC"
}
Remove Token
DELETE {{LEM_adminURL}}/admin/v1/long-term-token/{{LEM_admin_tokenhash}}
Remove Token
Removes a long-term token by its hash.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/long-term-token/{{LEM_admin_tokenhash}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 204 No Content
Upgrade Log
GET {{LEM_adminURL}}/admin/v1/upgrade/log
Upgrade Log
Returns the current LEM upgrade-process status and recent log messages.
Endpoint
GET {{LEM_adminURL}}/admin/v1/upgrade/log
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"status": 0,
"statusMessage": "Upgrade process is not running",
"name": null,
"messages": []
}
Current Version
GET {{LEM_adminURL}}/admin/v1/upgrade/current-version
Current Version
Returns the currently installed LEM version including a per-component version breakdown (UI / admin-console / others).
Endpoint
GET {{LEM_adminURL}}/admin/v1/upgrade/current-version
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"name": "current",
"product": "generic",
"description": "Litmus Edge Manager",
"version": "2.14.0",
"checksum": "",
"uploadChecksum": null,
"size": 0,
"createdAt": 1695403640000,
"appliedAt": 1695406269000,
"components": [
{
"name": "edgemanager-UI",
"description": "Litmus Edge Manager UI",
"version": "0.100.5"
},
{
"name": "edgemanager-admin-console",
"description": "Litmus Edge Manager Admin console",
"version": "0.86.1"
},
{
"name": "edgemanager-mqtt-bind",
"description": "Litmus Edge Manager MQTT service",
"version": "2.14.2"
},
{
"name": "edgemanager-clickhouse-sink",
"description": "Litmus Edge Manager Clickhouse service",
"version": "2.14.2"
},
{
"name": "edgemanager-jobs",
"description": "Litmus Edge Manager jobs service",
"version": "2.14.10"
},
{
"name": "edgemanager-cfg",
"description": "Litmus Edge Manager configuration service",
"version": "2.14.9"
},
{
"name": "edgemanager-admin-api",
"description": "Litmus Edge Manager Admin console API",
"version": "2.14.9"
},
{
"name": "edgemanager-api",
"description": "Litmus Edge Manager API",
"version": "a-2.14.17"
},
{
"name": "edgemanager-mpcs-ui",
"description": "Litmus Edge Manager Marketplace Catalog UI",
"version": "0.23.12"
},
{
"name": "edgemanager-mpcs-api",
"description": "Litmus Edge Manager Marketplace Catalog",
"version": "0.10.6"
},
{
"name": "edgemanager-mpcs-rbac",
"description": "Litmus Edge Manager Marketplace Catalog RBAC",
"version": "0.2.1"
},
{
"name": "edgemanager-activation",
"description": "Litmus Edge Manager Activation API",
"version": "2.14.4"
},
{
"name": "edgemanager-alerts",
"description": "Litmus Edge Manager Alerts API",
"version": "2.14.1"
},
{
"name": "edgemanager-emq-auth",
"description": "MQTT authorization service",
"version": "2.14.1"
},
{
"name": "edgemanager-licensing",
"description": "Litmus Edge Manager License service",
"version": "1.7.6"
},
{
"name": "edgemanager-consul",
"description": "Litmus Edge Manager Hashicorp Consul",
"version": "0.5.1"
},
{
"name": "edgemanager-vault",
"description": "Litmus Edge Manager Hashicorp Vault",
"version": "0.6.14"
},
{
"name": "edgemanager-kafka",
"description": "Litmus Edge Manager Apache Kafka",
"version": "0.2.11"
},
{
"name": "emqx",
"description": "MQTT server",
"version": "4.4.19"
},
{
"name": "minio",
"description": "S3 compatible storage",
"version": ""
},
{
"name": "fabio",
"description": "Fabio load balancer",
"version": "1.5.13-go1.13.4"
},
{
"name": "docker-registry",
"description": "Docker-registry",
"version": "2.7.1"
},
{
"name": "edgemanager-nomad",
"description": "Litmus Edge Manager Hashicorp Nomad",
"version": "0.8.10"
},
{
"name": "edgemanager-hazelcast",
"description": "Litmus Edge Manager Hazelcast IMDG ",
"version": "0.1.6"
},
{
"name": "clickhouse",
"description": "Clickhouse database",
"version": "23.3.4.17"
},
{
"name": "edgemanager-keycloak",
"description": "Litmus Edge Manager Apache Keycloak",
"version": "0.9.3"
},
{
"name": "grafana",
"description": "Grafana",
"version": "9.3.4"
},
{
"name": "grafana-clickhouse-plugin",
"description": "Grafana clickhouse plugin",
"version": "2.5.3"
}
]
}
Upgrade List
GET {{LEM_adminURL}}/admin/v1/upgrade/list
Upgrade List
Returns the available upgrade bundles (.upd files uploaded to LEM but not yet applied).
Endpoint
GET {{LEM_adminURL}}/admin/v1/upgrade/list
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"name": "edgemanager-2.14.0",
"product": "generic",
"description": "Litmus Edge Manager",
"version": "2.14.0",
"checksum": "4c1b79933c5bbe3dbabdbfe722a1ff61f9b010a9cc47cfa1c8a076f8aa43eda0",
"uploadChecksum": "921843642343189f4eb26a8411a3f7443f0ba533543ce1ac6673045040dd5405",
"size": 3309598720,
"createdAt": 1695404414000,
"appliedAt": 0,
"components": [
{
"name": "edgemanager-UI",
"description": "Litmus Edge Manager UI",
"version": "0.100.5"
},
{
"name": "edgemanager-admin-console",
"description": "Litmus Edge Manager Admin console",
"version": "0.86.1"
},
{
"name": "edgemanager-mqtt-bind",
"description": "Litmus Edge Manager MQTT service",
"version": "2.14.2"
},
{
"name": "edgemanager-clickhouse-sink",
"description": "Litmus Edge Manager Clickhouse service",
"version": "2.14.2"
},
{
"name": "edgemanager-jobs",
"description": "Litmus Edge Manager jobs service",
"version": "2.14.10"
},
{
"name": "edgemanager-cfg",
"description": "Litmus Edge Manager configuration service",
"version": "2.14.9"
},
{
"name": "edgemanager-admin-api",
"description": "Litmus Edge Manager Admin console API",
"version": "2.14.9"
},
{
"name": "edgemanager-api",
"description": "Litmus Edge Manager API",
"version": "a-2.14.17"
},
{
"name": "edgemanager-mpcs-ui",
"description": "Litmus Edge Manager Marketplace Catalog UI",
"version": "0.23.12"
},
{
"name": "edgemanager-mpcs-api",
"description": "Litmus Edge Manager Marketplace Catalog",
"version": "0.10.6"
},
{
"name": "edgemanager-mpcs-rbac-api",
"description": "Litmus Edge Manager Marketplace Catalog RBAC",
"version": "0.2.1"
},
{
"name": "edgemanager-activation",
"description": "Litmus Edge Manager Activation API",
"version": "2.14.4"
},
{
"name": "edgemanager-alerts",
"description": "Litmus Edge Manager Alerts API",
"version": "2.14.1"
},
{
"name": "edgemanager-emq-auth",
"description": "MQTT authorization service",
"version": "2.14.1"
},
{
"name": "edgemanager-consul",
"description": "Litmus Edge Manager Hashicorp Consul",
"version": "0.5.1"
},
{
"name": "edgemanager-vault",
"description": "Litmus Edge Manager Hashicorp Vault",
"version": "0.6.14"
},
{
"name": "edgemanager-kafka",
"description": "Litmus Edge Manager Apache Kafka",
"version": "0.2.11"
},
{
"name": "fabio",
"description": "Fabio load balancer",
"version": "1.5.13-go1.13.4"
},
{
"name": "docker-registry",
"description": "Docker-registry",
"version": "2.7.1"
},
{
"name": "edgemanager-nomad",
"description": "Litmus Edge Manager Hashicorp Nomad",
"version": "0.8.10"
},
{
"name": "clickhouse",
"description": "Clickhouse database",
"version": "23.3.4.17"
},
{
"name": "edgemanager-hazelcast",
"description": "Litmus Edge Manager Hazelcast IMDG ",
"version": "0.1.6"
},
{
"name": "edgemanager-keycloak",
"description": "Litmus Edge Manager Apache Keycloak",
"version": "0.9.3"
},
{
"name": "grafana",
"description": "Grafana",
"version": "9.3.4"
},
{
"name": "grafana-clickhouse-plugin",
"description": "Grafana clickhouse plugin",
"version": "2.5.3"
},
{
"name": "edgemanager-remote",
"description": "Litmus Edge Manager remote access",
"version": "0.2.33"
}
]
}
]
Upload UPD File
POST {{LEM_adminURL}}/admin/v1/upgrade
Upload UPD File
Uploads a LEM upgrade bundle (.upd). Multipart -- one binary file part.
Endpoint
POST {{LEM_adminURL}}/admin/v1/upgrade
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
Multipart form-data with one binary file part (.upd archive).
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
Current Version
GET {{LEM_adminURL}}/admin/v1/upgrade/current-version
Current Version
Returns the currently installed LEM version + per-component breakdown. Same payload as Upgrade > Current Version, exposed here for support workflows.
Endpoint
GET {{LEM_adminURL}}/admin/v1/upgrade/current-version
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"name": "current",
"product": "generic",
"description": "Litmus Edge Manager",
"version": "2.14.0",
"checksum": "",
"uploadChecksum": null,
"size": 0,
"createdAt": 1695403640000,
"appliedAt": 1695406269000,
"components": [
{
"name": "edgemanager-UI",
"description": "Litmus Edge Manager UI",
"version": "0.100.5"
},
{
"name": "edgemanager-admin-console",
"description": "Litmus Edge Manager Admin console",
"version": "0.86.1"
},
{
"name": "edgemanager-mqtt-bind",
"description": "Litmus Edge Manager MQTT service",
"version": "2.14.2"
},
{
"name": "edgemanager-clickhouse-sink",
"description": "Litmus Edge Manager Clickhouse service",
"version": "2.14.2"
},
{
"name": "edgemanager-jobs",
"description": "Litmus Edge Manager jobs service",
"version": "2.14.10"
},
{
"name": "edgemanager-cfg",
"description": "Litmus Edge Manager configuration service",
"version": "2.14.9"
},
{
"name": "edgemanager-admin-api",
"description": "Litmus Edge Manager Admin console API",
"version": "2.14.9"
},
{
"name": "edgemanager-api",
"description": "Litmus Edge Manager API",
"version": "a-2.14.17"
},
{
"name": "edgemanager-mpcs-ui",
"description": "Litmus Edge Manager Marketplace Catalog UI",
"version": "0.23.12"
},
{
"name": "edgemanager-mpcs-api",
"description": "Litmus Edge Manager Marketplace Catalog",
"version": "0.10.6"
},
{
"name": "edgemanager-mpcs-rbac",
"description": "Litmus Edge Manager Marketplace Catalog RBAC",
"version": "0.2.1"
},
{
"name": "edgemanager-activation",
"description": "Litmus Edge Manager Activation API",
"version": "2.14.4"
},
{
"name": "edgemanager-alerts",
"description": "Litmus Edge Manager Alerts API",
"version": "2.14.1"
},
{
"name": "edgemanager-emq-auth",
"description": "MQTT authorization service",
"version": "2.14.1"
},
{
"name": "edgemanager-licensing",
"description": "Litmus Edge Manager License service",
"version": "1.7.6"
},
{
"name": "edgemanager-consul",
"description": "Litmus Edge Manager Hashicorp Consul",
"version": "0.5.1"
},
{
"name": "edgemanager-vault",
"description": "Litmus Edge Manager Hashicorp Vault",
"version": "0.6.14"
},
{
"name": "edgemanager-kafka",
"description": "Litmus Edge Manager Apache Kafka",
"version": "0.2.11"
},
{
"name": "emqx",
"description": "MQTT server",
"version": "4.4.19"
},
{
"name": "minio",
"description": "S3 compatible storage",
"version": ""
},
{
"name": "fabio",
"description": "Fabio load balancer",
"version": "1.5.13-go1.13.4"
},
{
"name": "docker-registry",
"description": "Docker-registry",
"version": "2.7.1"
},
{
"name": "edgemanager-nomad",
"description": "Litmus Edge Manager Hashicorp Nomad",
"version": "0.8.10"
},
{
"name": "edgemanager-hazelcast",
"description": "Litmus Edge Manager Hazelcast IMDG ",
"version": "0.1.6"
},
{
"name": "clickhouse",
"description": "Clickhouse database",
"version": "23.3.4.17"
},
{
"name": "edgemanager-keycloak",
"description": "Litmus Edge Manager Apache Keycloak",
"version": "0.9.3"
},
{
"name": "grafana",
"description": "Grafana",
"version": "9.3.4"
},
{
"name": "grafana-clickhouse-plugin",
"description": "Grafana clickhouse plugin",
"version": "2.5.3"
}
]
}
Run LEM Validation Script
POST {{LEM_adminURL}}/admin/v1/system/lem-validate
Run LEM Validation Script
Runs LEM's self-validation suite. Returns a per-check report with HTTP status / TCP probe / etc. results.
Endpoint
POST {{LEM_adminURL}}/admin/v1/system/lem-validate
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"results": [
{
"duration": 6158674,
"err": null,
"expected": [
"200"
],
"found": [
"200"
],
"human": "",
"meta": null,
"property": "status",
"resource-id": "http://127.0.0.1:18123",
"resource-type": "HTTP",
"result": 0,
"successful": true,
"summary-line": "HTTP: http://127.0.0.1:18123: status: matches expectation: [200]",
"test-type": 0,
"title": ""
},
{
"duration": 616501,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "exists",
"resource-id": "dummy0",
"resource-type": "Interface",
"result": 0,
"successful": true,
"summary-line": "Interface: dummy0: exists: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 925067,
"err": null,
"expected": [
"[\"169.254.1.1/32\"]"
],
"found": [
"[\"169.254.1.1/32\",\"fe80::947e:e8ff:febd:8bf8/64\"]"
],
"human": "",
"meta": null,
"property": "addrs",
"resource-id": "dummy0",
"resource-type": "Interface",
"result": 0,
"successful": true,
"summary-line": "Interface: dummy0: addrs: matches expectation: [[\"169.254.1.1/32\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 14996800,
"err": null,
"expected": [
"200"
],
"found": [
"200"
],
"human": "",
"meta": null,
"property": "status",
"resource-id": "https://127.0.0.1:8446/tabix",
"resource-type": "HTTP",
"result": 0,
"successful": true,
"summary-line": "HTTP: https://127.0.0.1:8446/tabix: status: matches expectation: [200]",
"test-type": 0,
"title": ""
},
{
"duration": 16982233,
"err": null,
"expected": [
"200"
],
"found": [
"200"
],
"human": "",
"meta": null,
"property": "status",
"resource-id": "https://127.0.0.1/admin-ui/assets/version.json",
"resource-type": "HTTP",
"result": 0,
"successful": true,
"summary-line": "HTTP: https://127.0.0.1/admin-ui/assets/version.json: status: matches expectation: [200]",
"test-type": 0,
"title": ""
},
{
"duration": 19646780,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/usr/bin/sudo /sbin/modprobe wireguard",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /usr/bin/sudo /sbin/modprobe wireguard: exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 33954819,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/usr/bin/sudo /sbin/iptables -nL | grep -q \"Chain DOCKER\"",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /usr/bin/sudo /sbin/iptables -nL | grep -q \"Chain DOCKER\": exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 37229845,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/opt/lem/bin/lem-nomad-job-status.sh",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /opt/lem/bin/lem-nomad-job-status.sh: exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 42612,
"err": null,
"expected": [
"docker-registry true",
"fabio true",
"lem-activation true",
"lem-api true",
"lem-binds true",
"lem-emq-auth true",
"lem-jobs true",
"lem-mpcs true",
"lem-alerts true",
"grafana true",
"prometheus true"
],
"found": [
"docker-registry true",
"fabio true",
"grafana true",
"lem-activation true",
"lem-alerts true",
"lem-api true",
"lem-binds true",
"lem-emq-auth true",
"lem-jobs true",
"lem-mpcs true",
"prometheus true"
],
"human": "",
"meta": null,
"property": "stdout",
"resource-id": "/opt/lem/bin/lem-nomad-job-status.sh",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /opt/lem/bin/lem-nomad-job-status.sh: stdout: matches expectation: [docker-registry true fabio true lem-activation true lem-api true lem-binds true lem-emq-auth true lem-jobs true lem-mpcs true lem-alerts true grafana true prometheus true]",
"test-type": 2,
"title": ""
},
{
"duration": 17685529,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "kafka",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: kafka: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 40245624,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "kafka",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: kafka: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 18418381,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "lem-admin",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-admin: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 42883758,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "lem-admin",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-admin: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 18486504,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "zookeeper",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: zookeeper: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 43807444,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "zookeeper",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: zookeeper: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 21278518,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "lem-remote",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-remote: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 42833298,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "lem-remote",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-remote: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 26996312,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "netdata",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: netdata: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 39923684,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "netdata",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: netdata: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 22344152,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "vault-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: vault-server: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 42985221,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "vault-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: vault-server: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 27903982,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "docker",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: docker: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 38857200,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "docker",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: docker: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 32542650,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "consul-template",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: consul-template: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 37968255,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "consul-template",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: consul-template: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 36395138,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "chrony",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: chrony: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 36753768,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "chrony",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: chrony: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 33865513,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "nomad-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nomad-server: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 39213129,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "nomad-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nomad-server: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 41366386,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "nginx",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nginx: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 34190858,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "nginx",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nginx: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 37436057,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "consul-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: consul-server: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 38373401,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "consul-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: consul-server: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 42657098,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "lem-cfg",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-cfg: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 34502475,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "lem-cfg",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-cfg: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 45052658,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "keycloak",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: keycloak: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 34613067,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "keycloak",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: keycloak: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 7436,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:8114",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8114: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5958,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:8114",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8114: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 6610,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:19000",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19000: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 12570,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:19000",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19000: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 3478,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:18123",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:18123: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 6190,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:18123",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:18123: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2842,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:8113",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8113: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 6215,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:8113",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8113: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 3073,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "udp:51820",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: udp:51820: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 6570,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "udp:51820",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: udp:51820: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 3025,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:5701",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:5701: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 4195,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:5701",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:5701: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2897,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:19092",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:19092: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 3476,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:19092",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:19092: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2730,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:443",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:443: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 11239,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:443",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:443: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 4066,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:4646",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:4646: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 4116,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:4646",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:4646: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 3122,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:19999",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19999: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 6305,
"err": null,
"expected": [
"[\"127.0.0.1\"]"
],
"found": [
"[\"127.0.0.1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:19999",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19999: ip: matches expectation: [[\"127.0.0.1\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2626,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:19004",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19004: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5569,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:19004",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19004: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 3140,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:80",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:80: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 4952,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:80",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:80: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2543,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:3306",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:3306: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5826,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:3306",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:3306: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2801,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:2181",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:2181: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 3503,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:2181",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:2181: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2771,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:8888",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8888: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5617,
"err": null,
"expected": [
"[\"169.254.1.1\"]"
],
"found": [
"[\"169.254.1.1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:8888",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8888: ip: matches expectation: [[\"169.254.1.1\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2913,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:9092",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:9092: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 3403,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:9092",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:9092: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2725,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:8200",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8200: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5277,
"err": null,
"expected": [
"[\"169.254.1.1\"]"
],
"found": [
"[\"169.254.1.1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:8200",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8200: ip: matches expectation: [[\"169.254.1.1\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2922,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:9093",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:9093: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 3302,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:9093",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:9093: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2782,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:8500",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8500: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5553,
"err": null,
"expected": [
"[\"169.254.1.1\"]"
],
"found": [
"[\"169.254.1.1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:8500",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8500: ip: matches expectation: [[\"169.254.1.1\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2812,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:8446",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8446: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5157,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:8446",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8446: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2853,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:8112",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8112: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 4916,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\",\"::1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:8112",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8112: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 47869506,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "edgemanager-licensing",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: edgemanager-licensing: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 32021551,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "edgemanager-licensing",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: edgemanager-licensing: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 51622478,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "hazelcast",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: hazelcast: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 31590132,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "hazelcast",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: hazelcast: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 53542227,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "lem-ll",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-ll: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 31503689,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "lem-ll",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-ll: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 46812431,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "emqx",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: emqx: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 39160353,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "emqx",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: emqx: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 50379113,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "minio",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: minio: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 35226906,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "minio",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: minio: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 57949699,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "clickhouse-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: clickhouse-server: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 26654332,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "clickhouse-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: clickhouse-server: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 56152675,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "nomad-apps",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nomad-apps: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 30035476,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "nomad-apps",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nomad-apps: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 91761663,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/usr/bin/vault status",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /usr/bin/vault status: exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 69537,
"err": null,
"expected": [
"Initialized true",
"Sealed false"
],
"found": [
"Initialized true",
"Sealed false"
],
"human": "",
"meta": null,
"property": "stdout",
"resource-id": "/usr/bin/vault status",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /usr/bin/vault status: stdout: matches expectation: [Initialized true Sealed false]",
"test-type": 2,
"title": ""
},
{
"duration": 222934324,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/opt/lem/bin/lem-nomad-alloc-status.sh",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /opt/lem/bin/lem-nomad-alloc-status.sh: exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 91033,
"err": null,
"expected": [
"docker-registry registry true",
"fabio fabio null",
"lem-activation activation true",
"lem-api lem-api true",
"lem-binds mqtt-bind true",
"lem-emq-auth auth true",
"lem-jobs jobs true",
"lem-mpcs mpcs true",
"lem-mpcs mpcs-rbac true",
"lem-sinks clickhouse-sink true",
"lem-sinks events-sink true",
"lem-alerts lem-alerts true",
"grafana grafana true",
"prometheus monitoring true"
],
"found": [
"docker-registry registry true",
"fabio fabio null",
"grafana grafana true",
"lem-activation activation true",
"lem-alerts lem-alerts true",
"lem-api lem-api true",
"lem-binds mqtt-bind true",
"lem-emq-auth auth true",
"lem-jobs jobs true",
"lem-mpcs mpcs-rbac true",
"lem-mpcs mpcs true",
"lem-sinks clickhouse-sink true",
"lem-sinks events-sink true",
"prometheus monitoring true"
],
"human": "",
"meta": null,
"property": "stdout",
"resource-id": "/opt/lem/bin/lem-nomad-alloc-status.sh",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /opt/lem/bin/lem-nomad-alloc-status.sh: stdout: matches expectation: [docker-registry registry true fabio fabio null lem-activation activation true lem-api lem-api true lem-binds mqtt-bind true lem-emq-auth auth true lem-jobs jobs true lem-mpcs mpcs true lem-mpcs mpcs-rbac true lem-sinks clickhouse-sink true lem-sinks events-sink true lem-alerts lem-alerts true grafana grafana true prometheus monitoring true]",
"test-type": 2,
"title": ""
}
],
"summary": {
"failed-count": 0,
"summary-line": "Count: 97, Failed: 0, Duration: 0.224s",
"test-count": 97,
"total-duration": 224342688
}
}
Get Support Bundle
GET {{LEM_adminURL}}/admin/v1/support/bundle
Get Support Bundle
Generates and downloads a LEM support bundle (encrypted zip). Use Postman's Send and Download to save to disk.
Endpoint
GET {{LEM_adminURL}}/admin/v1/support/bundle
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
200 OK -- application/zip (password-protected).
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Export/Import Log
GET {{LEM_adminURL}}/admin/v1/backup/log
Export / Import Log
Returns the most-recent backup/restore process log entries.
Endpoint
GET {{LEM_adminURL}}/admin/v1/backup/log
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"status": 0,
"statusMessage": "Backup/restore process is not running",
"messages": [
{
"timestamp": 0,
"message": "Export data is started"
},
{
"timestamp": 0,
"message": "project 65bx240rrbpdfn1kxzn16kx0s is exported"
},
{
"timestamp": 0,
"message": "project cbgnxa480aerfk56xh7j3mkj1 is exported"
}
]
}
Export Configuration
POST {{LEM_adminURL}}/admin/v1/backup/backup-settings
Export Configuration
Exports LEM's configuration as an encrypted zip. Multipart form-data with one password part. Use Postman's Send and Download to save the response to disk.
Endpoint
POST {{LEM_adminURL}}/admin/v1/backup/backup-settings
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
Multipart form-data: password text field set to the encryption password.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
Export Data
POST {{LEM_adminURL}}/admin/v1/backup/backup-data
Export Data
Exports LEM's data (project / device / message / event stores) as an encrypted zip.
Endpoint
POST {{LEM_adminURL}}/admin/v1/backup/backup-data
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
Multipart form-data: password text field set to the encryption password.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
Import Configuration Settings
POST {{LEM_adminURL}}/admin/v1/backup/restore-settings
Import Configuration Settings
Restores a configuration-only export. Multipart with the zip file and the password.
Endpoint
POST {{LEM_adminURL}}/admin/v1/backup/restore-settings
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
Multipart form-data: password text + file part with the encrypted zip.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
Import Data
POST {{LEM_adminURL}}/admin/v1/backup/restore-data
Import Data
Restores a data-only export.
Endpoint
POST {{LEM_adminURL}}/admin/v1/backup/restore-data
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
Multipart form-data: password text + file part.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
LEM Backup List
GET {{LEM_adminURL}}/admin/v1/lem-backup/list
LEM Backup List
Returns the LEM-level backup archive index (date-named zip files in object storage).
Endpoint
GET {{LEM_adminURL}}/admin/v1/lem-backup/list
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"objectName": "em-2.16.4-daily-TUESDAY.zip",
"objectSize": 1772895,
"createdAt": 1716249603757
},
{
"objectName": "em-2.20.0-daily-MONDAY.zip",
"objectSize": 2190405,
"createdAt": 1725840008348
},
{
"objectName": "em-2.22.2-daily-FRIDAY.zip",
"objectSize": 1580640,
"createdAt": 1728604803897
},
{
"objectName": "em-2.23.0-daily-FRIDAY.zip",
"objectSize": 1675468,
"createdAt": 1735862404094
},
{
"objectName": "em-2.23.0-daily-MONDAY.zip",
"objectSize": 1675679,
"createdAt": 1736121611950
},
{
"objectName": "em-2.23.0-daily-SATURDAY.zip",
"objectSize": 1675654,
"createdAt": 1735948815742
},
{
"objectName": "em-2.23.0-daily-SUNDAY.zip",
"objectSize": 1675674,
"createdAt": 1736035211597
},
{
"objectName": "em-2.23.0-daily-THURSDAY.zip",
"objectSize": 1678605,
"createdAt": 1736380807626
},
{
"objectName": "em-2.23.0-daily-TUESDAY.zip",
"objectSize": 1676110,
"createdAt": 1736208008965
},
{
"objectName": "em-2.23.0-daily-WEDNESDAY.zip",
"objectSize": 1676292,
"createdAt": 1736294404964
}
]
LEM Backup Log
GET {{LEM_adminURL}}/admin/v1/lem-backup/log
LEM Backup Log
Returns the most-recent LEM backup-process log entries.
Endpoint
GET {{LEM_adminURL}}/admin/v1/lem-backup/log
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"status": 0,
"statusMessage": "Process is not running",
"messages": [
{
"timestamp": 1736380800004,
"message": "Create backup process started.."
},
{
"timestamp": 1736380800027,
"message": "Backup configuration database"
},
{
"timestamp": 1736380806713,
"message": "Backup consul and vault"
},
{
"timestamp": 1736380807032,
"message": "Backup vault credentials"
},
{
"timestamp": 1736380807044,
"message": "Backup clickhouse users"
},
{
"timestamp": 1736380807074,
"message": "Backup kafka users"
},
{
"timestamp": 1736380807079,
"message": "Backup registry users"
},
{
"timestamp": 1736380807088,
"message": "Backup Litmus Licensing Server"
},
{
"timestamp": 1736380807098,
"message": "Backup templates"
},
{
"timestamp": 1736380807664,
"message": "Backup process completed.. Success"
}
]
}
Create Backup
POST {{LEM_adminURL}}/admin/v1/lem-backup/create
Create Backup
Triggers a new LEM-level backup. The new archive appears in LEM Backup List once complete.
Endpoint
POST {{LEM_adminURL}}/admin/v1/lem-backup/create
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"code": "S",
"message": "em-2.23.0-20250109234629.zip",
"messageDetails": null
}
Remove Backup File
DELETE {{LEM_adminURL}}/admin/v1/lem-backup?name=em-2.23.0-20250109234629.zip
Remove Backup File
Deletes one backup archive by name.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/lem-backup?name=em-2.23.0-20250109234629.zip
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
Restore From Backup
POST {{LEM_adminURL}}/admin/v1/lem-backup/restore?name=em-2.24.0-dev.202410170915.zip
Restore From Backup
Restores LEM from a backup archive. Halts LEM during restore. Treat as destructive.
Endpoint
POST {{LEM_adminURL}}/admin/v1/lem-backup/restore?name=em-2.24.0-dev.202410170915.zip
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
List Experimental Features
GET {{LEM_adminURL}}/admin/v1/feature?type=EXPERIMENTAL
List Experimental Features
Returns LEM's experimental feature catalog with enabled flags.
Endpoint
GET {{LEM_adminURL}}/admin/v1/feature?type=EXPERIMENTAL
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"entryID": 1,
"name": "EdgeEvents",
"description": "Edge events management",
"type": "EXPERIMENTAL",
"enabled": 1,
"createdOn": 1597449600000,
"updatedOn": null
},
{
"entryID": 2,
"name": "DigitalTwin",
"description": "Digital Twin models management",
"type": "EXPERIMENTAL",
"enabled": 1,
"createdOn": 1597449600000,
"updatedOn": 1689974876000
}
]
Enable/Disable Feature
POST {{LEM_adminURL}}/admin/v1/feature?name=DigitalTwin&enabled=true
Enable / Disable Feature
Toggles one experimental feature by name. enabled=true enables; false disables.
Endpoint
POST {{LEM_adminURL}}/admin/v1/feature?name=DigitalTwin&enabled=true
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
System Reboot
GET {{LEM_adminURL}}/admin/v1/system/reboot
System Reboot
Reboots the LEM host. Full LEM outage during the reboot. The endpoint is a GET (legacy); use sparingly.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/reboot
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Operational note: full LEM downtime. Coordinate with stakeholders before triggering.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Subscription Settings
GET {{LEM_adminURL}}/admin/v1/report/settings/subscribers
Subscription Settings
Returns the report-subscription recipients.
Endpoint
GET {{LEM_adminURL}}/admin/v1/report/settings/subscribers
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"enable": true,
"name": "Parth",
"email": "parth@litmus.io"
}
]
Reports Stats
GET {{LEM_adminURL}}/admin/v1/report/settings/stats
Reports Stats
Returns the report-generation configuration: enabled flag, frequency, and which metric categories are included.
Endpoint
GET {{LEM_adminURL}}/admin/v1/report/settings/stats
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"enable": true,
"periodFrequency": "WEEKLY",
"metrics": {
"edgeDeviceMetrics": true,
"activeUsersCompaniesProjects": true,
"activationDeactivation": true,
"catalogsApps": true,
"softwareUpdates": true,
"template": true,
"licenses": true,
"aiMlModels": true,
"alertsTriggers": true,
"cpuMemoryNetworkLoad": true,
"diskUsage": true,
"uptimeDowntime": true
}
}