<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aura – </title>
    <link>/docs/atria/technical-components/aura-gateway-api/components/</link>
    <description>Recent content on Aura</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="/docs/atria/technical-components/aura-gateway-api/components/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: </title>
      <link>/docs/atria/technical-components/aura-gateway-api/components/plugins/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/atria/technical-components/aura-gateway-api/components/plugins/</guid>
      <description>
        
        
        &lt;h1 id=&#34;aura-gateway-api-plugins&#34;&gt;Aura gateway API plugins&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; plugins are components that provide different functionalities to &lt;strong&gt;aura-gateway-api&lt;/strong&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-gateway-api&lt;/strong&gt;&lt;/em&gt; is composed of plugins, which provide functionality to this component. Plugins work independently, the same way as a service in microservices oriented architecture: isolated, self-contained and without affecting other existing functionalities in the system.&lt;/p&gt;
&lt;p&gt;From the different types of plugins, only &lt;strong&gt;Api&lt;/strong&gt; plugins are available in &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The following plugins are currently available in &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt;. From the different &lt;a href=&#34;../../../../../docs/atria/capabilities/&#34;&gt;&lt;em&gt;&lt;strong&gt;ATRIA&lt;/strong&gt;&lt;/em&gt; capabilities&lt;/a&gt; that this component can manage, certain plugins are used by all or some of them and others are specific of one capability.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/components/plugins/aura-generative-api-plugin/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-generative-api&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt;&lt;br&gt;
This module manages request to external OpenAI APIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/components/plugins/aura-generative-process-service-plugin/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-generative-process-service&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt;&lt;br&gt;
This module manages the communication and data processing with external OpenAI APIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/components/plugins/aura-nlp-resolution-api-plugin/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-nlp-resolution&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt;&lt;br&gt;
This module manages the request to NLP services.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/components/plugins/aura-nlp-resolution-process-service-plugin/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-nlp-resolution-process-services&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt;&lt;br&gt;
This module manages the communication and data processing with external NLP services.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/components/plugins/aura-development-api-plugin/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-development-api&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt;&lt;br&gt;
This module manages configuration in development environments. Only available in development environments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/components/plugins/aura-feedback-api-plugin/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-feedback-api&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt;&lt;br&gt;
This module manages requests to provide feedback about the generative and RAG services behavior.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/components/plugins/aura-agents-api-plugin/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-agents-api&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt;&lt;br&gt;
This module manages the communication with agents.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/developers-workspace/develop-features/aura-utilities/aura-utilities/server-common/dapr-pubsub-service/&#34;&gt;&lt;em&gt;&lt;strong&gt;dapr-pubsub-service&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt; This plugin allows the interaction with the Dapr PubSub Service.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/components/plugins/aura-operations-api-plugin/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-operations-api&lt;/strong&gt;&lt;/em&gt; plugin&lt;/a&gt;&lt;br&gt;
This module allows you to perform operations on now, currently launching the generateDB&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&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; Discover detailed information regarding the available plugins in the left index.&lt;/p&gt;
&lt;h2 id=&#34;plugins-management&#34;&gt;Plugins management&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; uses the &lt;a href=&#34;https://github.com/architect/architect&#34;&gt;@architect/architect&lt;/a&gt; library for the management of plugins, so it is the &lt;em&gt;&lt;strong&gt;architect&lt;/strong&gt;&lt;/em&gt; library that is responsible for managing the dependencies injection in each module.&lt;/p&gt;
&lt;p&gt;To create the &lt;em&gt;&lt;strong&gt;architect&lt;/strong&gt;&lt;/em&gt; application, &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; uses the &lt;code&gt;PluginManager&lt;/code&gt; module (located in the &lt;em&gt;modules/plugin-manager&lt;/em&gt; folder). This module starts as the rest of modules at the &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; start-up.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;PluginManager&lt;/code&gt; performs the following tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It starts the &lt;em&gt;&lt;strong&gt;architect&lt;/strong&gt;&lt;/em&gt; application with the plugins defined in &lt;code&gt;plugin-config.json&lt;/code&gt; file, located at the root of the &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; component.&lt;/li&gt;
&lt;li&gt;It adds the core modules to the IOC context. See the section &lt;a href=&#34;#plugins-modules&#34;&gt;plugins modules&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;It stores the information of each module defined in the plugins.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Apart from the &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; core environment variables, each plugin can define its own specific variables. Access the document &lt;a href=&#34;../../../../../docs/atria/technical-components/aura-gateway-api/environment-variables/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; environment variables&lt;/a&gt; and find them in the section corresponding to your plugin.&lt;/p&gt;
&lt;h2 id=&#34;plugin-basic-structure&#34;&gt;Plugin basic structure&lt;/h2&gt;
&lt;p&gt;Currently, &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; uses &lt;a href=&#34;https://github.com/architect/architect&#34;&gt;@architect/architect&lt;/a&gt; library for plugins management.&lt;/p&gt;
&lt;p&gt;A basic plugin must define at least:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;code&gt;package.json&lt;/code&gt; file defining the library, like any other JavaScript library, with a &lt;code&gt;plugin&lt;/code&gt; section defining which modules it consumes and supplies.&lt;/li&gt;
&lt;li&gt;A source code file that defines the modules that it supplies (&lt;code&gt;index.ts&lt;/code&gt; for example).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The structure of this basic plugin is as follows:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-pre&#34; data-lang=&#34;pre&#34;&gt;session-api
├── index.ts
└── package.json
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;plugins-modules&#34;&gt;Plugins modules&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; currently adds one module that can be used by the different plugins. To use it, it is only necessary to add the &lt;code&gt;package.json&lt;/code&gt; dependencies on &lt;code&gt;plugin.consumes&lt;/code&gt; (like any other module/component).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;configurationManager&lt;/strong&gt;&lt;/em&gt;: Module with the &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; configuration information.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;redisConnector&lt;/strong&gt;&lt;/em&gt;: Module with the &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt; Redis connection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A plugin can provide one or more plugin modules and each plugin module can be of a different type. Each type of module is intended to add a specific functionality to &lt;em&gt;&lt;strong&gt;aura-gateway-api&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

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