This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Modules

Aura Configuration API modules

Description of the different modules that compose Aura Configuration API

Introduction

Currently, aura-configuration-api contains the following modules:

Administration module

Module in charge of administration tasks:

  • Export of complete server information.
  • Export of information by modules.
  • Import of complete server information.
  • Import of information by modules.

Access detailed information about Administration module.

Channel module

Module responsible for managing all the information related to channels, including the configuration of each Aura channel as well as the libraries associated with each channel (replacement for the bot-response.json configuration file).

  • Add channel
  • Delete channel by id
  • Get channel by id
  • Get all channels
  • Get changed channels
  • Modify channel
  • Update channel

Access detailed information about Channel module.

Component module

Module responsible for managing all the information related to components, including the configuration of each Aura component.

  • Add new components
  • Delete component by name
  • Get component by name
  • Get all components
  • Update component by name
  • Modify component by name

Access detailed information about Component module.

Skill module

Module responsible for managing all the information related to skills, defining the following operations:

  • Add skill
  • Delete skill by id
  • Get skill by id
  • Get all skills
  • Get changed skills
  • Modify skill
  • Update skill

Access detailed information about Skill module.

Application module

Module responsible for managing all the information related to applications, defining the following operations:

  • Add application
  • Delete application by id
  • Get application by id
  • Get all applications
  • Get changed applications
  • Modify application
  • Update application

Access detailed information about Application module.

Library

Module responsible for managing all the information related to libraries, defining the following operations:

  • Add library by channel id
  • Delete all libraries by channel id
  • Delete library by id and channel id
  • Get library by id and channel id
  • Update library by channel id

From the functional point of view, this module depends on the aura-configuration-api channel module: server definition.

Prometheus

Module responsible for exposing metrics for monitoring and observability of Aura Configuration API using Prometheus. It provides metrics such as:

  • Aura component version (gauge)
  • Unhandled server errors (counter)
  • Outgoing message duration (summary)
  • Outgoing request duration (summary)

These metrics help track the health, performance, and errors of the API. Paths in metrics are normalized for aggregation. For more details, see the Prometheus metrics registration source code.

Access detailed information about Prometheus module.

1 - Admin module

Aura configuration API admin module

Admin module description for aura-configuration-api

Introduction

The administration module defines services associated with general administration tasks in aura-configuration-api server.

All these services are defined in the admin namespace (/admin).

Servers definition

By default, the servers defined in the swagger include the base path (for v2): /aura-services/v2/configuration.

Therefore, in order to access the services, the base path and service path must be used.

Examples:

  • aura-services/v2/configuration/admin/export
  • aura-services/v2/configuration/admin/import

Endpoints

Path Method Description
/admin/export GET Export configuration
/admin/import POST Import configuration

You can read the complete documentation of each service in the aura-configuration-api swagger file.

Export modules

Export all

To export all configuration, a GET call to /admin/export path must be made.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/admin/export' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'

The service will respond with an ExportModel type object:

export interface ExportModel {
    /** Export metadata */
    metadata?: ExportMetadata;
    /** Export data */
    data?: ExportModelData;
}
  • metadata: It contains information related to the export itself: export date (data), current API version (apiVersion), bot configuration version (version).
  • data: Module data information indexed by module name.

Further information about ExportModel interface.

Export one or several specific modules

It is possible to export one or several modules using the module parameter in the call to /admin/export endpoint.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/admin/export?modules=channels' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'

The result will have the same format as for complete export, but in the data field only includes the indicated modules.

Import modules

To import, data from a previous export must be used. The import can be from a complete or partial export of certain modules.

To import all configuration, a POST call to /admin/import path must be made.

curl --location --request POST 'http://aura-configuration-api:8999/aura-services/v2/configuration/admin/import' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX' \
--header 'Content-Type: application/json' \
--data-raw 'PREVIOUS_EXPORT_DATA'

How is an import processed?

During the import process, the following tasks are performed:

  • For each module to export, the import method of each of those modules is called.
  • The necessary mappers are executed to adapt the export version to the current server version (if applicable).
  • The objects of each module are validated with json schema.
  • The objects are inserted in the appropriate collection.
flowchart TD
    A[Import] --> B{Are there modules?}
    B --> |Yes| Mappers[Apply mappers]
    Mappers --> Validate[Validate using json schema]
    Validate --> Add[Add to collection]
    Add --> B
    B ---->|No| E[End]

Result of the import process

The import service will respond with an ImportResult type object:

export interface ImportResult {
    version: string;
    fromVersion: string;
    modules: ImportModuleResult[];
    status: ProcessStatus;
}

export interface ImportModuleResult {
    name: string;
    patches?: ImportPatches;
    result: ProcessResult;
}

export enum ProcessStatus {
    Ok = 'Ok',
    Error = 'Error'
}
  • version: Version to which the import has been made.
  • fromVersion: Original import version.
  • modules: array of ImportModuleResult with the result of the import of each module.
  • status: Status with the overall result of the import process. If any module fails the result will be Error.

Database

The database to store the aura-configuration-api information must be named with the following format:

aura-configuration-<ENVIRONMENT_NAME>-<BOT_VERSION>

Example for the ap-next environment and 7.4.0 version:

aura-configuration-ap-next-7-4-0

As a general rule, all those modules that define a DAO will have a collection associated with that module.The currently existing collections are described in the following sections.

Channels collection

This collection stores channel information using channels collection.

Fields

Field name Type Required
name string true
prefix string true
nlp {} true
nlp.enabled boolean true
auraBotCacheTTL number false
id string true
dialogLibraries Array<{}> false
actions {} false
actions.afterLogin {} false
actions.afterLogin.action string false
actions.afterLogin.type string false
actions.afterLogin.data {} false
actions.thirdPartyApp {} false
actions.thirdPartyApp.action string false
actions.thirdPartyApp.type string false
actions.thirdPartyApp.data {} false
actions.thirdPartyApp.contentType string false
rcs {} false
rcs.agentId string true
rcs.clientToken string true
rcs.email string true
rcs.privateKey string true
requestOptions {} false
requestOptions.fileAttachments {} false
requestOptions.fileAttachments.enabled boolean true
requestOptions.fileAttachments.enabledExtensions Array<string[]> false
requestOptions.fileAttachments.customProactiveDialogId string false
requestOptions.fileAttachments.validations {} false
requestOptions.requestOptionsVersion {} false
responseOptions {} false
responseOptions.dialogContext {} false
responseOptions.dialogContext.disabled boolean false
responseOptions.dialogContext.disabledMerge boolean false
responseOptions.dialogContext.normalizeTerms boolean false
responseOptions.dialogContext.defaultListType ’none’,‘ordinalCardinal’,‘ordinal’,‘cardinal’ false
responseOptions.dialogContext.promptChoice {} false
responseOptions.dialogContext.promptChoice.generateList boolean false
responseOptions.dialogContext.promptChoice.generate ’never’,‘always’,‘custom’ false
responseOptions.dialogContext.cardActions {} false
responseOptions.dialogContext.cardActions.generateList boolean false
responseOptions.dialogContext.cardActions.generate ’never’,‘always’,‘custom’ false
responseOptions.dialogContext.returnToClient boolean false
responseOptions.dialogContext.processFromClient boolean false
responseOptions.versions {} false
responseOptions.needsEmptyResponseEvent boolean false
responseOptions.outputMessageFormat ‘custom’,’enrich’,‘html5’,‘simple’,‘voice’ false
responseOptions.sendSpeak boolean false
responseOptions.disambiguationFormat ‘disabled’,‘prompts’,‘suggestions’ false
responseOptions.textConvert boolean false
responseOptions.suggestionType ‘actions’,‘attachment’ false
responseOptions.suggestionsNumber number false
responseOptions.tv.actions Array<Action[]> false
security {} false
security.anonymous ‘anonymous’,‘identifiable’ false
security.allowUserProfile boolean false
security.channelId string false
security.authScopes string true
security.authPurposes string true
security.federatedAuthentication {} false
security.federatedAuthentication.loginUrl string false
security.federatedAuthentication.auraIdSeparator string false
security.federatedAuthentication.loginCallback {} false
security.federatedAuthentication.loginCallback.method string false
security.federatedAuthentication.loginCallback.integrated boolean false
security.federatedAuthentication.loginCallback.endpoint string false
security.federatedAuthentication.loginCallback.queryParams string false
security.federatedAuthentication.loginCallback.headers Array<string[]> false
security.federatedAuthentication.loginCallback.body string false
security.federatedAuthentication.logoutCallback {} false
security.federatedAuthentication.logoutCallback.method string false
security.federatedAuthentication.logoutCallback.integrated boolean false
security.federatedAuthentication.logoutCallback.endpoint string false
security.federatedAuthentication.logoutCallback.queryParams string false
security.federatedAuthentication.logoutCallback.headers Array<string[]> false
security.federatedAuthentication.logoutCallback.body string false
security.termsAndConditions {} false
security.termsAndConditions.authenticated {} false
security.termsAndConditions.authenticated.version string true
security.termsAndConditions.authenticated.service string true
security.termsAndConditions.anonymous {} false
security.termsAndConditions.anonymous.version string true
security.termsAndConditions.anonymous.service string true
whatsapp {} false
whatsapp.client {} false
whatsapp.client.id string true
whatsapp.client.secret string true
whatsapp.client.purposes string false
whatsapp.client.scopes string false
whatsapp.phoneNumber string false
whatsapp.listOptions {} false
whatsapp.listOptions.type ‘button’,’enumeratedList’,’list’ false
whatsapp.listOptions.rules Array<{}> false
whatsapp.type ‘whatsapp’ false
metadata {} false
metadata.version string false
metadata.createdAt string false
metadata.updatedAt string false

Indexes

[
    {
        "version": 1,
        "name": "idx_channel_id",
        "keys": {
            "id": 1
        },
        "unique": true
    },
    {
        "version": 1.1,
        "name": "idx_updated_at",
        "keys": {
            "metadata.updatedAt": -1
        }
    },
    {
        "version": 1,
        "name": "idx_channel_library",
        "keys": {
            "id": 1,
            "dialogLibraries.name": 1
        }
    }
]

skills collection

This collection stores skills information using skills collection.

Fields

Field name Type Required
id string true
name string true
appId string true
skillEndpoint string true
channels Array<string[]> true
disabled boolean false
external boolean false
metadata {} false
metadata.version string false
metadata.createdAt string false
metadata.updatedAt string false

Indexes

[
    {
        "version": 1.1,
        "name": "idx_skill_id",
        "keys": {
            "id": 1
        },
        "unique": true
    },
    {
        "version": 1.1,
        "name": "idx_updated_at",
        "keys": {
            "metadata.updatedAt": -1
        }
    }
]

applications collection

This collection stores applications information using applications collection.

Fields

Field name Type Required
id string true
name string true
brand string true
disabled boolean false
agents string[] false
nlp.channelId string false
models.level Level false
models.presets string[] true
metadata.version string false
metadata.createdAt string false
metadata.updatedAt string false

Types

Type name Type Options
Level string Set the different levels of access for the application. It can only be changed by Aura Global Team

Indexes

[
    {
        "version": 1.5,
        "name": "idx_app_id",
        "keys": {
            "id": 1
        },
        "unique": true
    },
    {
        "version": 1.5,
        "name": "idx_updated_at",
        "keys": {
            "metadata.updatedAt": -1
        }
    }
]

presets collection

This collection stores presets information using presets collection.

Fields

Root
Field name Type Required
id string true
name string true
description string false
group string false
session Session false
generative Generative false
rag Rag false
metadata Metadata false

Types

Action
Field name Type Required
name string true
target string false
params object false
postBack object false
Session
Field name Type Required
session.window number false
session.timeout number false
Generative
Field name Type Required
generative.model.id string false
generative.model.parameters.max_tokens number false
generative.model.parameters.temperature number false
generative.model.parameters.top_p number false
generative.injectionMaxLength number false
generative.prompts.template string false
generative.prompts.preamble.text string false
generative.prompts.preamble.args.name string false
generative.prompts.examples string[] false
generative.prompts.promptRegexClean string false
generative.prompts.promptMaxLength number false
RAG
Field name Type Required
rag.type string false
rag.references.maximum number false
rag.references.baseUrl string false
rag.model.id string false
rag.model.parameters.max_tokens number false
rag.model.parameters.temperature number false
rag.model.parameters.top_p number false
rag.stages.language string false
rag.stages.security.heuristics.example string false
rag.stages.security.maxLength number false
rag.stages.translation.prompt string false
rag.stages.translation.language string false
rag.stages.clean.prompt.default string false
rag.stages.clean.prompt.es string false
rag.stages.context.prompts.recreatedQuestion.default string false
rag.stages.context.prompts.recreatedQuestion.es string false
rag.stages.context.prompts.sameContext.default string false
rag.stages.context.prompts.sameContext.es string false
rag.stages.context.stickyContext string false
rag.stages.retrieval.sourceDataId string false
rag.stages.postFiltering.candidatesPostFiltering string false
rag.stages.postFiltering.prompt.default string false
rag.stages.postFiltering.prompt.es string false
rag.stages.generative.ragStrategy string false
rag.stages.generative.prompts.stuff.default string false
rag.stages.generative.prompts.stuff.es string false
rag.stages.generative.prompts.refine.default string false
rag.stages.generative.prompts.refine.es string false
rag.outputRefine.candidates boolean false
rag.outputRefine.filterOutputMetadata.map.fileType string false
rag.outputRefine.filterOutputMetadata.map.pageNumber string false
rag.outputRefine.filterOutputMetadata.groupBy string false
rag.outputRefine.filterOutputMetadata.aggregate string false
rag.outputRefine.filterOutputMetadata.outputFilter string[] false
rag.outputRefine.filterOutputMetadata.root string[] false
Metadata
Field name Type Required
metadata.version string false
metadata.createdAt string false
metadata.updatedAt string false

Indexes

[
    {
        "version": 1.10,
        "name": "idx_preset_id",
        "keys": {
            "id": 1
        },
        "unique": true
    },
    {
        "version": 1.10,
        "name": "idx_updated_at",
        "keys": {
            "metadata.updatedAt": -1
        }
    },
    {
        "version": 1.10,
        "name": "idx_preset_name",
        "keys": {
            "name": 1
        },
        "unique": true
    }
]

suggestions collection

This collection stores suggestion information using suggestions collection.

Fields

Field name Type Required
id string true
name string true
intent string true
entities Array<{}> true
resources Array<{}> true

Indexes

[ 
    {
        "version": 2.1,
        "name": "idx_suggestion_id",
        "keys": {
            "id": 1
        },
        "unique": true
    },
    {
        "version": 2.1,
        "name": "idx_updated_at",
        "keys": {
            "metadata.updatedAt": -1
        }
    },
    {
        "version": 2.1,
        "name": "idx_suggestion_name",
        "keys": {
            "name": 1
        },
        "unique": true
    }
]

tv-section collection

This collection stores TV Section information using the tv-sections collection.

Fields

Field name Type Required Description
id string true Unique identifier for the TV Section (UUID)
pid string false External or process identifier
name string false Name of the TV Section
canon string false Canonical name of the TV Section
type string false Section type (app or section)
metadata object false Document metadata (version, creation and update dates)
Example of metadata:
Field Type Description
version string Configuration version when the document was created
createdAt string Creation date (ISO 8601)
updatedAt string Update date (ISO 8601)

Indexes

  {
    "version": 2.0,
    "name": "idx_tvsections_id",
    "keys": { "id": 1 },
    "unique": true
  },
  {
    "version": 2.0,
    "name": "idx_tvsections_pid",
    "keys": { "pid": 1 },
    "unique": true
  },
  {
    "version": 2.0,
    "name": "idx_updated_at",
    "keys": { "metadata.updatedAt": -1 }
  },
  {
    "version": 2.0,
    "name": "idx_tvsections_name",
    "keys": { "name": 1 },
    "unique": true
  }
]

agents collection

This collection stores agent information using the agents collection.

Fields

Field name Type Required Description
id string true UUID that identifies the agent univocally in Aura.
name string true Name that identifies the agent univocally in Aura.
description string false Agent description description.
communication object true Communication configuration of the agent. See communication object.
flowConfig object false Configuration of the agent flow.
deploymentName string false Name of the deployment where the agent is running.
metadata object false Document metadata (version, creation and update dates). See metadata object.
communication object (HTTP)
Field Type Description
endpoint string HTTP endpoint where the agent is listening to.
headers object HTTP headers associated with the agent.
communicationType string Communication type (http).
timeout number Timeout for the agent.
retries number Number of retries for the agent.
metadata object
Field Type Description
version string Configuration version when the document was created
createdAt string Creation date (ISO 8601)
updatedAt string Update date (ISO 8601)

Indexes

[
  {
    "version": 2.0,
    "name": "idx_agent_id",
    "keys": { "id": 1 },
    "unique": true
  },
  {
    "version": 2.0,
    "name": "idx_updated_at",
    "keys": { "metadata.updatedAt": -1 }
  },
  {
    "version": 2.0,
    "name": "idx_agent_name",
    "keys": { "name": 1 },
    "unique": true
  }
]

routing filters collection

This collection stores routing filters information using the routing-filters collection.

Fields

Field name Type Required Description
id string true UUID that uniquely identifies a routing filter in Aura.
name string true Name that uniquely identifies a routing filter in Aura.
description string false Routing Filter description.
type string true Contains the type of filter. Currently, there is only one type ‘userId’.
entities string[] true Contains at least one entity necessary to generate the data for the filter.
dataBase object true Contains an object with the collections necessary to store and process data. See database object.
vars object true Contains an object with the custom variables necessary for any phase of the filter. Encrypted field.
fields object true Contains the field mapping for grouping and its relationship with the previously defined entities. Encrypted field.
sourceFilters object false Contains an object to filter source data when loading from entity data. Encrypted field.
match object true Contains an object with the MongoDB aggregation format that must return grouped data. Encrypted field.
summary object true Contains an object with MongoDB command format to insert these obtained aggregates into a summary collection. Encrypted field.
actions object[] true Contains an array of objects with the actions to be performed on the filtered data.
summaryFilter object true Contains an object with MongoDB command format to select the records that meet the filter. Encrypted field.
metadata object false Document metadata (version, creation and update dates). See metadata object.
database object
Field Type Description
dataFilterCollection object Contains an object with the name of the collection for raw data and its expiration in seconds. See filterCollection object.
dataSummaryCollection object Contains an object with the name of the collection for summary data and its expiration in seconds. See filterCollection object.
filterCollection object
Field Type Description
collectionName string Contains the name of the collection.
expiration object Contains the value in seconds of the expiration of the collection data.
indexes object[] A optional array with indexes in mongodb format. Example: [{"seq1": 1}]
metadata object
Field Type Description
version string Configuration version when the document was created
createdAt string Creation date (ISO 8601)
updatedAt string Update date (ISO 8601)

Indexes

[
    {
        "version": 2.2,
        "name": "idx_routing_filter_id",
        "keys": {
            "id": 1
        },
        "unique": true
    },
    {
        "version": 2.2,
        "name": "idx_updated_at",
        "keys": {
            "metadata.updatedAt": -1
        }
    },
    {
        "version": 2.2,
        "name": "idx_routing_filter_name",
        "keys": {
            "name": 1
        },
        "unique": true
    }
]

A example with a complete filter definition

 {
        "name": "preset-filter-stb-conversational-search",
        "id": "4a879583-5f76-4e6b-87c1-6250e8743dda",
        "description": "Limit the number of messages per user in a month for stb conversational search preset",
        "type": "userId",
        "entities": [
            "GATEWAYMESSAGE"
        ],
        "vars": {
            "llm_execution_limit": 10
        },
        "dataBase": {
            "dataFilterCollection": {
                "collectionName": "dataFilterPreset",
                "expiration": 5356800,
                "indexes": [
                    {
                        "seqId": 1
                    }
                ]
            },
            "dataSummaryCollection": {
                "collectionName": "dataSummaryStbConvSearch",
                "expiration": 5356800,
                "indexes": [
                    {
                        "month": 1,
                        "total": 1,
                        "year": 1
                    },
                    {
                        "itemId": 1,
                        "month": 1,
                        "year": 1
                    }
                ]
            }
        },
        "fields": {
            "MatchingValue": "^ef3d0603-3fef-4109-a577-0ab92f9060df$",
            "forId": "USER_ID",
            "forMatchingField": "AURA_PRESET_NAME",
            "forTime": "MESSAGE_TM"
        },
        "sourceFilters": [
            {
                "field": "USER_ID",
                "op": "notEqual",
                "val": ""
            }
        ],
        "match": [
            {
                "$match": {
                    "fieldForMatch": "{{fields.forMatchingField}}",
                    "seqId": {
                        "$gt": "{{ctx.lastSeqId|number}}"
                    },
                    "valueForMatch": {
                        "$options": "i",
                        "$regex": "{{fields.MatchingValue}}"
                    }
                }
            },
            {
                "$group": {
                    "_id": {
                        "itemId": "$itemId",
                        "month": "$month",
                        "year": "$year"
                    },
                    "seqId": {
                        "$max": "$seqId"
                    },
                    "total": {
                        "$sum": 1
                    }
                }
            },
            {
                "$project": {
                    "_id": 0,
                    "itemId": "$_id.itemId",
                    "month": "$_id.month",
                    "seqId": 1,
                    "total": 1,
                    "year": "$_id.year"
                }
            }
        ],
        "summary": {
            "filter": {
                "itemId": "{{doc.itemId}}",
                "month": "{{doc.month|number}}",
                "year": "{{doc.year|number}}"
            },
            "options": {
                "upsert": true
            },
            "update": {
                "$inc": {
                    "total": "{{doc.total|number}}"
                },
                "$set": {
                    "expiresAt": "{{ctx.expiration|expires}}",
                    "month": "{{doc.month|number}}",
                    "updatedAt": "{{__DATE_NOW__}}",
                    "year": "{{doc.year|number}}"
                }
            }
        },
        "summaryFilter": {
            "filter": {
                "month": "{{ctx.month|number}}",
                "total": {
                    "$gt": "{{vars.llm_execution_limit|number}}"
                },
                "year": "{{ctx.year|number}}"
            },
            "options": {
                "projection": {
                    "_id": 0,
                    "itemId": 1,
                    "month": 1,
                    "total": 1,
                    "year": 1
                }
            }
        },
        "metadata": {
            "updatedAt": "2025-10-03T06:06:49.609Z",
            "version": "10.5.0"
        }
    }

2 - Channel module

Aura Configuration API channel module

Description of the channel module in aura-configuration-api

Channel module

The channel module defines services associated with channel management in aura-configuration-api server.

All these services are defined in the channel namespace (/channel).

Servers definition

By default, the servers defined in the swagger include the base path (for v2): /aura-services/v2/configuration.

Therefore, in order to access the services, the base path and service path must be used.

Examples:

  • aura-services/v2/configuration/channels/
  • aura-services/v2/configuration/channels/{channelId}/libraries

Endpoints

Path Method Description
/channels/ GET Get all channels information
/channels/ POST Add a new channel
/channels/{channelId} GET Get channel information using channel id
/channels/{channelId} PUT Replace channel information associated to channel id
/channels/{channelId} PATCH Update some fields of channel information using channel id
/channels/{channelId} DELETE Delete channel information using channel id
/channels/{channelId}/libraries POST Add a new library configuration to channel id
/channels/{channelId}/libraries DELETE Remove all libraries configuration from channel id
/channels/{channelId}/libraries/{libraryId} GET Get library configuration from library id and channel id
/channels/{channelId}/libraries/{libraryId} PUT Replace library configuration associated to library and channel id
/channels/{channelId}/libraries/{libraryId} DELETE Delete library information using library and channel id

You can read the complete documentation of each service in the aura-configuration-api swagger file.

Retrieving information from channels

Retrieving only some fields in channel information

It is possible to get only a specific list of fields for channel information, reducing the amount of data transmitted when necessary, using the includeFields query parameter.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/channels?includeFields=name,prefix' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'

Response example:

[
    {
        "id": "45494a5b-835a-4fff-a813-b3d2be529dbe",
        "name": "novum-mytelco",
        "prefix": "nov"
    }
]

Excluding fields in channel information

It is also possible to exclude channel information fields using the excludeFields query parameter.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/channels?excludeFields=dialogLibraries,nlp,requestOptions,responseOptions' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'

Response example:

[
    {
        "id": "45494a5b-835a-4fff-a813-b3d2be529dbe",
        "name": "novum-mytelco",
        "prefix": "nov",
        "security": {
            "authPurposes": "customer-self-service identify-customer aura-technical-problems-purpose",
            "authScopes": "",
            "channelId": "novum-mytelco"
        },
        "metadata": {
            "updatedAt": "2022-09-06T09:58:19.543Z",
            "version": "7.4.0",
            "createdAt": "2022-09-06T09:58:19.543Z"
        }
    }
]

Database

The complete definition of the data model can be found in the channels collection section in the Administration module.

3 - Component module

Aura configuration API component module

Component module description for aura-configuration-api

Introduction

The component module defines services associated with components management in aura-configuration-api server.

All these services are defined in the components namespace (/components).

Components will be automatically loaded with Aura deployments.

Servers definition

By default, the servers defined in the swagger include the base path (for v2): /aura-services/v2/configuration.

Therefore, in order to access the services, the base path and service path must be used.

Examples:

  • aura-services/v2/configuration/components/
  • aura-services/v2/configuration/components/{name}

Endpoints

Path Method Description
/components/ GET Get all components information
/components/ POST Add a new component
/components/{name} GET Get component information using name
/components/{name} DELETE Delete component information using name

You can read the complete documentation of each service in the aura-configuration-api swagger file.

Retrieving information from components

Retrieving only some fields in component information

It is possible to get only a specific list of fields for component information, reducing the amount of data transmitted when necessary, using the includeFields query parameter.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/components?includeFields=name,prefix' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'

Response example:

[
    {
        "id": "ab09f8af-18e2-46ed-b103-934df78277c0",
        "name": "aura-bot",
    }
]

Excluding fields in components information

It is also possible to exclude components information fields using the excludeFields query parameter.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/components?excludeFields=dialogLibraries,nlp,requestOptions,responseOptions' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'

Response example:

[
    {
        "id": "ab09f8af-18e2-46ed-b103-934df78277c0",
        "name": "aura-bot"
    }
]

Database

The complete definition of the data model can be found in components collection section within the Administration module.

4 - Skill module

Aura configuration API skill module

Skill module description for aura-configuration-api

Introduction

The skill module defines services associated with skills management in aura-configuration-api server.

All these services are defined in the skills namespace (/skills).

Servers definition

By default, the servers defined in the swagger include the base path (for v2): /aura-services/v2/configuration.

Therefore, in order to access the services, the base path and service path must be used.

Examples:

  • aura-services/v2/configuration/skills/
  • aura-services/v2/configuration/skills/{skillId}

Endpoints

Path Method Description
/skills/ GET Get all skills information
/skills/ POST Add a new skill
/skills/{skillId} GET Get skill information using skill id
/skills/{skillId} PUT Replace skill information associated to skill id
/skills/{skillId} PATCH Update some fields of skill information using skill id
/skills/{skillId} DELETE Delete skill information using skill id

You can read the complete documentation of each service in the aura-configuration-api swagger file.

Retrieving information from skills

Retrieving only some fields in skill information

It is possible to get only a specific list of fields for skill information, reducing the amount of data transmitted when necessary, using the includeFields query parameter.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/skills?includeFields=name,skillEndpoint' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'

Response example:

[
    {
        "id": "45494a5b-835a-4fff-a813-b3d2be529dbe",
        "name": "aura-bot-skill-1",
        "skillEndpoint": "http://localhost:8081/api/messages"
    },
    {
        "id": "71b626d0-099f-4184-8abb-b035d3aa4b16",
        "name": "aura-bot-skill-2",
        "skillEndpoint": "http://localhost:8082/api/messages"
    }
]

Excluding fields in skills information

It is also possible to exclude skills information fields using the excludeFields query parameter.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/skills?excludeFields=skillEndpoint,metadata' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'

Response example:

[
    {
        "id": "45494a5b-835a-4fff-a813-b3d2be529dbe",
        "name": "aura-bot-skill-1",
        "apiId": "45494a5b-835a-4fff-a813-b3d2be529asd",
        "channels": ["whatsapp"]
    },
    {
        "id": "71b626d0-099f-4184-8abb-b035d3aa4b16",
        "name": "aura-bot-skill-2",
        "appId": "71b626d0-099f-4184-8abb-b035d3aa4f45",
        "channels": ["novum"]
    }
]

Database

The complete definition of the data model can be found in skills collection section within the administration module.

5 - Application module

Aura configuration API application module

Application module description for aura-configuration-api

Introduction

The application module defines services associated with the management of applications in aura-configuration-api server. Applications are external services that consume Aura services.

All these services are defined in the applications namespace (/applications).

Servers definition

By default, the servers defined in the swagger include the base path (for v2): /aura-services/v2/configuration.

Therefore, in order to access the services, the base path and service path must be used.

Examples:

  • aura-services/v2/configuration/applications/
  • aura-services/v2/configuration/applications/{applicationId}

Endpoints

Path Method Description
/applications/ GET Get all applications information
/applications/ POST Add a new application
/applications/{applicationId} GET Get application information using application id
/applications/{applicationId} PUT Replace application information associated to application id
/applications/{applicationId} PATCH Update some fields of application information using application id
/applications/{applicationId} DELETE Delete application information using application id

You can read the complete documentation of each service in the aura-configuration-api swagger file.

Application model

Below are the main fields of the application model according to the swagger:

Field Type Description
id string Unique identifier of the application
name string Name of the application
brand string Brand associated with the application
nlp object NLP configuration (optional)
models object Models configuration (optional)
metadata object Additional metadata (optional)
agents string[] List of agent identifiers associated with the application
suggestions array Suggestions associated with the application (optional)

Note: The agents field is an array of strings containing the identifiers of the agents associated with the application. The agents referenced must exist in the system to be inserted. If an agent is deleted, all applications referencing it will be updated accordingly.

Example response (GET /applications/{applicationId})

{
  "id": "962fedef-ee1b-470f-b460-b2a78e02bb36",
  "name": "aura-sql",
  "brand": "Movistar",
  "agents": [
    "agent-1",
    "agent-2"
  ],
  "suggestions": [
    {
      "id": "1",
      "category": "suggestions.number-of-households-per-province-category",
      "value": "suggestions.number-of-households-per-province-value"
    }
  ]
}

Example request (POST /applications)

{
  "id": "new-app-id",
  "name": "new-app",
  "brand": "Movistar",
  "agents": ["agent-1", "agent-2"]
}

Retrieving information from applications

Retrieving only some fields in application information

It is possible to get only a specific list of fields for application information, reducing the amount of data transmitted when necessary, using the includeFields query parameter.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/applications?includeFields=name,brand' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'

Response example:

    {
        "id": "8832550f-f03c-4e18-bdbe-7c6fc7adf5ff",
        "name": "app",    
        "brand": "Movistar",
    },
    {
        "id": "8832550f-f03c-4e18-bdbe-7c6fc7adf5fg",
        "name": "app2",    
        "brand": "O2",
    }

Excluding fields in applications information

It is also possible to exclude applications information fields using the excludeFields query parameter.

curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/applications?excludeFields=metadata' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'

Response example:

    {
        "id": "8832550f-f03c-4e18-bdbe-7c6fc7adf5ff",
        "name": "app",
        "disabled": false,
        "brand": "Movistar",
        "agents": [],
        "nlp": {
            "channelId": "1234"
        },
        "models": {
            "level": "user",
            "presets": ["atria-rag-gpt-4"]
        }
    }

Database

The complete definition of the data model can be found in applications collection section within the administration module.