Litmus Edge Manager 3.0.x - Edge Lifecycle: OAuth Clients

List Device OAuth Clients

GET {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients

New in 3.0.

List Device OAuth Clients

Lists the OAuth clients defined on an edge device. Secrets are never returned.

Endpoint

GET {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Parameters
Parameter In Notes
deviceId path Required. The edge device.

Response

200 OK. An array of clients: clientId, clientName, the granted device groups, tokenTtlMinutes and expiryTime (epoch ms, absent when the client never expires). A device with no clients answers [].

[]

These are OAuth clients on the edge device (LitmusEdge), managed through LEM: LEM relays each call to the device, so the device must be online and run a LitmusEdge version that supports OAuth client management. A client gets an access token from the device's own token endpoint with the client-credentials grant and uses it against that device's APIs.

Device state Answer
Online, supported 200
Offline 503, Device '<id>' is offline; OAuth clients can only be managed while the device is online
Version not supported, or not detected yet 501, Device '<id>' does not support OAuth client management

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

[]

Create Device OAuth Client

POST {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients

New in 3.0.

Create Device OAuth Client

Creates an OAuth client on an edge device. The client secret is returned once, in this response only; store it immediately. Use Regenerate Device OAuth Client Secret if it is lost.

Endpoint

POST {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Parameters
Parameter In Notes
deviceId path Required. The edge device.

Request body

Field Type Notes
clientName string Display name.
groupIds string[] Device user groups the client is granted. The LEM UI requires at least one.
tokenTtlMinutes integer Access token lifetime, 1 to 30 minutes. The UI defaults to 5.
expiryDate integer Client expiry, Unix epoch milliseconds. Omit or null for a client that never expires.
{
  "clientName": "historian-reader",
  "groupIds": ["<device group id>"],
  "tokenTtlMinutes": 5,
  "expiryDate": null
}

Response

200 OK. The new client with clientId, clientSecret and the device's tokenEndpoint (where the client requests tokens). These are OAuth clients on the edge device (LitmusEdge), managed through LEM: LEM relays each call to the device, so the device must be online and run a LitmusEdge version that supports OAuth client management. A client gets an access token from the device's own token endpoint with the client-credentials grant and uses it against that device's APIs.

Device state Answer
Online, supported 200
Offline 503, Device '<id>' is offline; OAuth clients can only be managed while the device is online
Version not supported, or not detected yet 501, Device '<id>' does not support OAuth client management

Not exercised against a live device by these docs yet; the body and response fields come from the 3.0 API specification and the LEM web UI.

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

{
  "clientName": "string",
  "groupIds": [
    "string"
  ],
  "expiryDate": 0,
  "tokenTtlMinutes": 0
}

Rename Device OAuth Client

PUT {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients/{{oauth_client_id}}

New in 3.0.

Rename Device OAuth Client

Renames an OAuth client. clientName is the only field that can change; groups, token lifetime and expiry are fixed at creation.

Endpoint

PUT {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients/{{oauth_client_id}}

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Parameters
Parameter In Notes
deviceId path Required. The edge device.
clientId path Required. From List Device OAuth Clients.

Request body

{
  "clientName": "historian-reader-2"
}

Response

200 OK. These are OAuth clients on the edge device (LitmusEdge), managed through LEM: LEM relays each call to the device, so the device must be online and run a LitmusEdge version that supports OAuth client management. A client gets an access token from the device's own token endpoint with the client-credentials grant and uses it against that device's APIs.

Device state Answer
Online, supported 200
Offline 503, Device '<id>' is offline; OAuth clients can only be managed while the device is online
Version not supported, or not detected yet 501, Device '<id>' does not support OAuth client management

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

{
  "clientName": "string"
}

Regenerate Device OAuth Client Secret

POST {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients/{{oauth_client_id}}/secret

New in 3.0.

Regenerate Device OAuth Client Secret

Issues a new secret for an OAuth client and invalidates the old one. The new secret is returned once, in this response only. An access token the client already holds keeps working until it expires (at most the client's tokenTtlMinutes), so a consumer still using the old secret may only fail on its next token request.

Endpoint

POST {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients/{{oauth_client_id}}/secret

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Parameters
Parameter In Notes
deviceId path Required. The edge device.
clientId path Required.

Response

200 OK. clientId, the new clientSecret and tokenEndpoint. These are OAuth clients on the edge device (LitmusEdge), managed through LEM: LEM relays each call to the device, so the device must be online and run a LitmusEdge version that supports OAuth client management. A client gets an access token from the device's own token endpoint with the client-credentials grant and uses it against that device's APIs.

Device state Answer
Online, supported 200
Offline 503, Device '<id>' is offline; OAuth clients can only be managed while the device is online
Version not supported, or not detected yet 501, Device '<id>' does not support OAuth client management

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.


Delete Device OAuth Client

DELETE {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients/{{oauth_client_id}}

New in 3.0.

Delete Device OAuth Client

Deletes an OAuth client, so it can no longer obtain tokens. Tokens it already holds keep working until their TTL runs out (at most the client's tokenTtlMinutes).

Endpoint

DELETE {{LEM_URL}}/api/v1/device/{{deviceID}}/oauth-clients/{{oauth_client_id}}

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Parameters
Parameter In Notes
deviceId path Required. The edge device.
clientId path Required.

Response

200 OK. These are OAuth clients on the edge device (LitmusEdge), managed through LEM: LEM relays each call to the device, so the device must be online and run a LitmusEdge version that supports OAuth client management. A client gets an access token from the device's own token endpoint with the client-credentials grant and uses it against that device's APIs.

Device state Answer
Online, supported 200
Offline 503, Device '<id>' is offline; OAuth clients can only be managed while the device is online
Version not supported, or not detected yet 501, Device '<id>' does not support OAuth client management

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.


View this page as Markdown