This is the multi-page printable view of this section.
Click here to print.
Return to the regular view of this page.
Aura Configuration API
Aura Configuration API server
aura-configuration-api is the component of Aura in charge of handling and centralizing configuration tasks.
Find in the current documents the description of this component, its architecture, components and processes.
Shared component between Aura Virtual Assistant and ATRIA
Introduction
aura-configuration-api is the component in charge of the management of all the configuration tasks in Aura. It is mainly a web server built on Typescript 4.3 using nodejs as engine. It is api-first designed, using OpenAPI v3 to provide the API definition.
aura-configuration-api server is divided into several modules and plugins, each of them managing different tasks, which are:
Modules
Administration: Administrative management module for general tasks such as exporting and importing configuration.
Channel: Module in charge of managing the configuration of each Aura channel as well as the libraries associated with each channel (replacement for the bot-response.json configuration file).
Skill: Module in charge of managing the configuration of each skill.
Application: Module in charge of managing the configuration of each application.
Component: Module in charge of managing the configuration of each Aura component.
Plugins
Preset: Module in charge of managing the configuration of each preset.
Tv section: Module in charge of managing the configuration of each tv section.
Suggestion: Module in charge of managing the configuration of each suggestions.
Agent: Module in charge of managing the configuration of each agents.
Agent base: Module in charge of managing the configuration of each agents base.
Agent deployment: Module in charge of managing the configuration of each agents deployment.
Routing filter: Module in charge of managing the configuration of each routing filters.
Filter engine: Module in charge of managing filters engine.
Detailed information regarding aura-configuration-api is found in the following documents:
Aura configuration API architecture and components
The following figure shows the main components of the aura-configuration-api.

Server
The web server is implemented using express, which is the main web framework for NodeJS. It uses openapi-backend on top of express, to allow handling the OpenAPI v3 file.
It is in charge of setting up all the rest of the components that are needed during a request processing, as well as reading the aforementioned swagger file and setting up all the routes defined in it.
Middlewares
Each route published in the API definition file is handled by a controller, but before a request lands on its controller, it goes through a series of middlewares that provide some common steps needed by all the controllers of the server.
The following middlewares are executed at each request to the server:
Normal flow
helmet: Secure express app by setting various HTTP headers.
body-parser (urlencoded): It parses URL-encoded bodies using querystring parsing (qs).
body-parser (json): Maximum size of JSON body (current 50 MB).
set-correlator: It sets the correlator to response header and response locals.
log-http-request-response: Log HTTP request and response information.
express-prom-bundle: It saves metrics information using Prometheus.
oas_tools (swaggerMetadata): It interprets swagger resources and attaches metadata to request.
oas_tools (swaggerValidator): It validates requests using swagger definition.
oas_tools (swaggerRouter): It routes validated requests to appropriate controller.
oas_tools (swaggerUi): It serves the swagger documents and Swagger UI.
not-found-handler: It handles requests that have not been routed (Not Found).
Error flow
error-handler: Global error handler.
Controllers & Services
When the previous step is finished, the request lands on the controller. Each controller processes the request through a service, that is in charge of implementing the logic. Once the request has been processed, the controller prepares and sends the response.
There is a controller to manage requests associated with the server itself (generic controller) and a controller for each module, in charge of handling the requests of that module.
The event synchronization service can be enabled by setting the AURA_CONFIGURATION_EVENTS_ENABLED configuration variable to true.
Generic controller
As indicated above, the generic controller handles requests to provide information from the state of the server itself.
healthz: It is used to check if the server is online returning a simple status response: {"status": "ok"}.
metrics: It gets Prometheus metrics information.
heapStatistics: It gets memory usage information.
heapSnapshot: It gets memory head snapshot from v8 engine.
shutdown: Service to be invoked mainly by Kubernetes and allows to do a server graceful shutdown.
Modules controller
The controllers and services information of each module is described in the Modules section.
aura-configuration-api server is divided into several modules and plugins, each of them managing different tasks, which are:
Modules
Administration: Administrative management module for general tasks such as exporting and importing configuration.
Channel: Module in charge of managing the configuration of each Aura channel as well as the libraries associated with each channel (replacement for the bot-response.json configuration file).
Skill: Module in charge of managing the configuration of each skill.
Application: Module in charge of managing the configuration of each application.
Component: Module in charge of managing the configuration of each Aura component.
Access here detailed information of aura-configuration-api modules
Plugins
Preset: Plugin in charge of managing the configuration of each preset.
TV section: Plugin responsible for the management of TV sections.
Suggestion: Plugin responsible for the management of suggestions.
Agent: Plugin in charge of managing the configuration of each agent.
Agent base: Plugin in charge of managing the configuration of each agent base.
Agent Deployment: Plugin responsible for managing the deployment of agents.
Routing filter: Plugin responsible for managing the routing filters.
Engine filter: Plugin responsible for managing the engine filter.
Access here detailed information of aura-configuration-api plugins
Database access
Most aura-configuration-api services access aura-configuration database to get or set the information of each module.
This database is a MongoDB one, with a collection for each module that stores information related to that module. To access this collection, the server implements a data access object with the queries needed by the services. This object follows the DAO (Data Access Object) pattern that provides a single access to the database, isolating the services from the real database schema and internals implementation.
Communication protocol
aura-configuration-api communication protocol is completely synchronous, this means that the answer of a request is included in the HTTP response related to the request.

1 - Environment variables
Aura Configuration API environment variables
List of environment variables handled by Aura Configuration API
- Properties marked in bold are mandatory.
- Properties marked in italics are optional.
| Property |
Type |
Description |
Modifiable by OB? |
| AURA_BRANDS |
string[] |
List of available Telefónica brands configured in Kernel. Check them in the document Telefónica brands management. |
YES |
| AURA_CONFIGURATION_APPLICATIONS_COLLECTION |
string |
Collection name to store Applications information. By default: applications. |
NO |
| AURA_CONFIGURATION_APPLICATIONS_ENCRYPTED_FIELDS |
string[] |
List of fields that will be saved encrypted in a application document. By default: ['callback']. |
YES, but only for adding fields |
| AURA_CONFIGURATION_CHANNELS_COLLECTION |
string |
Collection name to store channel information. By default: channels. |
NO |
| AURA_CONFIGURATION_CHANNELS_ENCRYPTED_FIELDS |
string[] |
List of fields that will be saved encrypted in a channel document. By default: ['security', 'whatsapp']. |
YES, but only for adding fields |
| AURA_CONFIGURATION_COMPONENTS_COLLECTION |
string |
Component name to store component information. By default: components. |
NO |
| AURA_CONFIGURATION_DATABASE_NAME |
string |
Aura channels configuration database name. By default: aura-configuration. |
NO |
| AURA_CONFIGURATION_EVENTS_ENABLED |
boolean |
Enable or disable the service synchronization by events. |
true |
| AURA_CONFIGURATION_MAX_LENGTH_TO_LOG_BODY_FIELD |
number |
Maximum characters length to display body field in logs. By default 1024 characters. |
NO |
| AURA_CONFIGURATION_SERVER_PORT |
number |
Aura channels configuration server port. By default: 8999. |
NO |
| AURA_CONFIGURATION_SKILLS_COLLECTION |
string |
Collection name to store Skills information. By default: skills. |
NO |
| AURA_CONFIGURATION_SKILLS_ENCRYPTED_FIELDS |
string[] |
List of fields that will be saved encrypted in a skill document. By default: []. |
YES, but only for adding fields |
| AURA_CONTACT_CHANNELS |
string[] |
List of contact channels that will be used. |
YES |
| AURA_ENCRYPTION_ALGORITHM |
string |
Encryption algorithm that will be used to validate the APIKey. By default: aes-256-cbc. |
NO |
| AURA_ENCRYPTION_IV_LENGTH |
number |
Size for the initialization vector used by the encryption algorithm that validates the APIKey. By default: 16. |
NO |
| AURA_ENCRYPTION_IV_POSITION |
number |
Position where to insert the initialization vector in the final string with the encrypted payload. By default: 35. |
NO |
| AURA_ENCRYPTION_KEY |
string |
Encryption key or comma-separated list of encryption keys to be used in the environment. It is mainly used to decrypt the APIKeys. |
NO. It would break database encrypted data and APIKey validation. |
| AURA_ENVIRONMENT_NAME |
string |
Name of the environment where aura-bridge is deployed. Used during aura-bridge make-up to handle the indexes of the database properly. For example: ap-next, es-dev, de-pre |
NO |
| AURA_HTTP_PATHS_LOG_DISABLED |
string[] |
Paths to be ignored in the logHttpRequestResponse middleware: By default: ['/metrics']. |
YES |
| AURA_HTTP_MAX_REQUEST_SIZE |
string |
Maximum size of incoming requests bodies in bytes allowed by the server. By default: 20mb. |
YES |
| AURA_LOGGING_FORMAT |
string |
Format to be used in monitoring logs: json or dev (more visual format). By default: json. |
NO. Only for development, set it to dev. |
| AURA_LOGGING_LEVEL |
string |
Level to be used in monitoring logs, from more to less verbose: 'TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL', 'OFF'. By default: INFO. |
YES, for development set it to ‘DEBUG’. In pre/production should be ‘INFO’ or ‘ERROR’. For analysis of an issue in pre/production it may be changed to ‘DEBUG’ |
| AURA_MAKEUP_MODE |
string |
Allow dev mode of the makeup with the value local. By default: full. |
NO |
| AURA_MICROSOFT_AZURE_STORAGE_ACCESS_KEY |
string |
Microsoft Storage password of the deployment. |
NO |
| AURA_MICROSOFT_AZURE_STORAGE_ACCOUNT |
string |
Microsoft Storage account of the environment. |
NO |
| AURA_MICROSOFT_AZURE_STORAGE_AVRO_SCHEMAS_FOLDER |
string |
Contains the Microsoft Azure Storage Avro schemas folder. Default: ‘avro/schemas’. |
NO |
| AURA_MICROSOFT_AZURE_STORAGE_CONFIGURATION_CONTAINER |
string |
Aura configuration container name. Default: ‘aura-configuration’. |
NO |
| AURA_MONGODB_PASSWORD |
string |
MongoDB password to access AURA_MONGODB_BOT_DATABASE in AURA_MONGODB_URI. |
NO |
| AURA_MONGODB_SSL |
boolean |
true if access to AURA_MONGODB_URI is SSL. By default: false. |
NO |
| AURA_MONGODB_URI |
string |
MongoDB URI of the server handling AURA_MONGODB_BOT_DATABASE. |
NO |
| AURA_MONGODB_USERNAME |
string |
MongoDB username to access AURA_MONGODB_BOT_DATABASE in AURA_MONGODB_URI. |
NO |
| AURA_MONGODB_POOL_SIZE |
number |
Number of connections available in MongoDB pool. By default: 60. |
NO |
| AURA_MONGODB_MAX_POOL_SIZE |
number |
Maximum number of connections in the MongoDB pool. By default, 60. |
NO |
| AURA_MONGODB_MIN_POOL_SIZE |
number |
Minimum number of connections in the MongoDB pool. By default, 2. |
NO |
| AURA_MONGODB_MAX_IDLE_TIME_MS |
number |
Maximum idle time in milliseconds for connections in the MongoDB pool. By default, 30000 (30 seconds). |
NO |
| AURA_MONGODB_RETRY_WRITES |
boolean |
true if retry writes are enabled in the MongoDB connection. By default, true. |
NO |
| AURA_MONGODB_RETRY_READS |
boolean |
true if retry reads are enabled in the MongoDB connection. By default, true. |
NO |
| AURA_MONGODB_HEARTBEAT_FREQUENCY_MS |
number |
Frequency in milliseconds of the heartbeat in the MongoDB connection. By default, 2000 (2 seconds). |
NO |
| AURA_MONGODB_SERVER_SELECTION_TIMEOUT_MS |
number |
Timeout in milliseconds for server selection in the MongoDB connection. By default, 5000 (5 seconds). |
NO |
| AURA_MONGODB_SOCKET_TIMEOUT_MS |
number |
Timeout in milliseconds for socket operations in the MongoDB connection. By default, 45000 (45 seconds). |
NO |
| AURA_CONNECTION_TIMEOUT_MS |
number |
Timeout in milliseconds for establishing a connection to the MongoDB server. By default, 10000 (10 seconds). |
NO |
| AURA_MONGODB_READ_PREFERENCE |
string |
Read preference for the MongoDB connection. By default, primaryPreferred. Possible values: primary, primaryPreferred, secondary, secondaryPreferred, nearest. |
NO |
| AURA_REDIS_CONFIGURATION_PREFIX |
String |
Prefix for the key in Redis used to store configuration values. By default: aura-config:. |
No |
| AURA_REDIS_CONNECTION_POOL_MIN |
Number |
Minimum number of connections in the pool. Default: 2. |
No |
| AURA_REDIS_CONNECTION_POOL_MAX |
Number |
Maximum number of connections in the pool. Default: 100. |
|
| AURA_REDIS_DATABASE |
Number |
Database number for Single or Sentinel mode. By default: 0. |
|
| AURA_REDIS_HOSTS |
String |
String with a list of nodes (host:port) separated by comma. For example: “localhost:port,localhost2:port2”. Default: ‘127.0.0.0:6379’ |
No |
| AURA_REDIS_MAX_RECONNECT_INTERVAL |
Number |
Time in milliseconds to wait before reconnecting to Redis. By default: 5000. |
No |
| AURA_REDIS_MAX_RECONNECT_RETRIES |
Number |
Number of retries to connect to Redis. By default: 25. |
No |
| AURA_REDIS_MODE |
String |
Mode of Redis distribution. Values: Cluster, Sentinel or Single. By default: Single. |
No |
| AURA_REDIS_PASSWORD |
String |
A string with the password of Redis. |
No |
| AURA_REDIS_SENTINEL_INSTANCE_NAME |
String |
Name of the Redis instance. Used in Sentinel mode. |
No |
| AURA_REDIS_USE_CONNECTION_POOL |
Boolean |
Flag to indicate the use of a connection pool for Redis connections. Default: true. |
No |
| AURA_SERVER_REMOTE_CONTAINER_PREFIX |
string |
Remote container prefix. Default: aura-configuration-api. |
NO |
| AURA_SWAGGER_FROM_REMOTE |
boolean |
It indicates that swagger configuration will be loaded from remote. Default: true. |
NO |
| AURA_SWAGGER_LOCAL_PATH |
string |
Swagger local path. Default: swagger.yaml. |
NO |
| AURA_SWAGGER_PLUGIN_PATH |
string |
Swagger plugin path. Default: swagger.yaml. |
NO |
| AURA_SWAGGER_LOCAL_CORE_PATH |
string |
Swagger local core path. Default: swagger-core.yaml. |
NO |
| AURA_SWAGGER_REMOTE_CONTAINER_PREFIX |
string |
Remote container prefix to store the swagger information. Default: swagger. |
NO |
| AURA_SHUTDOWN_GRACEFUL_TTL |
number |
Time in milliseconds to complete the SHUTDOWN signal and process all the messages in queue before SIGTERM. By default: 25 * 1000. |
YES |
| AURA_VERSION |
string |
Aura release |
NO |
2 - Synchronization by events
Synchronization by events
Description of the synchronization by events process
Introduction
Event-driven synchronization is a system that allows updating the configuration of any module in the components in real time.
This is done through events, which are emitted when a certain module modifies its configuration data, and allows the Aura components that are subscribed to the events to update their configuration in real time.
The synchronization by events operates as follows:
- A service updates a certain configuration element.
- The new updated data is stored in MongoDB.
- An Event is published by the Event Manager. The current system supports two Event Managers, Redis Pub/Sub and DAPR.
When the event is issued, the services subscribed to the configuration events receive the Event.
- The changes are requested through the aura-configuration-api.
Event management can be activated or deactivated in both the event transmission and reception parts. The environment variable that has the aura-configuration-api and the components that support this system is called AURA_CONFIGURATION_EVENTS_ENABLED. The environment variable AURA_CONFIGURATION_EVENTS_MANAGER determines the engine used for event handling, possible values are “REDIS” or “DAPR”.
Using Redis as Event Manager
Publishers and subscribers
In order for a component to update the configuration data that has been modified by another service, two types of elements are required:
- Publishers, which are the ones that notify of the change
- Subscribers, which are the ones that will receive an event indicating that a change has occurred and where it has taken place.
All this is managed through the broadcasting of events in Redis through a specific channel using the Pub/Sub module.
Channel
The name of the channel has the following structure:
[AURA_REDIS_DATABASE]__:[AURA_REDIS_CONFIGURATION_PREFIX][ConfigCollectionName]*
This pattern will be used by most of the current components. If any of them need to manage identifiers within the channel, such as Agents, they will be subscribed to the channel:
[AURA_REDIS_DATABASE]__:[AURA_REDIS_CONFIGURATION_PREFIX][ConfigCollectionName]:[Id]
Being:
AURA_REDIS_DATABASE: Environment variable with the number of database in Redis.
AURA_REDIS_CONFIGURATION_PREFIX: Environment variable whose default value is aura-config.
ConfigCollectionName: One of the following values: ChannelConfiguration, ApplicationConfiguration, SkillConfiguration, TvSectionsConfiguration, PresetConfiguration, AgentConfiguration.
Example:
1__:aura-config:ChannelConfiguration
Event Message
When the event is sent, it has the following format:
{
collection: [ConfigCollectionName]
op: [OPERATION];
id: [IDENTIFIER];
configData: [CONFIGURATION_DATA];
metadata: [EVENT_METADATA] (Dapr)
pubSubName: [DAPR_PUBSUB_NAME]; (Dapr)
crc: [INTEGRITY]; (Not implemented)
}
The different types of operations are (EventConfigOperation):
Create: When a record is created in the configuration. It will carry the identifier of the new record.
Update: When a record is modified in the configuration. It will carry the identifier of the updated record.
Delete: When a record is deleted in the configuration. It will carry the identifier of the deleted record.
The configuration data contains the updated or new configuration data. This field is not mandatory, and if the configuration data is empty the subscriptor refreshes its configuration calling directly the configuration API.
Examples:
Without configuration data
{
"op":Create",
"id":"88834434"
}
With configuration data
{
"op":Create",
"id":"88834434",
"configData":
{
"name":"Expample1",
"id":"88834434",
....
}
}
Publishers
The publishers are inside the aura-configuration-api.
When one of the configuration models writes to the MongoDB database, the event must be generated through Redis. This is done by instantiating an element of the RedisEventPublisher class. The creation of these update records in Redis has two requirements that must be met:
- The API must contain an endpoint to obtain all the data from the model named
GetAll.
- The API must contain an endpoint to obtain an element of the model selected by its identifier named
GetById.
To write the records in Redis that will generate the events, we will use the DAO of the model, specifically the method writeConfigurationEvent that is in charge of generating the registry for the event in Redis.
// aura-configuration-api/src/common/dao.ts
/**
* Write configuration event.
* @param {EventConfigOperation} operation Operation type
* @param {string} id Id of the configuration
* @param {T} data Data to write
* @param {KeyValueType} metadata Metadata to write
*/
protected async writeConfigurationEvent(operation: EventConfigOperation, id?: string, data?: T, metadata?: KeyValueType) {
this.configurationEventPublish.op = operation;
this.configurationEventPublish.id = id;
this.configurationEventPublish.configData = data;
this.configurationEventPublish.metadata = Object.assign({}, this.configurationEventPublish.metadata, metadata);
await this.eventPublisher.publish(this.configurationEventPublish);
}}
The eventPublisher can be one of Redis or DAPR. For Redis, the class with the methods to publish the event is included in /aura-configuration-api/src/utils/event-publishers/redis-event-publisher.ts
Generate events
When an event is generated, the operation that has been performed is indicated with the identifier of the record affected by the change.
/**
* Update channel.
*
* @throws {NoDataError} When it hasn't been updated
* @throws {Error} When channel is invalid
* @param {ChannelConfiguration} channel Channel configuration
*/
public async update(channel: ChannelConfiguration) {
channel.metadata = {
...(await this.channelCollection.findOne<ChannelConfiguration>(
{ id: channel.id }, { projection: { metadata: 1 } })
)?.metadata,
...channel.metadata
};
const updateResult = await this.channelCollection.replaceOne(
{ id: channel.id }, this.prepareChannelToInsert(channel));
if (updateResult?.modifiedCount === 0) {
throw new NoDataError(`Channel with id: ${channel.id} cannot be found`);
} else {
await this.writeConfigurationEvent(EventConfigOperation.Update, channel.id);
}
}
Subscribers
Subscribers are inside the aura-utilities/aura-configuration library, and are the clients of each of the models in the aura-configuration-api.
These subscribers inherit their class from a base class BaseConfiguration that contains the necessary methods to manage the data. Some methods are common to all and others are specific. They include methods to manage the data locally, that is, if we receive the content of the changes in the event itself, we should be able to apply them on the current module without having to call the aura-configuration-api* to obtain them.
An example for the method of point 3 could be the following:
/**
* Update channel configuration.
*
* @param {Configuration} configuration Configuration object.
* @param {EventConfigModel} message Event configuration model.
* @returns {Promise<void>} Promise.
*/
public async updateConfiguration(message: EventConfigModel<T>): Promise<void> {
try {
this.logger.debug({
msg: 'UpdateChannelConfiguration executed', message,
corr: CorrelatorUtil.auraSystem
});
switch (message.op) {
case EventConfigOperation.Create:
try {
await this.createConfigurationById(message);
} catch (error) {
// if there is an error updating a single channel, update all the config with the current values
await this.load();
}
break;
case EventConfigOperation.Update: {
try {
await this.updateConfigurationById(message);
} catch (error) {
// if there is an error updating a single channel, update all the config with the current values
await this.load();
}
}
break;
case EventConfigOperation.Delete:
if (this.removeLocal(message.id)) {
this.logger.debug({
msg: `Channel removed with id: ${message.id}`, corr: CorrelatorUtil.auraSystem
});
} else {
this.logger.warning({
msg: `Channel not found to remove with id: ${message.id}`, corr: CorrelatorUtil.auraSystem
});
await this.load();
}
break;
default:
this.logger.warning({
msg: `Unknown operation: ${message.op} for configuration update: ${message.id}`,
corr: CorrelatorUtil.auraSystem
});
break;
}
} catch (error) {
this.logger.error({
msg: 'updateChannelConfiguration failed.', error: error.message, stck: error,
corr: CorrelatorUtil.auraSystem
});
}
}
The methods createConfigurationById and updateConfigurationById contain the logic to apply the changes locally or through the aura-configuration-api*.
/**
* Create channel configuration by id.
* @param {Configuration} configuration Configuration object.
* @param {EventConfigModel<ChannelConfiguration>} message Event configuration model.
* @returns {Promise<void>} Promise.
*/
private async createConfigurationById(message: EventConfigModel<T>): Promise<void> {
// if the message has the configuration data, create the channel directly.
if (message.configData && this.addLocal(message.configData)) {
this.logger.debug({
msg: `Channel added with new configuration: ${message.id}`, corr: CorrelatorUtil.auraSystem
});
} else {
await this.loadById(message.id);
}
}
Using DAPR as Event Manager
Publishers and subscribers
In order for a component to update the configuration data that has been modified by another service, two types of elements are required:
- Publishers, which are the ones that notify of the change.
- Subscribers, which are the ones that will receive an event indicating that a change has occurred and where it has taken place.
All this is managed through DAPR Pub/Sub block. The engine selected to manage the PubSub is Redis. Unlike the pure PubSub management in Redis, which has the problem that if a subscriber does not receive the event, it will not be resent, with DAPR this does not happen since it takes care of the Event lifetime internally and manages the retries if needed.
Channel
In the DAPR Pub/Sub block, the concept of a channel is not applicable. In order to subscribe to an event, the name of the Pub/Sub module and the topic to be subscribed are required.
pubsubname: AURA_DAPR_CONFIGURATION_PUBSUB_NAME
topic: ConfigCollectionName
Being:
AURA_DAPR_CONFIGURATION_PUBSUB_NAME: Name of PubSub module defined in DAPR for Configuration Events.
ConfigCollectionName: One of the following values: ChannelConfiguration, ApplicationConfiguration, SkillConfiguration, TvSectionsConfiguration, PresetConfiguration, AgentConfiguration.
Event Message
DAPR uses a global event management model called CloudEvents. CloudEvents is a specification for describing event data in common formats to provide interoperability across services, platforms and systems.
For compatibility reasons with the Event Managr in Redis, the name of the model used for Redis has been included within the field data of CloudEvents.
Example CloudEvent
{
"data": {
"collection": "ChannelConfiguration",
"id": "c71dc728-5fe2-4735-927d-0c419b35ec59",
"metadata": {
"ttlInSeconds": "60"
},
"op": "Update",
"pubSubName": "pubsub-config-ap-four"
},
"datacontenttype": "application/json",
"expiration": "2025-06-30T08:16:05Z",
"id": "a8340fb8-9071-4da9-91d6-7a14a409d459",
"pubsubname": "pubsub-config-ap-four",
"source": "aura-configuration-api",
"specversion": "1.0",
"time": "2025-06-30T08:15:05Z",
"topic": "ChannelConfiguration",
"traceid": "00-00000000000000000000000000000000-0000000000000000-00",
"traceparent": "00-00000000000000000000000000000000-0000000000000000-00",
"tracestate": "",
"type": "com.dapr.event.sent"
}
Inside the data property, it has the following format:
{
collection: [ConfigCollectionName]
op: [OPERATION];
id: [IDENTIFIER];
configData: [CONFIGURATION_DATA];
metadata: [EVENT_METADATA] (Dapr)
pubSubName: [DAPR_PUBSUB_NAME]; (Dapr)
crc: [INTEGRITY]; (Not implemented)
}
The different types of operations are (EventConfigOperation):
Create: When a record is created in the configuration. It will carry the identifier of the new record.
Update: When a record is modified in the configuration. It will carry the identifier of the updated record.
Delete: When a record is deleted in the configuration. It will carry the identifier of the deleted record.
The configuration data contains the updated or new configuration data. This field is not mandatory and if the configuration data is empty, the subscriptor refreshes its configuration calling the aura-configuration-api.
The metadata is used to manage the behavior of the event. In this case it uses a { "ttlInSeconds": "60" } to set the expiration time of the event.
The pubSubName contains the AURA_DAPR_CONFIGURATION_PUBSUB_NAME.
Examples:
Without configuration data:
{
"collection": "ChannelConfiguration",
"id": "c71dc728-5fe2-4735-927d-0c419b35ec59",
"metadata": {
"ttlInSeconds": "60"
},
"op": "Update",
"pubSubName": "pubsub-config-ap-four"
}
With configuration data:
{
"collection": "ChannelConfiguration",
"id": "c71dc728-5fe2-4735-927d-0c419b35ec59",
"metadata": {
"ttlInSeconds": "60"
},
"op": "Update",
"pubSubName": "pubsub-config-ap-four",
"configData":
{
"name":"Expample1",
"id":"88834434",
....
}
}
Publishers
The publishers are inside the aura-configuration-api.
When one of the configuration models writes to the MongoDB database, the event must be generated through Redis. This is done by instantiating an element of the RedisEventPublisher class. The creation of these update records in Redis has two requirements that must be met:
- The API must contain an endpoint to obtain all the data from the model named
GetAll.
- The API must contain an endpoint to obtain an element of the model selected by its identifier named
GetById.
To write the records in Redis that will generate the events, we will use the DAO of the model.
The method writeConfigurationEvent generates the registry for the event in Redis.
// aura-configuration-api/src/common/dao.ts
/**
* Write configuration event.
* @param {EventConfigOperation} operation Operation type
* @param {string} id Id of the configuration
* @param {T} data Data to write
* @param {KeyValueType} metadata Metadata to write
*/
protected async writeConfigurationEvent(operation: EventConfigOperation, id?: string, data?: T, metadata?: KeyValueType) {
this.configurationEventPublish.op = operation;
this.configurationEventPublish.id = id;
this.configurationEventPublish.configData = data;
this.configurationEventPublish.metadata = Object.assign({}, this.configurationEventPublish.metadata, metadata);
await this.eventPublisher.publish(this.configurationEventPublish);
}
The eventPublisher can be Redis or DAPR. For DAPR, the class with the methods to publish the event is in /aura-configuration-api/src/utils/event-publishers/dapr-event-publisher.ts
Generate events
When an event is generated, the operation that has been performed is indicated with the identifier of the record affected by the change.
/**
* Update channel.
*
* @throws {NoDataError} When it hasn't been updated
* @throws {Error} When channel is invalid
* @param {ChannelConfiguration} channel Channel configuration
*/
public async update(channel: ChannelConfiguration) {
channel.metadata = {
...(await this.channelCollection.findOne<ChannelConfiguration>(
{ id: channel.id }, { projection: { metadata: 1 } })
)?.metadata,
...channel.metadata
};
const updateResult = await this.channelCollection.replaceOne(
{ id: channel.id }, this.prepareChannelToInsert(channel));
if (updateResult?.modifiedCount === 0) {
throw new NoDataError(`Channel with id: ${channel.id} cannot be found`);
} else {
await this.writeConfigurationEvent(EventConfigOperation.Update, channel.id);
}
}
Subscribers
Subscribers in DAPR can be created in several ways. In this case, the “Programatic” type is used, that is, we are going to include an endpoint in our components so that DAPR can subscribe them to the PubSub. The endpoint (/dapr/subscribe) must respond with a subscription model that contains the pubSubName, the topic and the endpoint that is going to be in charge of processing the event. This type of subscription forces us to define 2 methods for DAPR.
Example:
/**
* Dapr Subscriptions.
*
*/
public daprSubscriptions() {
this.app.get('/dapr/subscribe', (request: express.Request, response: express.Response) => {
const subscriptions =
[
{
pubsubname: ConfigurationManager.instance.environmentConfiguration.AURA_DAPR_CONFIGURATION_PUBSUB_NAME,
topic: ConfigCollectionName.ChannelConfiguration,
routes: {
default: '/dapr/processConfigurationEvents',
}
}
];
response.status(200).send(subscriptions);
});
}
In the previous example, we are going to subscribe to one topic, that will receive the events about the channel configuration collection.
Once the event is received, we can use the same library that we use in Redis, aura-utilities/aura-configuration, since we share the data model.
Example:
/**
* Process configuration events.
*
*/
public processConfigurationEvents() {
this.app.post('/dapr/processConfigurationEvents', async (request: express.Request, response: express.Response) => {
try {
const event = HTTP.toEvent({ headers: request.headers, body: request.body.toString() });
const cloudEvent = (event || {}) as CloudEvent;
const configModel = (cloudEvent.data || {}) as EventConfigModel<ChannelConfiguration>;
switch (configModel.collection) {
case ConfigCollectionName.ChannelConfiguration:
// Update current channels configuration
this.logger.debug({
msg: 'Processing channel configuration events',
corr: CorrelatorUtil.auraSystem
});
await AuraCurrentChannelsConfiguration.instance
.updateConfiguration(configModel as EventConfigModel<ChannelConfiguration>);
break;
default:
this.logger.warning({
msg: `Unknown collection in configuration event: ${configModel.collection}`,
corr: CorrelatorUtil.auraSystem
});
}
response.status(200).send({ status: DaprResponseStatus.SUCCESS });
} catch (error) {
this.logger.error({
msg: 'Error processing configuration events',
error: error.message,
corr: CorrelatorUtil.auraSystem
});
response.status(500).json({ status: DaprResponseStatus.DROP, error: 'Internal Server Error' });
}
});
}
It is important to indicate in the reponse that the event has been successfully processed.
3 - 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.
3.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"
}
}
3.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.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.
3.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.
3.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.
4 - Plugins
Aura Configuration API plugins
Description of the different plugins that compose Aura Configuration API
Introduction
Currently, aura-configuration-api contains the following plugins:
Preset plugin
Plugin responsible for managing all the information related to channels, including the configuration of each Aura preset, as well as the libraries associated with each preset.
- Add preset
- Delete preset by id
- Get preset by id
- Get all presets
- Modify preset
- Update preset
Access detailed information about the preset plugin.
TV section plugin
Plugin responsible for managing all the information related to TV Sections.
- Add TV section
- Delete TV section by id
- Get TV section by id
- Get all TV sections
- Modify TV section
- Update TV section
Access detailed information about the TV section plugin.
Agent plugin
Plugin responsible for the management of agents.
Access detailed information about the agent plugin.
Agent base plugin
Plugin responsible for the management of agents base.
Access detailed information about the agent base plugin.
Agent deployment plugin
Plugin responsible for managing the deployment of agents.
Access detailed information about the agent deployment plugin.
Routing filter plugin
Plugin responsible for managing the routing filters.
Access detailed information about the routing filter plugin.
Filter engine plugin
Plugin responsible for managing the engine routing filters.
Access detailed information about the engine filter plugin.
4.1 - Preset plugin
Preset plugin
Preset plugin description for aura-configuration-api
Introduction
The preset plugin defines services associated with the management of presets in aura-configuration-api server.
All these services are defined in the presets namespace (/presets).
Servers definition
By default, the servers defined in the swagger include the base path (for v1):
/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/presets
- aura-services/v2/configuration/presets/{presetId}
Endpoints
| Path |
Method |
Description |
| /presets/ |
GET |
Get all presets information |
| /presets/ |
POST |
Add a new preset |
| /presets/{presetId} |
GET |
Get preset information using preset id |
| /presets/{presetId} |
PUT |
Replace preset information associated to preset id |
| /presets/{presetId} |
PATCH |
Update some fields of preset information using preset id |
| /presets/{presetId} |
DELETE |
Delete preset information using preset 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 preset 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/presets?includeFields=id,name,generative' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'
Response example:
[
{
"id": "ab744582-c5a6-48e1-95bb-f509bdb55512",
"name": "preset_2",
"generative": {
"model": {
"id": "gpt-4o-mini",
"parameters": {
"top_p": 1,
"max_tokens": 250,
"temperature": 1
}
},
"prompts": {
"template": "string",
"preamble": {
"text": "Hola.",
"args": {
"brand": "Movistar",
"country": "Spain",
"year": "2024"
}
},
"promptMaxLength": 1500
}
}
}
]
It is also possible to exclude presets information fields using the excludeFields query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/presets?excludeFields=generative,metadata' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Response example:
[
{
"id": "ab744582-c5a6-48e1-95bb-f509bdb55512",
"name": "preset_2",
"session": {
"window": 8
}
}
]
Database
The complete definition of the data model can be found in presets collection section within the administration module.
4.2 - TV section plugin
TV section plugin
TV section plugin description for aura-configuration-api
Introduction
The tv-section plugin defines services associated with the management of TV sections in aura-configuration-api server.
All these services are defined in the tv-sections namespace (/tv/sections).
Servers definition
By default, the servers defined in the swagger include the base path (for v1):
/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/tv/sections
- aura-services/v2/configuration/tv/sections/{tvSectionId}
Endpoints
| Path |
Method |
Description |
| /tv/sections/ |
GET |
Get all TV section information |
| /tv/sections/ |
POST |
Add a new TV section |
| /tv/sections/{tvSectionId} |
GET |
Get TV section information using TV section id |
| /tv/sections/{tvSectionId} |
PUT |
Replace TV section information associated to TV section id |
| /tv/sections/{tvSectionId} |
PATCH |
Update some fields of TV section information using TV section id |
| /tv/sections/{tvSectionId} |
DELETE |
Delete TV section information using TV section 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 TV section 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/tv/sections?includeFields=id,name,canon' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'
Response example:
[
{
"id": "ab744582-c5a6-48e1-95bb-f509bdb55512",
"name": "tv-section-pid-1",
"canon": "tv-section-canon"
}
]
It is also possible to exclude TV section information fields using the excludeFields query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/tv/sections?excludeFields=metadata,name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Response example:
[
{
"id": "ab744582-c5a6-48e1-95bb-f509bdb55512",
"pid": "tv-section-pid-1"
}
]
Database
The complete definition of the data model can be found in TV section collection section within the administration module.
4.3 - Agent base plugin
Agent base plugin
Agent base plugin description for aura-configuration-api
Introduction
The agent-base plugin defines services associated with the management of agents base in aura-configuration-api server.
All these services are defined in the agents-base namespace (/agents-base).
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/agents-base
- aura-services/v2/configuration/agents-base/{agentBaseId}
Endpoints
| Path |
Method |
Description |
| /agents-base/ |
GET |
Get all agent base information |
| /agents-base/ |
POST |
Add a new agent base |
| /agents-base/{agentBaseId} |
GET |
Get agent base information using agent base id |
| /agents-base/{agentBaseId} |
PUT |
Replace agent base information associated to agent base id |
| /agents-base/{agentBaseId} |
PATCH |
Update some fields of agent base information using agent base id |
| /agents-base/{agentBaseId} |
DELETE |
Delete agent base information using agent base id |
You can read the complete documentation of each service in the aura-configuration-api agent base swagger file.
It is possible to get only a specific list of fields for agent base 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/agents-base?includeFields=id,name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'
Response example:
[
{
"id": "cd2b534c-16c3-4d89-a87e-ec45d3939232",
"name": "device-recommender-agent",
}
]
It is also possible to exclude agent base information fields using the excludeFields query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/agents-base?excludeFields=metadata,name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Response example:
[
{
"id": "cd2b534c-16c3-4d89-a87e-ec45d3939232",
"description": "An AI agent built with langgraph that provides personalized recommendations about devices by querying and analyzing data stored in a MongoDB database.",
"language": "python",
"version": "1.0.0"
}
]
It is possible to filter agent base information using the filter query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/agents-base?filter=language:python' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Database
The complete definition of the data model can be found in agent base collection section within the administration module.
4.4 - Agent deployment plugin
Agent deployment plugin
Agent Deployment plugin description for aura-configuration-api
Introduction
The agent-deployment plugin defines services associated with the management of agents base in aura-configuration-api server.
All these services are defined in the _agents-deployment namespace (/agents-deployment).
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/agents-deployment
- aura-services/v2/configuration/agents-deployment/{agentDeploymentId}
Endpoints
| Path |
Method |
Description |
| /agents-deployment/ |
GET |
Get all agent deployment information |
| /agents-deployment/ |
POST |
Add a new agent deployment |
| /agents-deployment/{agentDeploymentId} |
GET |
Get agent deployment information using agent deployment id |
| /agents-deployment/{agentDeploymentId} |
PUT |
Replace agent deployment information associated to agent deployment id |
| /agents-deployment/{agentDeploymentId} |
PATCH |
Update some fields of agent deployment information using agent deployment id |
| /agents-deployment/{agentDeploymentId} |
DELETE |
Delete agent deployment information using agent deployment id |
You can read the complete documentation of each service in the aura-configuration-api agent deployment swagger file.
It is possible to get only a specific list of fields for agent deployment 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/agents-deployment?includeFields=id,name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'
Response example:
[
{
"id": "cd2b534c-16c3-4d89-a87e-ec45d3939232",
"name": "mongo-device-recommender-agent",
}
]
It is also possible to exclude agent deployment information fields using the excludeFields query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/agents-deployment?excludeFields=metadata,name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Response example:
[
{
"id": "1870fa4a-bcc4-4a7c-88fc-c0194555a076",
"config": {},
"secrets": {},
"image": "auraregistry.azurecr.io/aura/atria-agent-mongo-devices-recommender",
"tag": "1.0.0"
}
]
It is possible to filter agent deployment information using the filter query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/agents-deployment?filter=tag:1.0.0' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Database
The complete definition of the data model can be found in agent deployment collection section within the administration module.
4.5 - Agent plugin
Agent plugin
Agent plugin description for aura-configuration-api
Introduction
The agent plugin defines services associated with the management of agents in aura-configuration-api server.
All these services are defined in the agents namespace (/agents).
Servers definition
By default, the servers defined in the swagger include the base path (for v1):
/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/agents
- aura-services/v2/configuration/agents/{agentId}
Endpoints
| Path |
Method |
Description |
| /agents/ |
GET |
Get all agent information |
| /agents/ |
POST |
Add a new agent |
| /agents/{agentId} |
GET |
Get agent information using agent id |
| /agents/{agentId} |
PUT |
Replace agent information associated to agent id |
| /agents/{agentId} |
PATCH |
Update some fields of agent information using agent id |
| /agents/{agentId} |
DELETE |
Delete agent information using agent id |
You can read the complete documentation of each service in the aura-configuration-api agent swagger file.
It is possible to get only a specific list of fields for agent 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/agents?includeFields=id,name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'
Response example:
[
{
"id": "ab744582-c5a6-48e1-95bb-f509bdb55512",
"name": "agent-pid-1"
}
]
It is also possible to exclude agent information fields using the excludeFields query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/agents?excludeFields=metadata,name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Response example:
[
{
"id": "ab744582-c5a6-48e1-95bb-f509bdb55512",
"name": "agent-pid-1"
}
]
Database
The complete definition of the data model can be found in Agent collection section within the administration module.
4.6 - Suggestion Plugin
Aura Configuration API Suggestion plugin
Description of the suggestion plugin in aura-configuration-api
suggestion plugin
The suggestion plugin defines services associated with suggestions management in aura-configuration-api server.
All these services are defined in the suggestions namespace (/suggestions).
Servers definition
By default, the servers defined in the swagger include the base path (for v1):
/aura-services/v1/configuration.
Therefore, in order to access the services, the base path and service path must be used.
Examples:
- aura-services/v1/configuration/suggestions/
Endpoints
| Path |
Method |
Description |
| /suggestions/ |
GET |
Get all suggestions information |
| /suggestions/ |
POST |
Add a new suggestion |
| /suggestions/ |
DELETE |
Delete all suggestions information |
| /suggestions/{suggestionId} |
GET |
Get suggestions information by suggestion id |
| /suggestions/{suggestionId} |
PUT |
Replace suggestion information using suggestion id |
| /suggestions/{suggestionId} |
PATH |
Updates some fields of suggestion information |
| /suggestions/{suggestionId} |
DELETE |
Delete suggestions information by suggestions id |
You can read the complete documentation of each service in the aura-configuration-api swagger file.
Getting suggestions
It is possible to get only a specific list of fields for suggestion 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/v1/configuration/suggestions?includeFields=name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Response example:
[
{
"id": "29d80c0e-dbe8-4e40-882b-fef148748cf2",
"name": "intent-tv-question_time_loc-ent-audiovisual_sports_team-valencia",
}
]
It is also possible to exclude suggestion information fields using the excludeFields query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v1/configuration/suggestions?excludeFields=entities' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Response example:
[
{
"id" : "29d80c0e-dbe8-4e40-882b-fef148748cf2",
"intent" : "intent.tv.question_time_loc",
"name" : "intent-tv-question_time_loc-ent-audiovisual_sports_team-valencia",
"entities" : [
{
"canon" : "valencia",
"entity" : "Valencia",
"label" : "",
"score" : 1,
"type" : "ent.audiovisual_sports_team"
}
],
"resources" : [
{
"name" : "tv.searchSportContentByChannel.suggestion.title",
"params" : {
"teams" : "Valencia"
},
"type" : "title"
},
{
"name" : "tv.searchSportContentByChannel.suggestion.button",
"params" : {
"teams" : "Valencia"
},
"type" : "button"
}
]
}
]
Database
The complete definition of the data model can be found in suggestions collection section in the Administration plugin.
4.7 - Engine filter API plugin
Aura configuration API engine filter plugin
Engine filter API plugin description for aura-configuration-api
Introduction
The engine filter plugin defines services associated with the management of engine filter in aura-configuration-api server.
All these services are defined in the routing-filters namespace (/routing-filters).
Servers definition
By default, the servers defined in the swagger include the base path (for v2):
/aura-services/v2.
Therefore, in order to access the services, the base path and service path must be used.
Examples:
- aura-services/v2/configuration/routing-filters/summary/{filterType}
- aura-services/v2/configuration/routing-filters/{filterId}/items/{itemId}
Endpoints
| Path |
Method |
Description |
| /routing-filters/summary/{filterType} |
GET |
Get all summary for filter by type. |
| /routing-filters/entities/files |
POST |
Add entity data to engine filter. |
| /routing-filters/{filterId}/items/{itemId} |
GET |
Obtain the elements that have fulfilled the given filter for an itemId. |
You can read the complete documentation of each service in the aura-configuration-api swagger file.
Engine filters steps
When a filter has been created, it is associated to one or more entities. Each time data is uploaded from a service for one of these entities, this data is also uploaded to the dataFilterCollection via the /routing-filters/entities/files endpoint.
This data is stored in the filter’s raw data collection and is periodically processed to obtain the summaries that are stored in the filter’s dataSummaryCollection.
This processing period is defined by the AURA_ROUTING_FILTER_SUMMARY_GENERATION_INTERVAL environment variable which defaults to 30 seconds. Note that data that has been summarized in previous processes is no longer processed again.
An example of raw data could be the following:
{
"seqId" : 1758107048147.0,
"itemId" : "NsPjrmwbT-WJSlgImZ9NKg",
"year" : 2025,
"month" : 8,
"day" : 13,
"fieldForMatch" : "MESSAGE",
"valueForMatch" : "{\"type\":\"suggestion\",\"value\":{\"intent\":\"intent.core-dialogs.ping\",\"entities\":[]}}",
"expiresAt" : "2025-09-17T11:05:37.147+0000"
},
{
"seqId" : 1758107048147.0,
"itemId" : "IN-ewXp7S8u4mL0RlKJStA",
"year" : 2025,
"month" : 8,
"day" : 13,
"fieldForMatch" : "MESSAGE",
"valueForMatch" : "{\"type\":\"tv.init.type\",\"value\":{\"intent\":\"tv.init\",\"entities\":[{\"type\":\"tv.init.type\",\"value\":\"post_start\",\"score\":1}]}}",
"expiresAt" : "2025-09-17T11:05:37.147+0000"
},
{
"seqId" : 1758107048147.0,
"itemId" : "fh-71N2FRGKyXL-bCzhQkQ",
"year" : 2025,
"month" : 8,
"day" : 13,
"fieldForMatch" : "MESSAGE",
"valueForMatch" : "Poner subtítulos",
"expiresAt" : "2025-09-17T11:05:37.147+0000"
}
....
And an example of the data already grouped would be:
...
{
"itemId" : "alrBKOZzQ1CYVHLZ70k6GQ",
"month" : 8,
"year" : 2025,
"expiresAt" : "2025-09-17T11:06:08.069+0000",
"total" : 3,
"updatedAt" : "2025-09-17T11:04:39.069+0000"
},
{
"itemId" : "aQLB8B3vQ6COn7s6caLpew",
"month" : 8,
"year" : 2025,
"expiresAt" : "2025-09-17T11:06:08.070+0000",
"total" : 12,
"updatedAt" : "2025-09-17T11:04:39.070+0000"
},
{
"itemId" : "OcjR3z8lQU-DnFpHV1W1qQ",
"month" : 8,
"year" : 2025,
"expiresAt" : "2025-09-17T11:06:08.071+0000",
"total" : 1,
"updatedAt" : "2025-09-17T11:04:39.071+0000"
}
...
When the grouped data is generated, a cache is generated in memory containing the ItemId that match the filter, this is necessary to improve performance when querying items to see if they match a given filter.
Check if a user matches a filter
You can validate whether a user matches a certain filter, and if so, whether they have a predetermined action to perform.
curl --location 'http://aura-configuration-api:8999/aura-services/v2/routing-filters/[FILTER_ID]/items/[ITEM_ID] ' \
--header 'correlator: 1a25aac1-d5fa-42af-9930-3e5706288cea' \
--header 'Authorization: SECRET_API_KEY' \
--header 'Accept: application/json' \
Response example:
{
"value": false,
"actions": []
}
It is possible to get only a specific list of fields for engine filter information, reducing the amount of data transmitted when necessary, using the includeFields query parameter.
curl --location 'http://aura-configuration-api:8999/aura-services/v2/routing-filters/summary/userId ' \
--header 'correlator: 1a25aac1-d5fa-42af-9930-3e5706288cea' \
--header 'Authorization: SECRET_API_KEY' \
--header 'Accept: application/json' \
Response example:
[
{
"data": {
"preset-filter-conversational-search-es": {
"data": [
{
"month": 8,
"itemId": "ksRuPPkRS4ax0IdaZdoFHA",
"year": 2025,
"total": 40
},
{
"month": 8,
"itemId": "alrBKOZzQ1CYVHLZ70k6GQ",
"year": 2025,
"total": 120
},
{
"month": 8,
"itemId": "bk3iI3GwQWO2-4YI0etc0w",
"year": 2025,
"total": 40
},
{
"month": 8,
"itemId": "DYoM_OOPSZ-EMNxiFxWe4w",
"year": 2025,
"total": 40
}
],
"actions": [
{
"type": "CUSTOM_MESSAGE",
"params": {
"intent": "internal.send.custom.message",
"entities": [{
"type": "message",
"value": "core:limit.exceed.llm"
}]
}
]
}
}
}
]
Database
The complete definition of the data model can be found in routing-filters collection section within the administration module.
4.8 - Routing filter plugin
Aura configuration API routing filter plugin
Routing filter plugin description for aura-configuration-api
Introduction
The routing filter plugin defines services associated with the management of routing filter in aura-configuration-api server.
All these services are defined in the routing-filters namespace (/routing-filters).
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/routing-filters
- aura-services/v2/configuration/routing-filters/{filterId}
Endpoints
| Path |
Method |
Description |
| /routing-filters/ |
GET |
Get all routing filters information |
| /routing-filters/ |
POST |
Add a new routing filter |
| /routing-filters/{filterId} |
GET |
Get routing filter information using filter id |
| /routing-filters/{filterId} |
PUT |
Replace routing filter information associated to filter id |
| /routing-filters/{filterId} |
PATCH |
Update some fields of routing filter information using filter id |
| /routing-filters/{filterId} |
DELETE |
Delete routing filter information using filter id |
| /routing-filters/entities |
GET |
Get all entities associated with routing filters |
You can read the complete documentation of each service in the aura-configuration-api swagger file.
Database for routing filters data
A database will be created, if it does not exist, to add the necessary collections for the filters to work. The database name is set in the environment variable AURA_ROUTING_FILTERS_DATA_DB and has as default value routing-filters-data-ENV.
Filters collections
Each filter has two collections associated with it, one for the raw data, which can be shared with other filters, and one for the summaries. These collections are created when the filter is created, and are deleted when the filter is deleted. The shared collection will only be deleted if there are no filters using it. The names for these collections are within the filter model.
......
"dataBase": {
"dataFilterCollection": { <---- Raw Data
"collectionName": "dataFilterTest",
"expiration": 5184000, <-- seconds to expire data
"indexes": [
{
"seqId": 1
}
]
},
"dataSummaryCollection": { <---- Summary Data>
"collectionName": "dataSummaryTest",
"expiration": 5184000, <-- seconds to expire data
"indexes": [
{
"itemId": 1
},
{
"total": 1,
"month": 1,
"year": 1
}
]
}
}
.....
Collections must have an expiration time so that the data does not remain permanently in Mongodb. The value of the expiration field is set to seconds. If create indexes is needed, these can be defined in “indexes” property.
It is possible to get only a specific list of fields for routing filter 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/routing-filters?includeFields=id,name' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: XXX'
Response example:
[
{
"id": "b6340f13-34af-4891-8a88-22bdffe9485b",
"name": "UserId_LLM_Limits"
}
]
It is also possible to exclude filters information fields using the excludeFields query parameter.
curl --location --request GET 'http://aura-configuration-api:8999/aura-services/v2/configuration/routing-filters?excludeFields=name,vars,match,metadata,applyFilter, fields, sourceFilters,summary,summaryFilter' \
--header 'correlator: urn:uuid:c8a604ee-29f8-7cda-2979-d2ae6189c360' \
--header 'Accept: application/json' \
--header 'Authorization: APIKEY XXX'
Response example:
[
{
"id": "b6340f13-34af-4891-8a88-22bdffe9485b",
"description": "Limit the number of messages per user in a month for triage preset",
"type": "userId",
"entities": [
"GATEWAYMESSAGE"
],
"dataBase": {
"dataFilterCollection": {
"collectionName": "dataFilterTriage",
"expiration": 89
},
"dataSummaryCollection": {
"collectionName": "dataSummaryTriage",
"expiration": 89
}
}
}
]
Database
The complete definition of the data model can be found in routing-filters collection section within the administration module.
5 - Telefónica brands management
Telefónica brands management
List of available Telefónica brands defined in Kernel
Introduction
The aura-configuration-api is responsible for the management of the different Telefónica brands for the identification of Aura channels and applications.
These brands are defined in Kernel within the D_Gbl_Brand global dimension entity.
The current document shows the available ones and the identifier, description and date for each of them.
Available brands
List of brands defined in Kernel D_Gbl_Brand global dimension entity.
| ID |
Description |
Date |
| 0101 |
O2 (Germany) GmbH & Co - DE |
20211018T000000 |
| 0102 |
Merit - DE |
20211018T000000 |
| 0103 |
Blau - DE |
20211018T000000 |
| 0104 |
FONIC - DE |
20211018T000000 |
| 0105 |
Ortel - DE |
20211018T000000 |
| 0106 |
Ay Yildiz - DE |
20211018T000000 |
| 0107 |
NetzClub - DE |
20211018T000000 |
| 0108 |
NettoKom - DE |
20211018T000000 |
| 0109 |
MSD SuperSelect (Media Saturn = Metro Group) - DE |
20211018T000000 |
| 0110 |
Kaufland (k-classic mobil) - DE |
20211018T000000 |
| 0111 |
WhatsAppSIM - DE |
20211018T000000 |
| 0112 |
TürkeiSIM (previously: Tuerk Telekom) - DE |
20211018T000000 |
| 0113 |
blauworld - DE |
20211018T000000 |
| 0114 |
Whitelabel - DE |
20211018T000000 |
| 0115 |
EinfachPrepaid (previously: Schlecker) - DE |
20211018T000000 |
| 0116 |
Mobilka (Ortel) - DE |
20211018T000000 |
| 0117 |
novamobil (previously: Norma) - DE |
20211018T000000 |
| 0118 |
blauworld (Ortel) - DE |
20211018T000000 |
| 0119 |
Tchibo Mobilfunk GmbH & Co KG - DE |
20211018T000000 |
| 0120 |
Mobilka - DE |
20211018T000000 |
| 0121 |
Aldi Talk - DE |
20241018T000000 |
| 0201 |
Vivo - BR |
20211018T000000 |
| 0202 |
Terra - BR |
20211018T000000 |
| 0301 |
Movistar - AR |
20211018T000000 |
| 0302 |
Tuenti - AR |
20211018T000000 |
| 0401 |
Movistar - ES |
20211018T000000 |
| 0402 |
Tuenti - ES |
20211018T000000 |
| 0403 |
O2 - ES |
20211018T000000 |
| 0501 |
O2 - GB |
20211018T000000 |
| 0502 |
GiffGaff - GB |
20211018T000000 |
| 0601 |
Movistar - CL |
20211018T000000 |
| 0701 |
Movistar - CO |
20211018T000000 |
| 0801 |
Movistar - MX |
20211018T000000 |
| 0901 |
Movistar - PE |
20211018T000000 |
| 1001 |
Movistar - UY |
20211018T000000 |
| 1101 |
Movistar - VE |
20211018T000000 |
| 1201 |
Movistar - EC |
20211018T000000 |
| 1202 |
Tuenti - EC |
20211018T000000 |
| 10000 |
Other - Unknown |
20211018T000000 |
Brands by environment
List of brands defined in Kernel D_Gbl_Brand global dimension entity organized by environment.
ap-* environments
Channels for ap-* environments.
| ID |
Brand |
Date |
| 0101 |
O2 (Germany) GmbH & Co - DE |
20211018T000000 |
| 0103 |
Blau - DE |
20211018T000000 |
| 0201 |
Vivo - BR |
20211018T000000 |
| 0401 |
Movistar - ES |
20211018T000000 |
| 0403 |
O2 - ES |
20211018T000000 |
| 0501 |
O2 - GB |
20211018T000000 |
| 10000 |
Other - Unknown |
20211018T000000 |
es-* environments
Channels for es-* environments.
| ID |
Brand |
Date |
| 0401 |
Movistar - ES |
20211018T000000 |
| 0403 |
O2 - ES |
20211018T000000 |
| 10000 |
Other - Unknown |
20211018T000000 |
br-* environments
Channels for br-* environments.
| ID |
Brand |
Date |
| 0201 |
Vivo - BR |
20211018T000000 |
| 10000 |
Other - Unknown |
20211018T000000 |
de-* environments
Channels for de-* environments.
| ID |
Brand |
Date |
| 0101 |
O2 (Germany) GmbH & Co - DE |
20211018T000000 |
| 0103 |
Blau - DE |
20211018T000000 |
| 10000 |
Other - Unknown |
20211018T000000 |
6 - Contact channels management
List of available Telefónica contact channels defined in Kernel
Introduction
The aura-configuration-api is responsible for the management of the different Telefónica contact channels for the identification of Aura channels.
These contact channels are defined in Kernel within the D_Gbl_Contact_Channel global dimension entity.
The current document shows the available ones and the identifier, description and date for each of them.
List of contact channels defined in Kernel D_Gbl_Contact_Channel global dimension entity.
| ID |
Contact Channel |
Date |
| 1 |
OnLine (Website) |
20220210T000000 |
| 2 |
Mobile App (Novum) |
20220210T000000 |
| 3 |
Telephone (Voice) |
20220210T000000 |
| 4 |
SMS |
20220210T000000 |
| 5 |
MMS |
20220210T000000 |
| 6 |
EMAIL |
20220210T000000 |
| 7 |
WhatsApp |
20220210T000000 |
| 8 |
Shop |
20220210T000000 |
| 9 |
Facebook |
20220210T000000 |
| 10 |
Facebook Messenger |
20220210T000000 |
| 11 |
Twitter |
20220210T000000 |
| 12 |
Instagram |
20220210T000000 |
| 13 |
Tik Tok |
20220210T000000 |
| 14 |
Social Network |
20220210T000000 |
| 15 |
White Mail |
20220210T000000 |
| 16 |
TV |
20220210T000000 |
| 17 |
Distributor |
20220210T000000 |
| 18 |
Partner |
20220210T000000 |
| 19 |
Logistics |
20220210T000000 |
| 20 |
Task force |
20220210T000000 |
| 100 |
Other |
20220210T000000 |
List of contact channels defined in Kernel D_Gbl_Contact_Channel global dimension entity organized by environment.
ap-* environments
Channels for ap-* environments.
| ID |
Channel |
Date |
| 1 |
OnLine (Website) |
20220210T000000 |
| 2 |
Mobile App (Novum) |
20220210T000000 |
| 3 |
Telephone (Voice) |
20220210T000000 |
| 7 |
WhatsApp |
20220210T000000 |
| 9 |
Facebook |
20220210T000000 |
| 10 |
Facebook Messenger |
20220210T000000 |
| 16 |
TV |
20220210T000000 |
es-* environments
Channels for es-* environments.
| ID |
Channel |
Date |
| 1 |
OnLine (Website) |
20220210T000000 |
| 2 |
Mobile App (Novum) |
20220210T000000 |
| 3 |
Telephone (Voice) |
20220210T000000 |
| 7 |
WhatsApp |
20220210T000000 |
| 16 |
TV |
20220210T000000 |
br-* environments
Channels for br-* environments.
| ID |
Channel |
Date |
| 1 |
OnLine (Website) |
20220210T000000 |
| 2 |
Mobile App (Novum) |
20220210T000000 |
| 7 |
WhatsApp |
20220210T000000 |
| 9 |
Facebook |
20220210T000000 |
| 10 |
Facebook Messenger |
20220210T000000 |
| 16 |
TV |
20220210T000000 |
de-* environments
Channels for de-* environments.
| ID |
Channel |
Date |
| 1 |
OnLine (Website) |
20220210T000000 |
| 2 |
Mobile App (Novum) |
20220210T000000 |
| 9 |
Facebook |
20220210T000000 |
| 10 |
Facebook Messenger |
20220210T000000 |
7 - API definition
Aura Configuration APIs definition
Description of API swaggers for Aura Configuration
Introduction
The following API swaggers are available in aura-configuration-api:
7.1 - Aura Configuration API
Aura Configuration API definition
Description of Aura configuration API swagger
Download swagger file
7.2 - Agent Deployment API
Agent Deployment API
This document provides the API definition for the agent-deployment plugin, which is responsible for managing the deployment of agents within the agents-manager.
7.3 - Aura Configuration API core
Aura Configuration API core definition
Description of Aura configuration API core swagger
Download swagger file
7.4 - Aura Configuration API Engine Filter API
Aura Configuration API Engine Filter definition
Description of Aura configuration API Engine Filter swagger
Download swagger file
7.5 - Aura Configuration API preset
Aura Configuration API Preset definition
Description of Aura configuration API Preset swagger
Download swagger file
7.6 - Aura Configuration API Routing Filter
Aura Configuration API Routing Filter definition
Description of Aura configuration API Routing Filter swagger
Download swagger file
7.7 - Aura Configuration API TV Section
Aura Configuration API TV Section definition
Description of Aura configuration API TV Section swagger
Download swagger file
7.8 - Aura Configuration API Agent
Aura Configuration API Agent definition
Description of Aura configuration API Agent swagger
Download swagger file
7.9 - Aura Configuration API Agent base
Aura Configuration API Agent base definition
Description of Aura configuration API Agent base swagger
Download swagger file
7.10 - Aura Configuration API Suggestion
Aura Configuration API Suggestion definition
Description of Aura configuration API Suggestion swagger
Download swagger file