<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aura – aura-root</title>
    <link>/tags/aura-root/</link>
    <description>Recent content in aura-root on Aura</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="/tags/aura-root/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/general-operation-system/main-flows/directline-basic-flows/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/general-operation-system/main-flows/directline-basic-flows/</guid>
      <description>
        
        
        &lt;h1 id=&#34;direct-line-flowcharts&#34;&gt;Direct Line flowcharts&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Basic flows for &lt;a href=&#34;../../docs/components/channels/communication-protocols/microsoft-bot-service/&#34;&gt;Direct Line channels&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;request-a-new-accesstoken-from-direct-line-to-access-aura&#34;&gt;Request a new accessToken from Direct Line to access Aura&lt;/h2&gt;
&lt;p&gt;These steps must be executed before starting the user conversation with &lt;em&gt;&lt;strong&gt;Aura&lt;/strong&gt;&lt;/em&gt;. The &lt;code&gt;token&lt;/code&gt; to access Direct Line must be requested to Aura because one of the admin secrets of the bot Direct Line configuration is used to generate the tokens.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-plantuml&#34; data-lang=&#34;plantuml&#34;&gt;@startuml
    title: Request a DirectLine accessToken for AuraGroot
    participant Channel #bdf492
    participant DirectLine #FFCC99
    participant DirectLineWebsocket #FFCC99
    participant AuthenticationApi #FFFF99

    Channel -&amp;gt; AuthenticationApi: POST /aura-services/v1/token/wss
    AuthenticationApi -&amp;gt; DirectLine: POST /token
    DirectLine -&amp;gt; AuthenticationApi: 201 Created {token}
    AuthenticationApi -&amp;gt; Channel: 201 Created {token}
    Channel -&amp;gt; DirectLine: Open WebSocket
    Channel -&amp;gt; DirectLine: Start sending user requests
    Channel -&amp;gt; DirectLineWebSocket: Start getting Aura responses
@enduml
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;new-direct-line-message-from-anonymous-users&#34;&gt;New Direct Line message from anonymous users&lt;/h2&gt;
&lt;p&gt;An anonymous user is the one that has never been authenticated via &lt;em&gt;&lt;strong&gt;Kernel&lt;/strong&gt;&lt;/em&gt; and her authentication session has not been stored in &lt;em&gt;&lt;strong&gt;aura-authentication-api&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Find more information in the document &lt;a href=&#34;../../docs/components/channels/authentication/#anonymous-users&#34;&gt;Channels authentication: anonymous users&lt;/a&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-plantuml&#34; data-lang=&#34;plantuml&#34;&gt;@startuml

title: Basic flow for DirectLine anonymous users


    actor User
    participant Channel #bdf492
    participant DirectLine #FFCC99
    participant DirectLineWebsocket #FFCC99
    participant AuthenticationApi #FFFF99
    participant AuraGroot #76bbe7
    participant AuraBot #41a0f9 

    Channel -&amp;gt; DirectLineWebsocket: Open WebSocket
    User -&amp;gt; Channel: Send [message]
    Note over Channel,DirectLine: The previously created token of DirectLine must be sent in the Authorization header as Bearer token.
    Channel -&amp;gt; DirectLine: Send {activity[message]}
    DirectLine -&amp;gt; AuraGroot: Send {activity[message]}
    AuraGroot -&amp;gt; DirectLine: 200 OK
    note right of AuraGroot: KPI entities are stored during Middlewares execution in local memory.\nEvery 2 minutes and before closing a POD, they are written in Azure Storage.
    AuraGroot -&amp;gt; AuraGroot: Middlewares
    AuraGroot -&amp;gt; AuraGroot: Recognizers (GetSkillByChannel)
    AuraGroot -&amp;gt; AuraBot: Send {activity[message]}
    Note over AuraGroot,AuraBot: There are two different conversations: one between the channel and AuraGroot and another one between AuraGroot and the skill.
    AuraBot -&amp;gt; AuraGroot: 200 OK
    AuraBot -&amp;gt; AuthenticationApi: GET AuraId
    AuthenticationApi -&amp;gt; AuraBot: 404 Not found (Anonymous)
    AuraBot -&amp;gt; AuraBot: Middlewares
    note right of AuraBot: KPI entities are stored during Middlewares execution in local memory.\nEvery 2 minutes and before closing a POD, they are written in Azure Storage.
    AuraBot -&amp;gt; AuraBot: Recognizers
    AuraBot -&amp;gt; AuraBot: Main Dialog
    AuraBot -&amp;gt; AuraBot: Execute Specific functional Dialog
    AuraBot -&amp;gt; AuraGroot: Send {responseActivity}
    AuraGroot -&amp;gt; AuraBot: 200 OK
    AuraGroot -&amp;gt; DirectLine: Send {responseActivity}
    DirectLine -&amp;gt; AuraGroot: 200 OK
    Channel -&amp;gt; DirectLineWebsocket: Read {responseActivity}
    Channel -&amp;gt; User: Show {responseActivity}
@enduml
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;new-direct-line-message-from-authenticated-users&#34;&gt;New Direct Line message from authenticated users&lt;/h2&gt;
&lt;p&gt;Find information regarding users&amp;rsquo; authentication in the document &lt;a href=&#34;../../docs/components/channels/authentication/#authenticated-users&#34;&gt;Channels authentication: authenticated users&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-plantuml&#34; data-lang=&#34;plantuml&#34;&gt;@startuml

title: Basic flow for DirectLine authenticated users

    actor User
    participant Channel #bdf492
    participant DirectLine #FFCC99
    participant DirectLineWebsocket #FFCC99
    participant AuthenticationApi #FFFF99
    participant AuraGroot #76bbe7
    participant AuraBot #41a0f9 
    participant KernelAuthServer #99FFFF
    participant KernelUserProfileApi #99FFFF
    
    Channel -&amp;gt; DirectLineWebsocket: Open WebSocket
    User -&amp;gt; Channel: Send [message]
    Note over Channel,DirectLine: The previously created token of DirectLine must be sent in the Authorization header as Bearer token.
    Channel -&amp;gt; DirectLine: Send {activity[message]}
    DirectLine -&amp;gt; AuraGroot: Send {activity[message]}
    AuraGroot -&amp;gt; DirectLine: 200 OK
    Note right of AuraGroot: KPI entities are stored during Middlewares execution in local memory.\nEvery 2 minutes and before closing a POD, they are written in Azure Storage.
    AuraGroot -&amp;gt; AuraGroot: Middlewares
    AuraGroot -&amp;gt; AuraGroot: Recognizers (GetSkillByChannel)
    AuraGroot -&amp;gt; AuraBot: Send {activity[message]}
    Note over AuraGroot,AuraBot: There are two different conversations: one between the channel\nand AuraGroot and another one between AuraGroot and the skill.
    AuraBot -&amp;gt; AuraGroot: 200 OK
    opt user is not in cache
        AuraBot -&amp;gt; AuthenticationApi: GET AuraId
        AuthenticationApi -&amp;gt; AuraBot: 200 OK {userData}
        AuraBot -&amp;gt; KernelAuthServer: POST /token
        Note over AuraBot,KernelAuthServer: Here, a 3legged accessToken is requested
        KernelAuthServer -&amp;gt; AuraBot: {token}
        AuraBot -&amp;gt; KernelAuthServer: getIntrospect(token)
        opt channel allows UserProfile
            AuraBot -&amp;gt; KernelUserProfileApi: getUserProfile(userId)
            KernelUserProfileApi -&amp;gt; AuraBot: UserProfile
        end
        AuraBot -&amp;gt; AuraBot: store user in cache: userData, userProfile, valid scopes and purposes
    end
    AuraBot -&amp;gt; AuraBot: Middlewares
    Note right of AuraBot: KPI entities are stored during Middlewares execution in local memory.\nEvery 2 minutes and before closing a POD, they are written in Azure Storage.
    AuraBot -&amp;gt; AuraBot: Recognizers
    AuraBot -&amp;gt; AuraBot: Main Dialog
    AuraBot -&amp;gt; AuraBot: ValidateAuthenticationForDialog
    AuraBot -&amp;gt; AuraBot: Execute Specific functional Dialog
    AuraBot -&amp;gt; AuraGroot: Send {responseActivity}
    AuraGroot -&amp;gt; AuraBot: 200 OK
    AuraGroot -&amp;gt; DirectLine: Send {responseActivity}
    DirectLine -&amp;gt; AuraGroot: 200 OK
    Channel -&amp;gt; DirectLineWebsocket: Read {responseActivity}
    Channel -&amp;gt; User: Show {responseActivity}
@enduml
&lt;/code&gt;&lt;/pre&gt;
      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/monitoring/metrics/aura-groot-metrics/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/monitoring/metrics/aura-groot-metrics/</guid>
      <description>
        
        
        &lt;h1 id=&#34;aura-groot-metrics&#34;&gt;Aura Groot metrics&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;List of metrics available in Aura Groot&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;http_request_duration_seconds&#34;&gt;http_request_duration_seconds&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the information related to all the incoming HTTP requests received by &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#summary&#34;&gt;Summary&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;. So every sample, besides the defined labels, also includes its duration.&lt;/p&gt;
&lt;p&gt;It measures the duration since the request lands in &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; until its HTTP response is returned, indicating to the client that Aura is processing the request to obtain a proper answer for the Direct Line or &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The metric allows measuring the behavior of the requests from any given endpoint:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The number of requests during a time&lt;/li&gt;
&lt;li&gt;The average/min/max duration of these requests&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;method&lt;/code&gt;: HTTP method used by the request being stored (&lt;code&gt;GET&lt;/code&gt;, &lt;code&gt;POST&lt;/code&gt;, &lt;code&gt;PUT&lt;/code&gt;, &lt;code&gt;DELETE&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host&lt;/code&gt;: host and domain where the request is being sent&lt;/li&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt;: specific endpoint of the request&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status_code&lt;/code&gt;: HTTP status code returned in the response&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;outgoing_request_duration_seconds&#34;&gt;outgoing_request_duration_seconds&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the processing time related to all the outgoing HTTP requests made by &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#summary&#34;&gt;Summary&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt; so every sample, besides the defined labels, also includes its duration.&lt;/p&gt;
&lt;p&gt;This metric allows measuring the behavior of the requests to any given endpoint:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The number of requests during a time&lt;/li&gt;
&lt;li&gt;The average/min/max duration of these requests&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;method&lt;/code&gt;: HTTP method used by the request being stored (&lt;code&gt;GET&lt;/code&gt;, &lt;code&gt;POST&lt;/code&gt;, &lt;code&gt;PUT&lt;/code&gt;, &lt;code&gt;DELETE&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host&lt;/code&gt;: host and domain where the request is being sent&lt;/li&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt;: specific endpoint of the request&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt;: HTTP status code returned in the response&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;outgoing_message_duration_seconds&#34;&gt;outgoing_message_duration_seconds&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the processing time of Direct Line or &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; requests arriving to &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#summary&#34;&gt;Summary&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;, so every sample, besides the defined labels, also includes its duration.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;&lt;strong&gt;aura-goot&lt;/strong&gt;&lt;/em&gt; is an asynchronous server, the processing of a request does not end when the HTTP response is returned, but when the proper answer for the user is sent back to the client callback. This metric measures the duration since the request lands in &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; until the last message of its answer is sent to the client callback.&lt;/p&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt;: specific endpoint of the request.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;httpStatus&lt;/code&gt;: HTTP status code returned in the response.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;originStatus&lt;/code&gt;: status sent by Direct Line in the body of the response in the happening of an error.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;origin&lt;/code&gt;: specific host of the request (Direct Line or &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;channel&lt;/code&gt;: channel of the request.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;incoming_message_duration_seconds&#34;&gt;incoming_message_duration_seconds&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the processing time of Direct Line, &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; or skills requests arriving to &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#summary&#34;&gt;Summary&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;, so every sample, besides the defined labels, also includes its duration.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;&lt;strong&gt;aura-goot&lt;/strong&gt;&lt;/em&gt; is an asynchronous server, the processing of a request does not end when the HTTP response is returned, but when the proper answer for the channel or skill is sent back to the client callback. This metric measures the duration from when the request arrives at &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; until it is processed to send to the channel/bridge or skill.&lt;/p&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt;: specific endpoint of the request.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;httpStatus&lt;/code&gt;: HTTP status code returned in the response.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;originStatus&lt;/code&gt;: status sent by Direct Line in the body of the response in the happening of an error.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;origin&lt;/code&gt;: specific host of the request (Direct Line, &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; or skill name).  If &lt;code&gt;origin&lt;/code&gt; is missing, the content of &lt;code&gt;path&lt;/code&gt; label will be added.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;channel&lt;/code&gt;: channel of the request.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;aura_component_version&#34;&gt;aura_component_version&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the number of &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; instances (pods) running each version of the code. It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#gauge&#34;&gt;Gauge&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;version&lt;/code&gt;: version field in the &lt;code&gt;package.json&lt;/code&gt; file included in the running docker container.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;component&lt;/code&gt;: name of the component that is writing the metric.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;aura_server_unhandled_error&#34;&gt;aura_server_unhandled_error&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the number of unhandled errors happening in &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#counter&#34;&gt;Counter&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;error&lt;/code&gt;: exception message that forced the unhandled error.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skill_access_error&#34;&gt;skill_access_error&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the number of times a skill has been misconfigured in &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#counter&#34;&gt;Counter&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;skill&lt;/code&gt;: skill name.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;code&lt;/code&gt;: &lt;code&gt;noRespond&lt;/code&gt; or &lt;code&gt;noFound&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;channel&lt;/code&gt;: channel of the request.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skill_request_status&#34;&gt;skill_request_status&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the number of times we have obtained a response status per skill in &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#counter&#34;&gt;Counter&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;skill&lt;/code&gt;: skill name.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;code&lt;/code&gt;: status code of the request.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;channel&lt;/code&gt;: channel of the request.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;skill_response_error&#34;&gt;skill_response_error&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the number of times a skill has been blocked in &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#counter&#34;&gt;Counter&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;skill&lt;/code&gt;: skill name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;code&lt;/code&gt;: &lt;code&gt;blocked&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;channel&lt;/code&gt;: channel of the request.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;services_status&#34;&gt;services_status&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the number of success or errored checks of modules of the server. It is stored as a &lt;a href=&#34;https://prometheus.io/docs/concepts/metric_types/#counter&#34;&gt;Counter&lt;/a&gt; in &lt;strong&gt;Prometheus&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Labels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;moduleId&lt;/code&gt;: Id of the module.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt;: OK or ERROR&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/skills-management/skills-connection/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/skills-management/skills-connection/</guid>
      <description>
        
        
        &lt;h1 id=&#34;guidelines-for-the-connection-of-a-skill-to-aura-root&#34;&gt;Guidelines for the connection of a skill to Aura Root&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Detailed process for the connection of a skill to Aura Root&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The process for the connection of a skill to &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt; is common for the three types of skills defined before.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#x26a0;&amp;#xfe0f; It is only important to take into account that, for &lt;strong&gt;third-party bots&lt;/strong&gt;, constructors must previously develop a &lt;strong&gt;third-party adapter&lt;/strong&gt; to communicate the bot with &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt; (that is, to make it compatible with Microsoft Bot Framework protocol).
After doing that, the connection of the bot with &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt; follows the same common steps as for other types of skills.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The following previous tasks are required for the further connection of a skill with &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We have a skill already developed and published&lt;/li&gt;
&lt;li&gt;There is a channel routed by &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt; to this skill&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-register-a-skill-in-aura&#34;&gt;1. Register a skill in Aura&lt;/h2&gt;
&lt;p&gt;In order to activate a skill in Aura, make a &lt;code&gt;POST&lt;/code&gt; request to the &lt;strong&gt;skills&lt;/strong&gt; module of &lt;a href=&#34;../../docs/components/aura-configuration-api/modules/skill-module/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; through the corresponding &lt;a href=&#34;../../docs/components/aura-authentication-api/api-definition/aura-authentication-api/&#34;&gt;swagger&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;https&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;//&amp;lt;environment&amp;gt;.auracognitive.com/aura-services/v2/configuration/skills
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The fields in the request are shown below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt;: Unique identifier of the skill. It can be generated with &lt;a href=&#34;https://www.uuidgenerator.net/&#34;&gt;UUID Generator Tool&lt;/a&gt; by OB operator.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt;: name of the skill by OB operator.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;channels&lt;/code&gt;: array of strings including the name of the channel(s) associated with the skill.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;appId&lt;/code&gt;: Microsoft appId&lt;/li&gt;
&lt;li&gt;&lt;code&gt;skillEndpoint&lt;/code&gt;: endpoint where the skill is published&lt;/li&gt;
&lt;li&gt;&lt;code&gt;external&lt;/code&gt;: Boolean value indicating if the skill is deployed in the same environment as &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; or not.
&lt;ul&gt;
&lt;li&gt;If &lt;code&gt;true&lt;/code&gt;, the skill is deployed in a different environment.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;false&lt;/code&gt; or this parameter is not existing, then the skill is deployed in the same environment.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;#x2139;&amp;#xfe0f; &lt;strong&gt;NOTE:&lt;/strong&gt; Both the &lt;code&gt;id&lt;/code&gt; and the &lt;code&gt;name&lt;/code&gt; of the skill must be assigned by the OB operator, and they must ensure that they are unique in order to avoid collisions.&lt;/p&gt;
&lt;p&gt;Check the following example of a request body:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;544bf5c0-9f31-45e3-9f08-89230315e520&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;skill-name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;channels&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;channel-name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;appId&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ms-azure-app-id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;skillEndpoint&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;http://url-to-skill-bot/api/messages&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;external&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;//Only present if the skill is not in the same environment of Aura Groot
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;../../images/aura-skills-arch/post-request-connection.png&#34; alt=&#34;POST request&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;2-make-changes-available-in-aura-groot&#34;&gt;2. Make changes available in Aura Groot&lt;/h2&gt;
&lt;p&gt;In order to update &lt;em&gt;&lt;strong&gt;Aura Groot&lt;/strong&gt;&lt;/em&gt; configuration with the modifications carried out, at this stage it is required to restart this component.
Depending on the enviroment, there are two possible scenarios.&lt;/p&gt;
&lt;h3 id=&#34;21-connect-to-skill-in-a-local-environment&#34;&gt;2.1. Connect to skill in a local environment&lt;/h3&gt;
&lt;p&gt;In these cases, it only will be neccessary to restart &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; component in local enviroment to connect to new skill. The instance can be started using the following command for running  &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; in local environment:
&lt;code&gt;npm start&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;22-connect-to-skill-in-a-production-environment&#34;&gt;2.2. Connect to skill in a production environment&lt;/h3&gt;
&lt;p&gt;In Aura production environments, it will not be necessary to restart the component to update the skills configuration. This connection is done automatically through the &lt;a href=&#34;../../docs/developers-workspace/general-operation-system/config-watcher&#34;&gt;&lt;em&gt;&lt;strong&gt;config-watcher&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;config-watcher&lt;/code&gt; runs periodically (every 5 minutes) and, when it detects that the configuration has been modified in &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;, it will automatically &lt;strong&gt;restart&lt;/strong&gt; the pods.&lt;/p&gt;
&lt;h4 id=&#34;alternative-use-the-refresh-endpoint&#34;&gt;Alternative: Use the /refresh endpoint&lt;/h4&gt;
&lt;p&gt;&amp;#x26a0;&amp;#xfe0f; &lt;strong&gt;Use this manual process only if you cannot wait for the automatic execution of the &lt;em&gt;&lt;strong&gt;config-watcher&lt;/strong&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In order to connect the skill in production environment in a manual way (only in the above-mentioned scenario), the &lt;code&gt;/refresh&lt;/code&gt; endpoint of &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; allows the update of the new configuration without restarting the component.&lt;/p&gt;
&lt;p&gt;Two different scenarios can arise here:&lt;/p&gt;
&lt;h5 id=&#34;update-all-configuration-parameters&#34;&gt;Update all configuration parameters&lt;/h5&gt;
&lt;p&gt;Make a &lt;code&gt;port-forward&lt;/code&gt; to both &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; pods (one request per pod)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ts&#34; data-lang=&#34;ts&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;kubectl&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;port&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;forward&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;aura&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;groot&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;####&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;8080&lt;/span&gt;:&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;../../images/aura-skills-arch/refresh-forward-url.png&#34; alt=&#34;Refresh with not exposed url&#34;&gt;&lt;/p&gt;
&lt;p&gt;The request to the endpoint with post-forward is shown below:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ts&#34; data-lang=&#34;ts&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;curl&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;location&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;request&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;POST&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;localhost:8080/refresh&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;../../images/aura-skills-arch/post-forward-request.png&#34; alt=&#34;post-forward request&#34;&gt;&lt;/p&gt;
&lt;h5 id=&#34;update-only-skillschannels-information&#34;&gt;Update ONLY skills/channels information&lt;/h5&gt;
&lt;p&gt;If we only want to update skills and/or channels information, send the parameters in the message body:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ts&#34; data-lang=&#34;ts&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;curl&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;location&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;request&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;POST&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;localhost:8080/refresh&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;header&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Content-Type: application/json&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;data&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;raw&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;        &amp;#34;changes&amp;#34;: [&amp;#34;skills&amp;#34;, &amp;#34;channels&amp;#34;] // use &amp;#34;skills&amp;#34; and/or &amp;#34;channels&amp;#34; or neither of them
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;    }&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;../../images/aura-skills-arch/post-forward-request-data.png&#34; alt=&#34;post-forward request with data&#34;&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/aura-assistant/functional-description/aura-root-overview/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/aura-assistant/functional-description/aura-root-overview/</guid>
      <description>
        
        
        &lt;h1 id=&#34;introduction-to-aura-root&#34;&gt;Introduction to Aura Root&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;The current document includes an overview of Aura Root and general information regarding this Aura Virtual Assistant functional component.&lt;/p&gt;
&lt;p&gt;Moreover, it includes links to low-level technical documentation for highly-skilled technicians.&lt;/p&gt;
&lt;p align=&#34;left&#34;&gt;
  &lt;img width=&#34;200&#34; height=&#34;200&#34; src=&#34;../../images/atria/technical-skills-2.png&#34;&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt; constitutes the core functional block of &lt;em&gt;&lt;strong&gt;Aura Virtual Assistant&lt;/strong&gt;&lt;/em&gt; and is responsible for connecting channels with skills (bots).&lt;/p&gt;
&lt;p&gt;It carries out the following key tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Receives requests from the channels.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If required, it adapts the incoming request from a channel that Aura is able to understand through an adapter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Makes the decision about what is the best skill (bot) to answer the user’s request and routes this petition to the corresponding domain bot in a routing component. Currently, routing is only done by channels or channels groups.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is able to enrich both the request and the answer with additional information coming from Aura context and different models in a enrichment module. (In the current version, no enrichment is available).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Can have multiple skills connected, and one of them could be the current &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; functioning as a skill.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generates entities files with relevant information regarding each interaction, that will be afterwards uploaded to &lt;strong&gt;Kernel&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;aura-root-functional-components&#34;&gt;Aura Root functional components&lt;/h2&gt;
&lt;p&gt;From a functional point of view, &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt; includes the following features:&lt;/p&gt;
&lt;h3 id=&#34;routing&#34;&gt;Routing&lt;/h3&gt;
&lt;p&gt;The user&amp;rsquo;s request is routed to a specific skill (domain bot) able to best respond to this query.&lt;/p&gt;
&lt;p&gt;Currently, routing is done only by channels or group of channels (no configuration options are available).&lt;/p&gt;
&lt;h3 id=&#34;channel-adapter&#34;&gt;Channel adapter&lt;/h3&gt;
&lt;p&gt;If the channel does not support &lt;a href=&#34;../../docs/aura-assistant/functional-description/channels-overview/#what-languages-do-aura-assistant-talk&#34;&gt;a language that Aura understands (Microsoft Direct Line protocol)&lt;/a&gt;, an adapter is required to establish the communication.&lt;/p&gt;
&lt;h3 id=&#34;enrichment&#34;&gt;Enrichment&lt;/h3&gt;
&lt;p&gt;Enrichment adds additional data to enrich both request and response through context information, algorithms, analytical models, insights, etc.&lt;/p&gt;
&lt;p&gt;This feature will be available in further releases.&lt;/p&gt;
&lt;h2 id=&#34;aura-root-technical-components&#34;&gt;Aura Root technical components&lt;/h2&gt;
&lt;p&gt;As explained before, &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt; is a functional representation in order to make the new architecture more understandable for readers.&lt;/p&gt;
&lt;p&gt;The technical component that manages the functionalities above defined is &lt;a href=&#34;../../docs/components/aura-groot/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/skills-management/skills-connection-mini-groot/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/skills-management/skills-connection-mini-groot/</guid>
      <description>
        
        
        &lt;h1 id=&#34;guidelines-for-the-connection-of-a-skill-to-aura-minigroot&#34;&gt;Guidelines for the connection of a skill to Aura Minigroot&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Detailed process for the connection of a skill to Aura Minigroot&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;After the &lt;a href=&#34;../../docs/developers-workspace/skills-management/skills-development/&#34;&gt;development of a skill&lt;/a&gt;, it can be tested easily using a tool created by Aura Global Team: &lt;em&gt;&lt;strong&gt;Aura Minigroot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&amp;#x26a0;&amp;#xfe0f; &lt;em&gt;&lt;strong&gt;Aura Minigroot&lt;/strong&gt;&lt;/em&gt; works together with the already existing &lt;a href=&#34;../../docs/experiences-builder/tools/aura-minibot/&#34;&gt;&lt;em&gt;&lt;strong&gt;Aura minibot&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;, in fact constituting a unique tool. Both will be provided as docker images and must be installed jointly.&lt;/p&gt;
&lt;p&gt;The following sections show the detailed guidelines for the connection of a skill to Aura Minigroot.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The following previous tasks are required for the further connection of a skill with &lt;em&gt;&lt;strong&gt;Aura Minigroot&lt;/strong&gt;&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is a skill already developed and running (in this example the skill will be running in localhost)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Aura minibot&lt;/strong&gt;&lt;/em&gt; is already configured and running. You can follow the steps in &lt;a href=&#34;../../docs/experiences-builder/tools/aura-minibot/&#34;&gt;Aura Minibot user guide&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-configure-your-new-skill&#34;&gt;1. Configure your new skill&lt;/h2&gt;
&lt;p&gt;To allow &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; to redirect activities to a new skill, configure it in:&lt;br&gt;
&lt;a href=&#34;https://github.com/Telefonica/aura-mini-bot/blob/master/mock-configuration/mocks/mock-files/authentication-mock.json&#34;&gt;/mock-configuration/mocks/mock-files/skills-configuration-mock.json&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this example, we are going to redirect the channel &lt;code&gt;novum-mytelco&lt;/code&gt; (you can use a new channel if you want, but you will have to add it to &lt;code&gt;channels-configuration-mock.json&lt;/code&gt;):&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../images/developers-workspace/skills-management/add-new-skill.png&#34; alt=&#34;add-a-new-skill&#34;&gt;&lt;/p&gt;
&lt;p&gt;To do this, the following steps were taken:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Delete the channel &lt;code&gt;novum-mytelco&lt;/code&gt; from the first skill (&lt;em&gt;&lt;strong&gt;Aura minibot&lt;/strong&gt;&lt;/em&gt;) channels list and add it to our new skill called &lt;code&gt;aura-bot-ext&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Configure the Microsoft appId of our skill, a new skill id (random uuid) and the skillEndpoint.&lt;/li&gt;
&lt;li&gt;To access &lt;code&gt;localhost&lt;/code&gt; from a docker container, we use &lt;code&gt;host.docker.internal&lt;/code&gt; instead &lt;code&gt;localhost&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;NOTE: If you use linux, maybe you should also add &lt;code&gt;extra_hosts: &amp;quot;host.docker.internal:host-gateway&amp;quot;&lt;/code&gt; to &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; in your docker-compose file.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;2-user-mock-configuration&#34;&gt;2. User mock configuration&lt;/h2&gt;
&lt;p&gt;To access this skill, we are going to use anonymous users.&lt;/p&gt;
&lt;p&gt;As &lt;em&gt;&lt;strong&gt;Aura Minigroot&lt;/strong&gt;&lt;/em&gt; also mocks anonymous users, we need to update the mock data to redirect the mocked anonymous user to our skill setting his channel to &lt;code&gt;45494a5b-835a-4fff-a813-b3d2be529dbe&lt;/code&gt;
(the channelId of &lt;code&gt;novum-mytelco&lt;/code&gt;):&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../images/developers-workspace/skills-management/update-anonymous-user.png&#34; alt=&#34;update-anonymous-user&#34;&gt;&lt;/p&gt;
&lt;p&gt;With this change, all the users not mocked in &lt;code&gt;authentication-mock.json&lt;/code&gt; will be redirected to our new skill.&lt;/p&gt;
&lt;h2 id=&#34;3-restart-the-mini-groot&#34;&gt;3. Restart the mini-groot&lt;/h2&gt;
&lt;p&gt;After these changes, you have to restart your &lt;em&gt;&lt;strong&gt;Aura Minigroot&lt;/strong&gt;&lt;/em&gt; container to refresh the configurations.&lt;/p&gt;
&lt;p&gt;When the container restarts, you should have your new skill working with &lt;em&gt;&lt;strong&gt;Aura Minigroot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/develop-features/aura-utilities/aura-bot-utilities/aura-bot-common/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/develop-features/aura-utilities/aura-bot-utilities/aura-bot-common/</guid>
      <description>
        
        
        &lt;h1 id=&#34;aura-bot-common-library&#34;&gt;Aura Bot Common library&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Aura Bot common is a core library that contains utilities for the integration of different components with Aura&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Aura Bot common&lt;/strong&gt;&lt;/em&gt; is a helper library published in NPM that includes useful utilities to handle conversations both in &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; and in the dialogs.&lt;/p&gt;
&lt;p&gt;&lt;i class=&#34;fa-regular fa-file-lines fa-xl&#34; style=&#34;color: #0d5de7;&#34;&gt;&lt;/i&gt; Find more information in the Github repository:&lt;br&gt;
&lt;a href=&#34;https://github.com/Telefonica/aura-common-utilities/tree/master/packages/aura-bot-utilities/src/aura-bot-common&#34;&gt;https://github.com/Telefonica/aura-common-utilities/tree/master/packages/aura-bot-utilities/src/aura-bot-common&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;&lt;strong&gt;Aura Bot common&lt;/strong&gt;&lt;/em&gt; library holds models and utility code shared between &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; and the libraries. It contains two different types of methods: external and internal, which are described in the following sections.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../docs/developers-workspace/develop-features/aura-utilities/aura-bot-utilities/aura-bot-common/aura-utils/&#34;&gt;Aura utils&lt;/a&gt;: generic tools to manage dialogs and prompts.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../docs/developers-workspace/develop-features/aura-utilities/aura-bot-utilities/aura-bot-common/bridge-utils/&#34;&gt;Bridge utils&lt;/a&gt;: tools for &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; management.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../docs/developers-workspace/develop-features/aura-utilities/aura-bot-utilities/aura-bot-common/channel-data-utils/&#34;&gt;Aura channelData utils&lt;/a&gt;: utilities for managing &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; &lt;code&gt;channelData&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../docs/developers-workspace/develop-features/aura-utilities/aura-bot-utilities/aura-bot-common/context-utils/&#34;&gt;Aura context utils&lt;/a&gt;: utilities with methods for managing the BotFramework &lt;code&gt;TurnContext&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/components/request-response-model/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/components/request-response-model/</guid>
      <description>
        
        
        &lt;h1 id=&#34;aura-request-response-semantic-model&#34;&gt;Aura request-response semantic model&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This section describes the Aura request-response semantic model, which makes it possible for external software components, application and services to speak a language Aura can understand using the Direct Line API&lt;/p&gt;
&lt;p&gt;&lt;i class=&#34;fa-regular fa-bullseye fa-xl&#34; style=&#34;color: #3a13fb;&#34;&gt;&lt;/i&gt; &lt;em&gt;&lt;strong&gt;Aura Virtual Assistant&lt;/strong&gt;&lt;/em&gt; component&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The Direct Line API provides the connectivity between any external software component, service, channel or application and Aura skills.&lt;/p&gt;
&lt;p&gt;Anyhow, having a connection means is typically not enough, as a proper understanding and semantics are needed between the communicating parties regarding the data being intercommunicated. In order to improve the communication of Aura with services or channels being integrated into the Microsoft Azure Bot Service and Bot Framework, two concepts come into play:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/previous-versions/azure/bot-service/dotnet/bot-builder-dotnet-activities?view=azure-bot-service-3.0&#34;&gt;Activities&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/previous-versions/azure/bot-service/rest-api/bot-framework-rest-connector-api-reference?view=azure-bot-service-3.0#activity-object&#34;&gt;Fixed JSON format&lt;/a&gt;.
This fixed JSON format includes a JSON property called &lt;a href=&#34;https://docs.microsoft.com/en-us/previous-versions/azure/bot-service/dotnet/bot-builder-dotnet-channeldata?view=azure-bot-service-3.0&amp;amp;viewFallbackFrom=azure-bot-service-4.0&#34;&gt;&lt;code&gt;channelData&lt;/code&gt;&lt;/a&gt;, which channel developers and integrators can use to encode channel-specific data in JSON format and its corresponding semantics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this framework, we introduce the so-called &lt;strong&gt;Aura Request - Response Semantic Model&lt;/strong&gt;. This semantic model makes it possible for external software components, application and services to speak a language Aura can understand using the DirectLine API.&lt;/p&gt;
&lt;p&gt;&lt;i class=&#34;fa-regular fa-thumbtack fa-xl&#34; style=&#34;color: #ffac4d;&#34;&gt;&lt;/i&gt;  Currently, this semantic model is used both for the communication of channels with &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; and for the communication of &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; with skills in two &lt;a href=&#34;../../docs/components/channels/communication-protocols/&#34;&gt;Aura communication protocols&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../docs/components/channels/communication-protocols/microsoft-bot-service/&#34;&gt;&lt;strong&gt;Direct Line&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../docs/components/channels/communication-protocols/auraline/&#34;&gt;&lt;strong&gt;Auraline&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Within the &lt;strong&gt;Aura Request - Response Semantic Model&lt;/strong&gt;, two key properties will be fully described throughout these documents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The general-purpose channel-specific &lt;code&gt;channelData&lt;/code&gt; property is the one used by Aura to define the model. When a message is sent from a channel, part of that message is specific to the channel/service and it allows &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; and &lt;em&gt;&lt;strong&gt;skills&lt;/strong&gt;&lt;/em&gt; to communicate correctly with it.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;payload&lt;/code&gt; property can be used by an external component to facilitate the sharing of information between the channels, &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; and the skills in order add extra information associated with the channel and, consequently, enrich the request.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;../../images/channels/channel-root-skills.png&#34; alt=&#34;Channel-root-skills&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;versioning&#34;&gt;Versioning&lt;/h2&gt;
&lt;p&gt;Aura supports different versions of the &lt;strong&gt;Aura Request - Response Semantic Model&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;channeldata-v1&#34;&gt;channelData v1&lt;/h3&gt;
&lt;p&gt;In older Aura Platform releases, the default version was &lt;strong&gt;version 1&lt;/strong&gt;, so some channels did not send the version of the &lt;code&gt;channelData&lt;/code&gt; and &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; handled their requests as version 1.0.0.&lt;/p&gt;
&lt;p&gt;There is an exception: in release Aerosmith, &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; included Living Apps handling as a platform feature.&lt;/p&gt;
&lt;p&gt;&amp;#x27a1;&amp;#xfe0f; Access to &lt;a href=&#34;../../docs/components/request-response-model/channeldata-v1/&#34;&gt;channelData v1 documentation&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;channeldata-v2&#34;&gt;channelData v2&lt;/h3&gt;
&lt;p&gt;Afterwards, &lt;strong&gt;version 2&lt;/strong&gt; was created to extend the &lt;code&gt;channelData&lt;/code&gt; property with new fields, such as &lt;code&gt;actions&lt;/code&gt; and &lt;code&gt;status&lt;/code&gt;, that with the regular communications with the channels are not needed or, in the case of the &lt;code&gt;actions&lt;/code&gt;, are solved by other ad-hoc means.&lt;/p&gt;
&lt;p&gt;In Greenday (6.0.1) release, Aura included a WhatsApp connector, the so-named &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; and also &lt;code&gt;channelData&lt;/code&gt; &lt;strong&gt;version 2&lt;/strong&gt; was used to access and to use the extra features of &lt;code&gt;actions&lt;/code&gt; and &lt;code&gt;status&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In these Aura Platform releases until Iron Maiden, &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; included a lazy definition of the &lt;code&gt;channelData&lt;/code&gt; model, so, in fact, it handled almost a different version per channel.&lt;/p&gt;
&lt;p&gt;&amp;#x27a1;&amp;#xfe0f; Access to &lt;a href=&#34;../../docs/components/request-response-model/channeldata-v2/&#34;&gt;channelData v2 documentation&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;channeldata-v3&#34;&gt;channelData v3&lt;/h3&gt;
&lt;p&gt;From Iron Maiden (7.2.0) onwards, we introduce the so-called &lt;strong&gt;&lt;code&gt;channelData&lt;/code&gt; normalized version (version 3)&lt;/strong&gt;, an enriched version of &lt;code&gt;channelData&lt;/code&gt; with new fields that provide a complete schema definition. This will enforce all channels to use the very same schema to access &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&amp;#x27a1;&amp;#xfe0f; Access to &lt;a href=&#34;../../docs/components/request-response-model/channeldata-v3/&#34;&gt;channelData v3 documentation&lt;/a&gt;&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
