diff --git a/.gitignore b/.gitignore
index d1ec16416c57863322f23b09a43ff35d00e7518f..254162c9da1598d8f80da4878d6b9695fd0b9941 100644
--- a/.gitignore
+++ b/.gitignore
@@ -102,5 +102,6 @@ jams-server/src/main/resources/webapp/
 
 # VScode
 *.factorypath
+.vscode/settings.json
 
 jams-server/doc/
diff --git a/README.md b/README.md
index cff8054004769e43be1f34a869b809dda554842b..eb826e624926ac9f282055e1288eef676941febb 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,16 @@ docker build -f Dockerfile -t jams:latest --target prod . \
     && java -jar jams-launcher.jar
 ```
 
+## Visualize the derby database
+The IntelliJ Ultimate Edition Database view can help visualize the database schema.
+Don't forget to launch jams locally at least once before proceeding.
+1. Open this project in IntelliJ
+2. View -> Tool Windows -> Database
+3. Plus icon -> Data Source from Path
+4. Select the jami-jams/jams/jams folder
+5. Select the Apache Derby (Embedded) driver
+6. Select No auth, click Ok, refresh the database window and the tables should appear!
+
 ## About jams-server/src/main/java/net/jami/jams/server/filters
 The files in the `filters` folder are prefixed "A", "B", "C" and "D" so that the
 order of execution of the filters are right (jakarta registers filters in
diff --git a/jams-server/pom.xml b/jams-server/pom.xml
index 1d07adf2cbc73ca809ff81b062c1bcdbd59f9aab..3df97619e6f98e636c394d9c808c4e5252edf2ba 100644
--- a/jams-server/pom.xml
+++ b/jams-server/pom.xml
@@ -82,17 +82,17 @@
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
-            <version>4.5.10</version>
+            <version>4.5.14</version>
         </dependency>
         <dependency>
             <groupId>org.json</groupId>
             <artifactId>json</artifactId>
-            <version>20190722</version>
+            <version>20230618</version>
         </dependency>
         <dependency>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
-            <version>2.8.6</version>
+            <version>2.10.1</version>
         </dependency>
     </dependencies>
 
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
index 79d903b97dc87a88e78f53068eab490ed1732cb5..f812e639344b3f0d05f2bf686384fd4510328c12 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
@@ -112,11 +112,11 @@ public class DeviceServlet extends HttpServlet {
      * @apiError (500) {null} null Device could not be enrolled
      * @apiSuccessExample {json} Success-Response:
      *                    {
-     *                    "certificateChain":"pem_encoded_certificate_chain"
-     *                    "displayName":"John Doe"
-     *                    "nameServer":"https://mydomain.com"
-     *                    "deviceReceipt": "device_receipt_object"
-     *                    "receiptSignature":"receipt_signature_object"
+     *                    "certificateChain":"pem_encoded_certificate_chain",
+     *                    "displayName":"John Doe",
+     *                    "nameServer":"https://mydomain.com",
+     *                    "deviceReceipt": "device_receipt_object",
+     *                    "receiptSignature":"receipt_signature_object",
      *                    "userPhoto":"base64_encoded_photo"
      *                    }
      */
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/DirectoryEntryServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/DirectoryEntryServlet.java
index 414efe02d377ea123fc6d1debd8aad89b3b2edc6..365723c062ed6fa8bdc987150fb7ecb0e6320650 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/DirectoryEntryServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/DirectoryEntryServlet.java
@@ -32,7 +32,7 @@ import jakarta.servlet.annotation.WebServlet;
 import jakarta.servlet.http.HttpServlet;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
-
+import lombok.extern.slf4j.Slf4j;
 import net.jami.jams.common.authentication.AuthenticationSourceType;
 import net.jami.jams.common.authmodule.AuthModuleKey;
 import net.jami.jams.common.dao.StatementElement;
@@ -47,6 +47,7 @@ import java.util.Optional;
 
 // This is an endpoint to manipulate directory entry-data, this make sense only for local setups.
 
+@Slf4j
 @WebServlet("/api/auth/directory/entry")
 public class DirectoryEntryServlet extends HttpServlet {
 
@@ -199,10 +200,12 @@ public class DirectoryEntryServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
             throws ServletException, IOException {
-        if (req.getParameter("jamiId") != null) {
+
+        String jamiId = req.getParameter("jamiId");
+        if (jamiId != null) {
             StatementList statementList = new StatementList();
             StatementElement statementElement =
-                    new StatementElement("jamiId", "=", req.getParameter("jamiId"), null);
+                    new StatementElement("jamiId", "=", jamiId, null);
             statementList.addStatement(statementElement);
             User user = dataStore.getUserDao().getObjects(statementList).get(0);
             List<UserProfile> userProfiles = new ArrayList<>();
diff --git a/pom.xml b/pom.xml
index 01c9893609d9377f3f336c45c2ce342e7036163a..f1d899b03cee7bef2a103717c6a2f1b53d6b4797 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
         <maven.compiler.version>3.8.1</maven.compiler.version>
         <java.version>11</java.version>
         <bouncy.castle.version>1.65</bouncy.castle.version>
-        <lombok.version>1.18.12</lombok.version>
+        <lombok.version>1.18.28</lombok.version>
         <log4j.version>1.7.30</log4j.version>
         <jupiter.api.version>5.7.0-M1</jupiter.api.version>
         <tomcat.version>10.0.0-M5</tomcat.version>
@@ -58,7 +58,7 @@
         <embedded.ldap.unit>0.8.1</embedded.ldap.unit>
         <maven.exec.version>1.1.1</maven.exec.version>
         <zmq.version>0.5.2</zmq.version>
-        <flyway.version>6.5.1</flyway.version>
+        <flyway.version>9.21.1</flyway.version>
     </properties>
 
     <dependencies>
@@ -152,6 +152,47 @@
                     </filesets>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.jacoco</groupId>
+                <artifactId>jacoco-maven-plugin</artifactId>
+                <version>0.8.10</version>
+                <executions>
+                    <execution>
+                        <id>jacoco-initialize</id>
+                        <goals>
+                            <goal>prepare-agent</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>jacoco-report</id>
+                        <phase>test</phase>
+                        <goals>
+                            <goal>report</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>jacoco-check</id>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <rule>
+                                    <element>PACKAGE</element>
+                                    <limits>
+                                        <limit>
+                                            <counter>LINE</counter>
+                                            <value>COVEREDRATIO</value>
+                                            <minimum>0.80</minimum>
+                                        </limit>
+                                    </limits>
+                                </rule>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
         </plugins>
     </build>