Security Service

Get access token - to be used as Bearer token header for all other API requests.

POSThttps://localhost:16001/api/v1/oauth2
Query parameters
Body

User id and password

one of
Response

successful operation

Body
one of
Request
const response = await fetch('https://localhost:16001/api/v1/oauth2', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "userId": "support@example.com",
      "password": "support"
    }),
});
const data = await response.json();
Response
{
  "access_token": "text",
  "refresh_token": "text",
  "token_type": "text",
  "username": "text",
  "userMustChangePassword": false,
  "aclTemplate": {
    "aclTemplate": {
      "Read": false,
      "ReadWrite": false,
      "ReadWriteCreate": false,
      "Delete": false,
      "PortalLogin": false
    }
  }
}

Get access token - to be used as Bearer token header for all other API requests.

POSThttps://localhost:16001/api/v1/suboauth2
Query parameters
Body

User id and password

one of
Response

successful operation

Body
one of
Request
const response = await fetch('https://localhost:16001/api/v1/suboauth2', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "userId": "support@example.com",
      "password": "support"
    }),
});
const data = await response.json();
Response
{
  "access_token": "text",
  "refresh_token": "text",
  "token_type": "text",
  "username": "text",
  "userMustChangePassword": false,
  "aclTemplate": {
    "aclTemplate": {
      "Read": false,
      "ReadWrite": false,
      "ReadWriteCreate": false,
      "Delete": false,
      "PortalLogin": false
    }
  }
}

Revoke a token.

DELETEhttps://localhost:16001/api/v1/oauth2/{token}
Path parameters
token*string
Response

successful operation

Body
Success (any)

The requested operation was performed.

Request
const response = await fetch('https://localhost:16001/api/v1/oauth2/{token}', {
    method: 'DELETE',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Revoke a token.

DELETEhttps://localhost:16001/api/v1/suboauth2/{token}
Path parameters
token*string
Response

successful operation

Body
Success (any)

The requested operation was performed.

Request
const response = await fetch('https://localhost:16001/api/v1/suboauth2/{token}', {
    method: 'DELETE',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Retrieve the system layout.

GEThttps://localhost:16001/api/v1/systemEndpoints
Response

successful operation

Body
endpointsarray of SystemEndpoint (object)
Request
const response = await fetch('https://localhost:16001/api/v1/systemEndpoints', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "endpoints": [
    {
      "type": "text",
      "vendor": "text",
      "uri": "https://example.com",
      "authenticationType": "text"
    }
  ]
}

Retrieve a list of existing users as well as some information about them.

GEThttps://localhost:16001/api/v1/users
Query parameters
Response
Request
const response = await fetch('https://localhost:16001/api/v1/users', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Retrieve a list of existing users as well as some information about them.

GEThttps://localhost:16001/api/v1/subusers
Query parameters
Response
Request
const response = await fetch('https://localhost:16001/api/v1/subusers', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Retrieve the information for a single user.

GEThttps://localhost:16001/api/v1/user/{id}
Path parameters
id*string (uuid)
Response
Request
const response = await fetch('https://localhost:16001/api/v1/user/{id}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Create a single user.

POSThttps://localhost:16001/api/v1/user/{id}
Path parameters
id*integer (int64)
Query parameters
Body

User details (some fields are ignored during creation)

idstring (uuid)
namestring
descriptionstring
avatarstring (uri)
emailstring (email)
validatedboolean
validationEmailstring (email)
validationDateinteger (int64)
createdinteger (int64)
validationURIstring
changePasswordboolean
lastLogininteger (int64)
currentLoginURIstring
lastPasswordChangeinteger (int64)
lastEmailCheckinteger (int64)
currentPasswordstring
lastPasswordsarray of string
waitingForEmailCheckboolean
notesarray of NoteInfo (object)
locationstring (uuid)
ownerstring (uuid)
suspendedboolean
blackListedboolean
localestring
userRoleenum
rootadminsubscribercsrsysteminstallernocaccounting
oauthTypeenum
internalnormalgmailfacebooklinkedininstagram
oauthUserInfostring
securityPolicystring
securityPolicyChangeinteger (int64)
modifiedinteger (int64)
userTypeProprietaryInfoUserLoginLoginExtensions (object)
signupUUIDstring (uuid)
Response
Request
const response = await fetch('https://localhost:16001/api/v1/user/{id}', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Modify a single user.

PUThttps://localhost:16001/api/v1/user/{id}
Path parameters
id*integer (int64)
Query parameters
Body

User details (some fields are ignored during update)

idstring (uuid)
namestring
descriptionstring
avatarstring (uri)
emailstring (email)
validatedboolean
validationEmailstring (email)
validationDateinteger (int64)
createdinteger (int64)
validationURIstring
changePasswordboolean
lastLogininteger (int64)
currentLoginURIstring
lastPasswordChangeinteger (int64)
lastEmailCheckinteger (int64)
currentPasswordstring
lastPasswordsarray of string
waitingForEmailCheckboolean
notesarray of NoteInfo (object)
locationstring (uuid)
ownerstring (uuid)
suspendedboolean
blackListedboolean
localestring
userRoleenum
rootadminsubscribercsrsysteminstallernocaccounting
oauthTypeenum
internalnormalgmailfacebooklinkedininstagram
oauthUserInfostring
securityPolicystring
securityPolicyChangeinteger (int64)
modifiedinteger (int64)
userTypeProprietaryInfoUserLoginLoginExtensions (object)
signupUUIDstring (uuid)
Response
Request
const response = await fetch('https://localhost:16001/api/v1/user/{id}', {
    method: 'PUT',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Delete a single user.

DELETEhttps://localhost:16001/api/v1/user/{id}
Path parameters
id*integer (int64)
Response

The requested operation was performed.

Body
Operationstring
Detailsstring
Codeinteger
Request
const response = await fetch('https://localhost:16001/api/v1/user/{id}', {
    method: 'DELETE',
    headers: {},
});
const data = await response.json();
Response
{
  "Operation": "text",
  "Details": "text"
}

Retrieve the information for a single user.

GEThttps://localhost:16001/api/v1/subuser/{id}
Path parameters
id*string (uuid)
Response
Request
const response = await fetch('https://localhost:16001/api/v1/subuser/{id}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Create a single user.

POSThttps://localhost:16001/api/v1/subuser/{id}
Path parameters
id*integer (int64)
Query parameters
Body

User details (some fields are ignored during creation)

idstring (uuid)
namestring
descriptionstring
avatarstring (uri)
emailstring (email)
validatedboolean
validationEmailstring (email)
validationDateinteger (int64)
createdinteger (int64)
validationURIstring
changePasswordboolean
lastLogininteger (int64)
currentLoginURIstring
lastPasswordChangeinteger (int64)
lastEmailCheckinteger (int64)
currentPasswordstring
lastPasswordsarray of string
waitingForEmailCheckboolean
notesarray of NoteInfo (object)
locationstring (uuid)
ownerstring (uuid)
suspendedboolean
blackListedboolean
localestring
userRoleenum
rootadminsubscribercsrsysteminstallernocaccounting
oauthTypeenum
internalnormalgmailfacebooklinkedininstagram
oauthUserInfostring
securityPolicystring
securityPolicyChangeinteger (int64)
modifiedinteger (int64)
userTypeProprietaryInfoUserLoginLoginExtensions (object)
signupUUIDstring (uuid)
Response
Request
const response = await fetch('https://localhost:16001/api/v1/subuser/{id}', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Modify a single user.

PUThttps://localhost:16001/api/v1/subuser/{id}
Path parameters
id*integer (int64)
Query parameters
Body

User details (some fields are ignored during update)

idstring (uuid)
namestring
descriptionstring
avatarstring (uri)
emailstring (email)
validatedboolean
validationEmailstring (email)
validationDateinteger (int64)
createdinteger (int64)
validationURIstring
changePasswordboolean
lastLogininteger (int64)
currentLoginURIstring
lastPasswordChangeinteger (int64)
lastEmailCheckinteger (int64)
currentPasswordstring
lastPasswordsarray of string
waitingForEmailCheckboolean
notesarray of NoteInfo (object)
locationstring (uuid)
ownerstring (uuid)
suspendedboolean
blackListedboolean
localestring
userRoleenum
rootadminsubscribercsrsysteminstallernocaccounting
oauthTypeenum
internalnormalgmailfacebooklinkedininstagram
oauthUserInfostring
securityPolicystring
securityPolicyChangeinteger (int64)
modifiedinteger (int64)
userTypeProprietaryInfoUserLoginLoginExtensions (object)
signupUUIDstring (uuid)
Response
Request
const response = await fetch('https://localhost:16001/api/v1/subuser/{id}', {
    method: 'PUT',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Delete a single user.

DELETEhttps://localhost:16001/api/v1/subuser/{id}
Path parameters
id*integer (int64)
Response

The requested operation was performed.

Body
Operationstring
Detailsstring
Codeinteger
Request
const response = await fetch('https://localhost:16001/api/v1/subuser/{id}', {
    method: 'DELETE',
    headers: {},
});
const data = await response.json();
Response
{
  "Operation": "text",
  "Details": "text"
}

Retrieve the avatar associated with a user ID.

GEThttps://localhost:16001/api/v1/avatar/{id}
Path parameters
id*string (uuid)
Response

Successfully retrieved the avatar

Body
string (binary)
Request
const response = await fetch('https://localhost:16001/api/v1/avatar/{id}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
binary

Create an avatar associated with a user ID.

POSThttps://localhost:16001/api/v1/avatar/{id}
Path parameters
id*string (uuid)
Body

User id and password

string (binary)
Response

The requested operation was performed.

Body
Operationstring
Detailsstring
Codeinteger
Request
const response = await fetch('https://localhost:16001/api/v1/avatar/{id}', {
    method: 'POST',
    headers: {
      "Content-Type": "image/jpeg"
    },
    body: JSON.stringify("binary"),
});
const data = await response.json();
Response
{
  "Operation": "text",
  "Details": "text"
}

Remove an avatar associated with a user ID.

DELETEhttps://localhost:16001/api/v1/avatar/{id}
Path parameters
id*string (uuid)
Response

The requested operation was performed.

Body
Operationstring
Detailsstring
Codeinteger
Request
const response = await fetch('https://localhost:16001/api/v1/avatar/{id}', {
    method: 'DELETE',
    headers: {},
});
const data = await response.json();
Response
{
  "Operation": "text",
  "Details": "text"
}

Send test email with the system.

POSThttps://localhost:16001/api/v1/email
Body

The requested message

fromstring (email)
subjectstring
recipientsarray of string (email)
textstring
Response

The requested operation was performed.

Body
Operationstring
Detailsstring
Codeinteger
Request
const response = await fetch('https://localhost:16001/api/v1/email', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "Operation": "text",
  "Details": "text"
}

Send test email with the system.

POSThttps://localhost:16001/api/v1/sms
Query parameters
Body

The requested message

fromstring
tostring
textstring
Response

The requested operation was performed.

Body
Operationstring
Detailsstring
Codeinteger
Request
const response = await fetch('https://localhost:16001/api/v1/sms', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "Operation": "text",
  "Details": "text"
}

Get the list of recorded preferences for a user

GEThttps://localhost:16001/api/v1/userPreferences
Response
Request
const response = await fetch('https://localhost:16001/api/v1/userPreferences', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorDetails": "text"
}

Set the list of recorded preferences for a user

POSThttps://localhost:16001/api/v1/userPreferences
Body

Setting the list of preferences

modifiedinteger (int64)
dataarray of object
Response
Request
const response = await fetch('https://localhost:16001/api/v1/userPreferences', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "ErrorDetails": "text"
}

Retrieve the cyrrent setting for MFA

GEThttps://localhost:16001/api/v1/submfa
Response
Request
const response = await fetch('https://localhost:16001/api/v1/submfa', {
    method: 'GET',
    headers: {},
});
const data = await response.json();

Retrieve the cyrrent setting for MFA

PUThttps://localhost:16001/api/v1/submfa
Query parameters
Body
idstring (uuid)
typeenum
disabledsmsemail
emailstring (email)
smsstring
Response
Request
const response = await fetch('https://localhost:16001/api/v1/submfa', {
    method: 'PUT',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "ErrorDetails": "text"
}

Retrieve the Authenticator QR Code

GEThttps://localhost:16001/api/v1/totp
Query parameters
Response

QRCode

Body
string (binary)
Request
const response = await fetch('https://localhost:16001/api/v1/totp', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
binary

Send the first security code to validate your setup

PUThttps://localhost:16001/api/v1/totp
Query parameters
Response

Succesful posting of response.

Body
nextIndexinteger
moreCodesboolean
Request
const response = await fetch('https://localhost:16001/api/v1/totp?index=1%2C2%2C3', {
    method: 'PUT',
    headers: {},
});
const data = await response.json();
Response
{
  "moreCodes": false
}

This call allows a new subscriber to register themselves and their devices.

POSThttps://localhost:16001/api/v1/signup
Query parameters
Response
Request
const response = await fetch('https://localhost:16001/api/v1/signup?email=name%40gmail.com&signupUUID=123e4567-e89b-12d3-a456-426614174000', {
    method: 'POST',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorDetails": "text"
}

modify the signup command in play

PUThttps://localhost:16001/api/v1/signup
Query parameters
Body
reasonstring
timeinteger (int64)
errorCodeinteger (int32)
Response

The requested operation was performed.

Body
Operationstring
Detailsstring
Codeinteger
Request
const response = await fetch('https://localhost:16001/api/v1/signup?signupUUID=123e4567-e89b-12d3-a456-426614174000&operation=cancel', {
    method: 'PUT',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "Operation": "text",
  "Details": "text"
}

Retrieve the list of security profiles for a specific service type.

GEThttps://localhost:16001/api/v1/securityProfiles
Query parameters
Response
Request
const response = await fetch('https://localhost:16001/api/v1/securityProfiles', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Retrieve the basic system information. This information is used between services only.

GEThttps://localhost:16001/api/v1/systemServices
Response
Request
const response = await fetch('https://localhost:16001/api/v1/systemServices', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Allows any microservice to validate a token and get security policy for a specific user.

GEThttps://localhost:16001/api/v1/validateToken
Query parameters
Response
Request
const response = await fetch('https://localhost:16001/api/v1/validateToken?token=text', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Allows any microservice to validate a token and get security policy for a specific user.

GEThttps://localhost:16001/api/v1/validateSubToken
Query parameters
Response
Request
const response = await fetch('https://localhost:16001/api/v1/validateSubToken?token=text', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "ErrorCode": 0,
  "ErrorDetails": "text",
  "ErrorDescription": "text"
}

Retrieve different values from the running service.

GEThttps://localhost:16001/api/v1/system
Query parameters
Response

Successful command execution

Body
one of
Request
const response = await fetch('https://localhost:16001/api/v1/system?command=info', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "version": "text",
  "os": "text",
  "hostname": "text",
  "certificates": [
    {
      "filename": "text"
    }
  ]
}

Perform some system wide commands.

POSThttps://localhost:16001/api/v1/system
Body

Command details

one of
Response

Successful command execution

Body
one of
Request
const response = await fetch('https://localhost:16001/api/v1/system', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "taglist": [
    {
      "tag": "text",
      "value": "text"
    }
  ]
}

TIP OpenWiFi