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 |
| 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) |
| 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. |
| 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}] |
| 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.
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"
}
]
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.
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",
}
]
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.
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"
}
]
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"]
}
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",
}
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.