Index: /branches/amp_4_0/platform/images/array_logo.svg
===================================================================
--- /branches/amp_4_0/platform/images/array_logo.svg	(nonexistent)
+++ /branches/amp_4_0/platform/images/array_logo.svg	(working copy)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="404px" height="120px" viewBox="0 0 401 120" version="1.1">
+<g id="surface1">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,47.058824%,2.745098%);fill-opacity:1;" d="M 10.457031 69.511719 C 6.980469 69.484375 3.496094 69.597656 0 69.847656 C 3.289062 75.28125 6.25 80.90625 8.867188 86.691406 C 12.140625 86.003906 15.410156 85.453125 18.675781 85.039062 C 16.300781 79.679688 13.554688 74.492188 10.457031 69.511719 Z M 10.457031 69.511719 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,47.058824%,2.745098%);fill-opacity:1;" d="M 15.273438 69.648438 C 18.292969 74.394531 20.945312 79.367188 23.203125 84.523438 C 26.371094 84.222656 29.539062 83.964844 32.703125 83.753906 C 30.507812 79.144531 28.050781 74.660156 25.347656 70.328125 C 22.003906 69.988281 18.644531 69.761719 15.273438 69.648438 Z M 15.273438 69.648438 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,47.058824%,2.745098%);fill-opacity:1;" d="M 12.859375 91.855469 C 15.296875 97.085938 17.433594 102.445312 19.265625 107.917969 C 22.183594 106.949219 25.109375 106 28.039062 105.070312 C 26.222656 99.90625 24.03125 94.882812 21.480469 90.042969 C 18.363281 90.320312 15.945312 91.53125 12.859375 91.855469 Z M 12.859375 91.855469 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,47.058824%,2.745098%);fill-opacity:1;" d="M 166.363281 53.449219 C 163.195312 53.757812 160.027344 54.015625 156.867188 54.222656 C 159.0625 58.835938 161.515625 63.316406 164.21875 67.652344 C 167.566406 67.964844 170.90625 68.199219 174.289062 68.328125 C 171.273438 63.578125 168.621094 58.605469 166.363281 53.449219 Z M 166.363281 53.449219 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,47.058824%,2.745098%);fill-opacity:1;" d="M 144.027344 54.703125 L 144.027344 39.703125 C 144.035156 35.875 143.082031 32.109375 141.253906 28.746094 L 135.707031 30.902344 C 135.105469 27.660156 134.722656 24.375 134.441406 21.042969 C 133.085938 20.066406 131.628906 19.238281 130.09375 18.578125 C 130.324219 23.226562 130.878906 27.851562 131.753906 32.421875 C 129.03125 33.453125 126.3125 34.523438 123.597656 35.636719 C 122.601562 31.082031 121.96875 26.453125 121.714844 21.796875 C 123.773438 20.433594 125.875 19.109375 127.957031 17.78125 C 125.738281 17.089844 123.421875 16.742188 121.097656 16.75 L 63.949219 16.75 C 51.296875 16.75 41.035156 27.019531 41.027344 39.695312 L 41.027344 74.164062 C 42.914062 77.078125 44.625 80.101562 46.140625 83.226562 C 44.4375 83.265625 42.734375 83.328125 41.027344 83.382812 L 41.027344 88.265625 C 43.386719 88.027344 45.75 87.789062 48.105469 87.589844 C 50.023438 92.164062 51.570312 96.886719 52.734375 101.707031 C 49.847656 102.585938 46.960938 103.472656 44.078125 104.371094 C 43.171875 100.695312 42.160156 97.199219 41.03125 93.769531 L 41.03125 96.957031 C 41.03125 101.769531 42.546875 106.457031 45.363281 110.355469 C 48.199219 109.242188 51.035156 108.144531 53.871094 107.058594 C 54.53125 110.742188 54.988281 114.460938 55.246094 118.199219 C 56.609375 118.765625 58.027344 119.195312 59.476562 119.480469 C 59.253906 114.800781 58.695312 110.140625 57.8125 105.539062 C 60.554688 104.507812 63.273438 103.433594 65.96875 102.320312 C 66.972656 106.875 67.601562 111.503906 67.851562 116.15625 C 65.953125 117.410156 64.042969 118.621094 62.132812 119.835938 C 62.738281 119.882812 63.339844 119.929688 63.953125 119.929688 L 121.105469 119.929688 C 133.769531 119.929688 144.035156 109.644531 144.027344 96.957031 L 144.027344 65.113281 L 136.5625 64.082031 C 134.40625 61.203125 132.449219 58.171875 130.714844 55.015625 C 133.574219 54.933594 136.429688 54.878906 139.285156 54.828125 C 140.699219 57.652344 142.285156 60.390625 144.027344 63.023438 L 144.027344 55.898438 C 145.78125 59.390625 147.777344 62.753906 150.003906 65.960938 C 153.203125 66.40625 156.402344 66.816406 159.613281 67.171875 C 157.003906 63.070312 154.632812 58.816406 152.515625 54.441406 C 149.683594 54.550781 146.855469 54.636719 144.027344 54.703125 Z M 125.125 51.863281 C 122.515625 52.140625 119.902344 52.476562 117.296875 52.894531 C 115.699219 50.046875 114.394531 47.050781 113.394531 43.941406 C 116.332031 42.800781 117.867188 42.261719 121 41.210938 C 122.050781 44.878906 123.429688 48.441406 125.113281 51.863281 Z M 117.964844 24.300781 C 118.375 28.625 119.023438 32.925781 119.902344 37.183594 C 116.816406 38.496094 115.273438 39.160156 112.34375 40.550781 C 111.335938 36.996094 110.648438 33.359375 110.285156 29.679688 C 112.832031 27.8125 115.402344 26.015625 118 24.300781 Z M 113.78125 53.515625 C 111.382812 53.953125 109.007812 54.519531 106.667969 55.21875 C 105.273438 53.105469 104.089844 50.863281 103.132812 48.519531 C 105.367188 47.332031 107.65625 46.257812 109.996094 45.304688 C 110.984375 48.152344 112.25 50.898438 113.78125 53.496094 Z M 94.492188 60.472656 C 92.558594 61.644531 90.761719 63.027344 89.136719 64.597656 C 88.195312 63.582031 87.308594 62.515625 86.484375 61.402344 C 88 59.558594 89.683594 57.863281 91.507812 56.324219 C 92.390625 57.78125 93.386719 59.160156 94.492188 60.449219 Z M 94.097656 54.1875 C 96.003906 52.714844 98.011719 51.378906 100.109375 50.195312 C 101.050781 52.296875 102.191406 54.304688 103.519531 56.1875 C 101.34375 56.902344 99.234375 57.808594 97.21875 58.898438 C 96.039062 57.421875 94.992188 55.847656 94.085938 54.191406 Z M 87.503906 73.90625 C 88.824219 75.035156 90.046875 76.273438 91.160156 77.609375 C 89.089844 78.585938 86.9375 79.371094 84.722656 79.953125 C 83.480469 78.269531 82.082031 76.707031 80.546875 75.285156 C 82.90625 75.066406 85.234375 74.617188 87.503906 73.9375 Z M 92.335938 79.0625 C 93.515625 80.535156 94.566406 82.109375 95.46875 83.765625 C 93.566406 85.238281 91.558594 86.574219 89.460938 87.757812 C 88.515625 85.660156 87.375 83.652344 86.050781 81.765625 C 88.222656 81.050781 90.328125 80.144531 92.34375 79.0625 Z M 95.074219 77.515625 C 97.007812 76.347656 98.804688 74.964844 100.429688 73.394531 C 101.371094 74.410156 102.257812 75.476562 103.082031 76.59375 C 101.566406 78.433594 99.882812 80.128906 98.058594 81.664062 C 97.175781 80.195312 96.179688 78.800781 95.078125 77.496094 Z M 102.066406 64.070312 C 100.742188 62.945312 99.519531 61.707031 98.40625 60.371094 C 100.476562 59.40625 102.632812 58.628906 104.84375 58.050781 C 106.085938 59.738281 107.484375 61.304688 109.019531 62.726562 C 106.664062 62.945312 104.332031 63.394531 102.066406 64.070312 Z M 106.839844 32.257812 C 107.214844 35.640625 107.921875 38.980469 108.957031 42.226562 C 106.113281 43.671875 104.746094 44.421875 102.121094 46.015625 C 101.113281 43.386719 100.367188 40.664062 99.886719 37.886719 C 102.558594 35.578125 103.953125 34.464844 106.84375 32.257812 Z M 96.832031 40.582031 C 97.355469 43.09375 98.117188 45.542969 99.113281 47.90625 C 97.023438 49.269531 95.027344 50.773438 93.140625 52.40625 C 92.191406 50.566406 91.402344 48.648438 90.785156 46.675781 C 92.699219 44.542969 94.71875 42.507812 96.839844 40.582031 Z M 88.1875 49.65625 C 88.839844 51.40625 89.636719 53.097656 90.566406 54.714844 C 88.757812 56.386719 87.097656 58.210938 85.597656 60.171875 C 84.722656 58.957031 83.917969 57.695312 83.179688 56.394531 C 84.699219 54.039062 86.371094 51.789062 88.1875 49.65625 Z M 81.117188 59.738281 C 82.070312 61.125 82.554688 61.765625 83.527344 63.007812 C 82.046875 65.121094 80.765625 67.363281 79.695312 69.707031 C 78.796875 68.78125 78.332031 68.308594 77.332031 67.328125 C 78.402344 64.703125 79.667969 62.164062 81.125 59.730469 Z M 77.089844 75.542969 C 78.726562 77.128906 80.207031 78.863281 81.515625 80.730469 C 79.121094 81.273438 76.699219 81.675781 74.261719 81.941406 C 72.835938 79.652344 71.191406 77.507812 69.347656 75.542969 C 71.929688 75.679688 74.515625 75.679688 77.097656 75.542969 Z M 65.558594 75.316406 C 67.496094 77.476562 69.21875 79.824219 70.703125 82.324219 C 68.046875 82.566406 65.390625 82.726562 62.746094 82.839844 C 61.113281 79.871094 59.21875 77.058594 57.085938 74.429688 C 59.890625 74.785156 62.707031 75.089844 65.527344 75.304688 Z M 56.695312 100.519531 C 55.558594 95.980469 54.058594 91.542969 52.203125 87.25 C 55.019531 87.011719 57.828125 86.769531 60.640625 86.492188 C 62.265625 90.242188 63.6875 94.082031 64.890625 97.988281 C 62.148438 98.859375 59.421875 99.699219 56.695312 100.527344 Z M 64.457031 86.089844 C 67.058594 85.8125 69.679688 85.476562 72.28125 85.058594 C 73.875 87.90625 75.183594 90.90625 76.179688 94.015625 C 73.242188 95.152344 71.714844 95.691406 68.582031 96.742188 C 67.527344 93.078125 66.152344 89.519531 64.46875 86.101562 Z M 71.609375 113.660156 C 71.199219 109.332031 70.554688 105.03125 69.667969 100.777344 C 72.753906 99.460938 74.296875 98.796875 77.234375 97.40625 C 78.238281 100.960938 78.925781 104.601562 79.292969 108.277344 C 76.746094 110.132812 74.171875 111.925781 71.578125 113.648438 Z M 75.792969 84.445312 C 78.195312 84.019531 80.570312 83.457031 82.910156 82.765625 C 84.300781 84.863281 85.484375 87.09375 86.441406 89.425781 C 84.210938 90.609375 81.917969 91.679688 79.574219 92.632812 C 78.585938 89.785156 77.316406 87.042969 75.785156 84.445312 Z M 82.734375 105.71875 C 82.359375 102.335938 81.652344 98.996094 80.621094 95.75 C 83.460938 94.308594 84.832031 93.558594 87.449219 91.960938 C 88.457031 94.589844 89.207031 97.3125 89.683594 100.089844 C 87.011719 102.394531 85.621094 103.511719 82.730469 105.71875 Z M 92.738281 97.363281 C 92.214844 94.855469 91.453125 92.402344 90.464844 90.039062 C 92.550781 88.675781 94.546875 87.171875 96.433594 85.542969 C 97.386719 87.382812 98.175781 89.308594 98.789062 91.289062 C 96.875 93.421875 94.851562 95.453125 92.734375 97.378906 Z M 101.386719 88.289062 C 100.730469 86.542969 99.933594 84.851562 99.003906 83.234375 C 100.8125 81.558594 102.476562 79.734375 103.972656 77.773438 C 104.847656 78.988281 105.65625 80.25 106.390625 81.554688 C 104.871094 83.90625 103.195312 86.15625 101.378906 88.289062 Z M 108.453125 78.210938 C 107.5 76.824219 107.023438 76.179688 106.046875 74.9375 C 107.527344 72.828125 108.808594 70.585938 109.878906 68.238281 C 110.773438 69.167969 111.242188 69.640625 112.238281 70.621094 C 111.171875 73.242188 109.902344 75.78125 108.449219 78.210938 Z M 112.476562 62.433594 C 110.839844 60.847656 109.359375 59.109375 108.058594 57.238281 C 110.449219 56.699219 112.871094 56.292969 115.308594 56.027344 C 116.734375 58.316406 118.378906 60.464844 120.222656 62.433594 C 117.640625 62.289062 115.054688 62.289062 112.476562 62.433594 Z M 132.449219 63.546875 C 129.644531 63.191406 126.832031 62.886719 124.007812 62.667969 C 122.070312 60.503906 120.347656 58.15625 118.863281 55.65625 C 121.519531 55.414062 124.171875 55.257812 126.820312 55.140625 C 128.445312 58.097656 130.324219 60.90625 132.4375 63.535156 Z M 128.941406 51.488281 C 127.316406 47.746094 125.894531 43.914062 124.691406 40.015625 C 127.417969 39.136719 130.148438 38.296875 132.882812 37.441406 C 134.019531 41.976562 135.519531 46.414062 137.371094 50.710938 C 134.5625 50.945312 131.753906 51.195312 128.941406 51.464844 Z M 128.941406 51.488281 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,47.058824%,2.745098%);fill-opacity:1;" d="M 157.402344 22.175781 C 156.414062 14.851562 155.875 7.472656 155.792969 0.0820312 C 152.808594 2.039062 149.820312 3.972656 146.828125 5.886719 C 146.882812 12.59375 147.421875 19.289062 148.441406 25.917969 C 151.425781 24.703125 154.410156 23.453125 157.402344 22.175781 Z M 157.402344 22.175781 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(14.509805%,14.509805%,14.509805%);fill-opacity:1;" d="M 232.15625 84.488281 L 209.4375 84.488281 L 205.105469 97.277344 L 191.65625 97.277344 L 212.957031 38.8125 L 229.070312 38.8125 L 250.421875 97.277344 L 236.535156 97.277344 Z M 228.738281 74.363281 L 220.914062 50.992188 L 220.757812 50.992188 L 212.859375 74.363281 Z M 228.738281 74.363281 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(14.509805%,14.509805%,14.509805%);fill-opacity:1;" d="M 255.175781 56.394531 L 266.878906 56.394531 L 267.183594 62.871094 L 267.335938 62.871094 C 269.617188 58.449219 272.960938 55.65625 277.523438 55.65625 C 278.839844 55.671875 280.148438 55.902344 281.394531 56.339844 L 281.394531 66.847656 C 280.113281 66.652344 278.820312 66.550781 277.523438 66.542969 C 271.210938 66.542969 267.789062 70.347656 267.789062 74.839844 L 267.789062 97.296875 L 255.175781 97.296875 Z M 255.175781 56.394531 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(14.509805%,14.509805%,14.509805%);fill-opacity:1;" d="M 287.316406 56.394531 L 299.023438 56.394531 L 299.328125 62.871094 L 299.476562 62.871094 C 301.753906 58.449219 305.101562 55.65625 309.660156 55.65625 C 310.980469 55.671875 312.292969 55.902344 313.539062 56.339844 L 313.539062 66.847656 C 312.253906 66.65625 310.957031 66.558594 309.660156 66.554688 C 303.355469 66.554688 299.933594 70.359375 299.933594 74.851562 L 299.933594 97.308594 L 287.316406 97.308594 Z M 287.316406 56.394531 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(14.509805%,14.509805%,14.509805%);fill-opacity:1;" d="M 342.109375 97.277344 L 341.800781 91.644531 L 341.648438 91.644531 C 339.21875 95.765625 335.039062 98.117188 329.714844 98.117188 C 321.667969 98.117188 316.496094 92.859375 316.496094 85.632812 C 316.496094 80.832031 318.699219 76.800781 324.324219 74.898438 C 328.578125 73.449219 334.660156 73.066406 341.269531 72.835938 L 341.269531 70.398438 C 341.269531 66.972656 338.914062 64.6875 334.808594 64.6875 C 330.703125 64.6875 328.425781 66.824219 327.289062 69.789062 L 317.890625 65.074219 C 320.929688 58.679688 326.402344 55.558594 335.519531 55.558594 C 347.757812 55.558594 353.757812 61.117188 353.757812 70.101562 L 353.757812 97.277344 Z M 341.269531 82.054688 L 341.269531 79.921875 C 338.914062 80.070312 336.125 80.304688 333.671875 80.679688 C 331.21875 81.054688 328.882812 81.976562 328.882812 84.945312 C 328.882812 87.382812 330.703125 89.363281 334.203125 89.363281 C 338.53125 89.363281 341.269531 86.238281 341.269531 82.054688 Z M 341.269531 82.054688 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(14.509805%,14.509805%,14.509805%);fill-opacity:1;" d="M 401 56.394531 L 384.882812 99.714844 C 381.921875 107.707031 377.972656 112.046875 369.230469 112.046875 C 367.179688 112.042969 365.136719 111.761719 363.15625 111.210938 L 363.15625 102.449219 C 364.3125 102.800781 365.515625 102.972656 366.726562 102.964844 C 370.070312 102.964844 372.050781 101.75 373.039062 98.476562 L 357.304688 56.371094 L 370.449219 56.371094 L 379.34375 84.464844 L 379.492188 84.464844 L 388.363281 56.394531 Z M 401 56.394531 "/>
+</g>
+</svg>
Index: /branches/amp_4_0/platform/images/favicon.ico
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/images/favicon.ico
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/images/loading_array_logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/images/loading_array_logo.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/images/mark_array_logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: platform/images/mark_array_logo.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: /branches/amp_4_0/platform/tools/update_opensearch_branding.sh
===================================================================
--- /branches/amp_4_0/platform/tools/update_opensearch_branding.sh	(nonexistent)
+++ /branches/amp_4_0/platform/tools/update_opensearch_branding.sh	(working copy)
@@ -0,0 +1,152 @@
+#!/bin/bash
+
+# Script to update OpenSearch Dashboards branding configuration
+# Usage: sudo bash update_opensearch_branding.sh
+
+CONFIG_FILE="/etc/opensearch-dashboards/opensearch_dashboards.yml"
+BACKUP_FILE="${CONFIG_FILE}.bak_$(date +%Y%m%d%H%M%S)"
+
+# Colors for output
+GREEN='\033[0;32m'
+RED='\033[0;31m'
+NC='\033[0m' # No Color
+
+log_info() {
+    echo -e "${GREEN}[INFO]${NC} $1"
+}
+
+log_error() {
+    echo -e "${RED}[ERROR]${NC} $1"
+    exit 1
+}
+
+# Check for root privileges
+if [[ $EUID -ne 0 ]]; then
+   log_error "This script must be run as root. Please use 'sudo bash $0'."
+fi
+
+# Ensure yq is installed
+if ! command -v yq &> /dev/null; then
+    log_info "yq not found. Installing yq..."
+    # Attempt to install via dnf if available, otherwise suggest manual install
+    if command -v dnf &> /dev/null; then
+         # Ensure epel-release is installed for yq
+        if ! rpm -q epel-release &> /dev/null; then
+             log_info "Installing epel-release..."
+             dnf install -y epel-release || log_error "Failed to install epel-release."
+        fi
+        dnf install -y yq || log_error "Failed to install yq via dnf."
+    else
+        log_error "dnf not found. Please install 'yq' manually."
+    fi
+fi
+
+if [ ! -f "$CONFIG_FILE" ]; then
+    log_error "Configuration file not found: $CONFIG_FILE"
+fi
+
+log_info "Backing up configuration file..."
+cp "$CONFIG_FILE" "$BACKUP_FILE" || log_error "Failed to backup config file."
+
+log_info "Updating branding configuration..."
+
+# Check if branding already exists
+if yq eval '.opensearchDashboards.branding' "$CONFIG_FILE" | grep -q "null"; then
+    # Block doesn't exist, create it
+    yq eval -i '.opensearchDashboards.branding.applicationTitle = "Array Networks Analytics"' "$CONFIG_FILE"
+else
+    # Block exists, update title
+    yq eval -i '.opensearchDashboards.branding.applicationTitle = "Array Networks Analytics"' "$CONFIG_FILE"
+fi
+
+# Handle Favicon
+CUSTOM_FAVICON="/opt/images/favicon.ico"
+DASHBOARDS_FAVICON_DIR="/usr/share/opensearch-dashboards/src/core/server/core_app/assets/favicons"
+DASHBOARDS_FAVICON_PATH="${DASHBOARDS_FAVICON_DIR}/favicon.ico"
+
+if [ -f "$CUSTOM_FAVICON" ]; then
+    log_info "Custom favicon found at $CUSTOM_FAVICON"
+    
+    if [ -d "$DASHBOARDS_FAVICON_DIR" ]; then
+        log_info "Backing up original favicon..."
+        cp "$DASHBOARDS_FAVICON_PATH" "${DASHBOARDS_FAVICON_PATH}.bak_$(date +%Y%m%d%H%M%S)"
+        
+        log_info "Copying custom favicon..."
+        cp -f "$CUSTOM_FAVICON" "$DASHBOARDS_FAVICON_PATH"
+        
+        # Ensure ownership is correct (usually opensearch-dashboards user)
+        if id "opensearch-dashboards" &>/dev/null; then
+             chown opensearch-dashboards:opensearch-dashboards "$DASHBOARDS_FAVICON_PATH"
+        fi
+
+        log_info "Updating favicon configuration..."
+        # Set faviconUrl
+        yq eval -i '.opensearchDashboards.branding.faviconUrl = "/visualization/ui/favicons/favicon.ico"' "$CONFIG_FILE"
+    else
+        log_error "OpenSearch Dashboards favicon directory not found: $DASHBOARDS_FAVICON_DIR"
+    fi
+else
+    log_info "No custom favicon found at $CUSTOM_FAVICON. Skipping favicon update."
+fi
+
+# Handle Logos (Default Logo, Mark, Loading Logo)
+IMAGES_DIR="/opt/images"
+CUSTOM_ASSETS_DIR="/usr/share/opensearch-dashboards/src/core/server/core_app/assets/custom"
+ARRAY_LOGO="array_logo.svg"
+MARK_LOGO="mark_array_logo.png"
+LOADING_LOGO="loading_array_logo.png"
+
+# Check if any of the logo files exist
+if [ -f "$IMAGES_DIR/$ARRAY_LOGO" ] || [ -f "$IMAGES_DIR/$MARK_LOGO" ] || [ -f "$IMAGES_DIR/$LOADING_LOGO" ]; then
+    log_info "Custom logos found in $IMAGES_DIR"
+
+    # Create custom assets directory if it doesn't exist
+    if [ ! -d "$CUSTOM_ASSETS_DIR" ]; then
+        log_info "Creating custom assets directory: $CUSTOM_ASSETS_DIR"
+        mkdir -p "$CUSTOM_ASSETS_DIR"
+        # Set ownership
+        if id "opensearch-dashboards" &>/dev/null; then
+             chown opensearch-dashboards:opensearch-dashboards "$CUSTOM_ASSETS_DIR"
+        fi
+    fi
+
+    # Function to process a single logo file
+    process_logo() {
+        local filename=$1
+        local config_key=$2
+        local source_path="$IMAGES_DIR/$filename"
+        local target_path="$CUSTOM_ASSETS_DIR/$filename"
+        local url_path="/visualization/ui/custom/$filename"
+
+        if [ -f "$source_path" ]; then
+            log_info "Copying $filename..."
+            cp -f "$source_path" "$target_path"
+            
+            # Ensure ownership
+            if id "opensearch-dashboards" &>/dev/null; then
+                 chown opensearch-dashboards:opensearch-dashboards "$target_path"
+            fi
+            
+            log_info "Updating config for $filename..."
+            yq eval -i ".opensearchDashboards.branding.${config_key} = \"${url_path}\"" "$CONFIG_FILE"
+        else
+            log_info "$filename not found, skipping..."
+        fi
+    }
+
+    process_logo "$ARRAY_LOGO" "logo.defaultUrl"
+    process_logo "$MARK_LOGO" "mark.defaultUrl"
+    process_logo "$LOADING_LOGO" "loadingLogo.defaultUrl"
+
+else
+    log_info "No custom logos found in $IMAGES_DIR. Skipping logo updates."
+fi
+
+if [ $? -eq 0 ]; then
+    log_info "Configuration updated successfully."
+    log_info "Please restart OpenSearch Dashboards to apply changes:"
+    log_info "sudo systemctl restart opensearch-dashboards"
+else
+    log_error "Failed to update configuration. Restoring backup..."
+    cp "$BACKUP_FILE" "$CONFIG_FILE"
+fi
