From 9d8ea0a4f63032d9f905012dabd6f74d0beaf997 Mon Sep 17 00:00:00 2001
From: Alejandro Celaya <alejandrocelaya@gmail.com>
Date: Fri, 6 Oct 2023 09:19:55 +0200
Subject: [PATCH] Allow cache namespace to be customizable via env var

---
 composer.json                        | 2 +-
 config/autoload/cache.global.php     | 2 +-
 config/autoload/installer.global.php | 1 +
 module/Core/src/Config/EnvVars.php   | 1 +
 4 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/composer.json b/composer.json
index 4b0bfc61..abc31b1b 100644
--- a/composer.json
+++ b/composer.json
@@ -49,7 +49,7 @@
         "shlinkio/shlink-config": "dev-main#c0aa01f as 2.5",
         "shlinkio/shlink-event-dispatcher": "dev-main#bd3a62b as 3.1",
         "shlinkio/shlink-importer": "^5.1",
-        "shlinkio/shlink-installer": "^8.5",
+        "shlinkio/shlink-installer": "dev-develop#a665623 as 8.6",
         "shlinkio/shlink-ip-geolocation": "^3.2",
         "shlinkio/shlink-json": "^1.0",
         "spiral/roadrunner": "^2023.2",
diff --git a/config/autoload/cache.global.php b/config/autoload/cache.global.php
index 614b140f..94a9a183 100644
--- a/config/autoload/cache.global.php
+++ b/config/autoload/cache.global.php
@@ -16,7 +16,7 @@ return (static function (): array {
 
     return [
         'cache' => [
-            'namespace' => 'Shlink',
+            'namespace' => EnvVars::CACHE_NAMESPACE->loadFromEnv('Shlink'),
             ...$cacheRedisBlock,
         ],
         'redis' => $redis,
diff --git a/config/autoload/installer.global.php b/config/autoload/installer.global.php
index 966e36ee..0aa849e0 100644
--- a/config/autoload/installer.global.php
+++ b/config/autoload/installer.global.php
@@ -28,6 +28,7 @@ return [
             Option\Visit\VisitsThresholdConfigOption::class,
             Option\BasePathConfigOption::class,
             Option\TimezoneConfigOption::class,
+            Option\Cache\CacheNamespaceConfigOption::class,
             Option\Worker\TaskWorkerNumConfigOption::class,
             Option\Worker\WebWorkerNumConfigOption::class,
             Option\Redis\RedisServersConfigOption::class,
diff --git a/module/Core/src/Config/EnvVars.php b/module/Core/src/Config/EnvVars.php
index ec7d384c..1a917928 100644
--- a/module/Core/src/Config/EnvVars.php
+++ b/module/Core/src/Config/EnvVars.php
@@ -17,6 +17,7 @@ enum EnvVars: string
     case DB_UNIX_SOCKET = 'DB_UNIX_SOCKET';
     case DB_PORT = 'DB_PORT';
     case GEOLITE_LICENSE_KEY = 'GEOLITE_LICENSE_KEY';
+    case CACHE_NAMESPACE = 'CACHE_NAMESPACE';
     case REDIS_SERVERS = 'REDIS_SERVERS';
     case REDIS_SENTINEL_SERVICE = 'REDIS_SENTINEL_SERVICE';
     case REDIS_PUB_SUB_ENABLED = 'REDIS_PUB_SUB_ENABLED';