kitter (2.14.0)

Download OpenAPI specification:

Quobis Dev Team: dev@quobis.com

About

kitter is a REST API service designed to simplify the initial provisioning of users and domains in the Quobis Communication Platform. The name derives from the term "kitting up", which refers to the provisioning process.

Core Functionality

The primary function of kitter is to create users in Keycloak (the open-source identity and access management solution) and simultaneously provision their data in the Quobis wac-core service. This dual integration ensures that user identities and their corresponding data are properly synchronized across both systems.

Typical Usage Pattern

Once users have been provisioned through this API, administrators typically use kitter only for authentication-related operations such as:

  • Updating user email addresses
  • Managing user credentials
  • Removing users
  • Performing user or domain-wide logout operations

For all other user data management operations, we encourage you to use the wac-core service API directly, due to the inherent limitations of this service which focuses specifically on authentication-related tasks.

Available Endpoints

This API provides endpoints for domain and user management, including CRUD operations (create, read, update, delete), as well as specific logout functionalities at both individual user and complete domain levels.

domains

Domain management operations

Lists all the provisioned domains.

Returns the list of domains already provisioned into the system. Use the name parameter to get exactly the domain with that name (exact match). Use the nameContains parameter to get all domains whose name contains the given text (case-insensitive).

Authorizations:
authorization
query Parameters
name
string
Example: name=example.com

Domain name (exact match). Returns only the domain with this exact name.

nameContains
string
Example: nameContains=example

Filter by substring. Returns all domains whose name contains this text (case-insensitive).

Responses

Response samples

Content type
application/json
{
  • "domains": [
    ]
}

Create a Domain

Creates a new domain in the system with the specified configuration

Authorizations:
authorization
Request Body schema: application/json
required

The Domain creation request

object (DomainStruct)

The definition of a domain

Responses

Request samples

Content type
application/json
{
  • "domain": {
    }
}

Response samples

Content type
application/json
{
  • "domain": {
    }
}

Deletes a Domain

Deletes a domain from the system by its ID

Authorizations:
authorization
path Parameters
id
required
string
Example: 507f1f77bcf86cd799439011

Domain ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Updates a Domain

Updates specific fields of a domain

Authorizations:
authorization
path Parameters
id
required
string
Example: 507f1f77bcf86cd799439011

Domain ID

Request Body schema: application/json
required

The Domain update request

domain
string

Domain name

enable_anonymous
boolean

Are anonymous users supported?

anonymous_capabilities
Array of strings

Capabilities for anonymous users under the domain

origins
Array of strings

List of valid origins

parent
string

Parent domain name

object (DomainServicesStruct)

The configuration of the domain's enabled sevices

remote_sip_register
boolean

Whether remote SIP registration is enabled for the domain. Contact your system administrator for activating this service.

Responses

Request samples

Content type
application/json
{
  • "domain": "example.com",
  • "enable_anonymous": false,
  • "origins": [
    ],
  • "remote_sip_register": false
}

Response samples

Content type
application/json
{
  • "domain": {
    }
}

Logouts all users of a domain

Logouts all users of a domain. This operation can take several seconds to be completed if the domain has a large number of users.

Authorizations:
authorization
path Parameters
id
required
string

Domain ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

users

User management operations

Lists all the provisioned users.

Returns the list of users already provisioned into the system. If a parameter is given, the list is filtered to those users matching the parameter.

Authorizations:
authorization
query Parameters
email
string
Example: email=user@example.com

Filter by Email. To perform an exact search, send exact=true parameter.

username
string
Example: username=johndoe

Filter by username. To perform an exact search, send exact=true parameter.

exact
boolean
Default: false

Exact search when querying by username and/or email

phone_number
string
Example: phone_number=+34612345678

Filter by phone number. It performs always an exact search.

domain
string
Example: domain=example.com

Filter by domain name. It performs always an exact search.

email_verified
boolean

Filter by email verified.

object
Example: paginate[max]=10&paginate[page]=0

Paginate the users.

Responses

Response samples

Content type
application/json
{
  • "users": [
    ]
}

Provision a User

If given, related SIP Mapping will be provisioned as well.

Authorizations:
authorization
Request Body schema: application/json
required

The User creation request

object (CreateUserStruct)

The definition of a user

Responses

Request samples

Content type
application/json
{
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

Logouts all users of the realm

Logouts all users of the realm

Authorizations:
authorization

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Finds a user by domain and username

Retrieves a specific user by their domain and username

Authorizations:
authorization
path Parameters
domain
required
string
Example: example.com
username
required
string
Example: johndoe

Responses

Response samples

Content type
application/json
{
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "username": "johndoe",
  • "attributes": {
    },
  • "email": "user@example.com",
  • "enabled": true,
  • "first_name": "John",
  • "last_name": "Doe",
  • "email_verified": false
}

Deletes a User

Deletes a user from the system by their ID

Authorizations:
authorization
path Parameters
id
required
string
Example: 550e8400-e29b-41d4-a716-446655440000

A user ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Updates a User

Updates specific fields of a user

Authorizations:
authorization
path Parameters
id
required
string
Example: 550e8400-e29b-41d4-a716-446655440000

A user ID

Request Body schema: application/json
required

The User data to modify

object (UserAttributesPatchStruct)

Definition of user's attributes patch

email
string

User's email

enabled
boolean
Default: true

Whether the user is enabled or not

first_name
string

User's first name. Used as displayName at WAC

id
string
Deprecated

User's Keycloak ID (deprecated). This field is ignored and should not be used. The Keycloak user ID is determined by the system and cannot be set manually.

last_name
string

User's last name

username
string

User's username

object (UserAttributesStruct)

Definition of user's credentials

email_verified
boolean (Email is verified)

User's email is verified

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "enabled": true,
  • "first_name": "John",
  • "last_name": "Doe",
  • "username": "johndoe",
  • "email_verified": false,
  • "attributes": {
    }
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

Logouts a user

Logouts a user

Authorizations:
authorization
path Parameters
id
required
string
Example: 550e8400-e29b-41d4-a716-446655440000

A user ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Sends a password reset email to the user

Sends a password reset email link to the user

Authorizations:
authorization
path Parameters
id
required
string
Example: 550e8400-e29b-41d4-a716-446655440000

Keycloak User ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

logout

User and domain logout operations

Logouts all users of a domain

Logouts all users of a domain. This operation can take several seconds to be completed if the domain has a large number of users.

Authorizations:
authorization
path Parameters
id
required
string

Domain ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Logouts all users of the realm

Logouts all users of the realm

Authorizations:
authorization

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Logouts a user

Logouts a user

Authorizations:
authorization
path Parameters
id
required
string
Example: 550e8400-e29b-41d4-a716-446655440000

A user ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

healthChecker

Health check endpoints for liveness and readiness probes

Check liveness

Check liveness status for a service

Responses

Check readiness

Check readiness status for a service

Responses

callerIdManager

CallerIdManager operations. Contact your system administrator for activating these endpoints

Lists all htable entries with pagination

Returns the list of htable entries with pagination support

Authorizations:
authorization
query Parameters
object
Example: paginate[max]=10&paginate[page]=0

Paginate the htable entries.

nameContains
string

Filter entries by name containing the specified string.

valueContains
string

Filter entries by value containing the specified string.

Responses

Response samples

Content type
application/json
{
  • "entries": [
    ],
  • "total": 0
}

Create an htable entry

Creates a new htable entry

Authorizations:
authorization
Request Body schema: application/json
required

The htable entry creation request

name
required
string

Entry name

value
required
string

Entry value

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "value": "string"
}

Reload htable in sip-proxy

Executes kamcmd htable reload translation inside sip-proxy

Authorizations:
authorization

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Get an htable entry

Gets an htable entry by name

Authorizations:
authorization
path Parameters
name
required
string

Entry name

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "value": "string"
}

Deletes an htable entry

Deletes an htable entry by name

Authorizations:
authorization
path Parameters
name
required
string

Entry name

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}