diff --git a/dbrepo-authentication-service/dbrepo-realm.json b/dbrepo-authentication-service/dbrepo-realm.json
index d3cadb4e7168edaff547f13e7437be41155a7a2d..c861fbd662986b4363f6a08dbe48bdc5333592d0 100644
--- a/dbrepo-authentication-service/dbrepo-realm.json
+++ b/dbrepo-authentication-service/dbrepo-realm.json
@@ -5,10 +5,10 @@
   "defaultSignatureAlgorithm" : "RS256",
   "revokeRefreshToken" : false,
   "refreshTokenMaxReuse" : 1,
-  "accessTokenLifespan" : 86400,
+  "accessTokenLifespan" : 900,
   "accessTokenLifespanForImplicitFlow" : 900,
-  "ssoSessionIdleTimeout" : 1800,
-  "ssoSessionMaxLifespan" : 36000,
+  "ssoSessionIdleTimeout" : 864000,
+  "ssoSessionMaxLifespan" : 2592000,
   "ssoSessionIdleTimeoutRememberMe" : 0,
   "ssoSessionMaxLifespanRememberMe" : 0,
   "offlineSessionIdleTimeout" : 2592000,
@@ -1059,7 +1059,7 @@
   "otpPolicyLookAheadWindow" : 1,
   "otpPolicyPeriod" : 30,
   "otpPolicyCodeReusable" : false,
-  "otpSupportedApplications" : [ "totpAppFreeOTPName", "totpAppMicrosoftAuthenticatorName", "totpAppGoogleName" ],
+  "otpSupportedApplications" : [ "totpAppMicrosoftAuthenticatorName", "totpAppGoogleName", "totpAppFreeOTPName" ],
   "webAuthnPolicyRpEntityName" : "keycloak",
   "webAuthnPolicySignatureAlgorithms" : [ "ES256" ],
   "webAuthnPolicyRpId" : "",
@@ -2009,6 +2009,23 @@
       "config" : {
         "allow-default-scopes" : [ "true" ]
       }
+    }, {
+      "id" : "1849e52a-b8c9-44a8-af3d-ee19376a1ed1",
+      "name" : "Trusted Hosts",
+      "providerId" : "trusted-hosts",
+      "subType" : "anonymous",
+      "subComponents" : { },
+      "config" : {
+        "host-sending-registration-request-must-match" : [ "true" ],
+        "client-uris-must-match" : [ "true" ]
+      }
+    }, {
+      "id" : "f565cb47-3bcf-4078-8f94-eb4179c375b8",
+      "name" : "Full Scope Disabled",
+      "providerId" : "scope",
+      "subType" : "anonymous",
+      "subComponents" : { },
+      "config" : { }
     }, {
       "id" : "0efa669d-1017-4b4a-82e1-c2eaf72de2c9",
       "name" : "Allowed Client Scopes",
@@ -2026,60 +2043,25 @@
       "subComponents" : { },
       "config" : { }
     }, {
-      "id" : "3ab11d74-5e76-408a-b85a-26bf8950f979",
+      "id" : "104ec5a9-025b-4c44-8ac0-82d22887ca3e",
       "name" : "Allowed Protocol Mapper Types",
       "providerId" : "allowed-protocol-mappers",
-      "subType" : "anonymous",
-      "subComponents" : { },
-      "config" : {
-        "allowed-protocol-mapper-types" : [ "saml-user-property-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-user-attribute-mapper", "oidc-full-name-mapper", "oidc-usermodel-property-mapper", "saml-role-list-mapper", "oidc-address-mapper", "oidc-usermodel-attribute-mapper" ]
-      }
-    }, {
-      "id" : "1849e52a-b8c9-44a8-af3d-ee19376a1ed1",
-      "name" : "Trusted Hosts",
-      "providerId" : "trusted-hosts",
-      "subType" : "anonymous",
+      "subType" : "authenticated",
       "subComponents" : { },
       "config" : {
-        "host-sending-registration-request-must-match" : [ "true" ],
-        "client-uris-must-match" : [ "true" ]
+        "allowed-protocol-mapper-types" : [ "saml-role-list-mapper", "oidc-address-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-user-attribute-mapper", "saml-user-property-mapper", "oidc-full-name-mapper", "oidc-usermodel-attribute-mapper", "oidc-usermodel-property-mapper" ]
       }
     }, {
-      "id" : "f565cb47-3bcf-4078-8f94-eb4179c375b8",
-      "name" : "Full Scope Disabled",
-      "providerId" : "scope",
-      "subType" : "anonymous",
-      "subComponents" : { },
-      "config" : { }
-    }, {
-      "id" : "104ec5a9-025b-4c44-8ac0-82d22887ca3e",
+      "id" : "3ab11d74-5e76-408a-b85a-26bf8950f979",
       "name" : "Allowed Protocol Mapper Types",
       "providerId" : "allowed-protocol-mappers",
-      "subType" : "authenticated",
+      "subType" : "anonymous",
       "subComponents" : { },
       "config" : {
-        "allowed-protocol-mapper-types" : [ "oidc-full-name-mapper", "oidc-usermodel-attribute-mapper", "oidc-usermodel-property-mapper", "oidc-address-mapper", "saml-user-property-mapper", "saml-user-attribute-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-role-list-mapper" ]
+        "allowed-protocol-mapper-types" : [ "oidc-usermodel-property-mapper", "saml-user-property-mapper", "oidc-full-name-mapper", "oidc-address-mapper", "saml-user-attribute-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-role-list-mapper", "oidc-usermodel-attribute-mapper" ]
       }
     } ],
-    "org.keycloak.userprofile.UserProfileProvider" : [ {
-      "id" : "7970b87f-f28b-4085-8612-43281968f118",
-      "providerId" : "declarative-user-profile",
-      "subComponents" : { },
-      "config" : { }
-    } ],
     "org.keycloak.keys.KeyProvider" : [ {
-      "id" : "2f53ccf3-37b0-4d34-83e7-ed497499ee51",
-      "name" : "rsa-enc-generated",
-      "providerId" : "rsa-enc-generated",
-      "subComponents" : { },
-      "config" : {
-        "privateKey" : [ "MIIEowIBAAKCAQEA3b1tNLfcjFLUw9UShVDNf+ZD8sQqb4YBaIXcSJTX/zDQUPiCp176BBGI3s4VplDArnOW+LumozmKogeoHEnGEIDW8ovgK5uMU9tSA2p0qqGBUMOdR8YATTIfCJe7qGiiuGa3WZy3sQLM70SuRzx02YU8gvUcvl2Js4KyqAziOUX/w3Wa59H9jjGNUXYyqaPWJp73eHzbVYWySzyLG22mVlcUtBx5siL5T2/Xu0p9z4l7/bapwwmOVi1ZrcHjbEAwdGEiSMGI/uWqAF+r1BRpmJLR7HNXcL3eK4/56VYLaiwSejfyYeRFMITEn/UxGYhcXZ5xMUUCG0TxjBhLYpTBuwIDAQABAoIBAA4dwebcxkrH99Poa8+WkiE7JgaS9sahx9OBI2xwJANoIU2TpzGuNLQZ76uLgB+rPWZTD9Xm5a1iJjwOyQ9/937TzPCk91D0tpgcusRikb8jx/6TGB9acL4kBjYUVCCHr3BA2G75MKKGtJ2OMvAbCQSosZj+r2VDwYFEPUkV2jheE5JHSBkwyIRrus3JCwu8gu5fyCg9z8ljcxJxI5HIsi4v8Z21aCw/cLj7h5cMt44wCjQz4rOfYNBEFeHDtlfR1QtWKgjm4ZHHJbKrzf9b2kQXclziceEbSM0tYbROEXKi+s0Zc+z3HEG89vv0vfN400clmzzIAijKY6gg3pPRWdECgYEA+lnWYbSlXDMNYx6RBXm1RnlMUYIm4oy4/9ljgnoGJ6WCn3SjFkgaDtiKfGIG1BSB85r04pAPANgcWHf5tWDnq0ARvBVG0BX2bKd++7B3D4d3CRYKCwm88SslJXv9dfHVhq4+zViFPiUWwT20A72jCuUCvL88y5fh/YBecfdh+jECgYEA4r5RD0NB9dMaeg5/jk/GEHIo4Z9KLc6FrSoOFo2xFkPOy1sgDpDOiNtypuWvniO7k7Ose3DS3hlfTMsKzIW/CgQJ20+Y4cvBWDaOsRxfjj7w3d+jH5OSJdKKSzTrgLKc9ZhlRzVXy0J0hipIA6HG5kdVdLXmh85ITmf1CbJhE6sCgYBjPVeBNbXTHZ2x6/z62aslO5IoQVqetb/kE82hfDOSZcao5Ph9Lam+ttH2ynkAevykj4mBgi+gWwqpey2uW7KaLPSaxShj9kDQA3mP1fzsV/u0y1rB02Nlin/YIxVvOqU1FT9p8SwoXVVu1sHUNck62VtDbN9xqUx5S/ikXrclEQKBgQCoTssOwEcK+Vty9KYcdfy4onTUHZBLdjxl8Iyqkxy7QTQUYRznkvesQPDXEDGO+kk3dyx2KKZt9Hl4IFNww2quPZcvcuMx4DQxjbXXpA8OIIxcta95NepLJwA+mRai3nKCH1A2TlNP7pFeMa5o+8IPly3Ix2lKr4Wepa4PN5i1pwKBgCZ1QP6XAOERl9NznNmU0rXVcvYNP4PIIfQWfvGsldZ4QKkmjjAGiS0/oYqdWs+UDRZyCRChaVjDXO9fk0PEG5OGKAj9nyiYCT/M8xtJ3UeP5ffZZvJ/vnye3QdDIo1e38ZzsWwJHmLYw7fRqY9W5Vxo0Vsy22U3CJY70KTxVdTy" ],
-        "keyUse" : [ "ENC" ],
-        "certificate" : [ "MIICmzCCAYMCBgGG3GWycDANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdvW00t9yMUtTD1RKFUM1/5kPyxCpvhgFohdxIlNf/MNBQ+IKnXvoEEYjezhWmUMCuc5b4u6ajOYqiB6gcScYQgNbyi+Arm4xT21IDanSqoYFQw51HxgBNMh8Il7uoaKK4ZrdZnLexAszvRK5HPHTZhTyC9Ry+XYmzgrKoDOI5Rf/DdZrn0f2OMY1RdjKpo9Ymnvd4fNtVhbJLPIsbbaZWVxS0HHmyIvlPb9e7Sn3PiXv9tqnDCY5WLVmtweNsQDB0YSJIwYj+5aoAX6vUFGmYktHsc1dwvd4rj/npVgtqLBJ6N/Jh5EUwhMSf9TEZiFxdnnExRQIbRPGMGEtilMG7AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAK3kQ1VkQrzvSWvmXmazmNoA1ZiPzRDs1XhGUWxgsxzgPylr3dGBuqQbKvgnLUBQLSqlJHpI4fZflHswu1qrvVZYtekPcGef4WhcKAu2i1RwxrKa6RJQ1tRbrLuVYCzPv5p/DWgltWVn88aoLnqQn0SK/0PB/o4a4Cm7Kq2ZzCr1dACBr06LvOHsc7249OySmbG4HH+pLK6jVURhZ9VaObqAHe2FJBVVoIzURbdiRRURqumrIvbnpeaU1aFyg6ED5wTnXvmMPmVPt9F79mcB33bASO5wyu00X8t1hyN2Show2l2vxLACGUzVkTQt15s7uDLKE7qLmKSR3EuSGXWv3wA=" ],
-        "priority" : [ "100" ],
-        "algorithm" : [ "RSA-OAEP" ]
-      }
-    }, {
       "id" : "28ca0b6d-b2e2-4785-b04b-2391e6344e30",
       "name" : "aes-generated",
       "providerId" : "aes-generated",
@@ -2100,6 +2082,18 @@
         "priority" : [ "100" ],
         "algorithm" : [ "HS256" ]
       }
+    }, {
+      "id" : "2f53ccf3-37b0-4d34-83e7-ed497499ee51",
+      "name" : "rsa-enc-generated",
+      "providerId" : "rsa-enc-generated",
+      "subComponents" : { },
+      "config" : {
+        "privateKey" : [ "MIIEowIBAAKCAQEA3b1tNLfcjFLUw9UShVDNf+ZD8sQqb4YBaIXcSJTX/zDQUPiCp176BBGI3s4VplDArnOW+LumozmKogeoHEnGEIDW8ovgK5uMU9tSA2p0qqGBUMOdR8YATTIfCJe7qGiiuGa3WZy3sQLM70SuRzx02YU8gvUcvl2Js4KyqAziOUX/w3Wa59H9jjGNUXYyqaPWJp73eHzbVYWySzyLG22mVlcUtBx5siL5T2/Xu0p9z4l7/bapwwmOVi1ZrcHjbEAwdGEiSMGI/uWqAF+r1BRpmJLR7HNXcL3eK4/56VYLaiwSejfyYeRFMITEn/UxGYhcXZ5xMUUCG0TxjBhLYpTBuwIDAQABAoIBAA4dwebcxkrH99Poa8+WkiE7JgaS9sahx9OBI2xwJANoIU2TpzGuNLQZ76uLgB+rPWZTD9Xm5a1iJjwOyQ9/937TzPCk91D0tpgcusRikb8jx/6TGB9acL4kBjYUVCCHr3BA2G75MKKGtJ2OMvAbCQSosZj+r2VDwYFEPUkV2jheE5JHSBkwyIRrus3JCwu8gu5fyCg9z8ljcxJxI5HIsi4v8Z21aCw/cLj7h5cMt44wCjQz4rOfYNBEFeHDtlfR1QtWKgjm4ZHHJbKrzf9b2kQXclziceEbSM0tYbROEXKi+s0Zc+z3HEG89vv0vfN400clmzzIAijKY6gg3pPRWdECgYEA+lnWYbSlXDMNYx6RBXm1RnlMUYIm4oy4/9ljgnoGJ6WCn3SjFkgaDtiKfGIG1BSB85r04pAPANgcWHf5tWDnq0ARvBVG0BX2bKd++7B3D4d3CRYKCwm88SslJXv9dfHVhq4+zViFPiUWwT20A72jCuUCvL88y5fh/YBecfdh+jECgYEA4r5RD0NB9dMaeg5/jk/GEHIo4Z9KLc6FrSoOFo2xFkPOy1sgDpDOiNtypuWvniO7k7Ose3DS3hlfTMsKzIW/CgQJ20+Y4cvBWDaOsRxfjj7w3d+jH5OSJdKKSzTrgLKc9ZhlRzVXy0J0hipIA6HG5kdVdLXmh85ITmf1CbJhE6sCgYBjPVeBNbXTHZ2x6/z62aslO5IoQVqetb/kE82hfDOSZcao5Ph9Lam+ttH2ynkAevykj4mBgi+gWwqpey2uW7KaLPSaxShj9kDQA3mP1fzsV/u0y1rB02Nlin/YIxVvOqU1FT9p8SwoXVVu1sHUNck62VtDbN9xqUx5S/ikXrclEQKBgQCoTssOwEcK+Vty9KYcdfy4onTUHZBLdjxl8Iyqkxy7QTQUYRznkvesQPDXEDGO+kk3dyx2KKZt9Hl4IFNww2quPZcvcuMx4DQxjbXXpA8OIIxcta95NepLJwA+mRai3nKCH1A2TlNP7pFeMa5o+8IPly3Ix2lKr4Wepa4PN5i1pwKBgCZ1QP6XAOERl9NznNmU0rXVcvYNP4PIIfQWfvGsldZ4QKkmjjAGiS0/oYqdWs+UDRZyCRChaVjDXO9fk0PEG5OGKAj9nyiYCT/M8xtJ3UeP5ffZZvJ/vnye3QdDIo1e38ZzsWwJHmLYw7fRqY9W5Vxo0Vsy22U3CJY70KTxVdTy" ],
+        "keyUse" : [ "ENC" ],
+        "certificate" : [ "MIICmzCCAYMCBgGG3GWycDANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZkYnJlcG8wHhcNMjMwMzEzMTkxMzE3WhcNMzMwMzEzMTkxNDU3WjARMQ8wDQYDVQQDDAZkYnJlcG8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdvW00t9yMUtTD1RKFUM1/5kPyxCpvhgFohdxIlNf/MNBQ+IKnXvoEEYjezhWmUMCuc5b4u6ajOYqiB6gcScYQgNbyi+Arm4xT21IDanSqoYFQw51HxgBNMh8Il7uoaKK4ZrdZnLexAszvRK5HPHTZhTyC9Ry+XYmzgrKoDOI5Rf/DdZrn0f2OMY1RdjKpo9Ymnvd4fNtVhbJLPIsbbaZWVxS0HHmyIvlPb9e7Sn3PiXv9tqnDCY5WLVmtweNsQDB0YSJIwYj+5aoAX6vUFGmYktHsc1dwvd4rj/npVgtqLBJ6N/Jh5EUwhMSf9TEZiFxdnnExRQIbRPGMGEtilMG7AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAK3kQ1VkQrzvSWvmXmazmNoA1ZiPzRDs1XhGUWxgsxzgPylr3dGBuqQbKvgnLUBQLSqlJHpI4fZflHswu1qrvVZYtekPcGef4WhcKAu2i1RwxrKa6RJQ1tRbrLuVYCzPv5p/DWgltWVn88aoLnqQn0SK/0PB/o4a4Cm7Kq2ZzCr1dACBr06LvOHsc7249OySmbG4HH+pLK6jVURhZ9VaObqAHe2FJBVVoIzURbdiRRURqumrIvbnpeaU1aFyg6ED5wTnXvmMPmVPt9F79mcB33bASO5wyu00X8t1hyN2Show2l2vxLACGUzVkTQt15s7uDLKE7qLmKSR3EuSGXWv3wA=" ],
+        "priority" : [ "100" ],
+        "algorithm" : [ "RSA-OAEP" ]
+      }
     }, {
       "id" : "2293ff99-3c6d-46d1-8635-5e679d5b134a",
       "name" : "rsa-generated",
@@ -2116,7 +2110,7 @@
   "internationalizationEnabled" : false,
   "supportedLocales" : [ ],
   "authenticationFlows" : [ {
-    "id" : "7b272faa-5cbf-4783-8bca-cabe292e80cc",
+    "id" : "b8378805-a082-46a0-9e28-a1e5d4db7e41",
     "alias" : "Account verification options",
     "description" : "Method with which to verity the existing account",
     "providerId" : "basic-flow",
@@ -2138,7 +2132,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "9d570708-d15a-4063-a3b1-d742c9c85529",
+    "id" : "2652bbd9-bd49-465c-8595-690099333bf7",
     "alias" : "Authentication Options",
     "description" : "Authentication options.",
     "providerId" : "basic-flow",
@@ -2167,7 +2161,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "2579048c-e648-4e95-9bd9-fb1fe776a64b",
+    "id" : "967c3248-c2e9-45a9-b770-b02e965b958a",
     "alias" : "Browser - Conditional OTP",
     "description" : "Flow to determine if the OTP is required for the authentication",
     "providerId" : "basic-flow",
@@ -2189,7 +2183,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "76197fdc-44e0-470c-b84f-7e666edda852",
+    "id" : "f78ad348-c3e1-476e-a916-fce0c383376a",
     "alias" : "Direct Grant - Conditional OTP",
     "description" : "Flow to determine if the OTP is required for the authentication",
     "providerId" : "basic-flow",
@@ -2211,7 +2205,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "1c163e76-4872-4996-b7a2-937fd9827f4a",
+    "id" : "788cf02b-5744-4ea6-940a-96bc762da4bd",
     "alias" : "First broker login - Conditional OTP",
     "description" : "Flow to determine if the OTP is required for the authentication",
     "providerId" : "basic-flow",
@@ -2233,7 +2227,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "fac05c8f-328f-4bb6-ac68-e5cf0dbaf768",
+    "id" : "273e61b7-9cc3-464e-a7b8-27c71aca4014",
     "alias" : "Handle Existing Account",
     "description" : "Handle what to do if there is existing account with same email/username like authenticated identity provider",
     "providerId" : "basic-flow",
@@ -2255,7 +2249,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "e9478687-f9bd-4854-83a2-768903dd06a7",
+    "id" : "00f41bfc-8513-466d-8c6a-366b7f2f36ca",
     "alias" : "Reset - Conditional OTP",
     "description" : "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.",
     "providerId" : "basic-flow",
@@ -2277,7 +2271,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "a6a6064c-91e3-455d-a8f7-8530f0d9f932",
+    "id" : "980ebf01-fe0a-4cfa-880e-dd86ce8e190e",
     "alias" : "User creation or linking",
     "description" : "Flow for the existing/non-existing user alternatives",
     "providerId" : "basic-flow",
@@ -2300,7 +2294,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "bf274d56-ea30-450d-9ba7-1d4206f8b9ae",
+    "id" : "5e6a7a10-4be8-4038-8fc5-0588b452328d",
     "alias" : "Verify Existing Account by Re-authentication",
     "description" : "Reauthentication of existing account",
     "providerId" : "basic-flow",
@@ -2322,7 +2316,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "38133f86-344b-497e-9402-87c454d7128c",
+    "id" : "024e07f8-f975-41ef-b755-d2b089b5567c",
     "alias" : "browser",
     "description" : "browser based authentication",
     "providerId" : "basic-flow",
@@ -2358,7 +2352,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "f644f101-4f4a-458a-990d-6ced0d1353fe",
+    "id" : "324da9be-755e-4556-a1d3-58569b9df47c",
     "alias" : "clients",
     "description" : "Base authentication for clients",
     "providerId" : "client-flow",
@@ -2394,7 +2388,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "a12de1f9-53eb-4563-8aa8-051e583bb144",
+    "id" : "bced47d4-5d04-4bb9-8605-94041185c0f3",
     "alias" : "direct grant",
     "description" : "OpenID Connect Resource Owner Grant",
     "providerId" : "basic-flow",
@@ -2423,7 +2417,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "edc782a3-5dee-41a2-ab0d-715fc55b01c9",
+    "id" : "6b301d9d-68c0-44c3-9a57-92669d08b2f3",
     "alias" : "docker auth",
     "description" : "Used by Docker clients to authenticate against the IDP",
     "providerId" : "basic-flow",
@@ -2438,7 +2432,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "358c0c7d-832d-477c-b9d0-258a786325d5",
+    "id" : "9c9ddfeb-37a2-4186-a58f-cf90dca8e191",
     "alias" : "first broker login",
     "description" : "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
     "providerId" : "basic-flow",
@@ -2461,7 +2455,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "891b4eb9-3a7f-4556-8cb8-f6a07c637dae",
+    "id" : "a9ef5094-93bf-49fc-9d0f-dcfc551cac5a",
     "alias" : "forms",
     "description" : "Username, password, otp and other auth forms.",
     "providerId" : "basic-flow",
@@ -2483,7 +2477,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "b74eeba1-2096-41d4-bafb-940ad65ecd42",
+    "id" : "fae6e2e4-a071-458b-ac03-41dda3456f5a",
     "alias" : "http challenge",
     "description" : "An authentication flow based on challenge-response HTTP Authentication Schemes",
     "providerId" : "basic-flow",
@@ -2505,7 +2499,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "37ca760b-2b9f-491f-aa1c-a9896923ab61",
+    "id" : "ae5bcac5-8867-42e1-887f-fc67418b0c4b",
     "alias" : "registration",
     "description" : "registration flow",
     "providerId" : "basic-flow",
@@ -2521,7 +2515,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "1cf97e2c-9063-4b0e-8b99-56c463a6effc",
+    "id" : "72524b5d-1cfc-41b0-b29b-6f6890d2dc7f",
     "alias" : "registration form",
     "description" : "registration form",
     "providerId" : "form-flow",
@@ -2557,7 +2551,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "01499d7a-b0a1-4dd0-a866-62e6a28d5119",
+    "id" : "834c96b8-790d-4869-8c66-d42cd35e4873",
     "alias" : "reset credentials",
     "description" : "Reset credentials for a user if they forgot their password or something",
     "providerId" : "basic-flow",
@@ -2593,7 +2587,7 @@
       "userSetupAllowed" : false
     } ]
   }, {
-    "id" : "579397ef-7c1f-4a24-93c4-7e9ea2514783",
+    "id" : "7f131501-e3ff-48f2-98e6-e34e4c5d6f9e",
     "alias" : "saml ecp",
     "description" : "SAML ECP Profile Authentication Flow",
     "providerId" : "basic-flow",
@@ -2609,13 +2603,13 @@
     } ]
   } ],
   "authenticatorConfig" : [ {
-    "id" : "8f778718-7e1d-417a-b6e6-fc4788b45c44",
+    "id" : "638341f1-94ba-4042-a3ee-41a0f41718f6",
     "alias" : "create unique user config",
     "config" : {
       "require.password.update.after.registration" : "false"
     }
   }, {
-    "id" : "fdf2fe79-06e9-4bea-b361-dab88bd38680",
+    "id" : "3c355b8c-8a51-4346-88f2-1ff81856b55c",
     "alias" : "review profile config",
     "config" : {
       "update.profile.on.first.login" : "missing"
diff --git a/dbrepo-ui/api/authentication.service.js b/dbrepo-ui/api/authentication.service.js
index 776aca523bf5768604687c5f705609b2094e0f56..035a8106202043cdb98f4ac36dc3c063f1d3aefb 100644
--- a/dbrepo-ui/api/authentication.service.js
+++ b/dbrepo-ui/api/authentication.service.js
@@ -3,7 +3,6 @@ import store from '@/store'
 import qs from 'qs'
 import UserMapper from '@/api/user.mapper'
 import axios from 'axios'
-import AuthenticationMapper from '@/api/authentication.mapper'
 
 /**
  * Service class for interaction with Authentication Service in the back end.
@@ -100,22 +99,6 @@ class AuthenticationService {
         })
     })
   }
-
-  refreshToken () {
-    const refreshToken = store().state.refreshToken
-    if (AuthenticationMapper.isExpiredToken(refreshToken)) {
-      /* refresh token expired */
-      console.error('Refresh token expired:', AuthenticationMapper.tokenToExpiryDate(refreshToken))
-      return false
-    }
-    this.authenticateToken(refreshToken)
-      .then((response) => {
-        store().commit('SET_TOKEN', response.access_token)
-        store().commit('SET_REFRESH_TOKEN', response.refresh_token)
-        console.debug('new access token expires:', AuthenticationMapper.tokenToExpiryDate(refreshToken))
-        return false
-      })
-  }
 }
 
 export default new AuthenticationService()
diff --git a/dbrepo-ui/components/UserToolbar.vue b/dbrepo-ui/components/UserToolbar.vue
index 878a48085952cbb9774cba87e61aad394b419bfe..47e925add6e215794ef92f77231345910d4dc74c 100644
--- a/dbrepo-ui/components/UserToolbar.vue
+++ b/dbrepo-ui/components/UserToolbar.vue
@@ -12,7 +12,7 @@
       <v-tab to="/user/authentication">
         Authentication
       </v-tab>
-      <v-tab v-if="canHandleMessages" to="/user/developer">
+      <v-tab to="/user/developer">
         Developer
       </v-tab>
     </v-tabs>
@@ -33,21 +33,6 @@ export default {
     },
     roles () {
       return this.$store.state.roles
-    },
-    canCreateMessage () {
-      if (!this.roles) {
-        return false
-      }
-      return this.roles.includes('create-maintenance-message')
-    },
-    canModifyMessage () {
-      if (!this.roles) {
-        return false
-      }
-      return this.roles.includes('modify-maintenance-message')
-    },
-    canHandleMessages () {
-      return this.canCreateMessage || this.canModifyMessage
     }
   }
 }
diff --git a/dbrepo-ui/layouts/default.vue b/dbrepo-ui/layouts/default.vue
index d52ff87dd60acced367f8749b2c8c7be076979e0..533bb01c5eb64bb213354e13fdde6d5a9ed0ab7e 100644
--- a/dbrepo-ui/layouts/default.vue
+++ b/dbrepo-ui/layouts/default.vue
@@ -132,8 +132,6 @@
 <script>
 import DatabaseService from '@/api/database.service'
 import TableService from '@/api/table.service'
-import AuthenticationService from '@/api/authentication.service'
-import AuthenticationMapper from '@/api/authentication.mapper'
 import DatabaseMapper from '@/api/database.mapper'
 import IdentifierMapper from '@/api/identifier.mapper'
 
@@ -227,7 +225,6 @@ export default {
   },
   mounted () {
     this.initEnvironment()
-    this.attemptRefreshToken()
     this.$store.dispatch('reloadMessages')
     this.$store.dispatch('reloadOntologies')
     if (this.$route.query && this.$route.query.q) {
@@ -313,17 +310,6 @@ export default {
       if (this.locale) {
         this.$i18n.locale = this.locale
       }
-    },
-    attemptRefreshToken () {
-      if (!this.$store.state.token || !this.$store.state.refreshToken) {
-        return
-      }
-      if (AuthenticationMapper.isExpiredToken(this.$store.state.refreshToken)) {
-        console.error('Refresh token is expired: trigger logout of user')
-        this.$store.dispatch('logout')
-      } else {
-        AuthenticationService.refreshToken()
-      }
     }
   },
   head () {
diff --git a/dbrepo-ui/package.json b/dbrepo-ui/package.json
index 04b7cc1b28731a8667a8daaa31a277f62f48e1d3..3c3f9616b97fea7de5fb27729480f8e6f3397dbc 100644
--- a/dbrepo-ui/package.json
+++ b/dbrepo-ui/package.json
@@ -41,7 +41,7 @@
     "jwt-decode": "^3.1.2",
     "knex": "^0.95.6",
     "lodash": "^4.17.21",
-    "moment": "^2.29.1",
+    "moment": "^2.30.1",
     "multer": "^1.4.2",
     "node-fetch": "^2.6.1",
     "nuxt": "^2.15.8",
diff --git a/dbrepo-ui/pages/user/developer.vue b/dbrepo-ui/pages/user/developer.vue
index 7825e5624307bd69ddea0c086d411adf3afd5e22..2d14d40011a3f68fa1d98e2790c9e6854fe82469 100644
--- a/dbrepo-ui/pages/user/developer.vue
+++ b/dbrepo-ui/pages/user/developer.vue
@@ -1,9 +1,9 @@
 <template>
-  <div v-if="canHandleMessages">
+  <div>
     <UserToolbar />
     <v-tabs-items v-model="tab">
       <v-tab-item>
-        <v-card flat tile>
+        <v-card v-if="canHandleMessages" flat tile>
           <v-card-title>Maintenance Messages</v-card-title>
           <v-data-table
             :headers="headers"
@@ -28,6 +28,40 @@
             </v-btn>
           </v-card-text>
         </v-card>
+        <v-divider v-if="canHandleMessages" />
+        <v-card flat tile>
+          <v-card-title>Token Information</v-card-title>
+          <v-card-text>
+            <v-row dense>
+              <v-col xl="4">
+                <v-text-field
+                  v-model="token"
+                  disabled
+                  label="Access Token" />
+              </v-col>
+              <v-col xl="2">
+                <v-text-field
+                  v-model="tokenExpiry"
+                  disabled
+                  :label="tokenExpiryLabel" />
+              </v-col>
+            </v-row>
+            <v-row dense>
+              <v-col xl="4">
+                <v-text-field
+                  v-model="refreshToken"
+                  disabled
+                  label="Refresh Token" />
+              </v-col>
+              <v-col xl="2">
+                <v-text-field
+                  v-model="refreshTokenExpiry"
+                  disabled
+                  :label="refreshTokenExpiryLabel" />
+              </v-col>
+            </v-row>
+          </v-card-text>
+        </v-card>
       </v-tab-item>
     </v-tabs-items>
     <v-dialog
@@ -43,7 +77,8 @@
 import UserToolbar from '@/components/UserToolbar'
 import MetadataService from '@/api/metadata.service'
 import EditMaintenanceMessage from '@/components/dialogs/EditMaintenanceMessage'
-import { isActiveMessage } from '@/utils'
+import { formatTimestampUTCLabel, isActiveMessage, timestampsToHumanDifference } from '@/utils'
+import AuthenticationMapper from '@/api/authentication.mapper'
 
 export default {
   components: {
@@ -69,6 +104,33 @@ export default {
     token () {
       return this.$store.state.token
     },
+    tokenExpiry () {
+      if (!this.token) {
+        return null
+      }
+      return formatTimestampUTCLabel(AuthenticationMapper.tokenToExpiryDate(this.token))
+    },
+    tokenExpiryLabel () {
+      if (!this.token) {
+        return 'Expiry Date'
+      }
+      return `Expiry Date (${timestampsToHumanDifference(Date.now(), AuthenticationMapper.tokenToExpiryDate(this.token))})`
+    },
+    refreshToken () {
+      return this.$store.state.refreshToken
+    },
+    refreshTokenExpiry () {
+      if (!this.refreshToken) {
+        return null
+      }
+      return formatTimestampUTCLabel(AuthenticationMapper.tokenToExpiryDate(this.refreshToken))
+    },
+    refreshTokenExpiryLabel () {
+      if (!this.refreshToken) {
+        return 'Expiry Date'
+      }
+      return `Expiry Date (${timestampsToHumanDifference(Date.now(), AuthenticationMapper.tokenToExpiryDate(this.refreshToken))})`
+    },
     user () {
       return this.$store.state.user
     },
diff --git a/dbrepo-ui/plugins/axios.js b/dbrepo-ui/plugins/axios.js
index aca6db132348c8d56175ac9dab9623ec4c8186fa..b2d7170ddf72f7e07c8e1ba3cefe21d013be2e42 100644
--- a/dbrepo-ui/plugins/axios.js
+++ b/dbrepo-ui/plugins/axios.js
@@ -2,15 +2,51 @@ import Vue from 'vue'
 import store from '@/store'
 import api from '@/api'
 import VueAxios from 'vue-axios'
+import AuthenticationMapper from '@/api/authentication.mapper'
+import AuthenticationService from '@/api/authentication.service'
 
-api.interceptors.request.use((config) => {
-  const token = store().state.token
-  if (!token) {
-    return config
-  }
-  console.debug('interceptor inject authorization header for url', config.url)
-  config.headers.Authorization = `Bearer ${store().state.token}`
-  return config
-})
+/**
+ * Attempts to refresh the access token with the refresh token (if not expired).
+ * Success: stores the new access-refresh token pair in the store.
+ * Error: deletes the access-refresh token pair in the store.
+ * https://stackoverflow.com/questions/44985708/axios-request-interceptor-wait-until-ajax-call-finishes
+ */
+api.interceptors.request.use(config =>
+  new Promise((resolve, reject) => {
+    const token = store().state.token
+    const refreshToken = store().state.refreshToken
+    if (!store().state.token || !refreshToken) {
+      resolve(config)
+    } else if (AuthenticationMapper.isExpiredToken(token)) {
+      if (AuthenticationMapper.isExpiredToken(refreshToken)) {
+        console.warn('Refresh token is expired: trigger logout of user')
+        store().dispatch('logout')
+          .then(() => {
+            resolve(config)
+          })
+          .catch((error) => {
+            console.error('Failed to logout', error)
+            reject(error)
+          })
+        resolve(config)
+      }
+      AuthenticationService.authenticateToken(refreshToken)
+        .then((response) => {
+          store().commit('SET_TOKEN', response.access_token)
+          store().commit('SET_REFRESH_TOKEN', response.refresh_token)
+          console.debug('new access token expires:', AuthenticationMapper.tokenToExpiryDate(response.access_token))
+          config.headers.Authorization = `Bearer ${response.access_token}`
+          resolve(config)
+        })
+        .catch((error) => {
+          console.error('Failed to refresh token', error)
+          resolve(config)
+        })
+    } else {
+      config.headers.Authorization = `Bearer ${store().state.token}`
+      resolve(config)
+    }
+  })
+)
 
 Vue.use(VueAxios, api)
diff --git a/dbrepo-ui/utils/index.js b/dbrepo-ui/utils/index.js
index fbfb4a19c534c45976dae3e22a4ed65acd118e94..3e08f463448d549aa1ab6d455fa3c3b8046557e8 100644
--- a/dbrepo-ui/utils/index.js
+++ b/dbrepo-ui/utils/index.js
@@ -1,4 +1,5 @@
 const { format } = require('date-fns')
+const moment = require('moment')
 
 function notEmpty (str) {
   return typeof str === 'string' && str.trim().length > 0
@@ -1013,22 +1014,6 @@ function formatLanguage (code) {
   return filter[0].name
 }
 
-function isOrcid (orcid) {
-  if (!orcid || orcid.startsWith('http')) {
-    return false
-  }
-  const input = orcid.replace('-', '')
-  let total = 0
-  for (let i = 0; i < input.length; i++) {
-    const digit = Number(input.charAt(i))
-    total = (total + digit) * 2
-  }
-  const remainder = total % 11
-  const result = (12 - remainder) % 11
-  const checksum = result === 10 ? 'X' : String(result)
-  return orcid.charAt(orcid.length - 1) === checksum
-}
-
 function isActiveMessage (message) {
   if (!message) {
     return false
@@ -1055,6 +1040,12 @@ function timestampToTimeZonedTimestamp (str) {
   return format(new Date(str), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'')
 }
 
+function timestampsToHumanDifference (date1, date2) {
+  const date = moment(date1)
+  const other = moment(date2)
+  return moment.duration(other.diff(date)).humanize(true)
+}
+
 module.exports = {
   notEmpty,
   formatTimestamp,
@@ -1065,10 +1056,10 @@ module.exports = {
   formatYearUTC,
   formatMonthUTC,
   formatDayUTC,
-  isOrcid,
   isActiveMessage,
   timestampToTimeZonedTimestamp,
   formatBinaryStream,
   languages,
-  formatLanguage
+  formatLanguage,
+  timestampsToHumanDifference
 }
diff --git a/dbrepo-ui/yarn.lock b/dbrepo-ui/yarn.lock
index d5a3920df7018fd57ec7b47837ff13f92cd42e7f..d54c5fb9575306e84aec500078bfb34481801022 100644
--- a/dbrepo-ui/yarn.lock
+++ b/dbrepo-ui/yarn.lock
@@ -3675,11 +3675,6 @@ async-each@^1.0.1:
   resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77"
   integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==
 
-async@^3.1.0:
-  version "3.2.5"
-  resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66"
-  integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
-
 asynckit@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -4007,13 +4002,6 @@ bl@^4.1.0:
     inherits "^2.0.4"
     readable-stream "^3.4.0"
 
-block-stream2@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/block-stream2/-/block-stream2-2.1.0.tgz#ac0c5ef4298b3857796e05be8ebed72196fa054b"
-  integrity sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==
-  dependencies:
-    readable-stream "^3.4.0"
-
 bluebird@^3.1.1, bluebird@^3.5.5:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@@ -6033,7 +6021,7 @@ es-to-primitive@^1.2.1:
     is-date-object "^1.0.1"
     is-symbol "^1.0.2"
 
-es6-error@^4.0.1, es6-error@^4.1.1:
+es6-error@^4.0.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
   integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
@@ -6563,13 +6551,6 @@ fast-levenshtein@^2.0.6:
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
   integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
 
-fast-xml-parser@^3.17.5:
-  version "3.21.1"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz#152a1d51d445380f7046b304672dd55d15c9e736"
-  integrity sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==
-  dependencies:
-    strnum "^1.0.4"
-
 fastparse@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
@@ -8656,11 +8637,6 @@ json-stable-stringify-without-jsonify@^1.0.1:
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
   integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
 
-json-stream@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/json-stream/-/json-stream-1.0.0.tgz#1a3854e28d2bbeeab31cc7ddf683d2ddc5652708"
-  integrity sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==
-
 json5@^0.5.0, json5@^0.5.1:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
@@ -9316,7 +9292,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
   integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
 
-mime-types@^2.1.12, mime-types@^2.1.14, mime-types@^2.1.19, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.19, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34:
   version "2.1.35"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
   integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -9396,24 +9372,6 @@ minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
   integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
 
-minio@7.0.18:
-  version "7.0.18"
-  resolved "https://registry.yarnpkg.com/minio/-/minio-7.0.18.tgz#a2a6dae52a4dde9e35ed47cdf2accc21df4a512d"
-  integrity sha512-jVRjkw8A5Spf+ETY5OXQUcQckHriuUA3u2+MAcX36btLT8EytlOVivxIseXvyFf9cNn3dy5w1F1UyjMvHU+nqg==
-  dependencies:
-    async "^3.1.0"
-    block-stream2 "^2.0.0"
-    es6-error "^4.1.1"
-    fast-xml-parser "^3.17.5"
-    json-stream "^1.0.0"
-    lodash "^4.17.20"
-    mime-types "^2.1.14"
-    mkdirp "^0.5.1"
-    querystring "0.2.0"
-    through2 "^3.0.1"
-    xml "^1.0.0"
-    xml2js "^0.4.15"
-
 minipass-collect@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
@@ -9491,10 +9449,10 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
 
-moment@^2.29.1:
-  version "2.29.4"
-  resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
-  integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
+moment@^2.30.1:
+  version "2.30.1"
+  resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
+  integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
 
 move-concurrently@^1.0.1:
   version "1.0.1"
@@ -11432,11 +11390,6 @@ querystring-es3@^0.2.0:
   resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
   integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==
 
-querystring@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-  integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==
-
 querystringify@^2.1.1:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
@@ -11572,7 +11525,7 @@ readable-stream@1.1.x:
     isarray "0.0.1"
     string_decoder "~0.10.x"
 
-"readable-stream@2 || 3", readable-stream@^3.4.0, readable-stream@^3.6.0:
+readable-stream@^3.4.0, readable-stream@^3.6.0:
   version "3.6.2"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
   integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -11983,11 +11936,6 @@ sass@1.32.12, sass@~1.32.13:
   dependencies:
     chokidar ">=3.0.0 <4.0.0"
 
-sax@>=0.6.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0"
-  integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==
-
 saxes@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
@@ -12613,11 +12561,6 @@ strip-json-comments@~2.0.1:
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
   integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
 
-strnum@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
-  integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
-
 style-resources-loader@^1.5.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/style-resources-loader/-/style-resources-loader-1.5.0.tgz#6e0585ca475b9dac45387c308be90d74c814f41f"
@@ -12869,14 +12812,6 @@ through2@^2.0.0:
     readable-stream "~2.3.6"
     xtend "~4.0.1"
 
-through2@^3.0.1:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4"
-  integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==
-  dependencies:
-    inherits "^2.0.4"
-    readable-stream "2 || 3"
-
 through@^2.3.6:
   version "2.3.8"
   resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -13924,24 +13859,6 @@ xml-name-validator@^3.0.0:
   resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
   integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
 
-xml2js@^0.4.15:
-  version "0.4.23"
-  resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
-  integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
-  dependencies:
-    sax ">=0.6.0"
-    xmlbuilder "~11.0.0"
-
-xml@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
-  integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==
-
-xmlbuilder@~11.0.0:
-  version "11.0.1"
-  resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
-  integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
-
 xmlchars@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"