You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2021/06/01 17:59:10 UTC

[airavata-data-lake] 27/46: db service improvements

This is an automated email from the ASF dual-hosted git repository.

isjarana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-data-lake.git

commit 2c0ae9104c448d4b49ae23d28fde9b0efe1dcb9d
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Tue Apr 6 15:39:24 2021 -0400

    db service improvements
---
 airavata-data-lake.ipr                             |   1 +
 airavata-data-lake.iws                             | 121 +++-
 .../apache/airavata/drms/api/DRMSApiRunner.java    |   2 -
 .../drms/api/handlers/ResourceServiceHandler.java  |  12 +-
 .../handlers/StoragePreferenceServiceHandler.java  |   9 +-
 .../drms/api/handlers/StorageServiceHandler.java   |  15 +-
 metadata-service/data-builders/data-builders.iml   | 770 +++------------------
 .../airavata/datalake/metadata/clients/Test.java   |  38 +-
 metadata-service/db-service/db-service.iml         | 740 +++-----------------
 metadata-service/db-service/server/pom.xml         |  10 +-
 .../airavata/datalake/metadata/AppConfig.java      | 106 +--
 .../neo4j/curd/operators/CustomNodeService.java    |   8 +
 .../neo4j/curd/operators/GenericService.java       |   7 +-
 .../neo4j/curd/operators/GroupServiceImpl.java     |   3 +-
 .../neo4j/curd/operators/ResourceService.java      |   6 +
 .../neo4j/curd/operators/ResourceServiceImpl.java  |  69 +-
 .../metadata/handlers/ResourceServiceHandler.java  |  36 +-
 .../metadata/interceptors/Authenticator.java       | 103 ++-
 .../interceptors/InterceptorPipelineExecutor.java  |   2 +-
 .../metadata/interceptors/ServiceInterceptor.java  |   2 +-
 .../src/main/resources/application.properties      |   4 +
 metadata-service/db-service/stub/pom.xml           |  21 +-
 .../stub/src/main/proto/common/Common.proto        |   8 +-
 metadata-service/pom.xml                           |  38 -
 24 files changed, 589 insertions(+), 1542 deletions(-)

diff --git a/airavata-data-lake.ipr b/airavata-data-lake.ipr
index f4e8cf9..a04514a 100644
--- a/airavata-data-lake.ipr
+++ b/airavata-data-lake.ipr
@@ -16,6 +16,7 @@
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>
+      <module name="commons" target="11" />
       <module name="drms-rest-proxy" target="11" />
     </bytecodeTargetLevel>
   </component>
diff --git a/airavata-data-lake.iws b/airavata-data-lake.iws
index 750b531..fc21df4 100644
--- a/airavata-data-lake.iws
+++ b/airavata-data-lake.iws
@@ -5,29 +5,29 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="1d1ef003-bfaa-49fa-837e-dc14d1daa977" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/utils/Utils.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/tartget.tmp" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/Dockerfile" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/pom.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/src/main/resources/README.MD" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/src/main/resources/envoy.yaml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/metadata-service/db-rest-proxy/src/main/resources/metadata.pb" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/airavata-data-lake.ipr" beforeDir="false" afterPath="$PROJECT_DIR$/airavata-data-lake.ipr" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/airavata-data-lake.iws" beforeDir="false" afterPath="$PROJECT_DIR$/airavata-data-lake.iws" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/pom.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Config.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Config.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/InterceptorPipelineExecutor.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/InterceptorPipelineExecutor.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/application.properties" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/src/main/proto/Common.proto" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/src/main/proto/Common.proto" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/metadata-service/data-builders/data-builders.iml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/data-builders/data-builders.iml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/metadata-service/db-service/db-service.iml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/db-service.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/resources/application.properties" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/stub/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/stub/pom.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/stub/src/main/proto/common/Common.proto" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/stub/src/main/proto/common/Common.proto" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/pom.xml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -199,6 +199,7 @@
     <option name="RECENT_TEMPLATES">
       <list>
         <option value="Class" />
+        <option value="Interface" />
       </list>
     </option>
   </component>
@@ -280,11 +281,13 @@
     <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/metadata-service" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/commons/src/main/java/org/apache/airavata/datalake/commons" />
     <property name="nodejs_package_manager_path" value="npm" />
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="$PROJECT_DIR$/commons/src/main/java/org/apache/airavata/datalake/commons" />
+      <recent name="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors" />
       <recent name="$PROJECT_DIR$/metadata-service" />
     </key>
     <key name="MoveFile.RECENT_KEYS">
@@ -292,7 +295,7 @@
       <recent name="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources" />
     </key>
   </component>
-  <component name="RunManager" selected="Application.Test">
+  <component name="RunManager" selected="Spring Boot.Neo4JServiceInitializer">
     <configuration selected="false" default="true" type="Applet" factoryName="Applet">
       <module name="" />
       <option name="MAIN_CLASS_NAME" />
@@ -337,13 +340,15 @@
         <option name="Make" enabled="true" />
       </method>
     </configuration>
-    <configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
+    <configuration default="true" type="ArquillianTestNG" factoryName="" nameIsGenerated="true">
       <option name="arquillianRunConfiguration">
         <value>
           <option name="containerStateName" value="" />
         </value>
       </option>
-      <option name="TEST_OBJECT" value="class" />
+      <option name="TEST_OBJECT" value="CLASS" />
+      <properties />
+      <listeners />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
@@ -387,8 +392,8 @@
     </configuration>
     <recent_temporary>
       <list>
-        <item itemvalue="Application.Test" />
         <item itemvalue="Spring Boot.Neo4JServiceInitializer" />
+        <item itemvalue="Application.Test" />
         <item itemvalue="Spring Boot.DRMSApiRunner" />
         <item itemvalue="Application.Client" />
       </list>
@@ -437,7 +442,8 @@
       <workItem from="1616938907343" duration="738000" />
       <workItem from="1616955618046" duration="1487000" />
       <workItem from="1616977751983" duration="68000" />
-      <workItem from="1617213356776" duration="25360000" />
+      <workItem from="1617213356776" duration="28852000" />
+      <workItem from="1617717367883" duration="12574000" />
     </task>
     <servers />
   </component>
@@ -606,24 +612,89 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java</url>
-          <line>48</line>
+          <line>54</line>
           <option name="timeStamp" value="31" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java</url>
-          <line>52</line>
+          <line>58</line>
           <option name="timeStamp" value="32" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java</url>
-          <line>50</line>
+          <line>56</line>
           <option name="timeStamp" value="33" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java</url>
-          <line>58</line>
+          <line>64</line>
           <option name="timeStamp" value="34" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>59</line>
+          <option name="timeStamp" value="36" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>60</line>
+          <option name="timeStamp" value="37" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>53</line>
+          <option name="timeStamp" value="38" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>55</line>
+          <option name="timeStamp" value="39" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>69</line>
+          <option name="timeStamp" value="40" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url>
+          <line>57</line>
+          <option name="timeStamp" value="45" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url>
+          <line>60</line>
+          <option name="timeStamp" value="46" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url>
+          <line>65</line>
+          <option name="timeStamp" value="48" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>35</line>
+          <option name="timeStamp" value="49" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>37</line>
+          <option name="timeStamp" value="50" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>36</line>
+          <option name="timeStamp" value="51" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java</url>
+          <line>42</line>
+          <option name="timeStamp" value="52" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/UserServiceImpl.java</url>
+          <line>18</line>
+          <option name="timeStamp" value="57" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java
index 57f69a5..21df7ec 100644
--- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java
@@ -26,6 +26,4 @@ public class DRMSApiRunner {
     public static void main(String[] args) {
         SpringApplication.run(DRMSApiRunner.class, args);
     }
-
-
 }
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
index cb0d2e4..75ee2a9 100644
--- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
@@ -110,13 +110,13 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
 
     @Override
     public void searchResource(ResourceSearchRequest request, StreamObserver<ResourceSearchResponse> responseObserver) {
-        User callUser = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
 
         // TODO review (u)-[r4:MEMBER_OF]->(g2:Group)<-[r5:SHARED_WITH]-(sp),
         List<Record> records = this.neo4JConnector.searchNodes(
                 "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference)-[r6:HAS_RESOURCE]->(res:Resource), " +
                         "(u)-[r7:MEMBER_OF]->(g3:Group)<-[r8:SHARED_WITH]-(res) " +
-                        "where u.userId = '" + callUser.getUserId() + "' return distinct res, sp, s");
+                        "where u.userId = '" + callUser.getUsername() + "' return distinct res, sp, s");
         try {
             List<GenericResource> genericResourceList = GenericResourceDeserializer.deserializeList(records);
             ResourceSearchResponse.Builder builder = ResourceSearchResponse.newBuilder();
@@ -132,9 +132,9 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
 
     @Override
     public void addResourceMetadata(AddResourceMetadataRequest request, StreamObserver<Empty> responseObserver) {
-        User callUser = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
         this.neo4JConnector.createMetadataNode(ResourceConstants.RESOURCE_LABEL, "resourceId",
-                request.getResourceId(), callUser.getUserId(),
+                request.getResourceId(), callUser.getUsername(),
                 request.getMetadata().getKey(), request.getMetadata().getValue());
         responseObserver.onNext(Empty.getDefaultInstance());
         responseObserver.onCompleted();
@@ -142,9 +142,9 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
 
     @Override
     public void fetchResourceMetadata(FetchResourceMetadataRequest request, StreamObserver<FetchResourceMetadataResponse> responseObserver) {
-        User callUser = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
         List<Record> records = neo4JConnector.searchNodes("match (u:User)-[MEMBER_OF]->(g:Group)<-[SHARED_WITH]-(res:Resource)-[r:HAS_METADATA]->(m:Metadata) " +
-                "where u.userId ='" + callUser.getUserId() + "' and res.resourceId = '" + request.getResourceId() + "' return distinct m");
+                "where u.userId ='" + callUser.getUsername() + "' and res.resourceId = '" + request.getResourceId() + "' return distinct m");
         try {
             List<MetadataNode> metadataNodes = MetadataDeserializer.deserializeList(records);
             if (metadataNodes.size() == 1) {
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java
index ab560c3..1a68e6a 100644
--- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java
@@ -20,6 +20,7 @@ import com.google.protobuf.Empty;
 import io.grpc.ManagedChannel;
 import io.grpc.ManagedChannelBuilder;
 import io.grpc.stub.StreamObserver;
+import org.apache.airavata.datalake.drms.AuthenticatedUser;
 import org.apache.airavata.datalake.drms.DRMSServiceAuthToken;
 import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest;
 import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse;
@@ -62,13 +63,13 @@ public class StoragePreferenceServiceHandler extends StoragePreferenceServiceGrp
 
     @Override
     public void fetchStoragePreference(StoragePreferenceFetchRequest request, StreamObserver<StoragePreferenceFetchResponse> responseObserver) {
-        User callUser = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
 
         List<Record> records = this.neo4JConnector.searchNodes(
                 "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference), " +
                         "(u)-[r4:MEMBER_OF]->(g2:Group)<-[r5:SHARED_WITH]-(sp) " +
                         "where sp.storagePreferenceId = '" + request.getStoragePreferenceId() + "' and u.userId = '"
-                        + callUser.getUserId() + "' return distinct sp, s");
+                        + callUser.getUsername() + "' return distinct sp, s");
 
         if (!records.isEmpty()) {
             try {
@@ -106,12 +107,12 @@ public class StoragePreferenceServiceHandler extends StoragePreferenceServiceGrp
 
     @Override
     public void searchStoragePreference(StoragePreferenceSearchRequest request, StreamObserver<StoragePreferenceSearchResponse> responseObserver) {
-        User callUser = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
 
         List<Record> records = this.neo4JConnector.searchNodes(
                 "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference), " +
                         "(u)-[r4:MEMBER_OF]->(g2:Group)<-[r5:SHARED_WITH]-(sp)" +
-                        " where u.userId ='" + callUser.getUserId() + "' return distinct sp, s");
+                        " where u.userId ='" + callUser.getUsername() + "' return distinct sp, s");
         try {
             List<AnyStoragePreference> storagePrefList = AnyStoragePreferenceDeserializer.deserializeList(records);
             StoragePreferenceSearchResponse.Builder builder = StoragePreferenceSearchResponse.newBuilder();
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
index a00b7ca..b078944 100644
--- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
@@ -20,6 +20,7 @@ import com.google.protobuf.Empty;
 import io.grpc.ManagedChannel;
 import io.grpc.ManagedChannelBuilder;
 import io.grpc.stub.StreamObserver;
+import org.apache.airavata.datalake.drms.AuthenticatedUser;
 import org.apache.airavata.datalake.drms.DRMSServiceAuthToken;
 import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest;
 import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse;
@@ -27,8 +28,8 @@ import org.apache.airavata.datalake.drms.groups.GroupServiceGrpc;
 import org.apache.airavata.datalake.drms.groups.User;
 import org.apache.airavata.datalake.drms.storage.*;
 import org.apache.airavata.drms.core.Neo4JConnector;
-import org.apache.airavata.drms.core.deserializer.AnyStorageDeserializer;
 import org.apache.airavata.drms.core.constants.StorageConstants;
+import org.apache.airavata.drms.core.deserializer.AnyStorageDeserializer;
 import org.apache.airavata.drms.core.serializer.AnyStorageSerializer;
 import org.lognet.springboot.grpc.GRpcService;
 import org.neo4j.driver.Record;
@@ -65,11 +66,11 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl
     @Override
     public void fetchStorage(StorageFetchRequest request, StreamObserver<StorageFetchResponse> responseObserver) {
 
-        User callUser = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
 
         List<Record> records = this.neo4JConnector.searchNodes(
                 "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage) where " +
-                        "s.storageId = '" + request.getStorageId() + "' and u.userId = '" + callUser.getUserId() +
+                        "s.storageId = '" + request.getStorageId() + "' and u.userId = '" + callUser.getUsername() +
                         "' return distinct s");
 
         if (!records.isEmpty()) {
@@ -109,9 +110,9 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl
 
     @Override
     public void addStorageMetadata(AddStorageMetadataRequest request, StreamObserver<Empty> responseObserver) {
-        User callUser = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
         this.neo4JConnector.createMetadataNode(StorageConstants.STORAGE_LABEL, "storageId",
-                request.getStorageId(), callUser.getUserId(),
+                request.getStorageId(), callUser.getUsername(),
                 request.getKey(), request.getValue());
         responseObserver.onNext(Empty.getDefaultInstance());
         responseObserver.onCompleted();
@@ -119,11 +120,11 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl
 
     @Override
     public void searchStorage(StorageSearchRequest request, StreamObserver<StorageSearchResponse> responseObserver) {
-        User callUser = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
 
         List<Record> records = this.neo4JConnector.searchNodes(
                 "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage) where u.userId ='" +
-                        callUser.getUserId() + "' return distinct s");
+                        callUser.getUsername() + "' return distinct s");
         try {
             List<AnyStorage> storageList = AnyStorageDeserializer.deserializeList(records);
             StorageSearchResponse.Builder builder = StorageSearchResponse.newBuilder();
diff --git a/metadata-service/data-builders/data-builders.iml b/metadata-service/data-builders/data-builders.iml
index be087cb..e09a31d 100644
--- a/metadata-service/data-builders/data-builders.iml
+++ b/metadata-service/data-builders/data-builders.iml
@@ -1,663 +1,109 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> 
-  <component name="FacetManager"> 
-    <facet type="web" name="Web"> 
-      <configuration> 
-        <webroots/>  
-        <sourceRoots> 
-          <root url="file://$MODULE_DIR$/src/main/java"/>  
-          <root url="file://$MODULE_DIR$/src/main/resources"/> 
-        </sourceRoots> 
-      </configuration> 
-    </facet>  
-    <facet type="Spring" name="Spring"> 
-      <configuration/> 
-    </facet> 
-  </component>  
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"> 
-    <output url="file://$MODULE_DIR$/target/classes"/>  
-    <output-test url="file://$MODULE_DIR$/target/test-classes"/>  
-    <content url="file://$MODULE_DIR$"> 
-      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false"/>
-      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true"/>
-      <excludeFolder url="file://$MODULE_DIR$/target/classes"/>
-      <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver"/>
-      <excludeFolder url="file://$MODULE_DIR$/target/test-classes"/>
-    </content>  
-    <orderEntry type="inheritedJdk"/>  
-    <orderEntry type="sourceFolder" forTests="false"/>  
-    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-core:3.2.20" level="project"/>  
-    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-api:3.2.20" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8" level="project"/>  
-    <orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.86" level="project"/>  
-    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-bolt-driver:3.2.20" level="project"/>  
-    <orderEntry type="library" name="Maven: org.neo4j.driver:neo4j-java-driver:4.0.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.android:annotations:4.1.1.4" level="project"/>  
-    <orderEntry type="library" name="Maven: io.perfmark:perfmark-api:0.19.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-services:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.guava:guava:28.1-android" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project"/>  
-    <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-tcnative-boringssl-static:2.0.25.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project"/>  
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project"/>  
-    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project"/>  
-    <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project"/>  
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project"/>  
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project"/>  
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project"/>  
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project"/>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/github/lognet/grpc-spring-boot-starter/3.5.1/grpc-spring-boot-starter-3.5.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-netty/1.25.0/grpc-netty-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-core/1.25.0/grpc-core-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-api/1.25.0/grpc-api-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-context/1.25.0/grpc-context-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/errorprone/error_prone_annotations/2.3.3/error_prone_annotations-2.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/guava/guava/28.1-android/guava-28.1-android.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/opencensus/opencensus-api/0.21.0/opencensus-api-0.21.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/opencensus/opencensus-contrib-grpc-metrics/0.21.0/opencensus-contrib-grpc-metrics-0.21.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-http2/4.1.42.Final/netty-codec-http2-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-common/4.1.42.Final/netty-common-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-buffer/4.1.42.Final/netty-buffer-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-transport/4.1.42.Final/netty-transport-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-resolver/4.1.42.Final/netty-resolver-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec/4.1.42.Final/netty-codec-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-handler/4.1.42.Final/netty-handler-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-http/4.1.42.Final/netty-codec-http-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-handler-proxy/4.1.42.Final/netty-handler-proxy-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-socks/4.1.42.Final/netty-codec-socks-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-services/1.25.0/grpc-services-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-protobuf/1.25.0/grpc-protobuf-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-protobuf-lite/1.25.0/grpc-protobuf-lite-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-stub/1.25.0/grpc-stub-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/protobuf/protobuf-java-util/3.10.0/protobuf-java-util-3.10.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-tcnative-boringssl-static/2.0.25.Final/netty-tcnative-boringssl-static-2.0.25.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-bolt-driver/3.2.20/neo4j-ogm-bolt-driver-3.2.20.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-api/3.2.20/neo4j-ogm-api-3.2.20.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.9/jackson-datatype-jdk8-2.9.9.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.9/jackson-datatype-jsr310-2.9.9.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/neo4j/driver/neo4j-java-driver/4.0.2/neo4j-java-driver-4.0.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-core/3.2.20/neo4j-ogm-core-3.2.20.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/commons/commons-lang3/3.8/commons-lang3-3.8.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/github/classgraph/classgraph/4.8.86/classgraph-4.8.86.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-web/2.4.2/spring-boot-starter-web-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter/2.4.2/spring-boot-starter-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot/2.4.2/spring-boot-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-core/5.3.3/spring-core-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-jcl/5.3.3/spring-jcl-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-context/5.3.3/spring-context-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-aop/5.3.3/spring-aop-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-beans/5.3.3/spring-beans-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-expression/5.3.3/spring-expression-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-autoconfigure/2.4.2/spring-boot-autoconfigure-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-logging/2.4.2/spring-boot-starter-logging-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-json/2.4.2/spring-boot-starter-json-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-web/5.3.3/spring-web-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-tomcat/2.4.2/spring-boot-starter-tomcat-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry> 
-  </component> 
-</module>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots />
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/src/main/java" />
+          <root url="file://$MODULE_DIR$/src/main/resources" />
+        </sourceRoots>
+      </configuration>
+    </facet>
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/target/classes" />
+      <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver" />
+      <excludeFolder url="file://$MODULE_DIR$/target/test-classes" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-core:3.2.20" level="project" />
+    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-api:3.2.20" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8" level="project" />
+    <orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.86" level="project" />
+    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-bolt-driver:3.2.20" level="project" />
+    <orderEntry type="library" name="Maven: org.neo4j.driver:neo4j-java-driver:4.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project" />
+    <orderEntry type="library" name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
+    <orderEntry type="library" name="Maven: com.google.android:annotations:4.1.1.4" level="project" />
+    <orderEntry type="library" name="Maven: io.perfmark:perfmark-api:0.19.0" level="project" />
+    <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project" />
+    <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-services:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:28.1-android" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-tcnative-boringssl-static:2.0.25.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java b/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java
index cf50fdc..4ddd116 100644
--- a/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java
+++ b/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java
@@ -300,17 +300,17 @@ public class Test {
 //        stub.createTenant(request);
 //
 
-        ResourceMetadataServiceGrpc.ResourceMetadataServiceBlockingStub resourceMetadataServiceBlockingStub = serviceClient.resource();
-
-        ResourcePermissionRequest permissionRequest = ResourcePermissionRequest
-                .newBuilder()
-                .setPermissionType("READ")
-                .setUsername("testuser")
-                .setResourceName("FileA")
-                .setTenantId("custos-cmcdclbywlxmc2ktzv0d-10000702")
-                .build();
-      ResourcePermissionResponse response =   resourceMetadataServiceBlockingStub.hasAccess(permissionRequest);
-        System.out.println(response.getAccessible());
+//        ResourceMetadataServiceGrpc.ResourceMetadataServiceBlockingStub resourceMetadataServiceBlockingStub = serviceClient.resource();
+//
+//        ResourcePermissionRequest permissionRequest = ResourcePermissionRequest
+//                .newBuilder()
+//                .setPermissionType("READ")
+//                .setUsername("testuser")
+//                .setResourceName("FileA")
+//                .setTenantId("custos-cmcdclbywlxmc2ktzv0d-10000702")
+//                .build();
+//      ResourcePermissionResponse response =   resourceMetadataServiceBlockingStub.hasAccess(permissionRequest);
+//        System.out.println(response.getAccessible());
 
 
 //        TenantMetadataAPIRequest tenantMetadataAPIRequest = TenantMetadataAPIRequest
@@ -319,14 +319,14 @@ public class Test {
 //                .build();
 //
 //        stub.deleteTenant(tenantMetadataAPIRequest);
-
-        tenant = tenant.toBuilder().setDomain("testing.com").build();
-
-        TenantMetadataAPIRequest tenantMetadataAPIRequest = TenantMetadataAPIRequest
-                .newBuilder()
-                .setTenant(tenant)
-                .build();
-        stub.createTenant(tenantMetadataAPIRequest);
+//
+//        tenant = tenant.toBuilder().setDomain("testing.com").build();
+//
+//        TenantMetadataAPIRequest tenantMetadataAPIRequest = TenantMetadataAPIRequest
+//                .newBuilder()
+//                .setTenant(tenant)
+//                .build();
+//        stub.createTenant(tenantMetadataAPIRequest);
 
     }
 }
diff --git a/metadata-service/db-service/db-service.iml b/metadata-service/db-service/db-service.iml
index bb91897..6cdc5c0 100644
--- a/metadata-service/db-service/db-service.iml
+++ b/metadata-service/db-service/db-service.iml
@@ -1,648 +1,94 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> 
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11"> 
-    <output url="file://$MODULE_DIR$/target/classes"/>  
-    <output-test url="file://$MODULE_DIR$/target/test-classes"/>  
-    <content url="file://$MODULE_DIR$"> 
-      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false"/>
-      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true"/>
-      <excludeFolder url="file://$MODULE_DIR$/target/classes"/>
-      <excludeFolder url="file://$MODULE_DIR$/target/test-classes"/>
-    </content>  
-    <orderEntry type="inheritedJdk"/>  
-    <orderEntry type="sourceFolder" forTests="false"/>  
-    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-core:3.2.20" level="project"/>  
-    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-api:3.2.20" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8" level="project"/>  
-    <orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.86" level="project"/>  
-    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-bolt-driver:3.2.20" level="project"/>  
-    <orderEntry type="library" name="Maven: org.neo4j.driver:neo4j-java-driver:4.0.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.android:annotations:4.1.1.4" level="project"/>  
-    <orderEntry type="library" name="Maven: io.perfmark:perfmark-api:0.19.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.42.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-services:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.guava:guava:28.1-android" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project"/>  
-    <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.25.0" level="project"/>  
-    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project"/>  
-    <orderEntry type="library" name="Maven: io.netty:netty-tcnative-boringssl-static:2.0.25.Final" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project"/>  
-    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project"/>  
-    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project"/>  
-    <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project"/>  
-    <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project"/>  
-    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project"/>  
-    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project"/>  
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project"/>  
-    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project"/>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/github/lognet/grpc-spring-boot-starter/3.5.1/grpc-spring-boot-starter-3.5.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-netty/1.25.0/grpc-netty-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-core/1.25.0/grpc-core-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-api/1.25.0/grpc-api-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-context/1.25.0/grpc-context-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/errorprone/error_prone_annotations/2.3.3/error_prone_annotations-2.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/guava/guava/28.1-android/guava-28.1-android.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/opencensus/opencensus-api/0.21.0/opencensus-api-0.21.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/opencensus/opencensus-contrib-grpc-metrics/0.21.0/opencensus-contrib-grpc-metrics-0.21.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-http2/4.1.42.Final/netty-codec-http2-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-common/4.1.42.Final/netty-common-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-buffer/4.1.42.Final/netty-buffer-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-transport/4.1.42.Final/netty-transport-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-resolver/4.1.42.Final/netty-resolver-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec/4.1.42.Final/netty-codec-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-handler/4.1.42.Final/netty-handler-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-http/4.1.42.Final/netty-codec-http-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-handler-proxy/4.1.42.Final/netty-handler-proxy-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-codec-socks/4.1.42.Final/netty-codec-socks-4.1.42.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-services/1.25.0/grpc-services-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-protobuf/1.25.0/grpc-protobuf-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-protobuf-lite/1.25.0/grpc-protobuf-lite-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/grpc/grpc-stub/1.25.0/grpc-stub-1.25.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/google/protobuf/protobuf-java-util/3.10.0/protobuf-java-util-3.10.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/netty/netty-tcnative-boringssl-static/2.0.25.Final/netty-tcnative-boringssl-static-2.0.25.Final.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-bolt-driver/3.2.20/neo4j-ogm-bolt-driver-3.2.20.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-api/3.2.20/neo4j-ogm-api-3.2.20.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.9/jackson-datatype-jdk8-2.9.9.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.9/jackson-datatype-jsr310-2.9.9.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/neo4j/driver/neo4j-java-driver/4.0.2/neo4j-java-driver-4.0.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/neo4j/neo4j-ogm-core/3.2.20/neo4j-ogm-core-3.2.20.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/commons/commons-lang3/3.8/commons-lang3-3.8.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/io/github/classgraph/classgraph/4.8.86/classgraph-4.8.86.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-web/2.4.2/spring-boot-starter-web-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter/2.4.2/spring-boot-starter-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot/2.4.2/spring-boot-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-core/5.3.3/spring-core-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-jcl/5.3.3/spring-jcl-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-context/5.3.3/spring-context-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-aop/5.3.3/spring-aop-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-beans/5.3.3/spring-beans-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-expression/5.3.3/spring-expression-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-autoconfigure/2.4.2/spring-boot-autoconfigure-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-logging/2.4.2/spring-boot-starter-logging-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-json/2.4.2/spring-boot-starter-json-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-web/5.3.3/spring-web-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/boot/spring-boot-starter-tomcat/2.4.2/spring-boot-starter-tomcat-2.4.2.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry>  
-    <orderEntry type="module-library"> 
-      <library> 
-        <CLASSES>
-          <root url="jar:///Users/isururanawaka/.m13/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/"/>
-        </CLASSES>
-      </library> 
-    </orderEntry> 
-  </component> 
-</module>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target/classes" />
+      <excludeFolder url="file://$MODULE_DIR$/target/test-classes" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-core:3.2.20" level="project" />
+    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-api:3.2.20" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8" level="project" />
+    <orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.86" level="project" />
+    <orderEntry type="library" name="Maven: org.neo4j:neo4j-ogm-bolt-driver:3.2.20" level="project" />
+    <orderEntry type="library" name="Maven: org.neo4j.driver:neo4j-java-driver:4.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project" />
+    <orderEntry type="library" name="Maven: io.github.lognet:grpc-spring-boot-starter:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-api:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
+    <orderEntry type="library" name="Maven: com.google.android:annotations:4.1.1.4" level="project" />
+    <orderEntry type="library" name="Maven: io.perfmark:perfmark-api:0.19.0" level="project" />
+    <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.21.0" level="project" />
+    <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.21.0" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.42.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-services:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:28.1-android" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.12.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.25.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.10.0" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-tcnative-boringssl-static:2.0.25.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/metadata-service/db-service/server/pom.xml b/metadata-service/db-service/server/pom.xml
index 29ccc22..85659e6 100644
--- a/metadata-service/db-service/server/pom.xml
+++ b/metadata-service/db-service/server/pom.xml
@@ -51,8 +51,8 @@
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <version>2.4.2</version>
+            <artifactId>spring-boot-starter</artifactId>
+            <version>${spring.boot.data.jpa}</version>
         </dependency>
         <dependency>
             <groupId>net.sf.dozer</groupId>
@@ -60,9 +60,9 @@
             <version>${dozer}</version>
         </dependency>
         <dependency>
-            <groupId>io.grpc</groupId>
-            <artifactId>grpc-services</artifactId>
-            <version>1.25.0</version>
+            <groupId>org.apache.custos</groupId>
+            <artifactId>custos-java-sdk</artifactId>
+            <version>${custos.clients.version}</version>
         </dependency>
     </dependencies>
 
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java
index 05ee7a4..352b722 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/AppConfig.java
@@ -10,6 +10,7 @@ import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.User;
 import org.apache.airavata.datalake.metadata.interceptors.Authenticator;
 import org.apache.airavata.datalake.metadata.interceptors.InterceptorPipelineExecutor;
 import org.apache.airavata.datalake.metadata.interceptors.ServiceInterceptor;
+import org.apache.custos.clients.CustosClientProvider;
 import org.dozer.DozerBeanMapper;
 import org.dozer.loader.api.BeanMappingBuilder;
 import org.lognet.springboot.grpc.GRpcGlobalInterceptor;
@@ -18,6 +19,7 @@ import org.neo4j.ogm.cypher.Filter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -32,6 +34,18 @@ public class AppConfig {
     @Autowired
     private Connector connector;
 
+    @Value("${custos.id}")
+    private String custosId;
+
+    @Value("${custos.secret}")
+    private String custosSec;
+
+    @Value("${custos.host}")
+    private String custosHost;
+
+    @Value("${custos.port}")
+    private int custosPort;
+
 
     @Bean
     public DozerBeanMapper dozerBeanMapper() {
@@ -76,95 +90,25 @@ public class AppConfig {
 
 
     @Bean
-    Tenant getTenant() {
-        LOGGER.info("Calling get tenant############");
-
-        Tenant tenant = new Tenant();
-        tenant.setTenantId("123456789");
-        tenant.setName("Tenant");
-
-        User user = new User();
-        user.setFirstName("UserA");
-        user.setUsername("user_a");
-
-        User user1 = new User();
-        user1.setFirstName("UserB");
-        user1.setUsername("user_b");
-
-        User user2 = new User();
-        user2.setFirstName("UserC");
-        user2.setUsername("user_c");
-
-        Group group = new Group();
-        group.setName("g1");
-
-        Group group2 = new Group();
-        group2.setName("g2");
-
-        Group group3 = new Group();
-        group3.setName("g3");
-
-        group.addChildGroup(group2, 0, 0, null);
-        group2.addChildGroup(group3, 0, 0, null);
-
-        Resource resource = new Resource();
-        resource.setName("R1");
-
-        Resource resource1 = new Resource();
-        resource1.setName("R2");
-
-        Resource resource2 = new Resource();
-        resource2.setName("R3");
-
-        Resource resource3 = new Resource();
-        resource3.setName("R4");
-
-        group.addChildUser(user, "ADMIN", 0, 0, null);
-        resource.addChildResource(resource1, 0, 0, null);
-        resource.shareWithAUser(user, "READ", 0, 0, null);
-
-        group2.addChildUser(user1, "ADMIN", 0, 0, null);
-        group3.addChildUser(user2, "ADMIN", 0, 0, null);
-
-        resource1.shareWithAGroup(group2, "WRITE", 0, 0, null);
-        resource2.shareWithAGroup(group3, "WRITE", 0, 0, null);
-
-        tenant.add(user, 0, 0, null);
-        tenant.add(group, 0, 0, null);
-        tenant.add(resource, 0, 0, null);
-
-        TenantServiceImpl tenantService = new TenantServiceImpl(connector);
-//        tenantService.createOrUpdate(tenant);
-
-        Filter filter = new Filter("name", ComparisonOperator.EQUALS, "R3");
-
-//        ResourceServiceImpl resourceService = new ResourceServiceImpl(connector);
-//        SearchOperator searchOperator = new SearchOperator();
-//        searchOperator.setKey("name");
-//        searchOperator.setValue("R2");
-//        searchOperator.setComparisonOperator(ComparisonOperator.EQUALS);
-//        List searchList = new ArrayList<>();
-//        searchList.add(searchOperator);
-//        List<Resource> collections = (List<Resource>) resourceService.search(searchList);
-//        LOGGER.info("Size", collections.size());
-//        for (Resource collection : collections) {
-//            LOGGER.info("#############" + collection.getName() + "Created At" + collection.getCreatedAt());
-//        }
-
-
-        return tenant;
-    }
-
-    @Bean
     public Stack<ServiceInterceptor> getInterceptorSet(Authenticator authInterceptor) {
         Stack<ServiceInterceptor> interceptors = new Stack<>();
         interceptors.add(authInterceptor);
         return interceptors;
     }
 
+
     @Bean
     @GRpcGlobalInterceptor
-    ServerInterceptor validationInterceptor(Stack<ServiceInterceptor> integrationServiceInterceptors) {
+    public ServerInterceptor validationInterceptor(Stack<ServiceInterceptor> integrationServiceInterceptors) {
         return new InterceptorPipelineExecutor(integrationServiceInterceptors);
     }
+
+
+    @Bean
+    public CustosClientProvider custosClientsFactory() {
+        return new CustosClientProvider.Builder().setServerHost(custosHost)
+                .setServerPort(custosPort)
+                .setClientId(custosId)
+                .setClientSec(custosSec).build();
+    }
 }
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/CustomNodeService.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/CustomNodeService.java
new file mode 100644
index 0000000..5b1b4b1
--- /dev/null
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/CustomNodeService.java
@@ -0,0 +1,8 @@
+package org.apache.airavata.datalake.metadata.backend.neo4j.curd.operators;
+
+import java.util.Map;
+
+public interface CustomNodeService {
+
+    Iterable<Map<String,Object>> execute(String query, Map<String, ?> parameterMap);
+}
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java
index 3d44dbd..389277e 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java
@@ -57,12 +57,14 @@ public abstract class GenericService<T> implements Service<T>, Closeable {
                 LOGGER.info("Setting filter###");
                 filter.set(new Filter(operator.getKey(), operator.getComparisonOperator(), operator.getValue()));
             } else {
-                filter.get().and(new Filter(operator.getKey(), operator.getComparisonOperator(), operator.getValue()));
+                Filter oldFilter = filter.get();
+                oldFilter.and(new Filter(operator.getKey(), operator.getComparisonOperator(), operator.getValue()));
+                filter.set(oldFilter);
             }
 
         });
         LOGGER.info("Loading ###" + getEntityType());
-        return session.loadAll(getEntityType(), filter.get(), DEPTH_ENTITY);
+        return session.loadAll(getEntityType(), filter.get(), 1);
     }
 
     @Override
@@ -80,6 +82,7 @@ public abstract class GenericService<T> implements Service<T>, Closeable {
     @Override
     public Iterable<Map<String, Object>> execute(String query, Map<String, ?> parameterMap) {
         return session.query(query, parameterMap);
+
     }
 
     @Override
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java
index fcdaf9e..44b2dd4 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GroupServiceImpl.java
@@ -1,7 +1,6 @@
 package org.apache.airavata.datalake.metadata.backend.neo4j.curd.operators;
 
 import org.apache.airavata.datalake.metadata.backend.Connector;
-import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Entity;
 import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Group;
 import org.neo4j.ogm.cypher.ComparisonOperator;
 
@@ -21,7 +20,7 @@ public class GroupServiceImpl extends GenericService<Group> implements GroupServ
     }
 
     @Override
-    public List<Group> find( Group group) {
+    public List<Group> find(Group group) {
         List<SearchOperator> searchOperatorList = new ArrayList<>();
         if (group.getTenantId() != null) {
             SearchOperator searchOperator = new SearchOperator();
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java
index 36b57eb..4d534ff 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceService.java
@@ -1,8 +1,14 @@
 package org.apache.airavata.datalake.metadata.backend.neo4j.curd.operators;
 
+import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource;
+
+import java.util.List;
+
 public interface ResourceService {
 
     public boolean hasAccess(String username, String resourceName, String permissionType, String tenantId);
 
+    public List<Resource> findResources(String username, String resourceName, String permissionType, String tenantId);
+
 
 }
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java
index fe7e2d9..05c8f52 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/ResourceServiceImpl.java
@@ -1,11 +1,12 @@
 package org.apache.airavata.datalake.metadata.backend.neo4j.curd.operators;
 
 import org.apache.airavata.datalake.metadata.backend.Connector;
-import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Entity;
 import org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource;
-import org.neo4j.ogm.cypher.ComparisonOperator;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 public class ResourceServiceImpl extends GenericService<Resource> implements ResourceService {
@@ -43,24 +44,50 @@ public class ResourceServiceImpl extends GenericService<Resource> implements Res
     }
 
     @Override
-    public List<Resource> find( Resource resource) {
-        List<SearchOperator> searchOperatorList = new ArrayList<>();
-        if (resource.getTenantId() != null) {
-            SearchOperator searchOperator = new SearchOperator();
-            searchOperator.setKey("tenant_id");
-            searchOperator.setValue(resource.getTenantId());
-            searchOperator.setComparisonOperator(ComparisonOperator.EQUALS);
-            searchOperatorList.add(searchOperator);
-        }
+    public List<Resource> findResources(String username, String resourceName, String permissionType, String tenantId) {
+        String query =
+                "match (u:User{name:$username})-[:MEMBER_OF|HAS_CHILD_GROUP*]->(g:Group{tenant_id:$tenantId})" +
+                        "-[r:HAS_ACCESS]->(m:Resource{tenant_id:$tenantId})-[l:HAS_CHILD_RESOURCE*]->  " +
+                        "(p:Resource{tenant_id:$tenantId}) " +
+                        "where r.permission_type=$permissionType   and m.name=$resourceName  or p.name=$resourceName return m,p";
+
+        Map<String, String> parameterMap = new HashMap<>();
+        parameterMap.put("username", username);
+        parameterMap.put("permissionType", permissionType);
+        parameterMap.put("resourceName", resourceName);
+        parameterMap.put("tenantId", tenantId);
+        Iterable<Map<String, Object>> mapIterable = super.execute(query, parameterMap);
+        List<Resource> resourceList = new ArrayList<>();
+        mapIterable.forEach(map -> {
+            if (!map.isEmpty()) {
+                map.forEach((key, val) -> {
+                    if (((Resource) val).getName().equals(resourceName)) {
+                        resourceList.add((Resource) val);
+                    }
+                });
+            }
+        });
+        return resourceList;
+    }
 
-        if (resource.getName() != null) {
-            SearchOperator searchOperator = new SearchOperator();
-            searchOperator.setKey("name");
-            searchOperator.setValue(resource.getName());
-            searchOperator.setComparisonOperator(ComparisonOperator.EQUALS);
-            searchOperatorList.add(searchOperator);
-        }
-        Collection<Resource> resources = super.search(searchOperatorList);
-        return new ArrayList<>(resources);
+    @Override
+    public List<Resource> find(Resource resource) {
+        String query =
+                "match (n:Resource) where n.tenant_id=$tenantId and n.name=$resourceName return n";
+        Map<String, String> parameterMap = new HashMap<>();
+        parameterMap.put("resourceName", resource.getName());
+        parameterMap.put("tenantId", resource.getTenantId());
+        Iterable<Map<String, Object>> mapIterable = super.execute(query, parameterMap);
+        List<Resource> resourceList = new ArrayList<>();
+        mapIterable.forEach(map -> {
+            if (!map.isEmpty()) {
+                map.forEach((key, val) -> {
+                    if (((Resource) val).getName().equals(resource.getName())) {
+                        resourceList.add((Resource) val);
+                    }
+                });
+            }
+        });
+        return resourceList;
     }
 }
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java
index 15ef54e..d75749a 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/handlers/ResourceServiceHandler.java
@@ -43,21 +43,31 @@ public class ResourceServiceHandler extends ResourceMetadataServiceGrpc.Resource
     public void getResource(ResourceMetadataAPIRequest request,
                             StreamObserver<Resource> responseObserver) {
         try {
-
+            AuthenticatedUser authenticatedUser = request.getAuthToken().getAuthenticatedUser();
             ResourceServiceImpl resourceService = new ResourceServiceImpl(connector);
             Resource resource = request.getResource();
-            org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource backRes = dozerBeanMapper
-                    .map(resource, org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource.class);
-            List<org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource> resourceList =
-                    resourceService.find(backRes);
-            Resource  foundResource = Resource
-            .newBuilder()
-                    .setName(resourceList.get(0).getName())
-                    .setCreatedAt(resourceList.get(0).getCreatedAt())
-                    .setTenantId(resourceList.get(0).getTenantId())
-                    .build();
-            responseObserver.onNext(foundResource);
-            responseObserver.onCompleted();
+            boolean accessible = resourceService.hasAccess(authenticatedUser.getUsername(),
+                    resource.getName(), "READ",
+                    resource.getTenantId());
+
+            //TODO: move to full query
+            if(accessible) {
+                org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource backRes = dozerBeanMapper
+                        .map(resource, org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource.class);
+                List<org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes.Resource> resourceList =
+                        resourceService.find(backRes);
+                Resource foundResource = Resource
+                        .newBuilder()
+                        .setName(resourceList.get(0).getName())
+                        .setCreatedAt(resourceList.get(0).getCreatedAt())
+                        .setTenantId(resourceList.get(0).getTenantId())
+                        .build();
+                responseObserver.onNext(foundResource);
+                responseObserver.onCompleted();
+            } else {
+                responseObserver.onNext(null);
+                responseObserver.onCompleted();
+            }
 
         } catch (Exception ex) {
             String msg = "Exception occurred while fetching tenant " + ex;
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java
index c530e73..f2f87e0 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/Authenticator.java
@@ -1,19 +1,114 @@
 package org.apache.airavata.datalake.metadata.interceptors;
 
 import io.grpc.Metadata;
-import org.apache.airavata.datalake.metadata.AppConfig;
+import org.apache.airavata.datalake.metadata.service.*;
+import org.apache.custos.clients.CustosClientProvider;
+import org.apache.custos.identity.management.client.IdentityManagementClient;
+import org.apache.custos.identity.service.User;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.io.IOException;
+import java.util.Optional;
+
 @Component
 public class Authenticator implements ServiceInterceptor {
-    private static final Logger LOGGER = LoggerFactory.getLogger(AppConfig.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(Authenticator.class);
+
+    @Autowired
+    private CustosClientProvider custosClientProvider;
+
 
     @Override
-    public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) {
+    public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) throws IOException {
+        if (msg instanceof TenantMetadataAPIRequest) {
+            return msg;
+        }
+        IdentityManagementClient identityManagementClient = custosClientProvider.getIdentityManagementClient();
+        Optional<String> token = getAccessToken(msg);
+        LOGGER.info("Token " + token.get());
+        User user = identityManagementClient.getUser(token.get());
+        AuthenticatedUser authenticatedUser = AuthenticatedUser.newBuilder()
+                .setUsername(user.getUsername())
+                .setFirstName(user.getFirstName())
+                .setLastName(user.getLastName())
+                .setEmailAddress(user.getEmailAddress())
+                .build();
+        return (ReqT) setAuthenticatedUser(msg, authenticatedUser);
 
-        return msg;
     }
 
+
+    private Optional<String> getAccessToken(Object msg) {
+
+        if (msg instanceof TenantMetadataAPIRequest) {
+            return Optional.of(((TenantMetadataAPIRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof UserMetadataAPIRequest) {
+            return Optional.of(((UserMetadataAPIRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof GroupMetadataAPIRequest) {
+            return Optional.of(((GroupMetadataAPIRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof ResourceMetadataAPIRequest) {
+            return Optional.of(((ResourceMetadataAPIRequest) msg).getAuthToken().getAccessToken());
+        }
+
+        return Optional.empty();
+    }
+
+    private Object setAuthenticatedUser(Object msg, AuthenticatedUser user) {
+
+        if (msg instanceof TenantMetadataAPIRequest) {
+            MetadataServiceAuthToken metadataServiceAuthToken = ((TenantMetadataAPIRequest) msg)
+                    .getAuthToken();
+            metadataServiceAuthToken = metadataServiceAuthToken
+                    .toBuilder()
+                    .setAuthenticatedUser(user)
+                    .build();
+
+            return ((TenantMetadataAPIRequest) msg)
+                    .toBuilder()
+                    .setAuthToken(metadataServiceAuthToken).build();
+
+        } else if (msg instanceof UserMetadataAPIRequest) {
+            MetadataServiceAuthToken metadataServiceAuthToken = ((UserMetadataAPIRequest) msg)
+                    .getAuthToken();
+            metadataServiceAuthToken = metadataServiceAuthToken
+                    .toBuilder()
+                    .setAuthenticatedUser(user)
+                    .build();
+
+            return ((UserMetadataAPIRequest) msg)
+                    .toBuilder()
+                    .setAuthToken(metadataServiceAuthToken).build();
+
+        } else if (msg instanceof GroupMetadataAPIRequest) {
+            MetadataServiceAuthToken metadataServiceAuthToken = ((GroupMetadataAPIRequest) msg)
+                    .getAuthToken();
+            metadataServiceAuthToken = metadataServiceAuthToken
+                    .toBuilder()
+                    .setAuthenticatedUser(user)
+                    .build();
+
+            return ((GroupMetadataAPIRequest) msg)
+                    .toBuilder()
+                    .setAuthToken(metadataServiceAuthToken).build();
+
+        } else if (msg instanceof ResourceMetadataAPIRequest) {
+            MetadataServiceAuthToken metadataServiceAuthToken = ((ResourceMetadataAPIRequest) msg)
+                    .getAuthToken();
+            metadataServiceAuthToken = metadataServiceAuthToken
+                    .toBuilder()
+                    .setAuthenticatedUser(user)
+                    .build();
+
+            return ((ResourceMetadataAPIRequest) msg)
+                    .toBuilder()
+                    .setAuthToken(metadataServiceAuthToken).build();
+
+        }
+
+        return msg;
+
+    }
 }
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java
index 7e0e72a..3ccafca 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/InterceptorPipelineExecutor.java
@@ -27,7 +27,7 @@ public class InterceptorPipelineExecutor implements ServerInterceptor {
         String methodName = fullMethod.split("/")[1];
         String serviceName = fullMethod.split("/")[0];
 
-        LOGGER.debug("Calling method : " + serverCall.getMethodDescriptor().getFullMethodName());
+        LOGGER.info("Calling method : " + serverCall.getMethodDescriptor().getFullMethodName());
         metadata.put(Metadata.Key.of("service-name", Metadata.ASCII_STRING_MARSHALLER), serviceName);
 
         return new ForwardingServerCallListener.SimpleForwardingServerCallListener<ReqT>(serverCallHandler.startCall(serverCall, metadata)) {
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java
index ba05742..51f3082 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors/ServiceInterceptor.java
@@ -3,5 +3,5 @@ package org.apache.airavata.datalake.metadata.interceptors;
 import io.grpc.Metadata;
 
 public interface ServiceInterceptor {
-    public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg);
+    public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) throws Exception;
 }
diff --git a/metadata-service/db-service/server/src/main/resources/application.properties b/metadata-service/db-service/server/src/main/resources/application.properties
index 0b24325..94db252 100644
--- a/metadata-service/db-service/server/src/main/resources/application.properties
+++ b/metadata-service/db-service/server/src/main/resources/application.properties
@@ -21,3 +21,7 @@ grpc.port=9090
 spring.neo4j.uri=bolt://neo4j:blastcovid19@149.165.156.173
 spring.neo4j.authentication.username=neo4j
 spring.neo4j.authentication.password=blastcovid19
+custos.id=custos-2zuomcugra3ebgsqtzmf-10000514
+custos.secret=mupUhF4JL0S3IFHBjfhiTfLJS1NgSWfvkCj3l6c7
+custos.host=custos.scigap.org
+custos.port=31499
\ No newline at end of file
diff --git a/metadata-service/db-service/stub/pom.xml b/metadata-service/db-service/stub/pom.xml
index a04c02b..1309d43 100644
--- a/metadata-service/db-service/stub/pom.xml
+++ b/metadata-service/db-service/stub/pom.xml
@@ -22,8 +22,27 @@
             <artifactId>protobuf-java</artifactId>
             <version>${protobuf.java}</version>
         </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-stub</artifactId>
+            <version>${io.grpc.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-protobuf</artifactId>
+            <version>${io.grpc.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+            <version>${io.grpc.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+            <version>${javax.annotation.version}</version>
+        </dependency>
     </dependencies>
-
     <build>
         <extensions>
             <extension>
diff --git a/metadata-service/db-service/stub/src/main/proto/common/Common.proto b/metadata-service/db-service/stub/src/main/proto/common/Common.proto
index b631661..f5c93b9 100644
--- a/metadata-service/db-service/stub/src/main/proto/common/Common.proto
+++ b/metadata-service/db-service/stub/src/main/proto/common/Common.proto
@@ -5,8 +5,14 @@ package org.apache.airavata.datalake.metadata.service;
 
 import "google/api/annotations.proto";
 
-
+message AuthenticatedUser  {
+    string username = 2;
+    string firstName = 3;
+    string lastName = 4;
+    string emailAddress = 5;
+}
 
 message MetadataServiceAuthToken {
     string access_token = 1;
+    AuthenticatedUser authenticated_user = 2;
 }
\ No newline at end of file
diff --git a/metadata-service/pom.xml b/metadata-service/pom.xml
index 1ea277f..c49544e 100644
--- a/metadata-service/pom.xml
+++ b/metadata-service/pom.xml
@@ -16,43 +16,5 @@
         <module>db-service</module>
         <module>data-builders</module>
     </modules>
-    <dependencies>
 
-        <dependency>
-            <groupId>org.neo4j</groupId>
-            <artifactId>neo4j-ogm-core</artifactId>
-            <version>3.2.20</version>
-        </dependency>
-        <dependency>
-            <groupId>org.neo4j</groupId>
-            <artifactId>neo4j-ogm-bolt-driver</artifactId>
-            <version>3.2.20</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.protobuf</groupId>
-            <artifactId>protobuf-java</artifactId>
-            <version>${protobuf.java}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.github.lognet</groupId>
-            <artifactId>grpc-spring-boot-starter</artifactId>
-            <version>${grpc.spring.boot}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <version>2.4.2</version>
-        </dependency>
-        <dependency>
-            <groupId>net.sf.dozer</groupId>
-            <artifactId>dozer</artifactId>
-            <version>${dozer}</version>
-        </dependency>
-    </dependencies>
 </project>
\ No newline at end of file