diff --git a/dbrepo-analyse-service/Pipfile.lock b/dbrepo-analyse-service/Pipfile.lock
index f9823564d3e80c99a228fa1b906b7f40971a5feb..da3be3a4f877ab2cbf8b40849683696554b1880b 100644
--- a/dbrepo-analyse-service/Pipfile.lock
+++ b/dbrepo-analyse-service/Pipfile.lock
@@ -180,20 +180,20 @@
         },
         "boto3": {
             "hashes": [
-                "sha256:586332456fff19328d57a88214a2ac2eda1bafab743556a836eda46a4ce613c6",
-                "sha256:78cc1b483cc637e1df8e81498d66f89550d4ee92175ccab5be1a2226672fe6b9"
+                "sha256:1545c943f36db41853cdfdb6ff09c4eda9220dd95bd2fae76fc73091603525d1",
+                "sha256:9b272268794172b0b8bb9fb1f3c470c3b6c0ffb92fbd4882465cc740e40fbdcd"
             ],
             "index": "pypi",
             "markers": "python_version >= '3.8'",
-            "version": "==1.37.15"
+            "version": "==1.37.18"
         },
         "botocore": {
             "hashes": [
-                "sha256:72e6f1db6ebc4112d6ba719c97ad71ac7cf4a2f3729ae74fa225641e3ddcba92",
-                "sha256:996b8d6a342ad7735eb07d8b4a81dad86e60ce0889ccb3edec0cd66eece85393"
+                "sha256:99e8eefd5df6347ead15df07ce55f4e62a51ea7b54de1127522a08597923b726",
+                "sha256:a8b97d217d82b3c4f6bcc906e264df7ebb51e2c6a62b3548a97cd173fb8759a1"
             ],
             "markers": "python_version >= '3.8'",
-            "version": "==1.37.15"
+            "version": "==1.37.18"
         },
         "certifi": {
             "hashes": [
@@ -425,7 +425,7 @@
         },
         "dbrepo": {
             "hashes": [
-                "sha256:5f541bb5f944276d381e9c4509ffac1036bc7488848d8aaee1aef9184766832b"
+                "sha256:aede7d87b1f87bad3a6825117ef700727b6486f22f108f20d3e34da7dbc283c5"
             ],
             "path": "./lib/dbrepo-1.8.0.tar.gz"
         },
@@ -1588,11 +1588,11 @@
         },
         "setuptools": {
             "hashes": [
-                "sha256:34750dcb17d046929f545dec9b8349fe42bf4ba13ddffee78428aec422dbfb73",
-                "sha256:4959b9ad482ada2ba2320c8f1a8d8481d4d8d668908a7a1b84d987375cd7f5bd"
+                "sha256:583b361c8da8de57403743e756609670de6fb2345920e36dc5c2d914c319c945",
+                "sha256:67122e78221da5cf550ddd04cf8742c8fe12094483749a792d56cd669d6cf58c"
             ],
             "markers": "python_version >= '3.9'",
-            "version": "==76.1.0"
+            "version": "==77.0.3"
         },
         "six": {
             "hashes": [
@@ -2007,73 +2007,73 @@
         },
         "coverage": {
             "hashes": [
-                "sha256:056d3017ed67e7ddf266e6f57378ece543755a4c9231e997789ab3bd11392c94",
-                "sha256:0ce8cf59e09d31a4915ff4c3b94c6514af4c84b22c4cc8ad7c3c546a86150a92",
-                "sha256:104bf640f408f4e115b85110047c7f27377e1a8b7ba86f7db4fa47aa49dc9a8e",
-                "sha256:1393e5aa9441dafb0162c36c8506c648b89aea9565b31f6bfa351e66c11bcd82",
-                "sha256:1586ad158523f4133499a4f322b230e2cfef9cc724820dbd58595a5a236186f4",
-                "sha256:180e3fc68ee4dc5af8b33b6ca4e3bb8aa1abe25eedcb958ba5cff7123071af68",
-                "sha256:1b336d06af14f8da5b1f391e8dec03634daf54dfcb4d1c4fb6d04c09d83cef90",
-                "sha256:1c8fbce80b2b8bf135d105aa8f5b36eae0c57d702a1cc3ebdea2a6f03f6cdde5",
-                "sha256:2d673e3add00048215c2cc507f1228a7523fd8bf34f279ac98334c9b07bd2656",
-                "sha256:316f29cc3392fa3912493ee4c83afa4a0e2db04ff69600711f8c03997c39baaa",
-                "sha256:33c1394d8407e2771547583b66a85d07ed441ff8fae5a4adb4237ad39ece60db",
-                "sha256:37cbc7b0d93dfd133e33c7ec01123fbb90401dce174c3b6661d8d36fb1e30608",
-                "sha256:39abcacd1ed54e2c33c54bdc488b310e8ef6705833f7148b6eb9a547199d375d",
-                "sha256:3ab7090f04b12dc6469882ce81244572779d3a4b67eea1c96fb9ecc8c607ef39",
-                "sha256:3b0e6e54591ae0d7427def8a4d40fca99df6b899d10354bab73cd5609807261c",
-                "sha256:416e2a8845eaff288f97eaf76ab40367deafb9073ffc47bf2a583f26b05e5265",
-                "sha256:4545485fef7a8a2d8f30e6f79ce719eb154aab7e44217eb444c1d38239af2072",
-                "sha256:4c124025430249118d018dcedc8b7426f39373527c845093132196f2a483b6dd",
-                "sha256:4fbb7a0c3c21908520149d7751cf5b74eb9b38b54d62997b1e9b3ac19a8ee2fe",
-                "sha256:52fc89602cde411a4196c8c6894afb384f2125f34c031774f82a4f2608c59d7d",
-                "sha256:55143aa13c49491f5606f05b49ed88663446dce3a4d3c5d77baa4e36a16d3573",
-                "sha256:57f3bd0d29bf2bd9325c0ff9cc532a175110c4bf8f412c05b2405fd35745266d",
-                "sha256:5b2f144444879363ea8834cd7b6869d79ac796cb8f864b0cfdde50296cd95816",
-                "sha256:5efdeff5f353ed3352c04e6b318ab05c6ce9249c25ed3c2090c6e9cadda1e3b2",
-                "sha256:60e6347d1ed882b1159ffea172cb8466ee46c665af4ca397edbf10ff53e9ffaf",
-                "sha256:693d921621a0c8043bfdc61f7d4df5ea6d22165fe8b807cac21eb80dd94e4bbd",
-                "sha256:708f0a1105ef2b11c79ed54ed31f17e6325ac936501fc373f24be3e6a578146a",
-                "sha256:70f0925c4e2bfc965369f417e7cc72538fd1ba91639cf1e4ef4b1a6b50439b3b",
-                "sha256:7789e700f33f2b133adae582c9f437523cd5db8de845774988a58c360fc88253",
-                "sha256:7b6c96d69928a3a6767fab8dc1ce8a02cf0156836ccb1e820c7f45a423570d98",
-                "sha256:7d2a65876274acf544703e943c010b60bd79404e3623a1e5d52b64a6e2728de5",
-                "sha256:7f18d47641282664276977c604b5a261e51fefc2980f5271d547d706b06a837f",
-                "sha256:89078312f06237417adda7c021c33f80f7a6d2db8572a5f6c330d89b080061ce",
-                "sha256:8c938c6ae59be67ac19a7204e079efc94b38222cd7d0269f96e45e18cddeaa59",
-                "sha256:8e336b56301774ace6be0017ff85c3566c556d938359b61b840796a0202f805c",
-                "sha256:a0a207c87a9f743c8072d059b4711f8d13c456eb42dac778a7d2e5d4f3c253a7",
-                "sha256:a2454b12a3f12cc4698f3508912e6225ec63682e2ca5a96f80a2b93cef9e63f3",
-                "sha256:a538a23119d1e2e2ce077e902d02ea3d8e0641786ef6e0faf11ce82324743944",
-                "sha256:aa4dff57fc21a575672176d5ab0ef15a927199e775c5e8a3d75162ab2b0c7705",
-                "sha256:ad0edaa97cb983d9f2ff48cadddc3e1fb09f24aa558abeb4dc9a0dbacd12cbb4",
-                "sha256:ae8006772c6b0fa53c33747913473e064985dac4d65f77fd2fdc6474e7cd54e4",
-                "sha256:b0fac2088ec4aaeb5468b814bd3ff5e5978364bfbce5e567c44c9e2854469f6c",
-                "sha256:b3e212a894d8ae07fde2ca8b43d666a6d49bbbddb10da0f6a74ca7bd31f20054",
-                "sha256:b54a1ee4c6f1905a436cbaa04b26626d27925a41cbc3a337e2d3ff7038187f07",
-                "sha256:b667b91f4f714b17af2a18e220015c941d1cf8b07c17f2160033dbe1e64149f0",
-                "sha256:b8c36093aca722db73633cf2359026ed7782a239eb1c6db2abcff876012dc4cf",
-                "sha256:bb356e7ae7c2da13f404bf8f75be90f743c6df8d4607022e759f5d7d89fe83f8",
-                "sha256:bce730d484038e97f27ea2dbe5d392ec5c2261f28c319a3bb266f6b213650135",
-                "sha256:c075d167a6ec99b798c1fdf6e391a1d5a2d054caffe9593ba0f97e3df2c04f0e",
-                "sha256:c4e09534037933bf6eb31d804e72c52ec23219b32c1730f9152feabbd7499463",
-                "sha256:c5f8a5364fc37b2f172c26a038bc7ec4885f429de4a05fc10fdcb53fb5834c5c",
-                "sha256:cb203c0afffaf1a8f5b9659a013f8f16a1b2cad3a80a8733ceedc968c0cf4c57",
-                "sha256:cc41374d2f27d81d6558f8a24e5c114580ffefc197fd43eabd7058182f743322",
-                "sha256:cd879d4646055a573775a1cec863d00c9ff8c55860f8b17f6d8eee9140c06166",
-                "sha256:d013c07061751ae81861cae6ec3a4fe04e84781b11fd4b6b4201590234b25c7b",
-                "sha256:d8c7524779003d59948c51b4fcbf1ca4e27c26a7d75984f63488f3625c328b9b",
-                "sha256:d9710521f07f526de30ccdead67e6b236fe996d214e1a7fba8b36e2ba2cd8261",
-                "sha256:e1ffde1d6bc2a92f9c9207d1ad808550873748ac2d4d923c815b866baa343b3f",
-                "sha256:e7f559c36d5cdc448ee13e7e56ed7b6b5d44a40a511d584d388a0f5d940977ba",
-                "sha256:f2a1e18a85bd066c7c556d85277a7adf4651f259b2579113844835ba1a74aafd",
-                "sha256:f32b165bf6dfea0846a9c9c38b7e1d68f313956d60a15cde5d1709fddcaf3bee",
-                "sha256:f5a2f71d6a91238e7628f23538c26aa464d390cbdedf12ee2a7a0fb92a24482a",
-                "sha256:f81fe93dc1b8e5673f33443c0786c14b77e36f1025973b85e07c70353e46882b"
+                "sha256:02fad4f8faa4153db76f9246bc95c1d99f054f4e0a884175bff9155cf4f856cb",
+                "sha256:092b134129a8bb940c08b2d9ceb4459af5fb3faea77888af63182e17d89e1cf1",
+                "sha256:0ce92c5a9d7007d838456f4b77ea159cb628187a137e1895331e530973dcf862",
+                "sha256:0dab4ef76d7b14f432057fdb7a0477e8bffca0ad39ace308be6e74864e632271",
+                "sha256:1165490be0069e34e4f99d08e9c5209c463de11b471709dfae31e2a98cbd49fd",
+                "sha256:11dd6f52c2a7ce8bf0a5f3b6e4a8eb60e157ffedc3c4b4314a41c1dfbd26ce58",
+                "sha256:15d54ecef1582b1d3ec6049b20d3c1a07d5e7f85335d8a3b617c9960b4f807e0",
+                "sha256:171e9977c6a5d2b2be9efc7df1126fd525ce7cad0eb9904fe692da007ba90d81",
+                "sha256:177d837339883c541f8524683e227adcaea581eca6bb33823a2a1fdae4c988e1",
+                "sha256:18f544356bceef17cc55fcf859e5664f06946c1b68efcea6acdc50f8f6a6e776",
+                "sha256:199a1272e642266b90c9f40dec7fd3d307b51bf639fa0d15980dc0b3246c1393",
+                "sha256:1e6f867379fd033a0eeabb1be0cffa2bd660582b8b0c9478895c509d875a9d9e",
+                "sha256:2444fbe1ba1889e0b29eb4d11931afa88f92dc507b7248f45be372775b3cef4f",
+                "sha256:25fe40967717bad0ce628a0223f08a10d54c9d739e88c9cbb0f77b5959367542",
+                "sha256:264ff2bcce27a7f455b64ac0dfe097680b65d9a1a293ef902675fa8158d20b24",
+                "sha256:2a79c4a09765d18311c35975ad2eb1ac613c0401afdd9cb1ca4110aeb5dd3c4c",
+                "sha256:2c492401bdb3a85824669d6a03f57b3dfadef0941b8541f035f83bbfc39d4282",
+                "sha256:315ff74b585110ac3b7ab631e89e769d294f303c6d21302a816b3554ed4c81af",
+                "sha256:34a3bf6b92e6621fc4dcdaab353e173ccb0ca9e4bfbcf7e49a0134c86c9cd303",
+                "sha256:37351dc8123c154fa05b7579fdb126b9f8b1cf42fd6f79ddf19121b7bdd4aa04",
+                "sha256:385618003e3d608001676bb35dc67ae3ad44c75c0395d8de5780af7bb35be6b2",
+                "sha256:392cc8fd2b1b010ca36840735e2a526fcbd76795a5d44006065e79868cc76ccf",
+                "sha256:3d03287eb03186256999539d98818c425c33546ab4901028c8fa933b62c35c3a",
+                "sha256:44683f2556a56c9a6e673b583763096b8efbd2df022b02995609cf8e64fc8ae0",
+                "sha256:44af11c00fd3b19b8809487630f8a0039130d32363239dfd15238e6d37e41a48",
+                "sha256:452735fafe8ff5918236d5fe1feac322b359e57692269c75151f9b4ee4b7e1bc",
+                "sha256:4c181ceba2e6808ede1e964f7bdc77bd8c7eb62f202c63a48cc541e5ffffccb6",
+                "sha256:4dd532dac197d68c478480edde74fd4476c6823355987fd31d01ad9aa1e5fb59",
+                "sha256:520af84febb6bb54453e7fbb730afa58c7178fd018c398a8fcd8e269a79bf96d",
+                "sha256:553ba93f8e3c70e1b0031e4dfea36aba4e2b51fe5770db35e99af8dc5c5a9dfe",
+                "sha256:5b7b02e50d54be6114cc4f6a3222fec83164f7c42772ba03b520138859b5fde1",
+                "sha256:63306486fcb5a827449464f6211d2991f01dfa2965976018c9bab9d5e45a35c8",
+                "sha256:75c82b27c56478d5e1391f2e7b2e7f588d093157fa40d53fd9453a471b1191f2",
+                "sha256:7ba5ff236c87a7b7aa1441a216caf44baee14cbfbd2256d306f926d16b026578",
+                "sha256:7e688010581dbac9cab72800e9076e16f7cccd0d89af5785b70daa11174e94de",
+                "sha256:80b5b207a8b08c6a934b214e364cab2fa82663d4af18981a6c0a9e95f8df7602",
+                "sha256:822fa99dd1ac686061e1219b67868e25d9757989cf2259f735a4802497d6da31",
+                "sha256:881cae0f9cbd928c9c001487bb3dcbfd0b0af3ef53ae92180878591053be0cb3",
+                "sha256:88d96127ae01ff571d465d4b0be25c123789cef88ba0879194d673fdea52f54e",
+                "sha256:8b1c65a739447c5ddce5b96c0a388fd82e4bbdff7251396a70182b1d83631019",
+                "sha256:8fed429c26b99641dc1f3a79179860122b22745dd9af36f29b141e178925070a",
+                "sha256:9bb47cc9f07a59a451361a850cb06d20633e77a9118d05fd0f77b1864439461b",
+                "sha256:a6b6b3bd121ee2ec4bd35039319f3423d0be282b9752a5ae9f18724bc93ebe7c",
+                "sha256:ae13ed5bf5542d7d4a0a42ff5160e07e84adc44eda65ddaa635c484ff8e55917",
+                "sha256:af94fb80e4f159f4d93fb411800448ad87b6039b0500849a403b73a0d36bb5ae",
+                "sha256:b4c144c129343416a49378e05c9451c34aae5ccf00221e4fa4f487db0816ee2f",
+                "sha256:b52edb940d087e2a96e73c1523284a2e94a4e66fa2ea1e2e64dddc67173bad94",
+                "sha256:b559adc22486937786731dac69e57296cb9aede7e2687dfc0d2696dbd3b1eb6b",
+                "sha256:b838a91e84e1773c3436f6cc6996e000ed3ca5721799e7789be18830fad009a2",
+                "sha256:ba8480ebe401c2f094d10a8c4209b800a9b77215b6c796d16b6ecdf665048950",
+                "sha256:bc96441c9d9ca12a790b5ae17d2fa6654da4b3962ea15e0eabb1b1caed094777",
+                "sha256:c90e9141e9221dd6fbc16a2727a5703c19443a8d9bf7d634c792fa0287cee1ab",
+                "sha256:d2e73e2ac468536197e6b3ab79bc4a5c9da0f078cd78cfcc7fe27cf5d1195ef0",
+                "sha256:d3154b369141c3169b8133973ac00f63fcf8d6dbcc297d788d36afbb7811e511",
+                "sha256:d66ff48ab3bb6f762a153e29c0fc1eb5a62a260217bc64470d7ba602f5886d20",
+                "sha256:d6874929d624d3a670f676efafbbc747f519a6121b581dd41d012109e70a5ebd",
+                "sha256:e33426a5e1dc7743dd54dfd11d3a6c02c5d127abfaa2edd80a6e352b58347d1a",
+                "sha256:e52eb31ae3afacdacfe50705a15b75ded67935770c460d88c215a9c0c40d0e9c",
+                "sha256:eae79f8e3501133aa0e220bbc29573910d096795882a70e6f6e6637b09522133",
+                "sha256:eebd927b86761a7068a06d3699fd6c20129becf15bb44282db085921ea0f1585",
+                "sha256:eff187177d8016ff6addf789dcc421c3db0d014e4946c1cc3fbf697f7852459d",
+                "sha256:f5f99a93cecf799738e211f9746dc83749b5693538fbfac279a61682ba309387",
+                "sha256:fbba59022e7c20124d2f520842b75904c7b9f16c854233fa46575c69949fb5b9"
             ],
             "index": "pypi",
             "markers": "python_version >= '3.9'",
-            "version": "==7.7.0"
+            "version": "==7.7.1"
         },
         "docker": {
             "hashes": [
@@ -2099,11 +2099,11 @@
         },
         "iniconfig": {
             "hashes": [
-                "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3",
-                "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"
+                "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7",
+                "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"
             ],
-            "markers": "python_version >= '3.7'",
-            "version": "==2.0.0"
+            "markers": "python_version >= '3.8'",
+            "version": "==2.1.0"
         },
         "minio": {
             "hashes": [
diff --git a/dbrepo-analyse-service/lib/dbrepo-1.8.0-py3-none-any.whl b/dbrepo-analyse-service/lib/dbrepo-1.8.0-py3-none-any.whl
index ff893e2fedf83a0b4031cd37d7dfcf84d10f11a1..2293ef0a15f7b6921cddcded1980822232041bfd 100644
Binary files a/dbrepo-analyse-service/lib/dbrepo-1.8.0-py3-none-any.whl and b/dbrepo-analyse-service/lib/dbrepo-1.8.0-py3-none-any.whl differ
diff --git a/dbrepo-analyse-service/lib/dbrepo-1.8.0.tar.gz b/dbrepo-analyse-service/lib/dbrepo-1.8.0.tar.gz
index fac980df3143bd5093314cd92f228861e97a36a8..75b284d102b6c87265ae2fa1ed8b2efb49746d82 100644
Binary files a/dbrepo-analyse-service/lib/dbrepo-1.8.0.tar.gz and b/dbrepo-analyse-service/lib/dbrepo-1.8.0.tar.gz differ
diff --git a/dbrepo-auth-service/listeners/target/create-event-listener.jar b/dbrepo-auth-service/listeners/target/create-event-listener.jar
index 5c7dd1a04a372fbe8e7fa8bbb449c098bce4a20c..9fa1288598118b348a3341e591558b66152c43b3 100644
Binary files a/dbrepo-auth-service/listeners/target/create-event-listener.jar and b/dbrepo-auth-service/listeners/target/create-event-listener.jar differ
diff --git a/dbrepo-dashboard-service/Pipfile.lock b/dbrepo-dashboard-service/Pipfile.lock
index 217d8c261463432055d92559eb3d9c1891f0aeac..473ffc2e41e3c2d293ef21ec56eb273a9ac0b70e 100644
--- a/dbrepo-dashboard-service/Pipfile.lock
+++ b/dbrepo-dashboard-service/Pipfile.lock
@@ -221,7 +221,7 @@
                 "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87",
                 "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"
             ],
-            "markers": "platform_python_implementation != 'PyPy'",
+            "markers": "python_version >= '3.8'",
             "version": "==1.17.1"
         },
         "charset-normalizer": {
@@ -373,10 +373,9 @@
         },
         "dbrepo": {
             "hashes": [
-                "sha256:5f541bb5f944276d381e9c4509ffac1036bc7488848d8aaee1aef9184766832b"
+                "sha256:aede7d87b1f87bad3a6825117ef700727b6486f22f108f20d3e34da7dbc283c5"
             ],
-            "path": "./lib/dbrepo-1.8.0.tar.gz",
-            "version": "==1.8.0"
+            "path": "./lib/dbrepo-1.8.0.tar.gz"
         },
         "flasgger": {
             "hashes": [
@@ -391,6 +390,7 @@
                 "sha256:f69fcd559dc907ed196ab9df0e48471709175e696d6e698dd4dbe940f96ce66b"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==2.3.3"
         },
         "flask-cors": {
@@ -415,6 +415,7 @@
                 "sha256:8085d6757505b6f3291a2638c84d207e8f0ad0de662d1f46aa2f77e658a0c976"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.9' and python_version < '4'",
             "version": "==4.7.1"
         },
         "frozenlist": {
@@ -521,6 +522,7 @@
                 "sha256:8cb61bb2a87ec07bca10974df276b9a1a95bfdb63f3a696f065692ffc9b8c389"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.7'",
             "version": "==4.3.2"
         },
         "gunicorn": {
@@ -529,6 +531,7 @@
                 "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.7'",
             "version": "==23.0.0"
         },
         "h11": {
@@ -694,6 +697,7 @@
                 "sha256:61c9170f92e736b530655e75374681d4fcca9cfa8763ab42be57353b2b203494"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.6'",
             "version": "==1.3.1"
         },
         "markupsafe": {
@@ -935,7 +939,7 @@
                 "sha256:f486038e44caa08dbd97275a9a35a283a8f1d2f0ee60ac260a1790e76660833c",
                 "sha256:f7de08cbe5551911886d1ab60de58448c6df0f67d9feb7d1fb21e9875ef95e91"
             ],
-            "markers": "python_version == '3.11'",
+            "markers": "python_version >= '3.10'",
             "version": "==2.2.4"
         },
         "packaging": {
@@ -1144,6 +1148,7 @@
                 "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==2.10.6"
         },
         "pydantic-core": {
@@ -1266,6 +1271,7 @@
                 "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==8.3.5"
         },
         "python-dateutil": {
@@ -1273,7 +1279,7 @@
                 "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
                 "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
             "version": "==2.9.0.post0"
         },
         "python-dotenv": {
@@ -1282,6 +1288,7 @@
                 "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==1.0.1"
         },
         "pytz": {
@@ -1448,7 +1455,7 @@
                 "sha256:fbc4e6452cc48c3e1398fe930349e2ec9ad76a2c00e729f3e797700c2f0646e6",
                 "sha256:fc73fc2889a01a43737c7a7c7fb9ee13aa56065b22abbed0e787cc58a3747808"
             ],
-            "markers": "python_version < '3.12' and (platform_python_implementation != 'CPython' or python_full_version > '3.7.10') and (platform_system == 'Darwin' or platform_system == 'Windows' or platform_system == 'Linux') and (platform_machine == 'x86_64' or platform_machine == 's390x' or platform_machine == 'aarch64' or platform_machine == 'armv7l' or platform_machine == 'ppc64le' or platform_machine == 'ppc64' or platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'ARM64' or platform_machine == 'x86' or platform_machine == 'i686') and (platform_python_implementation == 'CPython' or platform_python_implementation == 'PyPy')",
+            "markers": "python_version >= '3.7'",
             "version": "==1.4.2"
         },
         "referencing": {
@@ -1581,7 +1588,7 @@
                 "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
                 "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
             "version": "==1.17.0"
         },
         "tinydb": {
@@ -1626,11 +1633,11 @@
         },
         "urllib3-future": {
             "hashes": [
-                "sha256:6eee58ce7aadf3dafdb1768f5aa801e80359f0f70eda60a782e376e66d5fc87c",
-                "sha256:db640b363f90966ae135f9e4f5495b626468aa095dd18ef0bad0e32a1a0415a8"
+                "sha256:5787c05d815e42ce7f90b561b65182cee93fba1bbf5f059049a4945fd689071f",
+                "sha256:d07e7681b607256a01c188dfc63dbba44e7dae88c0f72deca27305696db5f700"
             ],
             "markers": "python_version >= '3.7'",
-            "version": "==2.12.912"
+            "version": "==2.12.913"
         },
         "verlib2": {
             "hashes": [
@@ -1942,72 +1949,73 @@
         },
         "coverage": {
             "hashes": [
-                "sha256:056d3017ed67e7ddf266e6f57378ece543755a4c9231e997789ab3bd11392c94",
-                "sha256:0ce8cf59e09d31a4915ff4c3b94c6514af4c84b22c4cc8ad7c3c546a86150a92",
-                "sha256:104bf640f408f4e115b85110047c7f27377e1a8b7ba86f7db4fa47aa49dc9a8e",
-                "sha256:1393e5aa9441dafb0162c36c8506c648b89aea9565b31f6bfa351e66c11bcd82",
-                "sha256:1586ad158523f4133499a4f322b230e2cfef9cc724820dbd58595a5a236186f4",
-                "sha256:180e3fc68ee4dc5af8b33b6ca4e3bb8aa1abe25eedcb958ba5cff7123071af68",
-                "sha256:1b336d06af14f8da5b1f391e8dec03634daf54dfcb4d1c4fb6d04c09d83cef90",
-                "sha256:1c8fbce80b2b8bf135d105aa8f5b36eae0c57d702a1cc3ebdea2a6f03f6cdde5",
-                "sha256:2d673e3add00048215c2cc507f1228a7523fd8bf34f279ac98334c9b07bd2656",
-                "sha256:316f29cc3392fa3912493ee4c83afa4a0e2db04ff69600711f8c03997c39baaa",
-                "sha256:33c1394d8407e2771547583b66a85d07ed441ff8fae5a4adb4237ad39ece60db",
-                "sha256:37cbc7b0d93dfd133e33c7ec01123fbb90401dce174c3b6661d8d36fb1e30608",
-                "sha256:39abcacd1ed54e2c33c54bdc488b310e8ef6705833f7148b6eb9a547199d375d",
-                "sha256:3ab7090f04b12dc6469882ce81244572779d3a4b67eea1c96fb9ecc8c607ef39",
-                "sha256:3b0e6e54591ae0d7427def8a4d40fca99df6b899d10354bab73cd5609807261c",
-                "sha256:416e2a8845eaff288f97eaf76ab40367deafb9073ffc47bf2a583f26b05e5265",
-                "sha256:4545485fef7a8a2d8f30e6f79ce719eb154aab7e44217eb444c1d38239af2072",
-                "sha256:4c124025430249118d018dcedc8b7426f39373527c845093132196f2a483b6dd",
-                "sha256:4fbb7a0c3c21908520149d7751cf5b74eb9b38b54d62997b1e9b3ac19a8ee2fe",
-                "sha256:52fc89602cde411a4196c8c6894afb384f2125f34c031774f82a4f2608c59d7d",
-                "sha256:55143aa13c49491f5606f05b49ed88663446dce3a4d3c5d77baa4e36a16d3573",
-                "sha256:57f3bd0d29bf2bd9325c0ff9cc532a175110c4bf8f412c05b2405fd35745266d",
-                "sha256:5b2f144444879363ea8834cd7b6869d79ac796cb8f864b0cfdde50296cd95816",
-                "sha256:5efdeff5f353ed3352c04e6b318ab05c6ce9249c25ed3c2090c6e9cadda1e3b2",
-                "sha256:60e6347d1ed882b1159ffea172cb8466ee46c665af4ca397edbf10ff53e9ffaf",
-                "sha256:693d921621a0c8043bfdc61f7d4df5ea6d22165fe8b807cac21eb80dd94e4bbd",
-                "sha256:708f0a1105ef2b11c79ed54ed31f17e6325ac936501fc373f24be3e6a578146a",
-                "sha256:70f0925c4e2bfc965369f417e7cc72538fd1ba91639cf1e4ef4b1a6b50439b3b",
-                "sha256:7789e700f33f2b133adae582c9f437523cd5db8de845774988a58c360fc88253",
-                "sha256:7b6c96d69928a3a6767fab8dc1ce8a02cf0156836ccb1e820c7f45a423570d98",
-                "sha256:7d2a65876274acf544703e943c010b60bd79404e3623a1e5d52b64a6e2728de5",
-                "sha256:7f18d47641282664276977c604b5a261e51fefc2980f5271d547d706b06a837f",
-                "sha256:89078312f06237417adda7c021c33f80f7a6d2db8572a5f6c330d89b080061ce",
-                "sha256:8c938c6ae59be67ac19a7204e079efc94b38222cd7d0269f96e45e18cddeaa59",
-                "sha256:8e336b56301774ace6be0017ff85c3566c556d938359b61b840796a0202f805c",
-                "sha256:a0a207c87a9f743c8072d059b4711f8d13c456eb42dac778a7d2e5d4f3c253a7",
-                "sha256:a2454b12a3f12cc4698f3508912e6225ec63682e2ca5a96f80a2b93cef9e63f3",
-                "sha256:a538a23119d1e2e2ce077e902d02ea3d8e0641786ef6e0faf11ce82324743944",
-                "sha256:aa4dff57fc21a575672176d5ab0ef15a927199e775c5e8a3d75162ab2b0c7705",
-                "sha256:ad0edaa97cb983d9f2ff48cadddc3e1fb09f24aa558abeb4dc9a0dbacd12cbb4",
-                "sha256:ae8006772c6b0fa53c33747913473e064985dac4d65f77fd2fdc6474e7cd54e4",
-                "sha256:b0fac2088ec4aaeb5468b814bd3ff5e5978364bfbce5e567c44c9e2854469f6c",
-                "sha256:b3e212a894d8ae07fde2ca8b43d666a6d49bbbddb10da0f6a74ca7bd31f20054",
-                "sha256:b54a1ee4c6f1905a436cbaa04b26626d27925a41cbc3a337e2d3ff7038187f07",
-                "sha256:b667b91f4f714b17af2a18e220015c941d1cf8b07c17f2160033dbe1e64149f0",
-                "sha256:b8c36093aca722db73633cf2359026ed7782a239eb1c6db2abcff876012dc4cf",
-                "sha256:bb356e7ae7c2da13f404bf8f75be90f743c6df8d4607022e759f5d7d89fe83f8",
-                "sha256:bce730d484038e97f27ea2dbe5d392ec5c2261f28c319a3bb266f6b213650135",
-                "sha256:c075d167a6ec99b798c1fdf6e391a1d5a2d054caffe9593ba0f97e3df2c04f0e",
-                "sha256:c4e09534037933bf6eb31d804e72c52ec23219b32c1730f9152feabbd7499463",
-                "sha256:c5f8a5364fc37b2f172c26a038bc7ec4885f429de4a05fc10fdcb53fb5834c5c",
-                "sha256:cb203c0afffaf1a8f5b9659a013f8f16a1b2cad3a80a8733ceedc968c0cf4c57",
-                "sha256:cc41374d2f27d81d6558f8a24e5c114580ffefc197fd43eabd7058182f743322",
-                "sha256:cd879d4646055a573775a1cec863d00c9ff8c55860f8b17f6d8eee9140c06166",
-                "sha256:d013c07061751ae81861cae6ec3a4fe04e84781b11fd4b6b4201590234b25c7b",
-                "sha256:d8c7524779003d59948c51b4fcbf1ca4e27c26a7d75984f63488f3625c328b9b",
-                "sha256:d9710521f07f526de30ccdead67e6b236fe996d214e1a7fba8b36e2ba2cd8261",
-                "sha256:e1ffde1d6bc2a92f9c9207d1ad808550873748ac2d4d923c815b866baa343b3f",
-                "sha256:e7f559c36d5cdc448ee13e7e56ed7b6b5d44a40a511d584d388a0f5d940977ba",
-                "sha256:f2a1e18a85bd066c7c556d85277a7adf4651f259b2579113844835ba1a74aafd",
-                "sha256:f32b165bf6dfea0846a9c9c38b7e1d68f313956d60a15cde5d1709fddcaf3bee",
-                "sha256:f5a2f71d6a91238e7628f23538c26aa464d390cbdedf12ee2a7a0fb92a24482a",
-                "sha256:f81fe93dc1b8e5673f33443c0786c14b77e36f1025973b85e07c70353e46882b"
+                "sha256:02fad4f8faa4153db76f9246bc95c1d99f054f4e0a884175bff9155cf4f856cb",
+                "sha256:092b134129a8bb940c08b2d9ceb4459af5fb3faea77888af63182e17d89e1cf1",
+                "sha256:0ce92c5a9d7007d838456f4b77ea159cb628187a137e1895331e530973dcf862",
+                "sha256:0dab4ef76d7b14f432057fdb7a0477e8bffca0ad39ace308be6e74864e632271",
+                "sha256:1165490be0069e34e4f99d08e9c5209c463de11b471709dfae31e2a98cbd49fd",
+                "sha256:11dd6f52c2a7ce8bf0a5f3b6e4a8eb60e157ffedc3c4b4314a41c1dfbd26ce58",
+                "sha256:15d54ecef1582b1d3ec6049b20d3c1a07d5e7f85335d8a3b617c9960b4f807e0",
+                "sha256:171e9977c6a5d2b2be9efc7df1126fd525ce7cad0eb9904fe692da007ba90d81",
+                "sha256:177d837339883c541f8524683e227adcaea581eca6bb33823a2a1fdae4c988e1",
+                "sha256:18f544356bceef17cc55fcf859e5664f06946c1b68efcea6acdc50f8f6a6e776",
+                "sha256:199a1272e642266b90c9f40dec7fd3d307b51bf639fa0d15980dc0b3246c1393",
+                "sha256:1e6f867379fd033a0eeabb1be0cffa2bd660582b8b0c9478895c509d875a9d9e",
+                "sha256:2444fbe1ba1889e0b29eb4d11931afa88f92dc507b7248f45be372775b3cef4f",
+                "sha256:25fe40967717bad0ce628a0223f08a10d54c9d739e88c9cbb0f77b5959367542",
+                "sha256:264ff2bcce27a7f455b64ac0dfe097680b65d9a1a293ef902675fa8158d20b24",
+                "sha256:2a79c4a09765d18311c35975ad2eb1ac613c0401afdd9cb1ca4110aeb5dd3c4c",
+                "sha256:2c492401bdb3a85824669d6a03f57b3dfadef0941b8541f035f83bbfc39d4282",
+                "sha256:315ff74b585110ac3b7ab631e89e769d294f303c6d21302a816b3554ed4c81af",
+                "sha256:34a3bf6b92e6621fc4dcdaab353e173ccb0ca9e4bfbcf7e49a0134c86c9cd303",
+                "sha256:37351dc8123c154fa05b7579fdb126b9f8b1cf42fd6f79ddf19121b7bdd4aa04",
+                "sha256:385618003e3d608001676bb35dc67ae3ad44c75c0395d8de5780af7bb35be6b2",
+                "sha256:392cc8fd2b1b010ca36840735e2a526fcbd76795a5d44006065e79868cc76ccf",
+                "sha256:3d03287eb03186256999539d98818c425c33546ab4901028c8fa933b62c35c3a",
+                "sha256:44683f2556a56c9a6e673b583763096b8efbd2df022b02995609cf8e64fc8ae0",
+                "sha256:44af11c00fd3b19b8809487630f8a0039130d32363239dfd15238e6d37e41a48",
+                "sha256:452735fafe8ff5918236d5fe1feac322b359e57692269c75151f9b4ee4b7e1bc",
+                "sha256:4c181ceba2e6808ede1e964f7bdc77bd8c7eb62f202c63a48cc541e5ffffccb6",
+                "sha256:4dd532dac197d68c478480edde74fd4476c6823355987fd31d01ad9aa1e5fb59",
+                "sha256:520af84febb6bb54453e7fbb730afa58c7178fd018c398a8fcd8e269a79bf96d",
+                "sha256:553ba93f8e3c70e1b0031e4dfea36aba4e2b51fe5770db35e99af8dc5c5a9dfe",
+                "sha256:5b7b02e50d54be6114cc4f6a3222fec83164f7c42772ba03b520138859b5fde1",
+                "sha256:63306486fcb5a827449464f6211d2991f01dfa2965976018c9bab9d5e45a35c8",
+                "sha256:75c82b27c56478d5e1391f2e7b2e7f588d093157fa40d53fd9453a471b1191f2",
+                "sha256:7ba5ff236c87a7b7aa1441a216caf44baee14cbfbd2256d306f926d16b026578",
+                "sha256:7e688010581dbac9cab72800e9076e16f7cccd0d89af5785b70daa11174e94de",
+                "sha256:80b5b207a8b08c6a934b214e364cab2fa82663d4af18981a6c0a9e95f8df7602",
+                "sha256:822fa99dd1ac686061e1219b67868e25d9757989cf2259f735a4802497d6da31",
+                "sha256:881cae0f9cbd928c9c001487bb3dcbfd0b0af3ef53ae92180878591053be0cb3",
+                "sha256:88d96127ae01ff571d465d4b0be25c123789cef88ba0879194d673fdea52f54e",
+                "sha256:8b1c65a739447c5ddce5b96c0a388fd82e4bbdff7251396a70182b1d83631019",
+                "sha256:8fed429c26b99641dc1f3a79179860122b22745dd9af36f29b141e178925070a",
+                "sha256:9bb47cc9f07a59a451361a850cb06d20633e77a9118d05fd0f77b1864439461b",
+                "sha256:a6b6b3bd121ee2ec4bd35039319f3423d0be282b9752a5ae9f18724bc93ebe7c",
+                "sha256:ae13ed5bf5542d7d4a0a42ff5160e07e84adc44eda65ddaa635c484ff8e55917",
+                "sha256:af94fb80e4f159f4d93fb411800448ad87b6039b0500849a403b73a0d36bb5ae",
+                "sha256:b4c144c129343416a49378e05c9451c34aae5ccf00221e4fa4f487db0816ee2f",
+                "sha256:b52edb940d087e2a96e73c1523284a2e94a4e66fa2ea1e2e64dddc67173bad94",
+                "sha256:b559adc22486937786731dac69e57296cb9aede7e2687dfc0d2696dbd3b1eb6b",
+                "sha256:b838a91e84e1773c3436f6cc6996e000ed3ca5721799e7789be18830fad009a2",
+                "sha256:ba8480ebe401c2f094d10a8c4209b800a9b77215b6c796d16b6ecdf665048950",
+                "sha256:bc96441c9d9ca12a790b5ae17d2fa6654da4b3962ea15e0eabb1b1caed094777",
+                "sha256:c90e9141e9221dd6fbc16a2727a5703c19443a8d9bf7d634c792fa0287cee1ab",
+                "sha256:d2e73e2ac468536197e6b3ab79bc4a5c9da0f078cd78cfcc7fe27cf5d1195ef0",
+                "sha256:d3154b369141c3169b8133973ac00f63fcf8d6dbcc297d788d36afbb7811e511",
+                "sha256:d66ff48ab3bb6f762a153e29c0fc1eb5a62a260217bc64470d7ba602f5886d20",
+                "sha256:d6874929d624d3a670f676efafbbc747f519a6121b581dd41d012109e70a5ebd",
+                "sha256:e33426a5e1dc7743dd54dfd11d3a6c02c5d127abfaa2edd80a6e352b58347d1a",
+                "sha256:e52eb31ae3afacdacfe50705a15b75ded67935770c460d88c215a9c0c40d0e9c",
+                "sha256:eae79f8e3501133aa0e220bbc29573910d096795882a70e6f6e6637b09522133",
+                "sha256:eebd927b86761a7068a06d3699fd6c20129becf15bb44282db085921ea0f1585",
+                "sha256:eff187177d8016ff6addf789dcc421c3db0d014e4946c1cc3fbf697f7852459d",
+                "sha256:f5f99a93cecf799738e211f9746dc83749b5693538fbfac279a61682ba309387",
+                "sha256:fbba59022e7c20124d2f520842b75904c7b9f16c854233fa46575c69949fb5b9"
             ],
             "index": "pypi",
-            "version": "==7.7.0"
+            "markers": "python_version >= '3.9'",
+            "version": "==7.7.1"
         },
         "docker": {
             "hashes": [
@@ -2055,6 +2063,7 @@
                 "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==8.3.5"
         },
         "python-dotenv": {
@@ -2063,6 +2072,7 @@
                 "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==1.0.1"
         },
         "requests": {
@@ -2079,6 +2089,7 @@
                 "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.5'",
             "version": "==1.12.1"
         },
         "testcontainers": {
@@ -2087,6 +2098,7 @@
                 "sha256:36bd2b58d91f2fc7ac4f4a73c6ec00e5e60c259c10f208dbfe3161029889be92"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.9' and python_version < '4.0'",
             "version": "==4.9.2"
         },
         "typing-extensions": {
diff --git a/dbrepo-dashboard-service/init/Pipfile.lock b/dbrepo-dashboard-service/init/Pipfile.lock
index 217d8c261463432055d92559eb3d9c1891f0aeac..473ffc2e41e3c2d293ef21ec56eb273a9ac0b70e 100644
--- a/dbrepo-dashboard-service/init/Pipfile.lock
+++ b/dbrepo-dashboard-service/init/Pipfile.lock
@@ -221,7 +221,7 @@
                 "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87",
                 "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"
             ],
-            "markers": "platform_python_implementation != 'PyPy'",
+            "markers": "python_version >= '3.8'",
             "version": "==1.17.1"
         },
         "charset-normalizer": {
@@ -373,10 +373,9 @@
         },
         "dbrepo": {
             "hashes": [
-                "sha256:5f541bb5f944276d381e9c4509ffac1036bc7488848d8aaee1aef9184766832b"
+                "sha256:aede7d87b1f87bad3a6825117ef700727b6486f22f108f20d3e34da7dbc283c5"
             ],
-            "path": "./lib/dbrepo-1.8.0.tar.gz",
-            "version": "==1.8.0"
+            "path": "./lib/dbrepo-1.8.0.tar.gz"
         },
         "flasgger": {
             "hashes": [
@@ -391,6 +390,7 @@
                 "sha256:f69fcd559dc907ed196ab9df0e48471709175e696d6e698dd4dbe940f96ce66b"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==2.3.3"
         },
         "flask-cors": {
@@ -415,6 +415,7 @@
                 "sha256:8085d6757505b6f3291a2638c84d207e8f0ad0de662d1f46aa2f77e658a0c976"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.9' and python_version < '4'",
             "version": "==4.7.1"
         },
         "frozenlist": {
@@ -521,6 +522,7 @@
                 "sha256:8cb61bb2a87ec07bca10974df276b9a1a95bfdb63f3a696f065692ffc9b8c389"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.7'",
             "version": "==4.3.2"
         },
         "gunicorn": {
@@ -529,6 +531,7 @@
                 "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.7'",
             "version": "==23.0.0"
         },
         "h11": {
@@ -694,6 +697,7 @@
                 "sha256:61c9170f92e736b530655e75374681d4fcca9cfa8763ab42be57353b2b203494"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.6'",
             "version": "==1.3.1"
         },
         "markupsafe": {
@@ -935,7 +939,7 @@
                 "sha256:f486038e44caa08dbd97275a9a35a283a8f1d2f0ee60ac260a1790e76660833c",
                 "sha256:f7de08cbe5551911886d1ab60de58448c6df0f67d9feb7d1fb21e9875ef95e91"
             ],
-            "markers": "python_version == '3.11'",
+            "markers": "python_version >= '3.10'",
             "version": "==2.2.4"
         },
         "packaging": {
@@ -1144,6 +1148,7 @@
                 "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==2.10.6"
         },
         "pydantic-core": {
@@ -1266,6 +1271,7 @@
                 "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==8.3.5"
         },
         "python-dateutil": {
@@ -1273,7 +1279,7 @@
                 "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
                 "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
             "version": "==2.9.0.post0"
         },
         "python-dotenv": {
@@ -1282,6 +1288,7 @@
                 "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==1.0.1"
         },
         "pytz": {
@@ -1448,7 +1455,7 @@
                 "sha256:fbc4e6452cc48c3e1398fe930349e2ec9ad76a2c00e729f3e797700c2f0646e6",
                 "sha256:fc73fc2889a01a43737c7a7c7fb9ee13aa56065b22abbed0e787cc58a3747808"
             ],
-            "markers": "python_version < '3.12' and (platform_python_implementation != 'CPython' or python_full_version > '3.7.10') and (platform_system == 'Darwin' or platform_system == 'Windows' or platform_system == 'Linux') and (platform_machine == 'x86_64' or platform_machine == 's390x' or platform_machine == 'aarch64' or platform_machine == 'armv7l' or platform_machine == 'ppc64le' or platform_machine == 'ppc64' or platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'ARM64' or platform_machine == 'x86' or platform_machine == 'i686') and (platform_python_implementation == 'CPython' or platform_python_implementation == 'PyPy')",
+            "markers": "python_version >= '3.7'",
             "version": "==1.4.2"
         },
         "referencing": {
@@ -1581,7 +1588,7 @@
                 "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
                 "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
             "version": "==1.17.0"
         },
         "tinydb": {
@@ -1626,11 +1633,11 @@
         },
         "urllib3-future": {
             "hashes": [
-                "sha256:6eee58ce7aadf3dafdb1768f5aa801e80359f0f70eda60a782e376e66d5fc87c",
-                "sha256:db640b363f90966ae135f9e4f5495b626468aa095dd18ef0bad0e32a1a0415a8"
+                "sha256:5787c05d815e42ce7f90b561b65182cee93fba1bbf5f059049a4945fd689071f",
+                "sha256:d07e7681b607256a01c188dfc63dbba44e7dae88c0f72deca27305696db5f700"
             ],
             "markers": "python_version >= '3.7'",
-            "version": "==2.12.912"
+            "version": "==2.12.913"
         },
         "verlib2": {
             "hashes": [
@@ -1942,72 +1949,73 @@
         },
         "coverage": {
             "hashes": [
-                "sha256:056d3017ed67e7ddf266e6f57378ece543755a4c9231e997789ab3bd11392c94",
-                "sha256:0ce8cf59e09d31a4915ff4c3b94c6514af4c84b22c4cc8ad7c3c546a86150a92",
-                "sha256:104bf640f408f4e115b85110047c7f27377e1a8b7ba86f7db4fa47aa49dc9a8e",
-                "sha256:1393e5aa9441dafb0162c36c8506c648b89aea9565b31f6bfa351e66c11bcd82",
-                "sha256:1586ad158523f4133499a4f322b230e2cfef9cc724820dbd58595a5a236186f4",
-                "sha256:180e3fc68ee4dc5af8b33b6ca4e3bb8aa1abe25eedcb958ba5cff7123071af68",
-                "sha256:1b336d06af14f8da5b1f391e8dec03634daf54dfcb4d1c4fb6d04c09d83cef90",
-                "sha256:1c8fbce80b2b8bf135d105aa8f5b36eae0c57d702a1cc3ebdea2a6f03f6cdde5",
-                "sha256:2d673e3add00048215c2cc507f1228a7523fd8bf34f279ac98334c9b07bd2656",
-                "sha256:316f29cc3392fa3912493ee4c83afa4a0e2db04ff69600711f8c03997c39baaa",
-                "sha256:33c1394d8407e2771547583b66a85d07ed441ff8fae5a4adb4237ad39ece60db",
-                "sha256:37cbc7b0d93dfd133e33c7ec01123fbb90401dce174c3b6661d8d36fb1e30608",
-                "sha256:39abcacd1ed54e2c33c54bdc488b310e8ef6705833f7148b6eb9a547199d375d",
-                "sha256:3ab7090f04b12dc6469882ce81244572779d3a4b67eea1c96fb9ecc8c607ef39",
-                "sha256:3b0e6e54591ae0d7427def8a4d40fca99df6b899d10354bab73cd5609807261c",
-                "sha256:416e2a8845eaff288f97eaf76ab40367deafb9073ffc47bf2a583f26b05e5265",
-                "sha256:4545485fef7a8a2d8f30e6f79ce719eb154aab7e44217eb444c1d38239af2072",
-                "sha256:4c124025430249118d018dcedc8b7426f39373527c845093132196f2a483b6dd",
-                "sha256:4fbb7a0c3c21908520149d7751cf5b74eb9b38b54d62997b1e9b3ac19a8ee2fe",
-                "sha256:52fc89602cde411a4196c8c6894afb384f2125f34c031774f82a4f2608c59d7d",
-                "sha256:55143aa13c49491f5606f05b49ed88663446dce3a4d3c5d77baa4e36a16d3573",
-                "sha256:57f3bd0d29bf2bd9325c0ff9cc532a175110c4bf8f412c05b2405fd35745266d",
-                "sha256:5b2f144444879363ea8834cd7b6869d79ac796cb8f864b0cfdde50296cd95816",
-                "sha256:5efdeff5f353ed3352c04e6b318ab05c6ce9249c25ed3c2090c6e9cadda1e3b2",
-                "sha256:60e6347d1ed882b1159ffea172cb8466ee46c665af4ca397edbf10ff53e9ffaf",
-                "sha256:693d921621a0c8043bfdc61f7d4df5ea6d22165fe8b807cac21eb80dd94e4bbd",
-                "sha256:708f0a1105ef2b11c79ed54ed31f17e6325ac936501fc373f24be3e6a578146a",
-                "sha256:70f0925c4e2bfc965369f417e7cc72538fd1ba91639cf1e4ef4b1a6b50439b3b",
-                "sha256:7789e700f33f2b133adae582c9f437523cd5db8de845774988a58c360fc88253",
-                "sha256:7b6c96d69928a3a6767fab8dc1ce8a02cf0156836ccb1e820c7f45a423570d98",
-                "sha256:7d2a65876274acf544703e943c010b60bd79404e3623a1e5d52b64a6e2728de5",
-                "sha256:7f18d47641282664276977c604b5a261e51fefc2980f5271d547d706b06a837f",
-                "sha256:89078312f06237417adda7c021c33f80f7a6d2db8572a5f6c330d89b080061ce",
-                "sha256:8c938c6ae59be67ac19a7204e079efc94b38222cd7d0269f96e45e18cddeaa59",
-                "sha256:8e336b56301774ace6be0017ff85c3566c556d938359b61b840796a0202f805c",
-                "sha256:a0a207c87a9f743c8072d059b4711f8d13c456eb42dac778a7d2e5d4f3c253a7",
-                "sha256:a2454b12a3f12cc4698f3508912e6225ec63682e2ca5a96f80a2b93cef9e63f3",
-                "sha256:a538a23119d1e2e2ce077e902d02ea3d8e0641786ef6e0faf11ce82324743944",
-                "sha256:aa4dff57fc21a575672176d5ab0ef15a927199e775c5e8a3d75162ab2b0c7705",
-                "sha256:ad0edaa97cb983d9f2ff48cadddc3e1fb09f24aa558abeb4dc9a0dbacd12cbb4",
-                "sha256:ae8006772c6b0fa53c33747913473e064985dac4d65f77fd2fdc6474e7cd54e4",
-                "sha256:b0fac2088ec4aaeb5468b814bd3ff5e5978364bfbce5e567c44c9e2854469f6c",
-                "sha256:b3e212a894d8ae07fde2ca8b43d666a6d49bbbddb10da0f6a74ca7bd31f20054",
-                "sha256:b54a1ee4c6f1905a436cbaa04b26626d27925a41cbc3a337e2d3ff7038187f07",
-                "sha256:b667b91f4f714b17af2a18e220015c941d1cf8b07c17f2160033dbe1e64149f0",
-                "sha256:b8c36093aca722db73633cf2359026ed7782a239eb1c6db2abcff876012dc4cf",
-                "sha256:bb356e7ae7c2da13f404bf8f75be90f743c6df8d4607022e759f5d7d89fe83f8",
-                "sha256:bce730d484038e97f27ea2dbe5d392ec5c2261f28c319a3bb266f6b213650135",
-                "sha256:c075d167a6ec99b798c1fdf6e391a1d5a2d054caffe9593ba0f97e3df2c04f0e",
-                "sha256:c4e09534037933bf6eb31d804e72c52ec23219b32c1730f9152feabbd7499463",
-                "sha256:c5f8a5364fc37b2f172c26a038bc7ec4885f429de4a05fc10fdcb53fb5834c5c",
-                "sha256:cb203c0afffaf1a8f5b9659a013f8f16a1b2cad3a80a8733ceedc968c0cf4c57",
-                "sha256:cc41374d2f27d81d6558f8a24e5c114580ffefc197fd43eabd7058182f743322",
-                "sha256:cd879d4646055a573775a1cec863d00c9ff8c55860f8b17f6d8eee9140c06166",
-                "sha256:d013c07061751ae81861cae6ec3a4fe04e84781b11fd4b6b4201590234b25c7b",
-                "sha256:d8c7524779003d59948c51b4fcbf1ca4e27c26a7d75984f63488f3625c328b9b",
-                "sha256:d9710521f07f526de30ccdead67e6b236fe996d214e1a7fba8b36e2ba2cd8261",
-                "sha256:e1ffde1d6bc2a92f9c9207d1ad808550873748ac2d4d923c815b866baa343b3f",
-                "sha256:e7f559c36d5cdc448ee13e7e56ed7b6b5d44a40a511d584d388a0f5d940977ba",
-                "sha256:f2a1e18a85bd066c7c556d85277a7adf4651f259b2579113844835ba1a74aafd",
-                "sha256:f32b165bf6dfea0846a9c9c38b7e1d68f313956d60a15cde5d1709fddcaf3bee",
-                "sha256:f5a2f71d6a91238e7628f23538c26aa464d390cbdedf12ee2a7a0fb92a24482a",
-                "sha256:f81fe93dc1b8e5673f33443c0786c14b77e36f1025973b85e07c70353e46882b"
+                "sha256:02fad4f8faa4153db76f9246bc95c1d99f054f4e0a884175bff9155cf4f856cb",
+                "sha256:092b134129a8bb940c08b2d9ceb4459af5fb3faea77888af63182e17d89e1cf1",
+                "sha256:0ce92c5a9d7007d838456f4b77ea159cb628187a137e1895331e530973dcf862",
+                "sha256:0dab4ef76d7b14f432057fdb7a0477e8bffca0ad39ace308be6e74864e632271",
+                "sha256:1165490be0069e34e4f99d08e9c5209c463de11b471709dfae31e2a98cbd49fd",
+                "sha256:11dd6f52c2a7ce8bf0a5f3b6e4a8eb60e157ffedc3c4b4314a41c1dfbd26ce58",
+                "sha256:15d54ecef1582b1d3ec6049b20d3c1a07d5e7f85335d8a3b617c9960b4f807e0",
+                "sha256:171e9977c6a5d2b2be9efc7df1126fd525ce7cad0eb9904fe692da007ba90d81",
+                "sha256:177d837339883c541f8524683e227adcaea581eca6bb33823a2a1fdae4c988e1",
+                "sha256:18f544356bceef17cc55fcf859e5664f06946c1b68efcea6acdc50f8f6a6e776",
+                "sha256:199a1272e642266b90c9f40dec7fd3d307b51bf639fa0d15980dc0b3246c1393",
+                "sha256:1e6f867379fd033a0eeabb1be0cffa2bd660582b8b0c9478895c509d875a9d9e",
+                "sha256:2444fbe1ba1889e0b29eb4d11931afa88f92dc507b7248f45be372775b3cef4f",
+                "sha256:25fe40967717bad0ce628a0223f08a10d54c9d739e88c9cbb0f77b5959367542",
+                "sha256:264ff2bcce27a7f455b64ac0dfe097680b65d9a1a293ef902675fa8158d20b24",
+                "sha256:2a79c4a09765d18311c35975ad2eb1ac613c0401afdd9cb1ca4110aeb5dd3c4c",
+                "sha256:2c492401bdb3a85824669d6a03f57b3dfadef0941b8541f035f83bbfc39d4282",
+                "sha256:315ff74b585110ac3b7ab631e89e769d294f303c6d21302a816b3554ed4c81af",
+                "sha256:34a3bf6b92e6621fc4dcdaab353e173ccb0ca9e4bfbcf7e49a0134c86c9cd303",
+                "sha256:37351dc8123c154fa05b7579fdb126b9f8b1cf42fd6f79ddf19121b7bdd4aa04",
+                "sha256:385618003e3d608001676bb35dc67ae3ad44c75c0395d8de5780af7bb35be6b2",
+                "sha256:392cc8fd2b1b010ca36840735e2a526fcbd76795a5d44006065e79868cc76ccf",
+                "sha256:3d03287eb03186256999539d98818c425c33546ab4901028c8fa933b62c35c3a",
+                "sha256:44683f2556a56c9a6e673b583763096b8efbd2df022b02995609cf8e64fc8ae0",
+                "sha256:44af11c00fd3b19b8809487630f8a0039130d32363239dfd15238e6d37e41a48",
+                "sha256:452735fafe8ff5918236d5fe1feac322b359e57692269c75151f9b4ee4b7e1bc",
+                "sha256:4c181ceba2e6808ede1e964f7bdc77bd8c7eb62f202c63a48cc541e5ffffccb6",
+                "sha256:4dd532dac197d68c478480edde74fd4476c6823355987fd31d01ad9aa1e5fb59",
+                "sha256:520af84febb6bb54453e7fbb730afa58c7178fd018c398a8fcd8e269a79bf96d",
+                "sha256:553ba93f8e3c70e1b0031e4dfea36aba4e2b51fe5770db35e99af8dc5c5a9dfe",
+                "sha256:5b7b02e50d54be6114cc4f6a3222fec83164f7c42772ba03b520138859b5fde1",
+                "sha256:63306486fcb5a827449464f6211d2991f01dfa2965976018c9bab9d5e45a35c8",
+                "sha256:75c82b27c56478d5e1391f2e7b2e7f588d093157fa40d53fd9453a471b1191f2",
+                "sha256:7ba5ff236c87a7b7aa1441a216caf44baee14cbfbd2256d306f926d16b026578",
+                "sha256:7e688010581dbac9cab72800e9076e16f7cccd0d89af5785b70daa11174e94de",
+                "sha256:80b5b207a8b08c6a934b214e364cab2fa82663d4af18981a6c0a9e95f8df7602",
+                "sha256:822fa99dd1ac686061e1219b67868e25d9757989cf2259f735a4802497d6da31",
+                "sha256:881cae0f9cbd928c9c001487bb3dcbfd0b0af3ef53ae92180878591053be0cb3",
+                "sha256:88d96127ae01ff571d465d4b0be25c123789cef88ba0879194d673fdea52f54e",
+                "sha256:8b1c65a739447c5ddce5b96c0a388fd82e4bbdff7251396a70182b1d83631019",
+                "sha256:8fed429c26b99641dc1f3a79179860122b22745dd9af36f29b141e178925070a",
+                "sha256:9bb47cc9f07a59a451361a850cb06d20633e77a9118d05fd0f77b1864439461b",
+                "sha256:a6b6b3bd121ee2ec4bd35039319f3423d0be282b9752a5ae9f18724bc93ebe7c",
+                "sha256:ae13ed5bf5542d7d4a0a42ff5160e07e84adc44eda65ddaa635c484ff8e55917",
+                "sha256:af94fb80e4f159f4d93fb411800448ad87b6039b0500849a403b73a0d36bb5ae",
+                "sha256:b4c144c129343416a49378e05c9451c34aae5ccf00221e4fa4f487db0816ee2f",
+                "sha256:b52edb940d087e2a96e73c1523284a2e94a4e66fa2ea1e2e64dddc67173bad94",
+                "sha256:b559adc22486937786731dac69e57296cb9aede7e2687dfc0d2696dbd3b1eb6b",
+                "sha256:b838a91e84e1773c3436f6cc6996e000ed3ca5721799e7789be18830fad009a2",
+                "sha256:ba8480ebe401c2f094d10a8c4209b800a9b77215b6c796d16b6ecdf665048950",
+                "sha256:bc96441c9d9ca12a790b5ae17d2fa6654da4b3962ea15e0eabb1b1caed094777",
+                "sha256:c90e9141e9221dd6fbc16a2727a5703c19443a8d9bf7d634c792fa0287cee1ab",
+                "sha256:d2e73e2ac468536197e6b3ab79bc4a5c9da0f078cd78cfcc7fe27cf5d1195ef0",
+                "sha256:d3154b369141c3169b8133973ac00f63fcf8d6dbcc297d788d36afbb7811e511",
+                "sha256:d66ff48ab3bb6f762a153e29c0fc1eb5a62a260217bc64470d7ba602f5886d20",
+                "sha256:d6874929d624d3a670f676efafbbc747f519a6121b581dd41d012109e70a5ebd",
+                "sha256:e33426a5e1dc7743dd54dfd11d3a6c02c5d127abfaa2edd80a6e352b58347d1a",
+                "sha256:e52eb31ae3afacdacfe50705a15b75ded67935770c460d88c215a9c0c40d0e9c",
+                "sha256:eae79f8e3501133aa0e220bbc29573910d096795882a70e6f6e6637b09522133",
+                "sha256:eebd927b86761a7068a06d3699fd6c20129becf15bb44282db085921ea0f1585",
+                "sha256:eff187177d8016ff6addf789dcc421c3db0d014e4946c1cc3fbf697f7852459d",
+                "sha256:f5f99a93cecf799738e211f9746dc83749b5693538fbfac279a61682ba309387",
+                "sha256:fbba59022e7c20124d2f520842b75904c7b9f16c854233fa46575c69949fb5b9"
             ],
             "index": "pypi",
-            "version": "==7.7.0"
+            "markers": "python_version >= '3.9'",
+            "version": "==7.7.1"
         },
         "docker": {
             "hashes": [
@@ -2055,6 +2063,7 @@
                 "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==8.3.5"
         },
         "python-dotenv": {
@@ -2063,6 +2072,7 @@
                 "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.8'",
             "version": "==1.0.1"
         },
         "requests": {
@@ -2079,6 +2089,7 @@
                 "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.5'",
             "version": "==1.12.1"
         },
         "testcontainers": {
@@ -2087,6 +2098,7 @@
                 "sha256:36bd2b58d91f2fc7ac4f4a73c6ec00e5e60c259c10f208dbfe3161029889be92"
             ],
             "index": "pypi",
+            "markers": "python_version >= '3.9' and python_version < '4.0'",
             "version": "==4.9.2"
         },
         "typing-extensions": {
diff --git a/dbrepo-dashboard-service/init/app.py b/dbrepo-dashboard-service/init/app.py
index 84b91da6efa049721563900a9998cb9e5fa77211..1b80b4730c1db03cdbdb7d0f1c5bf3bffccaf8b4 100644
--- a/dbrepo-dashboard-service/init/app.py
+++ b/dbrepo-dashboard-service/init/app.py
@@ -34,29 +34,32 @@ dictConfig({
 })
 
 metadata_service_endpoint = os.getenv("METADATA_SERVICE_ENDPOINT", "http://metadata-service:8080")
+system_username = os.getenv('SYSTEM_USERNAME', 'admin')
+system_password = os.getenv('SYSTEM_PASSWORD', 'admin')
 
 
 def fetch_databases() -> List[Database]:
     logging.debug(f"fetching database from endpoint: {metadata_service_endpoint}")
-    client = RestClient(endpoint=metadata_service_endpoint)
+    client = RestClient(endpoint=metadata_service_endpoint, username=system_username, password=system_password)
     databases = []
     for index, database in enumerate(client.get_databases()):
         logging.debug(f"fetching database details for database id: {database.id}")
         databases.append(client.get_database(database_id=database.id))
-    logging.debug(f"fetched {len(databases)} database(s)")
+    logging.info(f"Fetched {len(databases)} database(s)")
     return databases
 
 
-def save_dashboards(databases: List[Database]) -> None:
-    for database in databases:
-        db = dashboard.find(database.dashboard_uid)
-        if db is not None:
-            logging.debug(f"dashboard already exists for database with id: {database.id}")
-            continue
-        dashboard.create(database.internal_name, database.dashboard_uid)
-        dashboard.update(database)
+def upsert_dashboard(database: Database) -> None:
+    db = dashboard.find(database.dashboard_uid)
+    client = RestClient(endpoint=metadata_service_endpoint, username=system_username, password=system_password)
+    if db is None:
+        database.dashboard_uid = dashboard.create(database.internal_name, database.dashboard_uid)
+        client.update_database_dashboard(database.id, database.dashboard_uid)
+
+    dashboard.update(database)
 
 
 if __name__ == "__main__":
-    save_dashboards(databases=fetch_databases())
+    for database in fetch_databases():
+        upsert_dashboard(database)
     logging.info("Finished. Exiting.")
diff --git a/dbrepo-dashboard-service/init/dashboard.py b/dbrepo-dashboard-service/init/dashboard.py
index 59b8dd5cb0d0e93adf46e24546548fc2ede26621..0e6f8db50efb184fb9e8d00165b9db600875b3c9 100644
--- a/dbrepo-dashboard-service/init/dashboard.py
+++ b/dbrepo-dashboard-service/init/dashboard.py
@@ -2,6 +2,7 @@ import logging
 import os
 
 from dbrepo.api.dto import Database
+from grafana_client.client import GrafanaClientError
 
 from clients.grafana_client import GrafanaClient
 from panel import get_panels
@@ -32,18 +33,29 @@ def map_links(database: Database) -> [dict]:
 
 
 def find(uid: str):
+    """
+    Finds a dashboard with the given uid.
+
+    @return The dashboard, if successful. Otherwise, `None`.
+    """
+    if uid is None:
+        return None
     grafana = GrafanaClient().connect()
-    return grafana.dashboard.get_dashboard(uid)
+    try:
+        return grafana.dashboard.get_dashboard(uid)
+    except GrafanaClientError:
+        logging.warning(f"Failed to find dashboard with uid: {uid}")
+        return None
 
 
-def create(database_name: str, uid: str = '') -> dict:
+def create(database_name: str, uid: str = '') -> str:
     grafana = GrafanaClient().connect()
     dashboard = dict(uid=uid,
                      title=f'{database_name} Overview',
                      tags=['managed'],
                      timezone='browser',
                      refresh='30m',
-                     preload=True,
+                     preload=False,
                      panels=[])
     dashboard['panels'] = []
     payload = dict(folderUid='',
@@ -51,7 +63,7 @@ def create(database_name: str, uid: str = '') -> dict:
                    dashboard=dashboard)
     dashboard = grafana.dashboard.update_dashboard(payload)
     logging.info(f"Created dashboard with uid: {dashboard['uid']}")
-    return dashboard
+    return dashboard['uid']
 
 
 def delete(uid: str) -> None:
@@ -61,11 +73,6 @@ def delete(uid: str) -> None:
 
 def update(database: Database) -> None:
     grafana = GrafanaClient().connect()
-    try:
-        find(database.dashboard_uid)
-    except Exception:
-        logging.warning(f'Failed to find dashboard with uid: {database.dashboard_uid}')
-        create(database.name, database.dashboard_uid)
     dashboard = find(database.dashboard_uid)['dashboard']
     # update metadata
     if not database.is_dashboard_enabled and 'managed' in dashboard['tags']:
diff --git a/dbrepo-dashboard-service/init/lib/dbrepo-1.8.0-py3-none-any.whl b/dbrepo-dashboard-service/init/lib/dbrepo-1.8.0-py3-none-any.whl
index ff893e2fedf83a0b4031cd37d7dfcf84d10f11a1..2293ef0a15f7b6921cddcded1980822232041bfd 100644
Binary files a/dbrepo-dashboard-service/init/lib/dbrepo-1.8.0-py3-none-any.whl and b/dbrepo-dashboard-service/init/lib/dbrepo-1.8.0-py3-none-any.whl differ
diff --git a/dbrepo-dashboard-service/init/lib/dbrepo-1.8.0.tar.gz b/dbrepo-dashboard-service/init/lib/dbrepo-1.8.0.tar.gz
index fac980df3143bd5093314cd92f228861e97a36a8..75b284d102b6c87265ae2fa1ed8b2efb49746d82 100644
Binary files a/dbrepo-dashboard-service/init/lib/dbrepo-1.8.0.tar.gz and b/dbrepo-dashboard-service/init/lib/dbrepo-1.8.0.tar.gz differ
diff --git a/dbrepo-dashboard-service/init/panel.py b/dbrepo-dashboard-service/init/panel.py
index 684ed815c4a2a07589f8d954fe01e6467bd206fa..3763c9d6d3b032f24250c45727c831ff5361e24b 100644
--- a/dbrepo-dashboard-service/init/panel.py
+++ b/dbrepo-dashboard-service/init/panel.py
@@ -51,7 +51,6 @@ def _get_start_index(dashboard: dict) -> int | None:
 
 def map_column_conversion(column: ViewColumn) -> dict:
     destinationType = 'string'
-    enumConfig = None
     dateFormat = None
     if column.type in number_types:
         destinationType = 'number'
@@ -65,15 +64,8 @@ def map_column_conversion(column: ViewColumn) -> dict:
             dateFormat = 'YYYY-MM-dd'
     elif column.type in bool_types:
         destinationType = 'boolean'
-    elif column.type == ColumnType.ENUM:
-        destinationType = 'enum'
-        enumConfig = dict(text=[enum.value for enum in column.enums])
-    elif column.type == ColumnType.SET:
-        destinationType = 'enum'
-        enumConfig = dict(text=[enum.value for enum in column.sets])
     return dict(targetField=column.internal_name,
                 destinationType=destinationType,
-                enumConfig=enumConfig,
                 dateFormat=dateFormat)
 
 
@@ -109,6 +101,7 @@ def _map_timeseries_panel(database_id: str, view: View, panel_type: str, h: int
                               source='url',
                               type='json',
                               url=f'/api/database/{database_id}/view/{view.id}/data',
+                              parser='backend',
                               url_options=dict(data='',
                                                method='GET'))],
                 gridPos=dict(h=h,
@@ -168,6 +161,7 @@ def _map_number_panel(database_id: str, view_id: str, title: str, field: str, x:
                               source='url',
                               type='json',
                               url=f'/api/database/{database_id}/view/{view_id}/statistic',
+                              parser='backend',
                               url_options=dict(data='',
                                                method='GET'))],
                 fieldConfig=dict(defaults=dict(mappings=[],
@@ -229,6 +223,7 @@ def map_statistics_panel(database_id: str, view_id: str, w: int = 12, h: int = 8
                               source='url',
                               type='json',
                               url=f'/api/database/{database_id}/view/{view_id}/statistic',
+                              parser='backend',
                               url_options=dict(data='',
                                                method='GET'))],
                 options=dict(cellHeight="sm",
@@ -320,6 +315,7 @@ def map_overview_panel(database_id: str, view_id: str, x: int = 0, y: int = 4) -
                               source='url',
                               type='json',
                               url=f'/api/database/{database_id}/view/{view_id}/data',
+                              parser='backend',
                               url_options=dict(data='',
                                                method='GET'))],
                 links=[dict(title='Cite',
@@ -334,6 +330,7 @@ def map_row(title: str, x: int = 0, y: int = 0) -> dict:
                 type='row',
                 panels=[],
                 targets=[],
+                parser='backend',
                 gridPos=dict(h=1,
                              w=24,
                              x=x,
diff --git a/dbrepo-dashboard-service/init/tests/test_integration_dashboard.py b/dbrepo-dashboard-service/init/tests/test_integration_dashboard.py
index 41f757aef981a15627955da51597ee28f719a347..8c597c8fe37612dafb1ba3d904b9e0d34aac25de 100644
--- a/dbrepo-dashboard-service/init/tests/test_integration_dashboard.py
+++ b/dbrepo-dashboard-service/init/tests/test_integration_dashboard.py
@@ -1,6 +1,6 @@
 import unittest
 
-from dbrepo.api.dto import Database, ColumnType, UserBrief, ContainerBrief, ImageBrief, View, ViewColumn, ColumnEnum
+from dbrepo.api.dto import Database, ColumnType, UserBrief, ContainerBrief, ImageBrief, View, ViewColumn
 from grafana_client.client import GrafanaClientError
 
 import dashboard
@@ -77,26 +77,6 @@ req = Database(id="209acf92-5c9b-4633-ad99-113c86f6e948",
                                                ord=5,
                                                database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
                                                type=ColumnType.BOOL,
-                                               is_null_allowed=False),
-                                    ViewColumn(id='f8982e7e-7e6f-433a-8a08-0f4da6ee8b68',
-                                               name='gender',
-                                               internal_name='gender',
-                                               ord=6,
-                                               database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
-                                               type=ColumnType.ENUM,
-                                               enums=[ColumnEnum(id='d30908e7-17e1-4c95-874a-1e5d126a1f4a',
-                                                                 value='male'),
-                                                      ColumnEnum(id='d225ba99-4169-470d-b497-3423b5574d0a',
-                                                                 value='female')],
-                                               is_null_allowed=False),
-                                    ViewColumn(id='82647def-bc83-4756-9b9d-d25d51b08b7f',
-                                               name='tags',
-                                               internal_name='tags',
-                                               ord=6,
-                                               database_id='209acf92-5c9b-4633-ad99-113c86f6e948',
-                                               type=ColumnType.SET,
-                                               enums=[ColumnEnum(id='f39fcef1-a6c0-4877-9cc2-908fa1e4a44e',
-                                                                 value='vip')],
                                                is_null_allowed=False)],
                            identifiers=[])])
 
diff --git a/dbrepo-dashboard-service/lib/dbrepo-1.8.0-py3-none-any.whl b/dbrepo-dashboard-service/lib/dbrepo-1.8.0-py3-none-any.whl
index ff893e2fedf83a0b4031cd37d7dfcf84d10f11a1..2293ef0a15f7b6921cddcded1980822232041bfd 100644
Binary files a/dbrepo-dashboard-service/lib/dbrepo-1.8.0-py3-none-any.whl and b/dbrepo-dashboard-service/lib/dbrepo-1.8.0-py3-none-any.whl differ
diff --git a/dbrepo-dashboard-service/lib/dbrepo-1.8.0.tar.gz b/dbrepo-dashboard-service/lib/dbrepo-1.8.0.tar.gz
index fac980df3143bd5093314cd92f228861e97a36a8..75b284d102b6c87265ae2fa1ed8b2efb49746d82 100644
Binary files a/dbrepo-dashboard-service/lib/dbrepo-1.8.0.tar.gz and b/dbrepo-dashboard-service/lib/dbrepo-1.8.0.tar.gz differ
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
index f729368e7867b5f6dc8151674b8dc5aca2ca855b..94ae9b01241b4acf87fb035f62ce29f87c2b32ac 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
@@ -378,9 +378,7 @@ public class ViewEndpoint extends RestEndpoint {
         final DatabaseDto database = cacheService.getDatabase(databaseId);
         final ViewDto view = cacheService.getView(databaseId, viewId);
         try {
-            final TableStatisticDto statistic = tableService.getStatistics(database, view.getInternalName());
-            statistic.setTotalRows(tableService.getCount(database, view.getInternalName(), Instant.now()));
-            return ResponseEntity.ok(statistic);
+            return ResponseEntity.ok(cacheService.getStatistic(database, view));
         } catch (SQLException e) {
             log.error("Failed to establish connection to database: {}", e.getMessage());
             throw new DatabaseUnavailableException("Failed to establish connection to database", e);
diff --git a/dbrepo-data-service/rest-service/src/main/resources/application.yml b/dbrepo-data-service/rest-service/src/main/resources/application.yml
index 36c9aef0a82984d26535d132df2968200fbcdb14..f008cde99b234ea0fe798d4e16199e8aad5e363d 100644
--- a/dbrepo-data-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-data-service/rest-service/src/main/resources/application.yml
@@ -74,14 +74,11 @@ dbrepo:
     password: "${AUTH_SERVICE_ADMIN_PASSWORD:admin}"
     client: "${AUTH_SERVICE_CLIENT:dbrepo-client}"
     clientSecret: "${AUTH_SERVICE_CLIENT_SECRET:MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}"
-  sql:
-    forbidden: "${NOT_SUPPORTED_KEYWORDS:AVG,BIT_AND,BIT_OR,BIT_XOR,COUNT,COUNTDISTINCT,GROUP_CONCAT,JSON_ARRAYAGG,JSON_OBJECTAGG,MAX,MIN,STD,STDDEV,STDDEV_POP,STDDEV_SAMP,SUM,VARIANCE,VAR_POP,VAR_SAMP,--}"
   grant:
     default:
       read: "${GRANT_DEFAULT_READ:SELECT}"
       write: "${GRANT_DEFAULT_WRITE:SELECT, CREATE, CREATE VIEW, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, INDEX, TRIGGER, INSERT, UPDATE, DELETE}"
-  website: "${BASE_URL:http://localhost}"
-  credentialCacheTimeout: "${CREDENTIAL_CACHE_TIMEOUT:60}"
+  credentialCacheTimeout: "${CREDENTIAL_CACHE_TIMEOUT:300}"
   minConcurrent: "${MIN_CONCURRENT_CONSUMERS:2}"
   maxConcurrent: "${MAX_CONCURRENT_CONSUMERS:6}"
   requeueRejected: ${REQUEUE_REJECTED:false}
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java b/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
index 603491c97005a2633885d7bff2be1b75a8625507..66d68ed3e2c95a4a30949294ff40e3459fa96182 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/config/CacheConfig.java
@@ -5,6 +5,7 @@ import at.tuwien.api.database.DatabaseAccessDto;
 import at.tuwien.api.database.DatabaseDto;
 import at.tuwien.api.database.ViewDto;
 import at.tuwien.api.database.table.TableDto;
+import at.tuwien.api.database.table.TableStatisticDto;
 import at.tuwien.api.keycloak.TokenDto;
 import at.tuwien.api.user.UserDto;
 import com.github.benmanes.caffeine.cache.Cache;
@@ -52,6 +53,11 @@ public class CacheConfig {
         return new ExpiryCache<UUID, ContainerDto>().build();
     }
 
+    @Bean
+    public Cache<UUID, TableStatisticDto> statisticCache() {
+        return new ExpiryCache<UUID, TableStatisticDto>().build();
+    }
+
     @Bean
     public Cache<String, TokenDto> tokenCache() {
         return new ExpiryCache<String, TokenDto>().build();
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
index ab0ab9dea59ce1af070ff3ca3463109b82c41806..34d1dfab5ef1aac49b8c0379ff96b159b135d36f 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
@@ -157,7 +157,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
             ViewNotFoundException, MetadataServiceException {
         final ResponseEntity<ViewDto> response;
         final String url = "/api/database/" + databaseId + "/view/" + id;
-        log.debug("get  view info from metadata service: {}", url);
+        log.debug("get view info from metadata service: {}", url);
         try {
             response = internalRestTemplate.exchange(url, HttpMethod.GET, HttpEntity.EMPTY, ViewDto.class);
         } catch (ResourceAccessException | HttpServerErrorException e) {
@@ -185,7 +185,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
             MetadataServiceException {
         final ResponseEntity<UserDto> response;
         final String url = "/api/user/" + userId;
-        log.debug("get  user info from metadata service: {}", url);
+        log.debug("get user info from metadata service: {}", url);
         try {
             response = internalRestTemplate.exchange(url, HttpMethod.GET, HttpEntity.EMPTY, UserDto.class);
         } catch (ResourceAccessException | HttpServerErrorException e) {
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
index 208d6e755e67b0de50ed4c72db77d325f05b043d..e91c7407e8ad91c50d3812576bd743aa82d56a20 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CacheService.java
@@ -5,14 +5,26 @@ import at.tuwien.api.database.DatabaseAccessDto;
 import at.tuwien.api.database.DatabaseDto;
 import at.tuwien.api.database.ViewDto;
 import at.tuwien.api.database.table.TableDto;
-import at.tuwien.api.keycloak.TokenDto;
+import at.tuwien.api.database.table.TableStatisticDto;
 import at.tuwien.api.user.UserDto;
 import at.tuwien.exception.*;
 
+import java.sql.SQLException;
 import java.util.UUID;
 
 public interface CacheService {
 
+    /**
+     * Gets credentials for a database with given id either from the cache (if not expired) or retrieves them from the
+     * Metadata Service.
+     *
+     * @param id The id.
+     * @param forceReload If set to true, force a reload of the cached result. Otherwise, use the cached result if it is present.
+     * @return The credentials.
+     * @throws DatabaseNotFoundException  The database was not found in the metadata service.
+     * @throws RemoteUnavailableException The remote service is not available.
+     * @throws MetadataServiceException   The remote service returned invalid data.
+     */
     DatabaseDto getDatabase(UUID id, Boolean forceReload) throws DatabaseNotFoundException, RemoteUnavailableException,
             MetadataServiceException;
 
@@ -29,6 +41,9 @@ public interface CacheService {
     DatabaseDto getDatabase(UUID id) throws DatabaseNotFoundException, RemoteUnavailableException,
             MetadataServiceException;
 
+    TableStatisticDto getStatistic(DatabaseDto database, ViewDto view) throws TableNotFoundException,
+            TableMalformedException, QueryMalformedException, SQLException;
+
     /**
      * Gets credentials for a container with given id either from the cache (if not expired) or retrieves them from the
      * Metadata Service.
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
index 2346fe1071f458ced7f399b7ef3b85c782cd4541..018ccba14ad5398e596f1b149fa28e1b426f108f 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CacheServiceImpl.java
@@ -5,21 +5,26 @@ import at.tuwien.api.database.DatabaseAccessDto;
 import at.tuwien.api.database.DatabaseDto;
 import at.tuwien.api.database.ViewDto;
 import at.tuwien.api.database.table.TableDto;
+import at.tuwien.api.database.table.TableStatisticDto;
 import at.tuwien.api.user.UserDto;
 import at.tuwien.exception.*;
 import at.tuwien.gateway.MetadataServiceGateway;
 import at.tuwien.service.CacheService;
+import at.tuwien.service.TableService;
 import com.github.benmanes.caffeine.cache.Cache;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.SQLException;
+import java.time.Instant;
 import java.util.UUID;
 
 @Log4j2
 @Service
 public class CacheServiceImpl implements CacheService {
 
+    private final TableService tableService;
     private final MetadataServiceGateway gateway;
     private final Cache<UUID, UserDto> userCache;
     private final Cache<UUID, ViewDto> viewCache;
@@ -27,12 +32,14 @@ public class CacheServiceImpl implements CacheService {
     private final Cache<UUID, DatabaseDto> databaseCache;
     private final Cache<UUID, ContainerDto> containerCache;
     private final Cache<UUID, DatabaseAccessDto> accessCache;
+    private final Cache<UUID, TableStatisticDto> statisticCache;
 
     @Autowired
-    public CacheServiceImpl(MetadataServiceGateway gateway, Cache<UUID, UserDto> userCache,
+    public CacheServiceImpl(TableService tableService, MetadataServiceGateway gateway, Cache<UUID, UserDto> userCache,
                             Cache<UUID, ViewDto> viewCache, Cache<UUID, TableDto> tableCache,
                             Cache<UUID, DatabaseAccessDto> accessCache, Cache<UUID, DatabaseDto> databaseCache,
-                            Cache<UUID, ContainerDto> containerCache) {
+                            Cache<UUID, ContainerDto> containerCache, Cache<UUID, TableStatisticDto> statisticCache) {
+        this.tableService = tableService;
         this.gateway = gateway;
         this.userCache = userCache;
         this.viewCache = viewCache;
@@ -40,6 +47,7 @@ public class CacheServiceImpl implements CacheService {
         this.accessCache = accessCache;
         this.databaseCache = databaseCache;
         this.containerCache = containerCache;
+        this.statisticCache = statisticCache;
     }
 
     @Override
@@ -78,6 +86,21 @@ public class CacheServiceImpl implements CacheService {
         return table;
     }
 
+    @Override
+    public TableStatisticDto getStatistic(DatabaseDto database, ViewDto view) throws TableNotFoundException,
+            TableMalformedException, QueryMalformedException, SQLException {
+        final TableStatisticDto cacheStatistic = statisticCache.getIfPresent(view.getId());
+        if (cacheStatistic != null) {
+            log.trace("found view statistic with id {} in cache", view.getId());
+            return cacheStatistic;
+        }
+        log.debug("view statistic with id {} not it cache (anymore): reload", view.getId());
+        final TableStatisticDto statistic = tableService.getStatistics(database, view.getInternalName());
+        statistic.setTotalRows(tableService.getCount(database, view.getInternalName(), Instant.now()));
+        statisticCache.put(view.getId(), statistic);
+        return statistic;
+    }
+
     @Override
     public ContainerDto getContainer(UUID id) throws RemoteUnavailableException, MetadataServiceException,
             ContainerNotFoundException {
@@ -144,6 +167,7 @@ public class CacheServiceImpl implements CacheService {
         tableCache.invalidateAll();
         databaseCache.invalidateAll();
         containerCache.invalidateAll();
+        statisticCache.invalidateAll();
     }
 
 }
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
index 7cf7d1eff4394ae174b0e724fa8e34455b363578..9bcde3cf3264336e386b98561a3911c2533e0763 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
@@ -8,6 +8,8 @@ import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.Instant;
+
 @Log4j2
 @Service
 public class CredentialServiceImpl implements CredentialService {
@@ -25,10 +27,16 @@ public class CredentialServiceImpl implements CredentialService {
     public TokenDto getAccessToken(String username, String password) {
         final TokenDto cacheAccessToken = tokenCache.getIfPresent(username);
         if (cacheAccessToken != null) {
-            log.trace("found access token for user with username {} in cache", username);
-            return cacheAccessToken;
+            final Instant expiry = Instant.ofEpochSecond(cacheAccessToken.getExpiresIn());
+            if (!expiry.isBefore(Instant.now())) {
+                log.trace("found access token for user with username {} in cache", username);
+                return cacheAccessToken;
+            } else {
+                log.debug("access token for user with username {} expired in cache: request new", username);
+            }
+        } else {
+            log.debug("access token for user with username {} not it cache (anymore): request new", username);
         }
-        log.debug("access token for user with username {} not it cache (anymore): request new", username);
         final TokenDto token = keycloakGateway.obtainUserToken(username, password);
         tokenCache.put(username, token);
         return token;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyDashboardDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyDashboardDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..f9588ccb41caa6290442ebd60d891cf2d9edcd9c
--- /dev/null
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyDashboardDto.java
@@ -0,0 +1,20 @@
+package at.tuwien.api.database;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+import lombok.extern.jackson.Jacksonized;
+
+@Getter
+@Setter
+@Builder
+@EqualsAndHashCode
+@NoArgsConstructor
+@AllArgsConstructor
+@Jacksonized
+@ToString
+public class DatabaseModifyDashboardDto {
+
+    @NotNull
+    private String uid;
+
+}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java
index 2b18132e8cca75d05ee203143a5dbba40eabf21f..4fb7ace10d6cc2b4bea5b0134778b71ee015fa96 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java
@@ -8,8 +8,6 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.util.UUID;
 
-import static jakarta.persistence.GenerationType.IDENTITY;
-
 @Data
 @Entity
 @Builder(toBuilder = true)
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
index d231c08c660b790bf1c65212c3cffd9fc581fafc..60ca31dcd9d40a43a2b8156be5426fc15b950686 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
@@ -5,7 +5,6 @@ import at.tuwien.api.error.ApiErrorDto;
 import at.tuwien.api.grafana.CreateDashboardResponseDto;
 import at.tuwien.entities.container.Container;
 import at.tuwien.entities.database.Database;
-import at.tuwien.entities.database.DatabaseAccess;
 import at.tuwien.entities.user.User;
 import at.tuwien.exception.*;
 import at.tuwien.mapper.MetadataMapper;
@@ -33,7 +32,6 @@ import org.springframework.web.bind.annotation.*;
 
 import java.security.Principal;
 import java.util.List;
-import java.util.Optional;
 import java.util.UUID;
 
 @Log4j2
@@ -225,8 +223,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
     public ResponseEntity<DatabaseBriefDto> refreshTableMetadata(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                                  @NotNull Principal principal) throws DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, SearchServiceException,
-            SearchServiceConnectionException, NotAllowedException, QueryNotFoundException, MalformedException,
-            TableNotFoundException {
+            SearchServiceConnectionException, NotAllowedException, MalformedException, TableNotFoundException {
         log.debug("endpoint refresh database metadata, databaseId={}", databaseId);
         final Database database = databaseService.findById(databaseId);
         if (!database.getOwner().getId().equals(getId(principal))) {
@@ -274,7 +271,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
     public ResponseEntity<DatabaseBriefDto> refreshViewMetadata(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                                 @NotNull Principal principal) throws DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, SearchServiceException,
-            SearchServiceConnectionException, NotAllowedException, QueryNotFoundException, ViewNotFoundException {
+            SearchServiceConnectionException, NotAllowedException, ViewNotFoundException {
         log.debug("endpoint refresh database metadata, databaseId={}, principal.name={}", databaseId, principal.getName());
         final Database database = databaseService.findById(databaseId);
         if (!database.getOwner().getId().equals(getId(principal))) {
@@ -457,6 +454,50 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                         databaseService.modifyImage(database, image))));
     }
 
+    @PutMapping("/{databaseId}/dashboard")
+    @Transactional
+    @PreAuthorize("hasAuthority('system')")
+    @Observed(name = "dbrepo_database_dashboard")
+    @Operation(summary = "Update database dashboard uid",
+            description = "Updates the dashboard uid for a database with given id. Only the database owner can perform this operation. Requires role `system`.",
+            security = {@SecurityRequirement(name = "bearerAuth"), @SecurityRequirement(name = "basicAuth")})
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "202",
+                    description = "Modify of dashboard uid was successful",
+                    content = {@Content(
+                            mediaType = "application/json",
+                            schema = @Schema(implementation = DatabaseBriefDto.class))}),
+            @ApiResponse(responseCode = "400",
+                    description = "Malformed payload",
+                    content = {@Content(
+                            mediaType = "application/json",
+                            schema = @Schema(implementation = ApiErrorDto.class))}),
+            @ApiResponse(responseCode = "404",
+                    description = "Database could not be found",
+                    content = {@Content(
+                            mediaType = "application/json",
+                            schema = @Schema(implementation = ApiErrorDto.class))}),
+            @ApiResponse(responseCode = "502",
+                    description = "Connection to search service failed",
+                    content = {@Content(
+                            mediaType = "application/json",
+                            schema = @Schema(implementation = ApiErrorDto.class))}),
+            @ApiResponse(responseCode = "503",
+                    description = "Failed to save in search service",
+                    content = {@Content(
+                            mediaType = "application/json",
+                            schema = @Schema(implementation = ApiErrorDto.class))})
+    })
+    public ResponseEntity<DatabaseBriefDto> modifyDashboard(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                            @Valid @RequestBody DatabaseModifyDashboardDto data)
+            throws DatabaseNotFoundException, SearchServiceException, SearchServiceConnectionException {
+        log.debug("endpoint modify database dashboard uid, databaseId={}, data.uid={}", databaseId, data.getUid());
+        final Database database = databaseService.findById(databaseId);
+        return ResponseEntity.accepted()
+                .body(metadataMapper.databaseDtoToDatabaseBriefDto(metadataMapper.databaseToDatabaseDto(
+                        databaseService.modifyDashboard(database, data.getUid()))));
+    }
+
     @GetMapping("/{databaseId}/image")
     @Transactional
     @Observed(name = "dbrepo_database_image_view")
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
index b3d95d3e5c2453e5b0676162e229a262177fc5d5..d2994ec1a6108f773f5d2dab79a942e4869c3cd7 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
@@ -145,6 +145,19 @@ public interface DatabaseService {
     Database modifyImage(Database database, byte[] image) throws DatabaseNotFoundException, SearchServiceException,
             SearchServiceConnectionException;
 
+    /**
+     * Modify dashboard uid of database with given id.
+     *
+     * @param database The database.
+     * @param uid    The dashboard uid.
+     * @return The database, if successful.
+     * @throws DatabaseNotFoundException         The created database was not found in the metadata database.
+     * @throws SearchServiceException            The search service responded with an unexpected error code.
+     * @throws SearchServiceConnectionException  The connection with the search service could not be established.
+     */
+    Database modifyDashboard(Database database, String uid) throws DatabaseNotFoundException, SearchServiceException,
+            SearchServiceConnectionException;
+
     /**
      * Updates the table metadata of a given database.
      *
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
index adfb527ac99fc4886c82601a5ba5758aabe34f26..7bbd6a1c30785ad4708f3a235e5a83d276565022 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
@@ -205,6 +205,19 @@ public class DatabaseServiceImpl implements DatabaseService {
         return database;
     }
 
+    @Override
+    @Transactional
+    public Database modifyDashboard(Database database, String uid) throws DatabaseNotFoundException,
+            SearchServiceException, SearchServiceConnectionException {
+        /* update in metadata database */
+        database.setDashboardUid(uid);
+        database = databaseRepository.save(database);
+        /* save in search service */
+        searchServiceGateway.update(database);
+        log.info("Updated database dashboard uid of database with id {} & search database", database.getId());
+        return database;
+    }
+
     @Override
     @Transactional(rollbackFor = {Exception.class})
     public Database updateTableMetadata(Database database) throws DatabaseNotFoundException, DataServiceException,
diff --git a/dbrepo-search-service/Pipfile.lock b/dbrepo-search-service/Pipfile.lock
index 5c78ef1690826481e5e392875b6d6dbaf5b70129..675fad11d790a12aee782833ceb07cc5103271bb 100644
--- a/dbrepo-search-service/Pipfile.lock
+++ b/dbrepo-search-service/Pipfile.lock
@@ -373,7 +373,7 @@
         },
         "dbrepo": {
             "hashes": [
-                "sha256:5f541bb5f944276d381e9c4509ffac1036bc7488848d8aaee1aef9184766832b"
+                "sha256:aede7d87b1f87bad3a6825117ef700727b6486f22f108f20d3e34da7dbc283c5"
             ],
             "path": "./lib/dbrepo-1.8.0.tar.gz"
         },
@@ -637,11 +637,11 @@
         },
         "iniconfig": {
             "hashes": [
-                "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3",
-                "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"
+                "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7",
+                "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"
             ],
-            "markers": "python_version >= '3.7'",
-            "version": "==2.0.0"
+            "markers": "python_version >= '3.8'",
+            "version": "==2.1.0"
         },
         "itsdangerous": {
             "hashes": [
@@ -1908,73 +1908,73 @@
         },
         "coverage": {
             "hashes": [
-                "sha256:056d3017ed67e7ddf266e6f57378ece543755a4c9231e997789ab3bd11392c94",
-                "sha256:0ce8cf59e09d31a4915ff4c3b94c6514af4c84b22c4cc8ad7c3c546a86150a92",
-                "sha256:104bf640f408f4e115b85110047c7f27377e1a8b7ba86f7db4fa47aa49dc9a8e",
-                "sha256:1393e5aa9441dafb0162c36c8506c648b89aea9565b31f6bfa351e66c11bcd82",
-                "sha256:1586ad158523f4133499a4f322b230e2cfef9cc724820dbd58595a5a236186f4",
-                "sha256:180e3fc68ee4dc5af8b33b6ca4e3bb8aa1abe25eedcb958ba5cff7123071af68",
-                "sha256:1b336d06af14f8da5b1f391e8dec03634daf54dfcb4d1c4fb6d04c09d83cef90",
-                "sha256:1c8fbce80b2b8bf135d105aa8f5b36eae0c57d702a1cc3ebdea2a6f03f6cdde5",
-                "sha256:2d673e3add00048215c2cc507f1228a7523fd8bf34f279ac98334c9b07bd2656",
-                "sha256:316f29cc3392fa3912493ee4c83afa4a0e2db04ff69600711f8c03997c39baaa",
-                "sha256:33c1394d8407e2771547583b66a85d07ed441ff8fae5a4adb4237ad39ece60db",
-                "sha256:37cbc7b0d93dfd133e33c7ec01123fbb90401dce174c3b6661d8d36fb1e30608",
-                "sha256:39abcacd1ed54e2c33c54bdc488b310e8ef6705833f7148b6eb9a547199d375d",
-                "sha256:3ab7090f04b12dc6469882ce81244572779d3a4b67eea1c96fb9ecc8c607ef39",
-                "sha256:3b0e6e54591ae0d7427def8a4d40fca99df6b899d10354bab73cd5609807261c",
-                "sha256:416e2a8845eaff288f97eaf76ab40367deafb9073ffc47bf2a583f26b05e5265",
-                "sha256:4545485fef7a8a2d8f30e6f79ce719eb154aab7e44217eb444c1d38239af2072",
-                "sha256:4c124025430249118d018dcedc8b7426f39373527c845093132196f2a483b6dd",
-                "sha256:4fbb7a0c3c21908520149d7751cf5b74eb9b38b54d62997b1e9b3ac19a8ee2fe",
-                "sha256:52fc89602cde411a4196c8c6894afb384f2125f34c031774f82a4f2608c59d7d",
-                "sha256:55143aa13c49491f5606f05b49ed88663446dce3a4d3c5d77baa4e36a16d3573",
-                "sha256:57f3bd0d29bf2bd9325c0ff9cc532a175110c4bf8f412c05b2405fd35745266d",
-                "sha256:5b2f144444879363ea8834cd7b6869d79ac796cb8f864b0cfdde50296cd95816",
-                "sha256:5efdeff5f353ed3352c04e6b318ab05c6ce9249c25ed3c2090c6e9cadda1e3b2",
-                "sha256:60e6347d1ed882b1159ffea172cb8466ee46c665af4ca397edbf10ff53e9ffaf",
-                "sha256:693d921621a0c8043bfdc61f7d4df5ea6d22165fe8b807cac21eb80dd94e4bbd",
-                "sha256:708f0a1105ef2b11c79ed54ed31f17e6325ac936501fc373f24be3e6a578146a",
-                "sha256:70f0925c4e2bfc965369f417e7cc72538fd1ba91639cf1e4ef4b1a6b50439b3b",
-                "sha256:7789e700f33f2b133adae582c9f437523cd5db8de845774988a58c360fc88253",
-                "sha256:7b6c96d69928a3a6767fab8dc1ce8a02cf0156836ccb1e820c7f45a423570d98",
-                "sha256:7d2a65876274acf544703e943c010b60bd79404e3623a1e5d52b64a6e2728de5",
-                "sha256:7f18d47641282664276977c604b5a261e51fefc2980f5271d547d706b06a837f",
-                "sha256:89078312f06237417adda7c021c33f80f7a6d2db8572a5f6c330d89b080061ce",
-                "sha256:8c938c6ae59be67ac19a7204e079efc94b38222cd7d0269f96e45e18cddeaa59",
-                "sha256:8e336b56301774ace6be0017ff85c3566c556d938359b61b840796a0202f805c",
-                "sha256:a0a207c87a9f743c8072d059b4711f8d13c456eb42dac778a7d2e5d4f3c253a7",
-                "sha256:a2454b12a3f12cc4698f3508912e6225ec63682e2ca5a96f80a2b93cef9e63f3",
-                "sha256:a538a23119d1e2e2ce077e902d02ea3d8e0641786ef6e0faf11ce82324743944",
-                "sha256:aa4dff57fc21a575672176d5ab0ef15a927199e775c5e8a3d75162ab2b0c7705",
-                "sha256:ad0edaa97cb983d9f2ff48cadddc3e1fb09f24aa558abeb4dc9a0dbacd12cbb4",
-                "sha256:ae8006772c6b0fa53c33747913473e064985dac4d65f77fd2fdc6474e7cd54e4",
-                "sha256:b0fac2088ec4aaeb5468b814bd3ff5e5978364bfbce5e567c44c9e2854469f6c",
-                "sha256:b3e212a894d8ae07fde2ca8b43d666a6d49bbbddb10da0f6a74ca7bd31f20054",
-                "sha256:b54a1ee4c6f1905a436cbaa04b26626d27925a41cbc3a337e2d3ff7038187f07",
-                "sha256:b667b91f4f714b17af2a18e220015c941d1cf8b07c17f2160033dbe1e64149f0",
-                "sha256:b8c36093aca722db73633cf2359026ed7782a239eb1c6db2abcff876012dc4cf",
-                "sha256:bb356e7ae7c2da13f404bf8f75be90f743c6df8d4607022e759f5d7d89fe83f8",
-                "sha256:bce730d484038e97f27ea2dbe5d392ec5c2261f28c319a3bb266f6b213650135",
-                "sha256:c075d167a6ec99b798c1fdf6e391a1d5a2d054caffe9593ba0f97e3df2c04f0e",
-                "sha256:c4e09534037933bf6eb31d804e72c52ec23219b32c1730f9152feabbd7499463",
-                "sha256:c5f8a5364fc37b2f172c26a038bc7ec4885f429de4a05fc10fdcb53fb5834c5c",
-                "sha256:cb203c0afffaf1a8f5b9659a013f8f16a1b2cad3a80a8733ceedc968c0cf4c57",
-                "sha256:cc41374d2f27d81d6558f8a24e5c114580ffefc197fd43eabd7058182f743322",
-                "sha256:cd879d4646055a573775a1cec863d00c9ff8c55860f8b17f6d8eee9140c06166",
-                "sha256:d013c07061751ae81861cae6ec3a4fe04e84781b11fd4b6b4201590234b25c7b",
-                "sha256:d8c7524779003d59948c51b4fcbf1ca4e27c26a7d75984f63488f3625c328b9b",
-                "sha256:d9710521f07f526de30ccdead67e6b236fe996d214e1a7fba8b36e2ba2cd8261",
-                "sha256:e1ffde1d6bc2a92f9c9207d1ad808550873748ac2d4d923c815b866baa343b3f",
-                "sha256:e7f559c36d5cdc448ee13e7e56ed7b6b5d44a40a511d584d388a0f5d940977ba",
-                "sha256:f2a1e18a85bd066c7c556d85277a7adf4651f259b2579113844835ba1a74aafd",
-                "sha256:f32b165bf6dfea0846a9c9c38b7e1d68f313956d60a15cde5d1709fddcaf3bee",
-                "sha256:f5a2f71d6a91238e7628f23538c26aa464d390cbdedf12ee2a7a0fb92a24482a",
-                "sha256:f81fe93dc1b8e5673f33443c0786c14b77e36f1025973b85e07c70353e46882b"
+                "sha256:02fad4f8faa4153db76f9246bc95c1d99f054f4e0a884175bff9155cf4f856cb",
+                "sha256:092b134129a8bb940c08b2d9ceb4459af5fb3faea77888af63182e17d89e1cf1",
+                "sha256:0ce92c5a9d7007d838456f4b77ea159cb628187a137e1895331e530973dcf862",
+                "sha256:0dab4ef76d7b14f432057fdb7a0477e8bffca0ad39ace308be6e74864e632271",
+                "sha256:1165490be0069e34e4f99d08e9c5209c463de11b471709dfae31e2a98cbd49fd",
+                "sha256:11dd6f52c2a7ce8bf0a5f3b6e4a8eb60e157ffedc3c4b4314a41c1dfbd26ce58",
+                "sha256:15d54ecef1582b1d3ec6049b20d3c1a07d5e7f85335d8a3b617c9960b4f807e0",
+                "sha256:171e9977c6a5d2b2be9efc7df1126fd525ce7cad0eb9904fe692da007ba90d81",
+                "sha256:177d837339883c541f8524683e227adcaea581eca6bb33823a2a1fdae4c988e1",
+                "sha256:18f544356bceef17cc55fcf859e5664f06946c1b68efcea6acdc50f8f6a6e776",
+                "sha256:199a1272e642266b90c9f40dec7fd3d307b51bf639fa0d15980dc0b3246c1393",
+                "sha256:1e6f867379fd033a0eeabb1be0cffa2bd660582b8b0c9478895c509d875a9d9e",
+                "sha256:2444fbe1ba1889e0b29eb4d11931afa88f92dc507b7248f45be372775b3cef4f",
+                "sha256:25fe40967717bad0ce628a0223f08a10d54c9d739e88c9cbb0f77b5959367542",
+                "sha256:264ff2bcce27a7f455b64ac0dfe097680b65d9a1a293ef902675fa8158d20b24",
+                "sha256:2a79c4a09765d18311c35975ad2eb1ac613c0401afdd9cb1ca4110aeb5dd3c4c",
+                "sha256:2c492401bdb3a85824669d6a03f57b3dfadef0941b8541f035f83bbfc39d4282",
+                "sha256:315ff74b585110ac3b7ab631e89e769d294f303c6d21302a816b3554ed4c81af",
+                "sha256:34a3bf6b92e6621fc4dcdaab353e173ccb0ca9e4bfbcf7e49a0134c86c9cd303",
+                "sha256:37351dc8123c154fa05b7579fdb126b9f8b1cf42fd6f79ddf19121b7bdd4aa04",
+                "sha256:385618003e3d608001676bb35dc67ae3ad44c75c0395d8de5780af7bb35be6b2",
+                "sha256:392cc8fd2b1b010ca36840735e2a526fcbd76795a5d44006065e79868cc76ccf",
+                "sha256:3d03287eb03186256999539d98818c425c33546ab4901028c8fa933b62c35c3a",
+                "sha256:44683f2556a56c9a6e673b583763096b8efbd2df022b02995609cf8e64fc8ae0",
+                "sha256:44af11c00fd3b19b8809487630f8a0039130d32363239dfd15238e6d37e41a48",
+                "sha256:452735fafe8ff5918236d5fe1feac322b359e57692269c75151f9b4ee4b7e1bc",
+                "sha256:4c181ceba2e6808ede1e964f7bdc77bd8c7eb62f202c63a48cc541e5ffffccb6",
+                "sha256:4dd532dac197d68c478480edde74fd4476c6823355987fd31d01ad9aa1e5fb59",
+                "sha256:520af84febb6bb54453e7fbb730afa58c7178fd018c398a8fcd8e269a79bf96d",
+                "sha256:553ba93f8e3c70e1b0031e4dfea36aba4e2b51fe5770db35e99af8dc5c5a9dfe",
+                "sha256:5b7b02e50d54be6114cc4f6a3222fec83164f7c42772ba03b520138859b5fde1",
+                "sha256:63306486fcb5a827449464f6211d2991f01dfa2965976018c9bab9d5e45a35c8",
+                "sha256:75c82b27c56478d5e1391f2e7b2e7f588d093157fa40d53fd9453a471b1191f2",
+                "sha256:7ba5ff236c87a7b7aa1441a216caf44baee14cbfbd2256d306f926d16b026578",
+                "sha256:7e688010581dbac9cab72800e9076e16f7cccd0d89af5785b70daa11174e94de",
+                "sha256:80b5b207a8b08c6a934b214e364cab2fa82663d4af18981a6c0a9e95f8df7602",
+                "sha256:822fa99dd1ac686061e1219b67868e25d9757989cf2259f735a4802497d6da31",
+                "sha256:881cae0f9cbd928c9c001487bb3dcbfd0b0af3ef53ae92180878591053be0cb3",
+                "sha256:88d96127ae01ff571d465d4b0be25c123789cef88ba0879194d673fdea52f54e",
+                "sha256:8b1c65a739447c5ddce5b96c0a388fd82e4bbdff7251396a70182b1d83631019",
+                "sha256:8fed429c26b99641dc1f3a79179860122b22745dd9af36f29b141e178925070a",
+                "sha256:9bb47cc9f07a59a451361a850cb06d20633e77a9118d05fd0f77b1864439461b",
+                "sha256:a6b6b3bd121ee2ec4bd35039319f3423d0be282b9752a5ae9f18724bc93ebe7c",
+                "sha256:ae13ed5bf5542d7d4a0a42ff5160e07e84adc44eda65ddaa635c484ff8e55917",
+                "sha256:af94fb80e4f159f4d93fb411800448ad87b6039b0500849a403b73a0d36bb5ae",
+                "sha256:b4c144c129343416a49378e05c9451c34aae5ccf00221e4fa4f487db0816ee2f",
+                "sha256:b52edb940d087e2a96e73c1523284a2e94a4e66fa2ea1e2e64dddc67173bad94",
+                "sha256:b559adc22486937786731dac69e57296cb9aede7e2687dfc0d2696dbd3b1eb6b",
+                "sha256:b838a91e84e1773c3436f6cc6996e000ed3ca5721799e7789be18830fad009a2",
+                "sha256:ba8480ebe401c2f094d10a8c4209b800a9b77215b6c796d16b6ecdf665048950",
+                "sha256:bc96441c9d9ca12a790b5ae17d2fa6654da4b3962ea15e0eabb1b1caed094777",
+                "sha256:c90e9141e9221dd6fbc16a2727a5703c19443a8d9bf7d634c792fa0287cee1ab",
+                "sha256:d2e73e2ac468536197e6b3ab79bc4a5c9da0f078cd78cfcc7fe27cf5d1195ef0",
+                "sha256:d3154b369141c3169b8133973ac00f63fcf8d6dbcc297d788d36afbb7811e511",
+                "sha256:d66ff48ab3bb6f762a153e29c0fc1eb5a62a260217bc64470d7ba602f5886d20",
+                "sha256:d6874929d624d3a670f676efafbbc747f519a6121b581dd41d012109e70a5ebd",
+                "sha256:e33426a5e1dc7743dd54dfd11d3a6c02c5d127abfaa2edd80a6e352b58347d1a",
+                "sha256:e52eb31ae3afacdacfe50705a15b75ded67935770c460d88c215a9c0c40d0e9c",
+                "sha256:eae79f8e3501133aa0e220bbc29573910d096795882a70e6f6e6637b09522133",
+                "sha256:eebd927b86761a7068a06d3699fd6c20129becf15bb44282db085921ea0f1585",
+                "sha256:eff187177d8016ff6addf789dcc421c3db0d014e4946c1cc3fbf697f7852459d",
+                "sha256:f5f99a93cecf799738e211f9746dc83749b5693538fbfac279a61682ba309387",
+                "sha256:fbba59022e7c20124d2f520842b75904c7b9f16c854233fa46575c69949fb5b9"
             ],
             "index": "pypi",
             "markers": "python_version >= '3.9'",
-            "version": "==7.7.0"
+            "version": "==7.7.1"
         },
         "idna": {
             "hashes": [
@@ -1986,11 +1986,11 @@
         },
         "iniconfig": {
             "hashes": [
-                "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3",
-                "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"
+                "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7",
+                "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"
             ],
-            "markers": "python_version >= '3.7'",
-            "version": "==2.0.0"
+            "markers": "python_version >= '3.8'",
+            "version": "==2.1.0"
         },
         "packaging": {
             "hashes": [
diff --git a/dbrepo-search-service/init/Pipfile.lock b/dbrepo-search-service/init/Pipfile.lock
index 9eb1867e3dfd8b62c563c10396f488f3019c9128..93fe3e22ae752990b14accae79251cd4f305d7fe 100644
--- a/dbrepo-search-service/init/Pipfile.lock
+++ b/dbrepo-search-service/init/Pipfile.lock
@@ -259,7 +259,7 @@
         },
         "dbrepo": {
             "hashes": [
-                "sha256:5f541bb5f944276d381e9c4509ffac1036bc7488848d8aaee1aef9184766832b"
+                "sha256:aede7d87b1f87bad3a6825117ef700727b6486f22f108f20d3e34da7dbc283c5"
             ],
             "path": "./lib/dbrepo-1.8.0.tar.gz"
         },
@@ -394,11 +394,11 @@
         },
         "iniconfig": {
             "hashes": [
-                "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3",
-                "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"
+                "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7",
+                "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"
             ],
-            "markers": "python_version >= '3.7'",
-            "version": "==2.0.0"
+            "markers": "python_version >= '3.8'",
+            "version": "==2.1.0"
         },
         "itsdangerous": {
             "hashes": [
@@ -1426,73 +1426,73 @@
         },
         "coverage": {
             "hashes": [
-                "sha256:056d3017ed67e7ddf266e6f57378ece543755a4c9231e997789ab3bd11392c94",
-                "sha256:0ce8cf59e09d31a4915ff4c3b94c6514af4c84b22c4cc8ad7c3c546a86150a92",
-                "sha256:104bf640f408f4e115b85110047c7f27377e1a8b7ba86f7db4fa47aa49dc9a8e",
-                "sha256:1393e5aa9441dafb0162c36c8506c648b89aea9565b31f6bfa351e66c11bcd82",
-                "sha256:1586ad158523f4133499a4f322b230e2cfef9cc724820dbd58595a5a236186f4",
-                "sha256:180e3fc68ee4dc5af8b33b6ca4e3bb8aa1abe25eedcb958ba5cff7123071af68",
-                "sha256:1b336d06af14f8da5b1f391e8dec03634daf54dfcb4d1c4fb6d04c09d83cef90",
-                "sha256:1c8fbce80b2b8bf135d105aa8f5b36eae0c57d702a1cc3ebdea2a6f03f6cdde5",
-                "sha256:2d673e3add00048215c2cc507f1228a7523fd8bf34f279ac98334c9b07bd2656",
-                "sha256:316f29cc3392fa3912493ee4c83afa4a0e2db04ff69600711f8c03997c39baaa",
-                "sha256:33c1394d8407e2771547583b66a85d07ed441ff8fae5a4adb4237ad39ece60db",
-                "sha256:37cbc7b0d93dfd133e33c7ec01123fbb90401dce174c3b6661d8d36fb1e30608",
-                "sha256:39abcacd1ed54e2c33c54bdc488b310e8ef6705833f7148b6eb9a547199d375d",
-                "sha256:3ab7090f04b12dc6469882ce81244572779d3a4b67eea1c96fb9ecc8c607ef39",
-                "sha256:3b0e6e54591ae0d7427def8a4d40fca99df6b899d10354bab73cd5609807261c",
-                "sha256:416e2a8845eaff288f97eaf76ab40367deafb9073ffc47bf2a583f26b05e5265",
-                "sha256:4545485fef7a8a2d8f30e6f79ce719eb154aab7e44217eb444c1d38239af2072",
-                "sha256:4c124025430249118d018dcedc8b7426f39373527c845093132196f2a483b6dd",
-                "sha256:4fbb7a0c3c21908520149d7751cf5b74eb9b38b54d62997b1e9b3ac19a8ee2fe",
-                "sha256:52fc89602cde411a4196c8c6894afb384f2125f34c031774f82a4f2608c59d7d",
-                "sha256:55143aa13c49491f5606f05b49ed88663446dce3a4d3c5d77baa4e36a16d3573",
-                "sha256:57f3bd0d29bf2bd9325c0ff9cc532a175110c4bf8f412c05b2405fd35745266d",
-                "sha256:5b2f144444879363ea8834cd7b6869d79ac796cb8f864b0cfdde50296cd95816",
-                "sha256:5efdeff5f353ed3352c04e6b318ab05c6ce9249c25ed3c2090c6e9cadda1e3b2",
-                "sha256:60e6347d1ed882b1159ffea172cb8466ee46c665af4ca397edbf10ff53e9ffaf",
-                "sha256:693d921621a0c8043bfdc61f7d4df5ea6d22165fe8b807cac21eb80dd94e4bbd",
-                "sha256:708f0a1105ef2b11c79ed54ed31f17e6325ac936501fc373f24be3e6a578146a",
-                "sha256:70f0925c4e2bfc965369f417e7cc72538fd1ba91639cf1e4ef4b1a6b50439b3b",
-                "sha256:7789e700f33f2b133adae582c9f437523cd5db8de845774988a58c360fc88253",
-                "sha256:7b6c96d69928a3a6767fab8dc1ce8a02cf0156836ccb1e820c7f45a423570d98",
-                "sha256:7d2a65876274acf544703e943c010b60bd79404e3623a1e5d52b64a6e2728de5",
-                "sha256:7f18d47641282664276977c604b5a261e51fefc2980f5271d547d706b06a837f",
-                "sha256:89078312f06237417adda7c021c33f80f7a6d2db8572a5f6c330d89b080061ce",
-                "sha256:8c938c6ae59be67ac19a7204e079efc94b38222cd7d0269f96e45e18cddeaa59",
-                "sha256:8e336b56301774ace6be0017ff85c3566c556d938359b61b840796a0202f805c",
-                "sha256:a0a207c87a9f743c8072d059b4711f8d13c456eb42dac778a7d2e5d4f3c253a7",
-                "sha256:a2454b12a3f12cc4698f3508912e6225ec63682e2ca5a96f80a2b93cef9e63f3",
-                "sha256:a538a23119d1e2e2ce077e902d02ea3d8e0641786ef6e0faf11ce82324743944",
-                "sha256:aa4dff57fc21a575672176d5ab0ef15a927199e775c5e8a3d75162ab2b0c7705",
-                "sha256:ad0edaa97cb983d9f2ff48cadddc3e1fb09f24aa558abeb4dc9a0dbacd12cbb4",
-                "sha256:ae8006772c6b0fa53c33747913473e064985dac4d65f77fd2fdc6474e7cd54e4",
-                "sha256:b0fac2088ec4aaeb5468b814bd3ff5e5978364bfbce5e567c44c9e2854469f6c",
-                "sha256:b3e212a894d8ae07fde2ca8b43d666a6d49bbbddb10da0f6a74ca7bd31f20054",
-                "sha256:b54a1ee4c6f1905a436cbaa04b26626d27925a41cbc3a337e2d3ff7038187f07",
-                "sha256:b667b91f4f714b17af2a18e220015c941d1cf8b07c17f2160033dbe1e64149f0",
-                "sha256:b8c36093aca722db73633cf2359026ed7782a239eb1c6db2abcff876012dc4cf",
-                "sha256:bb356e7ae7c2da13f404bf8f75be90f743c6df8d4607022e759f5d7d89fe83f8",
-                "sha256:bce730d484038e97f27ea2dbe5d392ec5c2261f28c319a3bb266f6b213650135",
-                "sha256:c075d167a6ec99b798c1fdf6e391a1d5a2d054caffe9593ba0f97e3df2c04f0e",
-                "sha256:c4e09534037933bf6eb31d804e72c52ec23219b32c1730f9152feabbd7499463",
-                "sha256:c5f8a5364fc37b2f172c26a038bc7ec4885f429de4a05fc10fdcb53fb5834c5c",
-                "sha256:cb203c0afffaf1a8f5b9659a013f8f16a1b2cad3a80a8733ceedc968c0cf4c57",
-                "sha256:cc41374d2f27d81d6558f8a24e5c114580ffefc197fd43eabd7058182f743322",
-                "sha256:cd879d4646055a573775a1cec863d00c9ff8c55860f8b17f6d8eee9140c06166",
-                "sha256:d013c07061751ae81861cae6ec3a4fe04e84781b11fd4b6b4201590234b25c7b",
-                "sha256:d8c7524779003d59948c51b4fcbf1ca4e27c26a7d75984f63488f3625c328b9b",
-                "sha256:d9710521f07f526de30ccdead67e6b236fe996d214e1a7fba8b36e2ba2cd8261",
-                "sha256:e1ffde1d6bc2a92f9c9207d1ad808550873748ac2d4d923c815b866baa343b3f",
-                "sha256:e7f559c36d5cdc448ee13e7e56ed7b6b5d44a40a511d584d388a0f5d940977ba",
-                "sha256:f2a1e18a85bd066c7c556d85277a7adf4651f259b2579113844835ba1a74aafd",
-                "sha256:f32b165bf6dfea0846a9c9c38b7e1d68f313956d60a15cde5d1709fddcaf3bee",
-                "sha256:f5a2f71d6a91238e7628f23538c26aa464d390cbdedf12ee2a7a0fb92a24482a",
-                "sha256:f81fe93dc1b8e5673f33443c0786c14b77e36f1025973b85e07c70353e46882b"
+                "sha256:02fad4f8faa4153db76f9246bc95c1d99f054f4e0a884175bff9155cf4f856cb",
+                "sha256:092b134129a8bb940c08b2d9ceb4459af5fb3faea77888af63182e17d89e1cf1",
+                "sha256:0ce92c5a9d7007d838456f4b77ea159cb628187a137e1895331e530973dcf862",
+                "sha256:0dab4ef76d7b14f432057fdb7a0477e8bffca0ad39ace308be6e74864e632271",
+                "sha256:1165490be0069e34e4f99d08e9c5209c463de11b471709dfae31e2a98cbd49fd",
+                "sha256:11dd6f52c2a7ce8bf0a5f3b6e4a8eb60e157ffedc3c4b4314a41c1dfbd26ce58",
+                "sha256:15d54ecef1582b1d3ec6049b20d3c1a07d5e7f85335d8a3b617c9960b4f807e0",
+                "sha256:171e9977c6a5d2b2be9efc7df1126fd525ce7cad0eb9904fe692da007ba90d81",
+                "sha256:177d837339883c541f8524683e227adcaea581eca6bb33823a2a1fdae4c988e1",
+                "sha256:18f544356bceef17cc55fcf859e5664f06946c1b68efcea6acdc50f8f6a6e776",
+                "sha256:199a1272e642266b90c9f40dec7fd3d307b51bf639fa0d15980dc0b3246c1393",
+                "sha256:1e6f867379fd033a0eeabb1be0cffa2bd660582b8b0c9478895c509d875a9d9e",
+                "sha256:2444fbe1ba1889e0b29eb4d11931afa88f92dc507b7248f45be372775b3cef4f",
+                "sha256:25fe40967717bad0ce628a0223f08a10d54c9d739e88c9cbb0f77b5959367542",
+                "sha256:264ff2bcce27a7f455b64ac0dfe097680b65d9a1a293ef902675fa8158d20b24",
+                "sha256:2a79c4a09765d18311c35975ad2eb1ac613c0401afdd9cb1ca4110aeb5dd3c4c",
+                "sha256:2c492401bdb3a85824669d6a03f57b3dfadef0941b8541f035f83bbfc39d4282",
+                "sha256:315ff74b585110ac3b7ab631e89e769d294f303c6d21302a816b3554ed4c81af",
+                "sha256:34a3bf6b92e6621fc4dcdaab353e173ccb0ca9e4bfbcf7e49a0134c86c9cd303",
+                "sha256:37351dc8123c154fa05b7579fdb126b9f8b1cf42fd6f79ddf19121b7bdd4aa04",
+                "sha256:385618003e3d608001676bb35dc67ae3ad44c75c0395d8de5780af7bb35be6b2",
+                "sha256:392cc8fd2b1b010ca36840735e2a526fcbd76795a5d44006065e79868cc76ccf",
+                "sha256:3d03287eb03186256999539d98818c425c33546ab4901028c8fa933b62c35c3a",
+                "sha256:44683f2556a56c9a6e673b583763096b8efbd2df022b02995609cf8e64fc8ae0",
+                "sha256:44af11c00fd3b19b8809487630f8a0039130d32363239dfd15238e6d37e41a48",
+                "sha256:452735fafe8ff5918236d5fe1feac322b359e57692269c75151f9b4ee4b7e1bc",
+                "sha256:4c181ceba2e6808ede1e964f7bdc77bd8c7eb62f202c63a48cc541e5ffffccb6",
+                "sha256:4dd532dac197d68c478480edde74fd4476c6823355987fd31d01ad9aa1e5fb59",
+                "sha256:520af84febb6bb54453e7fbb730afa58c7178fd018c398a8fcd8e269a79bf96d",
+                "sha256:553ba93f8e3c70e1b0031e4dfea36aba4e2b51fe5770db35e99af8dc5c5a9dfe",
+                "sha256:5b7b02e50d54be6114cc4f6a3222fec83164f7c42772ba03b520138859b5fde1",
+                "sha256:63306486fcb5a827449464f6211d2991f01dfa2965976018c9bab9d5e45a35c8",
+                "sha256:75c82b27c56478d5e1391f2e7b2e7f588d093157fa40d53fd9453a471b1191f2",
+                "sha256:7ba5ff236c87a7b7aa1441a216caf44baee14cbfbd2256d306f926d16b026578",
+                "sha256:7e688010581dbac9cab72800e9076e16f7cccd0d89af5785b70daa11174e94de",
+                "sha256:80b5b207a8b08c6a934b214e364cab2fa82663d4af18981a6c0a9e95f8df7602",
+                "sha256:822fa99dd1ac686061e1219b67868e25d9757989cf2259f735a4802497d6da31",
+                "sha256:881cae0f9cbd928c9c001487bb3dcbfd0b0af3ef53ae92180878591053be0cb3",
+                "sha256:88d96127ae01ff571d465d4b0be25c123789cef88ba0879194d673fdea52f54e",
+                "sha256:8b1c65a739447c5ddce5b96c0a388fd82e4bbdff7251396a70182b1d83631019",
+                "sha256:8fed429c26b99641dc1f3a79179860122b22745dd9af36f29b141e178925070a",
+                "sha256:9bb47cc9f07a59a451361a850cb06d20633e77a9118d05fd0f77b1864439461b",
+                "sha256:a6b6b3bd121ee2ec4bd35039319f3423d0be282b9752a5ae9f18724bc93ebe7c",
+                "sha256:ae13ed5bf5542d7d4a0a42ff5160e07e84adc44eda65ddaa635c484ff8e55917",
+                "sha256:af94fb80e4f159f4d93fb411800448ad87b6039b0500849a403b73a0d36bb5ae",
+                "sha256:b4c144c129343416a49378e05c9451c34aae5ccf00221e4fa4f487db0816ee2f",
+                "sha256:b52edb940d087e2a96e73c1523284a2e94a4e66fa2ea1e2e64dddc67173bad94",
+                "sha256:b559adc22486937786731dac69e57296cb9aede7e2687dfc0d2696dbd3b1eb6b",
+                "sha256:b838a91e84e1773c3436f6cc6996e000ed3ca5721799e7789be18830fad009a2",
+                "sha256:ba8480ebe401c2f094d10a8c4209b800a9b77215b6c796d16b6ecdf665048950",
+                "sha256:bc96441c9d9ca12a790b5ae17d2fa6654da4b3962ea15e0eabb1b1caed094777",
+                "sha256:c90e9141e9221dd6fbc16a2727a5703c19443a8d9bf7d634c792fa0287cee1ab",
+                "sha256:d2e73e2ac468536197e6b3ab79bc4a5c9da0f078cd78cfcc7fe27cf5d1195ef0",
+                "sha256:d3154b369141c3169b8133973ac00f63fcf8d6dbcc297d788d36afbb7811e511",
+                "sha256:d66ff48ab3bb6f762a153e29c0fc1eb5a62a260217bc64470d7ba602f5886d20",
+                "sha256:d6874929d624d3a670f676efafbbc747f519a6121b581dd41d012109e70a5ebd",
+                "sha256:e33426a5e1dc7743dd54dfd11d3a6c02c5d127abfaa2edd80a6e352b58347d1a",
+                "sha256:e52eb31ae3afacdacfe50705a15b75ded67935770c460d88c215a9c0c40d0e9c",
+                "sha256:eae79f8e3501133aa0e220bbc29573910d096795882a70e6f6e6637b09522133",
+                "sha256:eebd927b86761a7068a06d3699fd6c20129becf15bb44282db085921ea0f1585",
+                "sha256:eff187177d8016ff6addf789dcc421c3db0d014e4946c1cc3fbf697f7852459d",
+                "sha256:f5f99a93cecf799738e211f9746dc83749b5693538fbfac279a61682ba309387",
+                "sha256:fbba59022e7c20124d2f520842b75904c7b9f16c854233fa46575c69949fb5b9"
             ],
             "index": "pypi",
             "markers": "python_version >= '3.9'",
-            "version": "==7.7.0"
+            "version": "==7.7.1"
         },
         "cryptography": {
             "hashes": [
@@ -1545,11 +1545,11 @@
         },
         "iniconfig": {
             "hashes": [
-                "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3",
-                "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"
+                "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7",
+                "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"
             ],
-            "markers": "python_version >= '3.7'",
-            "version": "==2.0.0"
+            "markers": "python_version >= '3.8'",
+            "version": "==2.1.0"
         },
         "jwt": {
             "hashes": [
diff --git a/dbrepo-search-service/init/lib/dbrepo-1.8.0-py3-none-any.whl b/dbrepo-search-service/init/lib/dbrepo-1.8.0-py3-none-any.whl
index ff893e2fedf83a0b4031cd37d7dfcf84d10f11a1..2293ef0a15f7b6921cddcded1980822232041bfd 100644
Binary files a/dbrepo-search-service/init/lib/dbrepo-1.8.0-py3-none-any.whl and b/dbrepo-search-service/init/lib/dbrepo-1.8.0-py3-none-any.whl differ
diff --git a/dbrepo-search-service/init/lib/dbrepo-1.8.0.tar.gz b/dbrepo-search-service/init/lib/dbrepo-1.8.0.tar.gz
index fac980df3143bd5093314cd92f228861e97a36a8..75b284d102b6c87265ae2fa1ed8b2efb49746d82 100644
Binary files a/dbrepo-search-service/init/lib/dbrepo-1.8.0.tar.gz and b/dbrepo-search-service/init/lib/dbrepo-1.8.0.tar.gz differ
diff --git a/dbrepo-search-service/lib/dbrepo-1.8.0-py3-none-any.whl b/dbrepo-search-service/lib/dbrepo-1.8.0-py3-none-any.whl
index ff893e2fedf83a0b4031cd37d7dfcf84d10f11a1..2293ef0a15f7b6921cddcded1980822232041bfd 100644
Binary files a/dbrepo-search-service/lib/dbrepo-1.8.0-py3-none-any.whl and b/dbrepo-search-service/lib/dbrepo-1.8.0-py3-none-any.whl differ
diff --git a/dbrepo-search-service/lib/dbrepo-1.8.0.tar.gz b/dbrepo-search-service/lib/dbrepo-1.8.0.tar.gz
index fac980df3143bd5093314cd92f228861e97a36a8..75b284d102b6c87265ae2fa1ed8b2efb49746d82 100644
Binary files a/dbrepo-search-service/lib/dbrepo-1.8.0.tar.gz and b/dbrepo-search-service/lib/dbrepo-1.8.0.tar.gz differ
diff --git a/dbrepo-ui/components/database/DatabaseToolbar.vue b/dbrepo-ui/components/database/DatabaseToolbar.vue
index 3b922efa1fb2473f3c2ec8eba29dc150b3953c22..0e69b9a91bd913353f24ea8953223ce908591a70 100644
--- a/dbrepo-ui/components/database/DatabaseToolbar.vue
+++ b/dbrepo-ui/components/database/DatabaseToolbar.vue
@@ -63,15 +63,15 @@
             :text="$t('toolbars.database.info.tab')"
             :to="`/database/${$route.params.database_id}/info`" />
           <v-tab
-            :text="$t('toolbars.database.tables.tab')"
-            :to="`/database/${$route.params.database_id}/table`" />
+            :text="$t('toolbars.database.views.tab')"
+            :to="`/database/${$route.params.database_id}/view`" />
           <v-tab
-            v-if="database.is_public"
+            v-if="database && database.is_public"
             :text="$t('toolbars.database.subsets.tab')"
             :to="`/database/${$route.params.database_id}/subset`" />
           <v-tab
-            :text="$t('toolbars.database.views.tab')"
-            :to="`/database/${$route.params.database_id}/view`" />
+            :text="$t('toolbars.database.tables.tab')"
+            :to="`/database/${$route.params.database_id}/table`" />
           <v-tab
             v-if="isOwner"
             :text="$t('toolbars.database.settings.tab')"
diff --git a/dbrepo-ui/components/identifier/Citation.vue b/dbrepo-ui/components/identifier/Citation.vue
index a52cd87159b23f4cad7d64ae5dd4fe177a489b65..570ab267901e8b09e428c41e985106d82d5ee36a 100644
--- a/dbrepo-ui/components/identifier/Citation.vue
+++ b/dbrepo-ui/components/identifier/Citation.vue
@@ -15,7 +15,6 @@
         :items="styles"
         item-title="title"
         item-value="value"
-        dense
         variant="outlined"
         single-line />
     </v-col>
diff --git a/dbrepo-ui/pages/database/[database_id]/info.vue b/dbrepo-ui/pages/database/[database_id]/info.vue
index e887116a2f104c10eecb95631d75183c8176c875..89583c5f4f450d6462a6f4aaa5343fee3d184b82 100644
--- a/dbrepo-ui/pages/database/[database_id]/info.vue
+++ b/dbrepo-ui/pages/database/[database_id]/info.vue
@@ -367,7 +367,7 @@ export default {
       if (!this.database.is_public && !this.database.is_schema_public) {
         return false
       }
-      return true
+      return this.database.dashboard_uid
     }
   },
   methods: {
diff --git a/docker-compose.yml b/docker-compose.yml
index c784855da2c6dd2ca46f8ade0c6879f53e28586d..34b09a02ea6dce1c9b9d91ce3b8cddbf7c4328f0 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -376,7 +376,7 @@ services:
     volumes:
       - ./dbrepo-gateway-service/dbrepo.conf:/etc/nginx/conf.d/default.conf
     healthcheck:
-      test: service nginx status || exit 1
+      test: lsof -i TCP:80 || exit 1
       interval: 10s
       timeout: 5s
       retries: 12
diff --git a/helm/dbrepo/files/create-event-listener.jar b/helm/dbrepo/files/create-event-listener.jar
index 5c7dd1a04a372fbe8e7fa8bbb449c098bce4a20c..9fa1288598118b348a3341e591558b66152c43b3 100644
Binary files a/helm/dbrepo/files/create-event-listener.jar and b/helm/dbrepo/files/create-event-listener.jar differ
diff --git a/lib/python/dbrepo/RestClient.py b/lib/python/dbrepo/RestClient.py
index 3459543d838cc76ee125f2ad84165caf9bced574..dbf1c7911f9b1e46b88125540c0cd716e00f643f 100644
--- a/lib/python/dbrepo/RestClient.py
+++ b/lib/python/dbrepo/RestClient.py
@@ -1915,11 +1915,42 @@ class RestClient:
         if response.status_code == 400:
             raise MalformedError(f'Failed to update column: {response.text}')
         if response.status_code == 403:
-            raise ForbiddenError(f'Failed to update colum: not allowed')
+            raise ForbiddenError(f'Failed to update column: not allowed')
         if response.status_code == 404:
-            raise NotExistsError(f'Failed to update colum: not found')
+            raise NotExistsError(f'Failed to update column: not found')
         if response.status_code == 502:
-            raise ServiceConnectionError(f'Failed to update colum: failed to establish connection to search service')
+            raise ServiceConnectionError(f'Failed to update column: failed to establish connection to search service')
         if response.status_code == 503:
-            raise ServiceError(f'Failed to update colum: failed to save in search service')
-        raise ResponseCodeError(f'Failed to update colum: response code: {response.status_code} is not 202 (ACCEPTED)')
+            raise ServiceError(f'Failed to update column: failed to save in search service')
+        raise ResponseCodeError(f'Failed to update column: response code: {response.status_code} is not 202 (ACCEPTED)')
+
+    def update_database_dashboard(self, database_id: str, uid: str) -> None:
+        """
+        Update semantic information of a table column by given database id and table id and column id.
+
+        :param database_id: The database id.
+        :param uid: The database uid.
+
+        :raises MalformedError: If the payload is rejected by the service.
+        :raises ForbiddenError: If something went wrong with the authorization.
+        :raises NotExistsError: If the accept header is neither application/json nor application/ld+json.
+        :raises ServiceConnectionError: If something went wrong with connection to the search service.
+        :raises ServiceError: If something went wrong with obtaining the information in the search service.
+        :raises ResponseCodeError: If something went wrong with the retrieval of the identifiers.
+        """
+        url = f'/api/database/{database_id}/dashboard'
+        response = self._wrapper(method="put", url=url, force_auth=True,
+                                 payload=DatabaseModifyDashboard(uid=uid))
+        if response.status_code == 202:
+            return
+        if response.status_code == 400:
+            raise MalformedError(f'Failed to update database dashboard: {response.text}')
+        if response.status_code == 404:
+            raise NotExistsError(f'Failed to update database dashboard: not found')
+        if response.status_code == 502:
+            raise ServiceConnectionError(
+                f'Failed to update database dashboard: failed to establish connection to search service')
+        if response.status_code == 503:
+            raise ServiceError(f'Failed to update database dashboard: failed to save in search service')
+        raise ResponseCodeError(
+            f'Failed to update database dashboard: response code: {response.status_code} is not 202 (ACCEPTED)')
diff --git a/lib/python/dbrepo/api/dto.py b/lib/python/dbrepo/api/dto.py
index 2c3b6a34df51e8934c9baa28458463637c96f99f..00376c3737afa0deeab6257a4c5b976fca3ae865 100644
--- a/lib/python/dbrepo/api/dto.py
+++ b/lib/python/dbrepo/api/dto.py
@@ -502,6 +502,10 @@ class UpdateColumn(BaseModel):
     unit_uri: Optional[str] = None
 
 
+class DatabaseModifyDashboard(BaseModel):
+    uid: str
+
+
 class ModifyVisibility(BaseModel):
     is_public: bool
     is_schema_public: bool