3
0

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/ Returns auth settings
GET /auth/check Check JWT token
POST /auth/exchange Exchange auth token for JWT
GET /auth/logout Logout

Returns auth settings

Method

URI Protocol Method Authentication
/auth/ HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?

Check JWT token

Method

URI Protocol Method Authentication
/auth/check HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?

Exchange auth token for JWT

Method

URI Protocol Method Authentication
/auth/exchange HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
token string POST Token to be exchanged for JWT N/A YES

Logout

Method

URI Protocol Method Authentication
/auth/logout HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?

Internal authentication

Method Endpoint Purpose
POST /auth/internal/login Login user
POST /auth/internal/signup User signup/registration
POST /auth/internal/request-password-reset Request password reset token (via email)
POST /auth/internal/exchange-password-reset-token Exchange password reset token for new token and user info
POST /auth/internal/reset-password Reset password with exchanged password reset token
POST /auth/internal/confirm-email Confirm email with token
POST /auth/internal/change-password Changes password for current user, requires current password

Login user

Method

URI Protocol Method Authentication
/auth/internal/login HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
email string POST Email N/A YES
password string POST Password N/A YES

User signup/registration

Method

URI Protocol Method Authentication
/auth/internal/signup HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
email string POST Email N/A YES
username string POST Username N/A NO
password string POST Password N/A YES
handle string POST User handle N/A NO
name string POST Display name N/A NO

Request password reset token (via email)

Method

URI Protocol Method Authentication
/auth/internal/request-password-reset HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
email string POST Email N/A YES

Exchange password reset token for new token and user info

Method

URI Protocol Method Authentication
/auth/internal/exchange-password-reset-token HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
token string POST Token N/A YES

Reset password with exchanged password reset token

Method

URI Protocol Method Authentication
/auth/internal/reset-password HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
token string POST Token N/A YES
password string POST Password N/A YES

Confirm email with token

Method

URI Protocol Method Authentication
/auth/internal/confirm-email HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
token string POST Token N/A YES

Changes password for current user, requires current password

Method

URI Protocol Method Authentication
/auth/internal/change-password HTTP/S POST

Request parameters

Parameter Type Method Description Default Required?
oldPassword string POST Old password N/A YES
newPassword string POST New password N/A YES

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
rules permissions.RuleSet POST List of permission rules 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

Settings

Method Endpoint Purpose
GET /settings/ List settings
PATCH /settings/ Update settings
GET /settings/{key} Check JWT token
PUT /settings/{key} Set a value for a key

List settings

Method

URI Protocol Method Authentication
/settings/ HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
prefix string GET Key prefix N/A NO

Update settings

Method

URI Protocol Method Authentication
/settings/ HTTP/S PATCH

Request parameters

Parameter Type Method Description Default Required?
values sqlxTypes.JSONText POST Array of new settings: [{ name: ..., value: ... }]. Omit value to remove setting N/A YES

Check JWT token

Method

URI Protocol Method Authentication
/settings/{key} HTTP/S GET

Request parameters

Parameter Type Method Description Default Required?
ownerID uint64 GET Owner ID N/A NO
key string PATH Setting key N/A YES

Set a value for a key

Method

URI Protocol Method Authentication
/settings/{key} HTTP/S PUT

Request parameters

Parameter Type Method Description Default Required?
key string PATH Setting key N/A YES
ownerID uint64 POST Owner N/A NO
value sqlxTypes.JSONText POST Setting value 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
DELETE /users/{userID} Remove user
POST /users/{userID}/suspend Suspend user
POST /users/{userID}/unsuspend Unsuspend user
POST /users/{userID}/password Set's or changes user's password
GET /users/{userID}/membership Add member to a role
POST /users/{userID}/membership/{roleID} Add role to a user
DELETE /users/{userID}/membership/{roleID} Remove role from a 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
kind types.UserKind GET Kind (normal, bot) N/A NO
incDeleted bool GET Include deleted users (requires 'access' permission) N/A NO
incSuspended bool GET Include suspended users (requires 'access' permission) N/A NO
sort string GET Sort by (createdAt, updatedAt, deletedAt, suspendedAt, email, username, userID) N/A NO
page uint GET Page number (0 based) N/A NO
perPage uint GET Returned items per page 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

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

Set's or changes user's password

Method

URI Protocol Method Authentication
/users/{userID}/password HTTP/S POST Client ID, Session ID

Request parameters

Parameter Type Method Description Default Required?
userID uint64 PATH User ID N/A YES
password string POST New password N/A YES

Add member to a role

Method

URI Protocol Method Authentication
/users/{userID}/membership HTTP/S GET Client ID, Session ID

Request parameters

Parameter Type Method Description Default Required?
userID uint64 PATH User ID N/A YES

Add role to a user

Method

URI Protocol Method Authentication
/users/{userID}/membership/{roleID} HTTP/S POST Client ID, Session ID

Request parameters

Parameter Type Method Description Default Required?
roleID uint64 PATH Role ID N/A YES
userID uint64 PATH User ID N/A YES

Remove role from a user

Method

URI Protocol Method Authentication
/users/{userID}/membership/{roleID} HTTP/S DELETE Client ID, Session ID

Request parameters

Parameter Type Method Description Default Required?
roleID uint64 PATH Role ID N/A YES
userID uint64 PATH User ID N/A YES