<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aura – </title>
    <link>/docs/developers-workspace/skills-management/</link>
    <description>Recent content on Aura</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="/docs/developers-workspace/skills-management/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/skills-management/skills-development/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/skills-management/skills-development/</guid>
      <description>
        
        
        &lt;h1 id=&#34;guidelines-for-skills-development&#34;&gt;Guidelines for skills development&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Description of processes and tools for the development of skills to be subsequently connected to Aura&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The process for the development of a skill that will be subsequently connected to Aura is different, depending on the type of skill.&lt;/p&gt;
&lt;p&gt;In &lt;strong&gt;Phase 1&lt;/strong&gt;, OBs are able to develop skills outside Aura cluster:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Using a technology compatible with Microsoft Bot Framework (Direct Line protocol), for example, with &lt;a href=&#34;https://learn.microsoft.com/en-us/composer/how-to-export-a-skill?tabs=v2x&#34;&gt;Microsoft composer&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Third-party bots, defined as bots that are not part of the Microsoft ecosystem.
The development of external bots with different technologies for their subsequent integration into Aura includes two main stages that must be carried out by constructors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The bot development itself, with the preferred technology (Google Assistant, Teneo, etc).&lt;/li&gt;
&lt;li&gt;The development of a third-party adapter, required for the bot to communicate with &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt;. This adapter must be able to convert requests to be sent to the external bot, and the other way around with answers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this framework, there is an available tool that eases the development and subsequent testing of the skill: &lt;strong&gt;aura minigroot&lt;/strong&gt;. The already existing &lt;strong&gt;aura minibot&lt;/strong&gt; works now jointly with &lt;strong&gt;aura minigroot&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Access &lt;a href=&#34;../../../docs/developers-workspace/skills-management/skills-connection-mini-groot&#34;&gt;MiniGroot skill connection&lt;/a&gt; and &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;

      </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/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/skills-management/message-exchange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/skills-management/message-exchange/</guid>
      <description>
        
        
        &lt;h1 id=&#34;message-exchange-between-channels-and-skills&#34;&gt;Message exchange between channels and skills&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Guidelines for the exchange of messages that allows the communication between a channel and a skill&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Once a &lt;a href=&#34;../../../docs/developers-workspace/skills-management/skills-connection/&#34;&gt;skill is connected to &lt;em&gt;&lt;strong&gt;Aura Root&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;, now it is required to establish a communication between a channel and this skill in order to exchange messages between them.&lt;/p&gt;
&lt;p&gt;For this purpose, the communication protocol &lt;strong&gt;Aura request-response semantic model v3&lt;/strong&gt; must be used both by channels and skills to enable them to speak a language Aura can understand using the Direct Line API in order to make a request from a user through the designated channel and receive back the most suitable response from Aura.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../../images/aura-skills-arch/request-response-skills.png&#34; alt=&#34;Request-response-skills&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;request-model-v3&#34;&gt;Request model v3&lt;/h3&gt;
&lt;p&gt;Use the root &lt;code&gt;channelData&lt;/code&gt; properties of the &lt;a href=&#34;../../../docs/components/request-response-model/channeldata-v3/aura-request-model/&#34;&gt;Aura request semantic model v3&lt;/a&gt; for message exchange from the channel to the skill through &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JSON schema for the Aura request semantic model v3&lt;/li&gt;
&lt;li&gt;&lt;code&gt;payload&lt;/code&gt; property: In the framework of Aura distributed architecture, the &lt;code&gt;payload&lt;/code&gt; property includes a specific field (&lt;code&gt;AuraGrooPayload&lt;/code&gt;) that allows sending enriched information from &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; to the skill.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;response-model-v3&#34;&gt;Response model v3&lt;/h3&gt;
&lt;p&gt;Use the root &lt;code&gt;channelData&lt;/code&gt; properties of the &lt;a href=&#34;../../../docs/components/request-response-model/channeldata-v3/aura-response-model/&#34;&gt;Aura response semantic model v3&lt;/a&gt; for message exchange from the skill to the channel through &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JSON schema for the Aura response semantic model v3&lt;/li&gt;
&lt;li&gt;Root attachment properties&lt;/li&gt;
&lt;li&gt;&lt;code&gt;skillPayload&lt;/code&gt; property: In the framework of Aura distributed architecture, this specific property allows sending enriched information from the skill to &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/skills-management/hot-swapping/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/skills-management/hot-swapping/</guid>
      <description>
        
        
        &lt;h1 id=&#34;hot-swapping-processes-in-aura-distributed-architecture&#34;&gt;Hot swapping processes in Aura distributed architecture&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Guidelines to execute modifications in Aura distributed architecture through a hot swapping process&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Constructors can add, delete of modify a skill through a hot swapping process, without affecting other skills, through the &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Through this process, &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; can be modified to route to a new skill or delete from its routing tables other skills if constructors do not want to send requests to them.&lt;/p&gt;
&lt;h2 id=&#34;guidelines&#34;&gt;Guidelines&lt;/h2&gt;
&lt;h3 id=&#34;add-a-new-skill&#34;&gt;Add a new skill&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Deploy a new skill in your own deployment site.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Prepare your channel:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(Optional) If your skill is serving a new channel, add the channel to the &lt;a href=&#34;../../../docs/components/aura-configuration-api/api-definition/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;(Optional) If your skill is serving an already existing channel that is not handled by any skill, nothing is needed.&lt;/li&gt;
&lt;li&gt;(Optional) If your skill is serving an already existing channel that is handled by another skill, delete the channel from the current skill configuration &lt;a href=&#34;../../../docs/components/aura-configuration-api/api-definition/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;, launching a &lt;code&gt;PATCH&lt;/code&gt; request.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Prepare the &lt;code&gt;POST&lt;/code&gt; request to the &lt;a href=&#34;../../../docs/components/aura-configuration-api/api-definition/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; in order to add the skill.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Send the request to the &lt;a href=&#34;../../../docs/components/aura-configuration-api/api-definition/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; to add the skill.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After the request is processed, &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; automatically loads the new skill and starts routing requests to it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;delete-an-existing-skill&#34;&gt;Delete an existing skill&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Prepare the &lt;code&gt;DELETE&lt;/code&gt; request to the &lt;a href=&#34;../../../docs/components/aura-configuration-api/api-definition/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; to delete the skill.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Send the request to the &lt;a href=&#34;../../../docs/components/aura-configuration-api/api-definition/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; to delete the skill.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After the request is processed, &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; automatically removes the deleted skill and no longer routes requests to it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(Optional) If your skill is serving a dedicated channel that is no longer needed, remove the channel from the &lt;a href=&#34;../../../docs/components/aura-configuration-api/api-definition/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;At this point, the skill can be undeployed from your deployment site.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

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