Categories:
auraline-incoming-processor plugin
Technical description of auraline-incoming-processor plugin
Introduction
This plugin receives requests and transforms them to Auraline format to send them to aura-groot.
The specific environment variables for this plugin are located at auraline-incoming-processor plugin configuration.
Consumes components (IOC)
| Name | Type | Description |
|---|---|---|
| auralineClient | PluginType.Service | Auraline client |
| configurationManager | PluginType.Service | Configuration manager |
| directlineClient | PluginType.Service | DirectLine client |
| directlineService | PluginType.Service | Services and utilities for Directline channel |
Provides components (IOC)
| Name | Type | Description |
|---|---|---|
| auraline-directline-processor | PluginType.Processor | Manage requests |
| auraline-status-processor | PluginType.Processor | Manage status |
Controller
This plugin sets the endpoints it supports.
| Operation id | Path | Description |
|---|---|---|
| postAuralineMessages | /aura-services/v1/auraline/conversations/{conversationId}/activities | Manage the messages sent |
| postAuralineStatus | /aura-services/v1/auraline/conversations/{conversationId}/activities/{activityId}/status | Manage the status |
auraline-directline-processor flow definition
To process a message, the auraline-directline-processor uses AuraBridgeFlow with the following definition:
const flow: BridgeFlow = {
name: 'auralineToDirectlineFlow',
source: {
type: BridgeNodeType.Auraline
},
destination: {
type: BridgeNodeType.Directline,
converter: AuralineToDirectlineConverter,
client: services.directlineClient,
clientOptions: { retries: {} }
},
onError: {
destinations: [
{
type: BridgeNodeType.Auraline,
converter: AuralineToAuralineApiConverter,
client: services.auralineClient,
decode: auralineDirectlineResponseError
},
{
type: BridgeNodeType.Directline,
converter: AuralineToDirectlineEventConverter,
client: services.directlineClient
}
]
}
};
According to the flow definition, AuraBridgeFlow tries to process, convert and send (using retries) the message to aura-groot using the DirectLine client.
If some type of error occurs during this process, an event message will be sent to aura-groot and client with the error information.
flowchart LR
subgraph Flow
direction LR
B(Controller) --> C(Converter)
end
A(Client) -->|message| Flow
Flow -->|ok| D(Bot Directline)
Flow -->|error| E(Bot Directline Event)
Flow -->|error| F(Client message)
auraline-directline-processor message conversion
The plugin uses two converters to transform messages to DirectLine format: AuralineToDirectlineConverter and AuralineToDirectlineEventConverter.
AuralineToDirectlineConverter
Main converter, in charge of transforming messages to DirectLine format messages using the directline-message-factory-v3 service of directline-service plugin.
AuralineToDirectlineEventConverter
It makes the conversion to a DirectLine event message if an error in the process has occurred.
Auraline status controller
This controller handles Auraline status requests and validate the APIKey fields. After that, it returns the status and if there is not an error, it passes the message to Auraline status processor.
Auraline status processor
This processor handles the status, deletes the message in queues and log errors if received.