Categories:
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
importmethod of each of those modules is called. - The necessary
mappersare 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 ofImportModuleResultwith 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 beError.
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 |
| {} | false | |
| whatsapp.client | {} | false |
| whatsapp.client.id | string | true |
| whatsapp.client.secret | string | true |
| whatsapp.client.purposes | string | false |
| whatsapp.client.scopes | string | false |
| whatsapp.phoneNumber | string | false |
| whatsapp.listOptions | {} | false |
| whatsapp.listOptions.type | ‘button’,’enumeratedList’,’list’ | false |
| whatsapp.listOptions.rules | Array<{}> | false |
| whatsapp.type | ‘whatsapp’ | false |
| metadata | {} | false |
| metadata.version | string | false |
| metadata.createdAt | string | false |
| metadata.updatedAt | string | false |
Indexes
[
{
"version": 1,
"name": "idx_channel_id",
"keys": {
"id": 1
},
"unique": true
},
{
"version": 1.1,
"name": "idx_updated_at",
"keys": {
"metadata.updatedAt": -1
}
},
{
"version": 1,
"name": "idx_channel_library",
"keys": {
"id": 1,
"dialogLibraries.name": 1
}
}
]
skills collection
This collection stores skills information using skills collection.
Fields
| Field name | Type | Required |
|---|---|---|
| id | string | true |
| name | string | true |
| appId | string | true |
| skillEndpoint | string | true |
| channels | Array<string[]> | true |
| disabled | boolean | false |
| external | boolean | false |
| metadata | {} | false |
| metadata.version | string | false |
| metadata.createdAt | string | false |
| metadata.updatedAt | string | false |
Indexes
[
{
"version": 1.1,
"name": "idx_skill_id",
"keys": {
"id": 1
},
"unique": true
},
{
"version": 1.1,
"name": "idx_updated_at",
"keys": {
"metadata.updatedAt": -1
}
}
]
applications collection
This collection stores applications information using applications collection.
Fields
| Field name | Type | Required |
|---|---|---|
| id | string | true |
| name | string | true |
| brand | string | true |
| disabled | boolean | false |
| agents | string[] | false |
| nlp.channelId | string | false |
| models.level | Level | false |
| models.presets | string[] | true |
| metadata.version | string | false |
| metadata.createdAt | string | false |
| metadata.updatedAt | string | false |
Types
| Type name | Type | Options |
|---|---|---|
| Level | string | Set the different levels of access for the application. It can only be changed by Aura Global Team |
Indexes
[
{
"version": 1.5,
"name": "idx_app_id",
"keys": {
"id": 1
},
"unique": true
},
{
"version": 1.5,
"name": "idx_updated_at",
"keys": {
"metadata.updatedAt": -1
}
}
]
presets collection
This collection stores presets information using presets collection.
Fields
Root
| Field name | Type | Required |
|---|---|---|
| id | string | true |
| name | string | true |
| description | string | false |
| group | string | false |
| session | Session | false |
| generative | Generative | false |
| rag | Rag | false |
| metadata | Metadata | false |
Types
Action
| Field name | Type | Required |
|---|---|---|
| name | string | true |
| target | string | false |
| params | object | false |
| postBack | object | false |
Session
| Field name | Type | Required |
|---|---|---|
| session.window | number | false |
| session.timeout | number | false |
Generative
| Field name | Type | Required |
|---|---|---|
| generative.model.id | string | false |
| generative.model.parameters.max_tokens | number | false |
| generative.model.parameters.temperature | number | false |
| generative.model.parameters.top_p | number | false |
| generative.injectionMaxLength | number | false |
| generative.prompts.template | string | false |
| generative.prompts.preamble.text | string | false |
| generative.prompts.preamble.args.name | string | false |
| generative.prompts.examples | string[] | false |
| generative.prompts.promptRegexClean | string | false |
| generative.prompts.promptMaxLength | number | false |
RAG
| Field name | Type | Required |
|---|---|---|
| rag.type | string | false |
| rag.references.maximum | number | false |
| rag.references.baseUrl | string | false |
| rag.model.id | string | false |
| rag.model.parameters.max_tokens | number | false |
| rag.model.parameters.temperature | number | false |
| rag.model.parameters.top_p | number | false |
| rag.stages.language | string | false |
| rag.stages.security.heuristics.example | string | false |
| rag.stages.security.maxLength | number | false |
| rag.stages.translation.prompt | string | false |
| rag.stages.translation.language | string | false |
| rag.stages.clean.prompt.default | string | false |
| rag.stages.clean.prompt.es | string | false |
| rag.stages.context.prompts.recreatedQuestion.default | string | false |
| rag.stages.context.prompts.recreatedQuestion.es | string | false |
| rag.stages.context.prompts.sameContext.default | string | false |
| rag.stages.context.prompts.sameContext.es | string | false |
| rag.stages.context.stickyContext | string | false |
| rag.stages.retrieval.sourceDataId | string | false |
| rag.stages.postFiltering.candidatesPostFiltering | string | false |
| rag.stages.postFiltering.prompt.default | string | false |
| rag.stages.postFiltering.prompt.es | string | false |
| rag.stages.generative.ragStrategy | string | false |
| rag.stages.generative.prompts.stuff.default | string | false |
| rag.stages.generative.prompts.stuff.es | string | false |
| rag.stages.generative.prompts.refine.default | string | false |
| rag.stages.generative.prompts.refine.es | string | false |
| rag.outputRefine.candidates | boolean | false |
| rag.outputRefine.filterOutputMetadata.map.fileType | string | false |
| rag.outputRefine.filterOutputMetadata.map.pageNumber | string | false |
| rag.outputRefine.filterOutputMetadata.groupBy | string | false |
| rag.outputRefine.filterOutputMetadata.aggregate | string | false |
| rag.outputRefine.filterOutputMetadata.outputFilter | string[] | false |
| rag.outputRefine.filterOutputMetadata.root | string[] | false |
Metadata
| Field name | Type | Required |
|---|---|---|
| metadata.version | string | false |
| metadata.createdAt | string | false |
| metadata.updatedAt | string | false |
Indexes
[
{
"version": 1.10,
"name": "idx_preset_id",
"keys": {
"id": 1
},
"unique": true
},
{
"version": 1.10,
"name": "idx_updated_at",
"keys": {
"metadata.updatedAt": -1
}
},
{
"version": 1.10,
"name": "idx_preset_name",
"keys": {
"name": 1
},
"unique": true
}
]
suggestions collection
This collection stores suggestion information using suggestions collection.
Fields
| Field name | Type | Required |
|---|---|---|
| id | string | true |
| name | string | true |
| intent | string | true |
| entities | Array<{}> | true |
| resources | Array<{}> | true |
Indexes
[
{
"version": 2.1,
"name": "idx_suggestion_id",
"keys": {
"id": 1
},
"unique": true
},
{
"version": 2.1,
"name": "idx_updated_at",
"keys": {
"metadata.updatedAt": -1
}
},
{
"version": 2.1,
"name": "idx_suggestion_name",
"keys": {
"name": 1
},
"unique": true
}
]
tv-section collection
This collection stores TV Section information using the tv-sections collection.
Fields
| Field name | Type | Required | Description |
|---|---|---|---|
| id | string | true | Unique identifier for the TV Section (UUID) |
| pid | string | false | External or process identifier |
| name | string | false | Name of the TV Section |
| canon | string | false | Canonical name of the TV Section |
| type | string | false | Section type (app or section) |
| metadata | object | false | Document metadata (version, creation and update dates) |
Example of metadata:
| Field | Type | Description |
|---|---|---|
| version | string | Configuration version when the document was created |
| createdAt | string | Creation date (ISO 8601) |
| updatedAt | string | Update date (ISO 8601) |
Indexes
{
"version": 2.0,
"name": "idx_tvsections_id",
"keys": { "id": 1 },
"unique": true
},
{
"version": 2.0,
"name": "idx_tvsections_pid",
"keys": { "pid": 1 },
"unique": true
},
{
"version": 2.0,
"name": "idx_updated_at",
"keys": { "metadata.updatedAt": -1 }
},
{
"version": 2.0,
"name": "idx_tvsections_name",
"keys": { "name": 1 },
"unique": true
}
]
agents collection
This collection stores agent information using the agents collection.
Fields
| Field name | Type | Required | Description |
|---|---|---|---|
| id | string | true | UUID that identifies the agent univocally in Aura. |
| name | string | true | Name that identifies the agent univocally in Aura. |
| description | string | false | Agent description description. |
| communication | object | true | Communication configuration of the agent. See communication object. |
| flowConfig | object | false | Configuration of the agent flow. |
| deploymentName | string | false | Name of the deployment where the agent is running. |
| metadata | object | false | Document metadata (version, creation and update dates). See metadata object. |
communication object (HTTP)
| Field | Type | Description |
|---|---|---|
| endpoint | string | HTTP endpoint where the agent is listening to. |
| headers | object | HTTP headers associated with the agent. |
| communicationType | string | Communication type (http). |
| timeout | number | Timeout for the agent. |
| retries | number | Number of retries for the agent. |
metadata object
| Field | Type | Description |
|---|---|---|
| version | string | Configuration version when the document was created |
| createdAt | string | Creation date (ISO 8601) |
| updatedAt | string | Update date (ISO 8601) |
Indexes
[
{
"version": 2.0,
"name": "idx_agent_id",
"keys": { "id": 1 },
"unique": true
},
{
"version": 2.0,
"name": "idx_updated_at",
"keys": { "metadata.updatedAt": -1 }
},
{
"version": 2.0,
"name": "idx_agent_name",
"keys": { "name": 1 },
"unique": true
}
]
routing filters collection
This collection stores routing filters information using the routing-filters collection.
Fields
| Field name | Type | Required | Description |
|---|---|---|---|
| id | string | true | UUID that uniquely identifies a routing filter in Aura. |
| name | string | true | Name that uniquely identifies a routing filter in Aura. |
| description | string | false | Routing Filter description. |
| type | string | true | Contains the type of filter. Currently, there is only one type ‘userId’. |
| entities | string[] | true | Contains at least one entity necessary to generate the data for the filter. |
| dataBase | object | true | Contains an object with the collections necessary to store and process data. See database object. |
| vars | object | true | Contains an object with the custom variables necessary for any phase of the filter. Encrypted field. |
| fields | object | true | Contains the field mapping for grouping and its relationship with the previously defined entities. Encrypted field. |
| sourceFilters | object | false | Contains an object to filter source data when loading from entity data. Encrypted field. |
| match | object | true | Contains an object with the MongoDB aggregation format that must return grouped data. Encrypted field. |
| summary | object | true | Contains an object with MongoDB command format to insert these obtained aggregates into a summary collection. Encrypted field. |
| actions | object[] | true | Contains an array of objects with the actions to be performed on the filtered data. |
| summaryFilter | object | true | Contains an object with MongoDB command format to select the records that meet the filter. Encrypted field. |
| metadata | object | false | Document metadata (version, creation and update dates). See metadata object. |
database object
| Field | Type | Description |
|---|---|---|
| dataFilterCollection | object | Contains an object with the name of the collection for raw data and its expiration in seconds. See filterCollection object. |
| dataSummaryCollection | object | Contains an object with the name of the collection for summary data and its expiration in seconds. See filterCollection object. |
filterCollection object
| Field | Type | Description |
|---|---|---|
| collectionName | string | Contains the name of the collection. |
| expiration | object | Contains the value in seconds of the expiration of the collection data. |
| indexes | object[] | A optional array with indexes in mongodb format. Example: [{"seq1": 1}] |
metadata object
| Field | Type | Description |
|---|---|---|
| version | string | Configuration version when the document was created |
| createdAt | string | Creation date (ISO 8601) |
| updatedAt | string | Update date (ISO 8601) |
Indexes
[
{
"version": 2.2,
"name": "idx_routing_filter_id",
"keys": {
"id": 1
},
"unique": true
},
{
"version": 2.2,
"name": "idx_updated_at",
"keys": {
"metadata.updatedAt": -1
}
},
{
"version": 2.2,
"name": "idx_routing_filter_name",
"keys": {
"name": 1
},
"unique": true
}
]
A example with a complete filter definition
{
"name": "preset-filter-stb-conversational-search",
"id": "4a879583-5f76-4e6b-87c1-6250e8743dda",
"description": "Limit the number of messages per user in a month for stb conversational search preset",
"type": "userId",
"entities": [
"GATEWAYMESSAGE"
],
"vars": {
"llm_execution_limit": 10
},
"dataBase": {
"dataFilterCollection": {
"collectionName": "dataFilterPreset",
"expiration": 5356800,
"indexes": [
{
"seqId": 1
}
]
},
"dataSummaryCollection": {
"collectionName": "dataSummaryStbConvSearch",
"expiration": 5356800,
"indexes": [
{
"month": 1,
"total": 1,
"year": 1
},
{
"itemId": 1,
"month": 1,
"year": 1
}
]
}
},
"fields": {
"MatchingValue": "^ef3d0603-3fef-4109-a577-0ab92f9060df$",
"forId": "USER_ID",
"forMatchingField": "AURA_PRESET_NAME",
"forTime": "MESSAGE_TM"
},
"sourceFilters": [
{
"field": "USER_ID",
"op": "notEqual",
"val": ""
}
],
"match": [
{
"$match": {
"fieldForMatch": "{{fields.forMatchingField}}",
"seqId": {
"$gt": "{{ctx.lastSeqId|number}}"
},
"valueForMatch": {
"$options": "i",
"$regex": "{{fields.MatchingValue}}"
}
}
},
{
"$group": {
"_id": {
"itemId": "$itemId",
"month": "$month",
"year": "$year"
},
"seqId": {
"$max": "$seqId"
},
"total": {
"$sum": 1
}
}
},
{
"$project": {
"_id": 0,
"itemId": "$_id.itemId",
"month": "$_id.month",
"seqId": 1,
"total": 1,
"year": "$_id.year"
}
}
],
"summary": {
"filter": {
"itemId": "{{doc.itemId}}",
"month": "{{doc.month|number}}",
"year": "{{doc.year|number}}"
},
"options": {
"upsert": true
},
"update": {
"$inc": {
"total": "{{doc.total|number}}"
},
"$set": {
"expiresAt": "{{ctx.expiration|expires}}",
"month": "{{doc.month|number}}",
"updatedAt": "{{__DATE_NOW__}}",
"year": "{{doc.year|number}}"
}
}
},
"summaryFilter": {
"filter": {
"month": "{{ctx.month|number}}",
"total": {
"$gt": "{{vars.llm_execution_limit|number}}"
},
"year": "{{ctx.year|number}}"
},
"options": {
"projection": {
"_id": 0,
"itemId": 1,
"month": 1,
"total": 1,
"year": 1
}
}
},
"metadata": {
"updatedAt": "2025-10-03T06:06:49.609Z",
"version": "10.5.0"
}
}