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


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Sequential flowchart for Aura file manager processes and API functionalities&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;initialization-sequence&#34;&gt;Initialization sequence&lt;/h2&gt;
&lt;pre class=&#34;mermaid&#34;&gt;sequenceDiagram
    participant A as Orchestrator
    participant B as HttpMonkeyPatcher
    participant C as AuraChannelsConfiguration
    participant D as AuraMongoDb.Connector
    participant E as FileQueueDao
    participant F as FileService
    participant G as FileManagerServer
    participant H as ClientOAuthToken4P
    participant I as StorageFileManager
    participant J as 4P Whatsapp API
    participant K as Aura Global Azure storage
    participant L as QueueManager
    participant M as QueueAgent
    A -&amp;gt;&amp;gt;&amp;#43; B: init
    B --&amp;gt;&amp;gt;- A: instance
    A -&amp;gt;&amp;gt;&amp;#43; C: init
    C -&amp;gt;&amp;gt;&amp;#43; K: loadChannelsConfiguration
    K --&amp;gt;&amp;gt;- C: Channels configuration
    C --&amp;gt;&amp;gt;- A: instance
    A -&amp;gt;&amp;gt;&amp;#43; D: init
    D --&amp;gt;&amp;gt;- A: instance
    A -&amp;gt;&amp;gt;&amp;#43; E: init
    E --&amp;gt;&amp;gt;- A: instance
    A -&amp;gt;&amp;gt;&amp;#43; F: init
    F -&amp;gt;&amp;gt;&amp;#43; H: init
    loop 4P oauth tokens
        H -&amp;gt;&amp;gt;&amp;#43; J: grantClient
        J --&amp;gt;&amp;gt;- H: TokenSet
    end
    H --&amp;gt;&amp;gt;- F :initialized
    F -&amp;gt;&amp;gt;&amp;#43; I: new
    I --&amp;gt;&amp;gt;- F: instance
    F --&amp;gt;&amp;gt;- A: instance
    A -&amp;gt;&amp;gt;&amp;#43; G: init
    G --&amp;gt;&amp;gt;- A: instance
    A -&amp;gt;&amp;gt;&amp;#43; L: init
    L --&amp;gt;&amp;gt;- A: instance
    A -&amp;gt;&amp;gt;&amp;#43; M: init
    M --&amp;gt;&amp;gt;- A: instance&lt;/pre&gt;
&lt;h3 id=&#34;sequence-explanation&#34;&gt;Sequence explanation&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;../../docs/developers-workspace/develop-features/aura-utilities/aura-http-monkey-patcher/&#34;&gt;&lt;em&gt;&lt;strong&gt;HttpMonkeyPatcher&lt;/strong&gt;&lt;/em&gt; utility&lt;/a&gt; is loaded, mostly to monitor HTTP traffic through Prometheus.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AuraChannelsConfiguration&lt;/code&gt; is loaded, which retrieves channels configuration from Aura Global Azure storage.
&lt;em&gt;&lt;strong&gt;Aura file manager&lt;/strong&gt;&lt;/em&gt; needs it in order to retrieve validation configuration for the selected channel.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AuraMongoDb.Connector&lt;/code&gt; and &lt;code&gt;FileQueueDao&lt;/code&gt; are loaded to access MongoDB.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FileService&lt;/code&gt; initializes other different services.&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ClientOauthToken4P&lt;/code&gt;: It connects to &lt;strong&gt;Kernel&lt;/strong&gt; WhatsApp API and retrieves tokens for different channels (WhatsApp).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;StorageFileManager&lt;/code&gt;: It initializes and configures the connection against Aura Global Azure storage.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Queue components are started: &lt;em&gt;&lt;strong&gt;QueueManager&lt;/strong&gt;&lt;/em&gt; and &lt;em&gt;&lt;strong&gt;QueueAgent&lt;/strong&gt;&lt;/em&gt;, in charge of message management.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;FileManagerServer&lt;/strong&gt;&lt;/em&gt; is started, which exposes &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; API.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;api-functionalities&#34;&gt;API functionalities&lt;/h2&gt;
&lt;p&gt;In this section, &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; functionalities are documented using sequence diagrams.&lt;/p&gt;
&lt;p&gt;Detailed information about these endpoints can be found in the &lt;a href=&#34;../../docs/components/file-manager/api-definition/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; API definition&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;upload-and-validate-files&#34;&gt;Upload and validate files&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /aura-services/v1/files&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Upload and validate operation. It allows to upload and validate a file based on previously defined validations.&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;sequenceDiagram
    actor User as Channel user
    participant K as Groot
    participant A as Bot (FileManagerRecognizer)
    participant B as Bridge (AsyncCallback plugin)
    participant C as FileManagerServer
    participant D as FileController
    participant E as FileService
    participant I as FileQueueDao
    participant J as QueueManager
    participant F as ClientOauthToken4P
    participant G as Aura Global Azure storage
    participant H as FileValidator

    User-&amp;gt;&amp;gt;&amp;#43;K: Unprocessed attachment
    K-&amp;gt;&amp;gt;-User: 204
    K-&amp;gt;&amp;gt;&amp;#43;A: Unprocessed attachment
    A--&amp;gt;&amp;gt;-K: 204
    A-&amp;gt;&amp;gt;&amp;#43;C: POST /files
    C--&amp;gt;&amp;gt;-A: 204
    C-&amp;gt;&amp;gt;&amp;#43;D: uploadAndValidateFiles
    D-&amp;gt;&amp;gt;&amp;#43;E: storeFiles
    E-&amp;gt;&amp;gt;&amp;#43;I: insertIncomingFileRequest
    I--&amp;gt;&amp;gt;-E: Ok
    E-&amp;gt;&amp;gt;&amp;#43;J: addTask
    J--&amp;gt;&amp;gt;-E: Ok
    D--&amp;gt;&amp;gt;-C: 204    
        alt Have queue space?
        J-&amp;gt;&amp;gt;&amp;#43;E: processFile
        loop multiple attachments
            E-&amp;gt;&amp;gt;&amp;#43;F: getTokenByClientId
            F--&amp;gt;&amp;gt;-E: Token
            E-&amp;gt;&amp;gt;&amp;#43;G: uploadFile
            G--&amp;gt;&amp;gt;-E: Upload result
            E-&amp;gt;&amp;gt;&amp;#43;G: getFileContents
            G--&amp;gt;&amp;gt;-E: File contents
            E-&amp;gt;&amp;gt;&amp;#43;H: validateFile
            H--&amp;gt;&amp;gt;-E: Validation
            E-&amp;gt;&amp;gt;&amp;#43;G: getSasUrl
            G--&amp;gt;&amp;gt;-E: Url
            E--&amp;gt;&amp;gt;-E: Attachment data
        end
        D--&amp;gt;&amp;gt;C: Attachments data
        C--&amp;gt;&amp;gt;B: Attachments data
        B--&amp;gt;&amp;gt;K: Attachments data
        K--&amp;gt;&amp;gt;A: Attachments data
        A--&amp;gt;&amp;gt;K: Attachments data
        K--&amp;gt;&amp;gt;User: Attachments data
    end&lt;/pre&gt;
&lt;h4 id=&#34;actors&#34;&gt;Actors&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Channel user&lt;/strong&gt;: User that is interacting with the dialog.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Groot&lt;/strong&gt;: &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; main bot over distributed architecture .&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bot&lt;/strong&gt;: &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; responsible of handling the attachments processing. It is done through the &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; recognizer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bridge&lt;/strong&gt;: &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; responsible of handling attachments once processed and sending data back to &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FileManager microservice&lt;/strong&gt;: Microservice responsible of processing attachments.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;FileManagerServer&lt;/strong&gt;: Server responsible of handling request to the microservice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File&lt;/strong&gt;: Controller that handles requests of attachments processing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FileService&lt;/strong&gt;: Service where the attachments files are validated and uploaded to Aura Global Azure storage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ClientOauthToken4P&lt;/strong&gt;: Small utility to retrieve and maintain authorization &lt;strong&gt;Kernel&lt;/strong&gt; tokens.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FileQueueDao&lt;/strong&gt;: Decentralized autonomous organization (DAO) to manage BD operations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QueueManager&lt;/strong&gt;: Component in charge of managing queue messages.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aura Global Azure storage&lt;/strong&gt;: Repository where the files are going to be stored temporarily. By default, they are accessible for one hour.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../docs/developers-workspace/develop-features/aura-utilities/aura-utilities/file-validator/&#34;&gt;&lt;strong&gt;aura-file-validator utility&lt;/strong&gt;&lt;/a&gt;: Utility responsible for validating files content.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;sequence-explanation-1&#34;&gt;Sequence explanation&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;A channel user has uploaded a file/s as requested by a dialog that supports attachments.&lt;/li&gt;
&lt;li&gt;When the attachments are detected by &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; (through the &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; recognizer), the attachments are sent to &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; microservice to be processed.&lt;/li&gt;
&lt;li&gt;Once the attachments are received by &lt;em&gt;&lt;strong&gt;Aura file manager&lt;/strong&gt;&lt;/em&gt;, basic checks are done synchronously (all parameters needed are present and have correct format), the request added in queue is stored and a ACK is sent to the &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; recognizer.&lt;/li&gt;
&lt;li&gt;After sending the ACK, the real attachments processing starts asynchronously.&lt;/li&gt;
&lt;li&gt;If queue is not full, the attachments begin to process.&lt;/li&gt;
&lt;li&gt;The direct link is sent directly to Aura Global Azure storage, delegating on it the responsibility of its uploading.&lt;/li&gt;
&lt;li&gt;If the repository uploads the file correctly, then &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; downloads it and, through the use of the &lt;a href=&#34;../../docs/developers-workspace/develop-features/aura-utilities/aura-utilities/file-validator/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-file-validator&lt;/strong&gt;&lt;/em&gt; utility&lt;/a&gt;, validates its content.&lt;/li&gt;
&lt;li&gt;Once the file is validated, a direct download link is retrieved from the repository, and the data is sent to &lt;em&gt;&lt;strong&gt;aura_bridge&lt;/strong&gt;&lt;/em&gt; &lt;code&gt;asyncCallback&lt;/code&gt; endpoint.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; translates the message and sends it to &lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;aura-groot&lt;/strong&gt;&lt;/em&gt; translates the message and sends it to &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt;,  where &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; recognizer will forward it to the originating dialog.&lt;/li&gt;
&lt;li&gt;If queue is full, when one &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; pod has space enough, the attachments will be processed by QueueAgent.&lt;/li&gt;
&lt;/ul&gt;

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


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;List of environment variables used by &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Properties marked in &lt;strong&gt;bold&lt;/strong&gt; are mandatory.&lt;/li&gt;
&lt;li&gt;Properties marked in &lt;em&gt;italics&lt;/em&gt; are optional.&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Property&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Modifiable by OB&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_4P_TOKEN_DELAY_RETRY&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;When retrieving a &lt;strong&gt;Kernel&lt;/strong&gt; token, if an error occurs, delay time in milliseconds between retries. Default value: &lt;code&gt;100&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_AUTHORIZATION_HEADER&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Complete authorization header to be sent to &lt;em&gt;&lt;strong&gt;aura_bridge&lt;/strong&gt;&lt;/em&gt;, with the following format: &lt;code&gt;APIKEY xxxxxx&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES, but only if the previous APIKey was deprecated.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_BRIDGE_ASYNC_CALLBACK_PATH&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Path of async-callback. By default: &lt;code&gt;aura-services/v1/async-callback/notifications&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_BRIDGE_APIKEY&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;APIKey needed to call &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_BRIDGE_CALLBACK_RETRIES&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of retries made by &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; in case of error in an HTTP request. By default: &lt;code&gt;3&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO, only if checked and validated with Aura Global Team.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_BRIDGE_CALLBACK_RETRY_DELAY&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Delay between retries in case of error. By default: &lt;code&gt;100&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO, only if checked and validated with Aura Global Team.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_BRIDGE_CALLBACK_RETRY_FACTOR&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Factor to multiply delay for every HTTP request retried. By default: &lt;code&gt;10&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO, only if checked and validated with Aura Global Team.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_BRIDGE_ENDPOINT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Endpoint for &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_CHANNELS_CONFIGURATION_API_ENDPOINT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Endpoint for &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_ENCRYPTION_ALGORITHM&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Encryption algorithm that will be used to encrypt async-callback parameters. By default: &lt;code&gt;aes-256-cbc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NO. It would break APIKey validation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_ENCRYPTION_IV_LENGTH&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Size for the initialization vector used by the encryption algorithm. By default: &lt;code&gt;16&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NO. It would break APIKey validation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_ENCRYPTION_IV_POSITION&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Position where to insert the initialization vector in the final string with the encrypted payload. By default: &lt;code&gt;35&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO. It would break APIKey validation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_ENCRYPTION_KEY&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Encryption key or comma-separated list of encryption keys to be used in the environment. It is mainly used to encrypt sensible data, such as async-callback parameters.&lt;/td&gt;
&lt;td&gt;NO. It would break database encrypted data and APIKey validation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_ENVIRONMENT_NAME&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the environment where the &lt;em&gt;&lt;strong&gt;aura-authentication-api&lt;/strong&gt;&lt;/em&gt; is deployed. For example: &lt;code&gt;ap-next&lt;/code&gt;, &lt;code&gt;es-dev&lt;/code&gt; or &lt;code&gt;de-pre&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_ENVIRONMENT_PREFIX&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Prefix that will be used by all Redis keys when using redis-connector. This allows mixing in a single Redis service messages coming from different environments in the same Azure subscription. By default: ``. (empty)&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_FILE_MANAGER_SERVER_PORT&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Port where the API is listening. By default, &lt;code&gt;8015&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_FILE_MANAGER_TYPES&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string[]&lt;/td&gt;
&lt;td&gt;Array with the valid default file types, it can be overriden by the channel configuration. Default value: &lt;code&gt;[&#39;pdf&#39;, &#39;docx&#39;, &#39;pptx&#39;, &#39;xlsx&#39;, &#39;aac&#39;, &#39;m4a&#39;, &#39;amr&#39;, &#39;mp3&#39;, &#39;ogg&#39;, &#39;mp4&#39;, &#39;3gpp&#39;, &#39;jpg&#39;, &#39;jpeg&#39;, &#39;png&#39;]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NO, it must be done through channel config.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_FILE_MANAGER_MONGODB_COLLECTION_FILES_QUEUE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Collection where the files objects will be stored. By default: &lt;code&gt;files-queue&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_FILE_MANAGER_MONGODB_DATABASE_NAME&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Database name where will be included all the &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; collections. By default: &lt;code&gt;aura-file-manager&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_FILE_MANAGER_MONGODB_MAX_RETRIES_QUEUE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of file processing attempts. Not to be confused with message sending retries. By default: &lt;code&gt;3&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_FILE_MANAGER_MONGODB_MAX_PROCESSING_TIME&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Maximum time in milliseconds that the file is in the &lt;code&gt;PROCESSING&lt;/code&gt; state before trying to process it again. By default: &lt;code&gt;300000&lt;/code&gt; milliseconds.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_FP_AUTHSERVER_ENDPOINT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;URL of the &lt;strong&gt;Kernel&lt;/strong&gt; authentication server. It &lt;em&gt;MUST&lt;/em&gt; end with &lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_HTTP_KEEP_ALIVE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;Flag to indicate whether or not the outgoing HTTP connections should be established with keep alive or not. By default, &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_HTTP_KEEP_ALIVE_MSECS&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of milliseconds to keep HTTP connections open. By default, &lt;code&gt;100000&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_HTTP_KEEP_MAX_SOCKETS&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of sockets to keep HTTP connections open. By default, &lt;code&gt;200&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_HTTP_MAX_REQUEST_SIZE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Maximum size in bytes of body request. Allowed values must indicate the units: 10 mb, 200 kb, etc. By default, &lt;code&gt;50mb&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_HTTP_PATHS_LOG_DISABLED&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Comma-separated string with the outgoing path that should not be logged. By default, &lt;code&gt;.well-known/openid-configuration&lt;/code&gt;, &lt;code&gt;aura-configuration&lt;/code&gt;, &lt;code&gt;metrics,&lt;/code&gt; &lt;code&gt;healthz&lt;/code&gt;. The paths in this variable will be added to the default ones.&lt;/td&gt;
&lt;td&gt;YES, add the values to be filtered as a comma-separated list of paths.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_INTERNAL_RETRIES&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of retries for internal calls. By default, &lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NO, except if requested&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_LOGGING_FORMAT&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Format to be used in monitoring logs: &lt;code&gt;json&lt;/code&gt; or &lt;code&gt;dev&lt;/code&gt;, the latter a more visual format. By default: &lt;code&gt;json&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO. Only for development, set it to &lt;code&gt;dev&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_LOGGING_LEVEL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Level to be used in monitoring logs, from more to less verbose: &lt;code&gt;&#39;TRACE&#39;, &#39;DEBUG&#39;, &#39;INFO&#39;, &#39;WARN&#39;, &#39;ERROR&#39;, &#39;FATAL&#39;, &#39;OFF&#39;&lt;/code&gt;. By default: &lt;code&gt;INFO&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES, for development set it to &lt;code&gt;DEBUG&lt;/code&gt;. In pre/production should be &lt;code&gt;INFO&lt;/code&gt; or &lt;code&gt;ERROR&lt;/code&gt;. For analysis of an issue in pre/production it may be changed to &lt;code&gt;DEBUG&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MAKEUP_MODE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;It allows dev mode of the make-up with the value &lt;code&gt;local&lt;/code&gt;. By default: &lt;code&gt;full&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO, only for development, set it to &lt;code&gt;local&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MAKEUP_MONGODB_INDEX_FILE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the file that contains the definition of Mongo indexes. By default: &lt;code&gt;aura-file-manager-mongodb-indexes.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MAX_FILE_SIZE_BYTES&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Maximum file size in bytes by default. It can be overridden by channel configuration. Default value: &lt;code&gt;16384000&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO, it must be done through channel config.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_MICROSOFT_AZURE_STORAGE_ACCESS_KEY&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Microsoft Storage password of the deployment.&lt;/td&gt;
&lt;td&gt;NO. Only if operations team changes it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_MICROSOFT_AZURE_STORAGE_ACCOUNT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Microsoft Storage account of the environment.&lt;/td&gt;
&lt;td&gt;NO. Only if operations team changes it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MICROSOFT_AZURE_STORAGE_CONFIGURATION_CONTAINER&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the container where basic &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; configuration files are stored: Mongo indexes descriptor, &lt;em&gt;&lt;strong&gt;behavior manager&lt;/strong&gt;&lt;/em&gt;, etc. By default, &lt;code&gt;aura-configuration&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MICROSOFT_AZURE_STORAGE_SAS_URL_VALIDITY&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of milliseconds of validity for generated SAS tokens. By default: &lt;code&gt;3600000&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;YES, if Operations Team prefers another duration time.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_MICROSOFT_AZURE_STORAGE_STATIC_CONTAINER_NAME&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of Azure blob container to be used as repository.&lt;/td&gt;
&lt;td&gt;NO. Only if Operations Team changes it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MIN_FILE_SIZE_BYTES&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Minimum file size in bytes by default. It can be overridden by channel configuration. Default value: &lt;code&gt;256&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO, it must be done through channel config.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_MONGODB_PASSWORD&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MongoDB password to access &lt;code&gt;AURA_MONGODB_BOT_DATABASE&lt;/code&gt; in &lt;code&gt;AURA_MONGODB_URI&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MONGODB_POOL_SIZE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of connections available in MongoDB pool. By default, &lt;code&gt;60&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MONGODB_SSL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt; if access to  &lt;code&gt;AURA_MONGODB_URI&lt;/code&gt;  is &lt;code&gt;SSL&lt;/code&gt;. By default, &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_MONGODB_SUFFIX&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Suffix of Mongo database name. Its value at run-time will be the value from AURA_ENVIRONMENT_NAME-AURA_VERSION.replace(/./g,&amp;rsquo;-&amp;rsquo;)`.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_MONGODB_URI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MongoDB URI of the server handling &lt;code&gt;AURA_MONGODB_BOT_DATABASE&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_MONGODB_USERNAME&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;MongoDB username to access &lt;code&gt;AURA_MONGODB_BOT_DATABASE&lt;/code&gt; in &lt;code&gt;AURA_MONGODB_URI&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_QUEUE_MANAGER_CHECK_QUEUE_INTERVAL_TTL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;In milliseconds. The time interval used by the queue manager to check if the queue system has pending messages. By default, &lt;code&gt;1000&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_QUEUE_MANAGER_CONCURRENT_TASK&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of concurrently processed tasks. By default, &lt;code&gt;5&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_QUEUE_MANAGER_INTERVAL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;In milliseconds. Time interval for processing messages in the queue. By default: &lt;code&gt;200&lt;/code&gt;..&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_QUEUE_MANAGER_MAX_ELEMENTS&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Maximum number of elements in the queue. By default: &lt;code&gt;4&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_QUEUE_MANAGER_AGENT_INTERVAL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Time interval in milliseconds for the queue agent to check if the queue system has pending messages. By default: &lt;code&gt;20000&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_QUEUE_TYPE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Type of queue system to be used (MONGO/REDIS). By default: &lt;code&gt;REDIS&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_COMPONENT_CONFIG_PREFIX&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Prefix for Redis configuration keys. By default: &lt;code&gt;aura-config:&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_MODE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Mode of Redis distribution. Values: &lt;code&gt;CLUSTER&lt;/code&gt;, &lt;code&gt;SENTINEL&lt;/code&gt;, &lt;code&gt;SINGLE&lt;/code&gt;. By default: &lt;code&gt;SENTINEL&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_PREFIX&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Redis prefix.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_SENTINEL_INSTANCE_NAME&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Name of the Redis instance. Used in &lt;code&gt;SENTINEL&lt;/code&gt; mode.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_HOSTS&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;String with a list of nodes separated by &amp;lsquo;,&amp;rsquo;, including host and port separated by &amp;lsquo;:&amp;rsquo;. For example: &amp;ldquo;localhost:port,localhost2:port2&amp;rdquo;.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_DATABASE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Database number for &lt;code&gt;SINGLE&lt;/code&gt; or &lt;code&gt;SENTINEL&lt;/code&gt; mode. By default: &lt;code&gt;0&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_PASSWORD&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;String with Redis password.&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_USE_CONNECTION_POOL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;Use pool connections for Redis. By default: &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_CONNECTION_POOL_MIN&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Minimum number of connections in the pool. By default: &lt;code&gt;2&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_CONNECTION_POOL_MAX&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Maximum number of connections in the pool. By default: &lt;code&gt;100&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_MAX_RECONNECT_RETRIES&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of retries to connect to Redis. By default: &lt;code&gt;25&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_MAX_RECONNECT_INTERVAL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Time in milliseconds to wait before reconnecting to Redis. By default: &lt;code&gt;5000&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_QUEUE_PREFIX&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Prefix for Redis keys used by the queue system. By default: &lt;code&gt;file_manager:queue:&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_REDIS_QUEUE_SHARD_COUNT&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Number of shards to generate lists for store unprocessed context.  By default: &lt;code&gt;5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AURA_SHUTDOWN_GRACEFUL_TTL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Number of milliseconds to wait until all &lt;em&gt;authentication-api&lt;/em&gt; tasks are done before shutting each pod down. By default &lt;code&gt;25000&lt;/code&gt; (25 seconds)&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_VERSION&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Number of the Aura release being executed.&lt;/td&gt;
&lt;td&gt;NO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AURA_KPIS_BLOB_TIME_WAIT_IF_EXISTS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Time to wait in milliseconds if the KPIs blob exists to avoid duplicate headers. By default: &lt;code&gt;1000&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;YES&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

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


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; is the microservice in charge of uploading a file to a temporary repository, validating it and returning a link as validation result.&lt;br&gt;
Find in the current documents the description of this component, its architecture, components and processes.&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;&lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; is a microservice based on a REST API with the capability of uploading a file to a temporary repository, validating it, and returning a direct download link as validation result.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; uses an utility, &lt;a href=&#34;../../docs/developers-workspace/develop-features/aura-utilities/aura-utilities/file-validator/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-file-validator&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; for the validation of files.&lt;/p&gt;
&lt;p&gt;Find detailed information regarding &lt;em&gt;&lt;strong&gt;Aura file manager&lt;/strong&gt;&lt;/em&gt; in the following documents:&lt;br&gt;
. &lt;a href=&#34;#arch&#34;&gt;Architecture and main components&lt;/a&gt;&lt;br&gt;
. &lt;a href=&#34;#communication-protocol&#34;&gt;Communication protocol&lt;/a&gt;&lt;br&gt;
. &lt;a href=&#34;../../docs/components/file-manager/processes/&#34;&gt;Executed process flowchart and API functionalities&lt;/a&gt;&lt;br&gt;
. &lt;a href=&#34;../../docs/components/file-manager/environment-variables/&#34;&gt;Environment variables&lt;/a&gt;&lt;br&gt;
. &lt;a href=&#34;../../docs/components/file-manager/api-definition/&#34;&gt;API definition&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#x26a0;&amp;#xfe0f; &lt;strong&gt;In order to use &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt;, it is necessary to activate it previously.
Learn how in &lt;a href=&#34;../../docs/developers-workspace/install-configure/channels-features-activation/file-manager/&#34;&gt;Aura File Manager activation&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;arch&#34;&gt;Aura file manager architecture&lt;/h2&gt;
&lt;p&gt;In the following diagram, the architecture and main components of &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; are shown:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../images/file-manager/file-manager-components.svg&#34; alt=&#34;Arquitecture diagram&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;internal-components&#34;&gt;Internal components&lt;/h3&gt;
&lt;h4 id=&#34;configurationmanager&#34;&gt;ConfigurationManager&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;ConfigurationManager&lt;/code&gt; is a handler for configuration, obtained through a configuration file or environment variables.&lt;/p&gt;
&lt;h4 id=&#34;fileservice&#34;&gt;FileService&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;FileService&lt;/code&gt; is where the main functionality of the microservice resides. It is where file upload and validation is done.&lt;/p&gt;
&lt;h4 id=&#34;http-server&#34;&gt;HTTP server&lt;/h4&gt;
&lt;p&gt;Microservice is implemented as an HTTP server (&lt;code&gt;FileManagerServer&lt;/code&gt;) that exposes an API to receive the files to be validated.&lt;/p&gt;
&lt;h4 id=&#34;middlewares&#34;&gt;Middlewares&lt;/h4&gt;
&lt;p&gt;The route published in the API definition file is handled by a controller but, before a request lands on its controller, it goes through a series of middlewares that provides some common steps needed by all the controllers of the server such as: request validation, common parameters extraction, logging, metrics initialization, etc.&lt;/p&gt;
&lt;h4 id=&#34;queue-messages-processing&#34;&gt;Queue messages processing&lt;/h4&gt;
&lt;p&gt;Queuing system that allows tolerance to server failures, storing the received files in a DB and processing them later.&lt;/p&gt;
&lt;h2 id=&#34;communication-protocol&#34;&gt;Communication protocol&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; communication protocol is completely asynchronous, this means that the answer of a request is not included in the HTTP response related to the request, but it is sent as a new HTTP request to the callback &lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../images/file-manager/file-manager-blocks-flow.svg&#34; alt=&#34;Communication protocol&#34;&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/components/file-manager/api-definition/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/components/file-manager/api-definition/</guid>
      <description>
        
        
        &lt;h1 id=&#34;aura-file-manager-api-definition&#34;&gt;Aura file manager API definition&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Description of &lt;em&gt;&lt;strong&gt;aura-file-manager&lt;/strong&gt;&lt;/em&gt; API, microservice responsible for handling attached files storage and validations at channel level
&lt;br&gt;&lt;br&gt;
&lt;i class=&#34;fa-regular fa-file-lines fa-xl&#34; style=&#34;color: #0d5de7;&#34;&gt;&lt;/i&gt; &lt;a href=&#34;../../techFiles/apis/file-manager/swagger.yaml&#34;&gt;Download swagger file&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;


&lt;div id=&#34;ohpen_swagger_ui&#34;&gt;&lt;/div&gt;
&lt;script&gt;
  window.onload = function () {
    const ui = SwaggerUIBundle({
      url: &#34;/techFiles/apis/file-manager/swagger.yaml&#34;,
      dom_id: &#39;#ohpen_swagger_ui&#39;,
      presets: [
        SwaggerUIBundle.presets.apis,
        SwaggerUIStandalonePreset
      ]
    });
    window.ui = ui;
  };
&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/developers-workspace/monitoring/metrics/aura-file-manager/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/developers-workspace/monitoring/metrics/aura-file-manager/</guid>
      <description>
        
        
        &lt;h1 id=&#34;aura-file-manager-metrics&#34;&gt;Aura File Manager metrics&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;List of metrics available in Aura File Manager&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-file-manager&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-file-manager&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.&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-file-manager&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 &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; requests arriving to &lt;em&gt;&lt;strong&gt;aura-file-manager&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-file-manager&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-file-manager&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;origin&lt;/code&gt;: &lt;code&gt;aura-bot&lt;/code&gt;&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 &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; requests arriving to &lt;em&gt;&lt;strong&gt;aura-file-manager&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-file-manage&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-file-manager&lt;/strong&gt;&lt;/em&gt; until it is processed to send the response.&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 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;: &lt;code&gt;aura-bot&lt;/code&gt;&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-file-manager&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-file-manager&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;aura_token_generate&#34;&gt;aura_token_generate&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the processing time of &lt;em&gt;&lt;strong&gt;aura-file-manger&lt;/strong&gt;&lt;/em&gt; to get/refresh kernel token.&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;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;: kernel client identifier&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;file_validation_duration_seconds&#34;&gt;file_validation_duration_seconds&lt;/h2&gt;
&lt;p&gt;This metric is intended to store the validation time of a file.&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;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;code&lt;/code&gt;: OK when file is valid.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;origin&lt;/code&gt;: specific endpoint 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>
    
  </channel>
</rss>
