Applications
| Method |
Endpoint |
Purpose |
GET |
/application/ |
List applications |
POST |
/application/ |
Create application |
PUT |
/application/{applicationID} |
Update user details |
GET |
/application/{applicationID} |
Read application details |
DELETE |
/application/{applicationID} |
Remove application |
List applications
Method
| URI |
Protocol |
Method |
Authentication |
/application/ |
HTTP/S |
GET |
|
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
Create application
Method
| URI |
Protocol |
Method |
Authentication |
/application/ |
HTTP/S |
POST |
|
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| name |
string |
POST |
Email |
N/A |
YES |
| enabled |
bool |
POST |
Enabled |
N/A |
NO |
| unify |
sqlxTypes.JSONText |
POST |
Unify properties |
N/A |
NO |
| config |
sqlxTypes.JSONText |
POST |
Arbitrary JSON holding application configuration |
N/A |
NO |
Update user details
Method
| URI |
Protocol |
Method |
Authentication |
/application/{applicationID} |
HTTP/S |
PUT |
|
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| applicationID |
uint64 |
PATH |
Application ID |
N/A |
YES |
| name |
string |
POST |
Email |
N/A |
YES |
| enabled |
bool |
POST |
Enabled |
N/A |
NO |
| unify |
sqlxTypes.JSONText |
POST |
Unify properties |
N/A |
NO |
| config |
sqlxTypes.JSONText |
POST |
Arbitrary JSON holding application configuration |
N/A |
NO |
Read application details
Method
| URI |
Protocol |
Method |
Authentication |
/application/{applicationID} |
HTTP/S |
GET |
|
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| applicationID |
uint64 |
PATH |
Application ID |
N/A |
YES |
Remove application
Method
| URI |
Protocol |
Method |
Authentication |
/application/{applicationID} |
HTTP/S |
DELETE |
|
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| applicationID |
uint64 |
PATH |
Application ID |
N/A |
YES |
Authentication
| Method |
Endpoint |
Purpose |
GET |
/auth/check |
Check JWT token |
POST |
/auth/login |
Login user |
GET |
/auth/logout |
Delete JWT token (Sign Out) |
Check JWT token
Method
| URI |
Protocol |
Method |
Authentication |
/auth/check |
HTTP/S |
GET |
|
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
Login user
Method
| URI |
Protocol |
Method |
Authentication |
/auth/login |
HTTP/S |
POST |
|
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| username |
string |
POST |
Username |
N/A |
YES |
| password |
string |
POST |
Password |
N/A |
YES |
Delete JWT token (Sign Out)
Method
| URI |
Protocol |
Method |
Authentication |
/auth/logout |
HTTP/S |
GET |
|
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
Organisations
Organisations represent a top-level grouping entity. There may be many organisations defined in a single deployment.
| Method |
Endpoint |
Purpose |
GET |
/organisations/ |
List organisations |
POST |
/organisations/ |
Create organisation |
PUT |
/organisations/{id} |
Update organisation details |
DELETE |
/organisations/{id} |
Remove organisation |
GET |
/organisations/{id} |
Read organisation details |
POST |
/organisations/{id}/archive |
Archive organisation |
List organisations
Method
| URI |
Protocol |
Method |
Authentication |
/organisations/ |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| query |
string |
GET |
Search query |
N/A |
NO |
Create organisation
Method
| URI |
Protocol |
Method |
Authentication |
/organisations/ |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| name |
string |
POST |
Organisation Name |
N/A |
YES |
Update organisation details
Method
| URI |
Protocol |
Method |
Authentication |
/organisations/{id} |
HTTP/S |
PUT |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| id |
uint64 |
PATH |
Organisation ID |
N/A |
NO |
| name |
string |
POST |
Organisation Name |
N/A |
YES |
Remove organisation
Method
| URI |
Protocol |
Method |
Authentication |
/organisations/{id} |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| id |
uint64 |
PATH |
Organisation ID |
N/A |
YES |
Read organisation details
Method
| URI |
Protocol |
Method |
Authentication |
/organisations/{id} |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| id |
uint64 |
GET |
Organisation ID |
N/A |
YES |
Archive organisation
Method
| URI |
Protocol |
Method |
Authentication |
/organisations/{id}/archive |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| id |
uint64 |
PATH |
Organisation ID |
N/A |
YES |
Permissions
| Method |
Endpoint |
Purpose |
GET |
/permissions/ |
Retrieve defined permissions |
GET |
/permissions/effective |
Effective rules for current user |
GET |
/permissions/{roleID}/rules |
Retrieve role permissions |
DELETE |
/permissions/{roleID}/rules |
Remove all defined role permissions |
PATCH |
/permissions/{roleID}/rules |
Update permission settings |
Retrieve defined permissions
Method
| URI |
Protocol |
Method |
Authentication |
/permissions/ |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
Effective rules for current user
Method
| URI |
Protocol |
Method |
Authentication |
/permissions/effective |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| resource |
string |
GET |
Show only rules for a specific resource |
N/A |
NO |
Retrieve role permissions
Method
| URI |
Protocol |
Method |
Authentication |
/permissions/{roleID}/rules |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Role ID |
N/A |
YES |
Remove all defined role permissions
Method
| URI |
Protocol |
Method |
Authentication |
/permissions/{roleID}/rules |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Role ID |
N/A |
YES |
Update permission settings
Method
| URI |
Protocol |
Method |
Authentication |
/permissions/{roleID}/rules |
HTTP/S |
PATCH |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Role ID |
N/A |
YES |
| permissions |
[]rules.Rule |
POST |
List of permissions to set |
N/A |
YES |
Roles
An organisation may have many roles. Roles may have many channels available. Access to channels may be shared between roles.
| Method |
Endpoint |
Purpose |
GET |
/roles/ |
List roles |
POST |
/roles/ |
Update role details |
PUT |
/roles/{roleID} |
Update role details |
GET |
/roles/{roleID} |
Read role details and memberships |
DELETE |
/roles/{roleID} |
Remove role |
POST |
/roles/{roleID}/archive |
Archive role |
POST |
/roles/{roleID}/move |
Move role to different organisation |
POST |
/roles/{roleID}/merge |
Merge one role into another |
GET |
/roles/{roleID}/members |
Returns all role members |
POST |
/roles/{roleID}/member/{userID} |
Add member to a role |
DELETE |
/roles/{roleID}/member/{userID} |
Remove member from a role |
List roles
Method
| URI |
Protocol |
Method |
Authentication |
/roles/ |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| query |
string |
GET |
Search query |
N/A |
NO |
Update role details
Method
| URI |
Protocol |
Method |
Authentication |
/roles/ |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| name |
string |
POST |
Name of Role |
N/A |
YES |
| members |
[]string |
POST |
Role member IDs |
N/A |
NO |
Update role details
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID} |
HTTP/S |
PUT |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Role ID |
N/A |
YES |
| name |
string |
POST |
Name of Role |
N/A |
NO |
| members |
[]string |
POST |
Role member IDs |
N/A |
NO |
Read role details and memberships
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID} |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Role ID |
N/A |
YES |
Remove role
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID} |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Role ID |
N/A |
YES |
Archive role
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID}/archive |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Role ID |
N/A |
YES |
Move role to different organisation
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID}/move |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Role ID |
N/A |
YES |
| organisationID |
uint64 |
POST |
Role ID |
N/A |
YES |
Merge one role into another
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID}/merge |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Source Role ID |
N/A |
YES |
| destination |
uint64 |
POST |
Destination Role ID |
N/A |
YES |
Returns all role members
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID}/members |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Source Role ID |
N/A |
YES |
Add member to a role
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID}/member/{userID} |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Source Role ID |
N/A |
YES |
| userID |
uint64 |
PATH |
User ID |
N/A |
YES |
Remove member from a role
Method
| URI |
Protocol |
Method |
Authentication |
/roles/{roleID}/member/{userID} |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| roleID |
uint64 |
PATH |
Source Role ID |
N/A |
YES |
| userID |
uint64 |
PATH |
User ID |
N/A |
YES |
Users
| Method |
Endpoint |
Purpose |
GET |
/users/ |
Search users (Directory) |
POST |
/users/ |
Create user |
PUT |
/users/{userID} |
Update user details |
GET |
/users/{userID} |
Read user details and memberships |
DELETE |
/users/{userID} |
Remove user |
POST |
/users/{userID}/suspend |
Suspend user |
POST |
/users/{userID}/unsuspend |
Unsuspend user |
Search users (Directory)
Method
| URI |
Protocol |
Method |
Authentication |
/users/ |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| query |
string |
GET |
Search query to match against users |
N/A |
NO |
| username |
string |
GET |
Search username to match against users |
N/A |
NO |
| email |
string |
GET |
Search email to match against users |
N/A |
NO |
Create user
Method
| URI |
Protocol |
Method |
Authentication |
/users/ |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| email |
string |
POST |
Email |
N/A |
YES |
| name |
string |
POST |
Name |
N/A |
NO |
| handle |
string |
POST |
Handle |
N/A |
NO |
| kind |
types.UserKind |
POST |
Kind (normal, bot) |
N/A |
NO |
Update user details
Method
| URI |
Protocol |
Method |
Authentication |
/users/{userID} |
HTTP/S |
PUT |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| userID |
uint64 |
PATH |
User ID |
N/A |
YES |
| email |
string |
POST |
Email |
N/A |
YES |
| name |
string |
POST |
Name |
N/A |
YES |
| handle |
string |
POST |
Handle |
N/A |
NO |
| kind |
types.UserKind |
POST |
Kind (normal, bot) |
N/A |
NO |
Read user details and memberships
Method
| URI |
Protocol |
Method |
Authentication |
/users/{userID} |
HTTP/S |
GET |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| userID |
uint64 |
PATH |
User ID |
N/A |
YES |
Remove user
Method
| URI |
Protocol |
Method |
Authentication |
/users/{userID} |
HTTP/S |
DELETE |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| userID |
uint64 |
PATH |
User ID |
N/A |
YES |
Suspend user
Method
| URI |
Protocol |
Method |
Authentication |
/users/{userID}/suspend |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| userID |
uint64 |
PATH |
User ID |
N/A |
YES |
Unsuspend user
Method
| URI |
Protocol |
Method |
Authentication |
/users/{userID}/unsuspend |
HTTP/S |
POST |
Client ID, Session ID |
Request parameters
| Parameter |
Type |
Method |
Description |
Default |
Required? |
| userID |
uint64 |
PATH |
User ID |
N/A |
YES |