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

[airavata-data-lake] 21/42: Authentication interceptor

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

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

commit 00ef7941c70af166a757925a5a02314d6be0c433
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Thu Mar 25 21:35:50 2021 -0400

    Authentication interceptor
---
 .gitignore                                         |   12 +-
 airavata-data-lake.ipr                             |   10 +-
 data-resource-management-service/drms-api/pom.xml  |   73 +
 .../java/org/apache/airavata/drms/api/Client.java  |   70 +
 .../java/org/apache/airavata/drms/api/Config.java  |   68 +
 .../apache/airavata/drms/api/DRMSApiRunner.java    |   31 +
 .../drms/api/handlers/GroupServiceHandler.java     |   95 ++
 .../drms/api/handlers/ResourceServiceHandler.java  |  162 +++
 .../handlers/StoragePreferenceServiceHandler.java  |  127 ++
 .../drms/api/handlers/StorageServiceHandler.java   |  139 ++
 .../drms/api/interceptors/Authenticator.java       |   78 ++
 .../interceptors/InterceptorPipelineExecutor.java  |   69 +
 .../drms/api/interceptors/ServiceInterceptor.java  |    7 +
 .../src/main/resources/application.properties      |   27 +
 .../drms-api/src/main/resources/logback.xml        |   45 +
 data-resource-management-service/drms-core/pom.xml |   63 +
 .../apache/airavata/drms/core/Neo4JConnector.java  |   66 +
 .../drms/core/constants/MetadataConstants.java     |   22 +
 .../drms/core/constants/ResourceConstants.java     |   21 +
 .../drms/core/constants/StorageConstants.java      |   24 +
 .../core/constants/StoragePreferenceConstants.java |   25 +
 .../core/deserializer/AnyStorageDeserializer.java  |   81 ++
 .../AnyStoragePreferenceDeserializer.java          |   93 ++
 .../deserializer/GenericResourceDeserializer.java  |   89 ++
 .../core/deserializer/MetadataDeserializer.java    |   54 +
 .../drms/core/serializer/AnyStorageSerializer.java |   58 +
 .../drms-stubs}/pom.xml                            |  138 +-
 .../drms-stubs/src/main/proto/Common.proto         |   27 +
 .../drms-stubs/src/main/proto/group/Group.proto    |   46 +
 .../src/main/proto/group/GroupService.proto        |   86 ++
 .../src/main/proto/preference/S3Preference.proto   |   35 +
 .../src/main/proto/preference/SSHPreference.proto  |   37 +
 .../preference/StoragePreferenceService.proto      |  115 ++
 .../src/main/proto/resource/DRMSResource.proto     |   34 +
 .../main/proto/resource/DRMSResourceService.proto  |  146 ++
 .../src/main/proto/sharing/Sharing.proto           |   28 +
 .../src/main/proto/storage/S3Storage.proto         |   29 +
 .../src/main/proto/storage/SSHStorage.proto        |   29 +
 .../src/main/proto/storage/StorageService.proto    |  128 ++
 data-resource-management-service/pom.xml           |   45 +
 metadata-service/data-builders/data-builders.iml   |  806 ++++++++++-
 metadata-service/data-builders/pom.xml             |    4 +-
 metadata-service/db-service/client/client.iml      |  733 ++++++++--
 .../db-service/client/db-service-client.iml        |   16 -
 metadata-service/db-service/client/pom.xml         |    2 +-
 metadata-service/db-service/db-service.iml         |  446 +++++-
 metadata-service/db-service/pom.xml                |    6 +-
 .../db-service/server/db-service-server.iml        |  462 -------
 metadata-service/db-service/server/server.iml      |  733 ++++++++--
 .../db-service/stub/db-service-stub.iml            |   84 --
 metadata-service/db-service/stub/pom.xml           |    2 +-
 metadata-service/db-service/stub/stub.iml          |  739 ++++++++--
 metadata-service/metadata-service.iml              | 1421 +++++++++-----------
 metadata-service/pom.xml                           |   19 +-
 pom.xml                                            |   18 +-
 55 files changed, 6220 insertions(+), 1803 deletions(-)

diff --git a/.gitignore b/.gitignore
index 753237f..f07bdb5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,4 +6,14 @@ data-orchestrator/data-orchestrator-core/data-orchestrator-core.iml
 target/
 data-orchestrator/target
 data-orchestrator/data-orchestrator-core/target
-data-orchestrator/data-orchestrator-api/target
\ No newline at end of file
+data-orchestrator/data-orchestrator-api/target
+/data-resource-management-service/data-resource-management-service.iml
+/data-resource-management-service/drms-stubs/drms-stubs.iml
+/data-resource-management-service/drms-api/drms-api.iml
+/data-resource-management-service/drms-core/drms-core.iml
+/metadata-service/metadata-service.iml
+/metadata-service/data-builders/data-builders.iml
+/metadata-service/db-service/db-service.iml
+/metadata-service/db-service/client/client.iml
+/metadata-service/db-service/server/server.iml
+/metadata-service/db-service/stub/stub.iml
diff --git a/airavata-data-lake.ipr b/airavata-data-lake.ipr
index d5244b1..a865b23 100644
--- a/airavata-data-lake.ipr
+++ b/airavata-data-lake.ipr
@@ -102,10 +102,16 @@ under the License.
       <module filepath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-api/data-orchestrator-api.iml"/>
       <module filepath="$PROJECT_DIR$/data-orchestrator/data-orchestrator-core/data-orchestrator-core.iml"/>
       <module filepath="$PROJECT_DIR$/data-orchestrator/data-orchestrator.iml"/>
-      <module filepath="$PROJECT_DIR$/metadata-service/metadata-service.iml"/>
+      <module filepath="$PROJECT_DIR$/metadata-service/db-service/client/client.iml"/>
       <module filepath="$PROJECT_DIR$/metadata-service/db-service/server/server.iml"/>
       <module filepath="$PROJECT_DIR$/metadata-service/db-service/stub/stub.iml"/>
-      <module filepath="$PROJECT_DIR$/metadata-service/db-service/client/client.iml"/>
+      <module filepath="$PROJECT_DIR$/metadata-service/db-service/db-service.iml"/>
+      <module filepath="$PROJECT_DIR$/metadata-service/data-builders/data-builders.iml"/>
+      <module filepath="$PROJECT_DIR$/metadata-service/metadata-service.iml"/>
+      <module filepath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/drms-stubs.iml"/>
+      <module filepath="$PROJECT_DIR$/data-resource-management-service/drms-core/drms-core.iml"/>
+      <module filepath="$PROJECT_DIR$/data-resource-management-service/drms-api/drms-api.iml"/>
+      <module filepath="$PROJECT_DIR$/data-resource-management-service/data-resource-management-service.iml"/>
     </modules> 
   </component>  
   <UsedPathMacros> 
diff --git a/data-resource-management-service/drms-api/pom.xml b/data-resource-management-service/drms-api/pom.xml
new file mode 100644
index 0000000..57df7a5
--- /dev/null
+++ b/data-resource-management-service/drms-api/pom.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>data-resource-management-service</artifactId>
+        <groupId>org.apache.airavata.data.lake</groupId>
+        <version>0.01-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>drms-api</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.airavata.data.lake</groupId>
+            <artifactId>drms-stubs</artifactId>
+            <version>${project.version}</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>${spring.boot.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>net.sf.dozer</groupId>
+            <artifactId>dozer</artifactId>
+            <version>${dozer}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata.data.lake</groupId>
+            <artifactId>drms-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.apache.custos</groupId>-->
+<!--            <artifactId>custos-java-sdk</artifactId>-->
+<!--            <version>${custos.clients.version}</version>-->
+<!--        </dependency>-->
+    </dependencies>
+</project>
\ No newline at end of file
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java
new file mode 100644
index 0000000..8e589ef
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.api;
+
+import io.grpc.ManagedChannel;
+import io.grpc.ManagedChannelBuilder;
+import org.apache.airavata.datalake.drms.DRMSServiceAuthToken;
+import org.apache.airavata.datalake.drms.groups.*;
+import org.apache.airavata.datalake.drms.storage.*;
+
+public class Client {
+    public static void main(String ar[]) {
+
+        DRMSServiceAuthToken token1 = DRMSServiceAuthToken.newBuilder().setAccessToken("Token-1").build();
+        DRMSServiceAuthToken token2 = DRMSServiceAuthToken.newBuilder().setAccessToken("Token-2").build();
+
+        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 6565).usePlaintext().build();
+        StorageServiceGrpc.StorageServiceBlockingStub storageClient = StorageServiceGrpc.newBlockingStub(channel);
+
+        System.out.println("List for user 1");
+        StorageSearchResponse storages = storageClient.searchStorage(
+                StorageSearchRequest.newBuilder().setAuthToken(token1).build());
+        System.out.println(storages);
+
+        System.out.println("List for user 2");
+        storages = storageClient.searchStorage(
+                StorageSearchRequest.newBuilder().setAuthToken(token2).build());
+        System.out.println(storages);
+
+        System.out.println("Fetch");
+        StorageFetchResponse fetchResponse = storageClient.fetchStorage(
+                StorageFetchRequest.newBuilder().setAuthToken(token1).setStorageId("staging_pga_storage").buildPartial());
+
+        System.out.println(fetchResponse);
+
+        GroupServiceGrpc.GroupServiceBlockingStub groupClient = GroupServiceGrpc.newBlockingStub(channel);
+
+        System.out.println("User");
+        FetchCurrentUserResponse currentUser = groupClient.fetchCurrentUser(
+                FetchCurrentUserRequest.newBuilder().setAuthToken(token1).build());
+        System.out.println(currentUser);
+
+        System.out.println("Groups");
+        FetchCurrentUserGroupsResponse currentGroups = groupClient.fetchCurrentUserGroups(
+                FetchCurrentUserGroupsRequest.newBuilder().setAuthToken(token2).build());
+        System.out.println(currentGroups);
+
+        System.out.println("Adding metadata");
+        storageClient.addStorageMetadata(AddStorageMetadataRequest.newBuilder()
+                .setAuthToken(token1)
+                .setStorageId("prod_pga")
+                .setKey("createdOn")
+                .setValue("02/15/2021")
+                .build());
+    }
+}
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Config.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Config.java
new file mode 100644
index 0000000..d0522fd
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Config.java
@@ -0,0 +1,68 @@
+package org.apache.airavata.drms.api;
+
+import io.grpc.ServerInterceptor;
+import org.apache.airavata.drms.api.interceptors.Authenticator;
+import org.apache.airavata.drms.api.interceptors.InterceptorPipelineExecutor;
+import org.apache.airavata.drms.api.interceptors.ServiceInterceptor;
+import org.apache.airavata.drms.core.Neo4JConnector;
+import org.apache.custos.clients.CustosClientProvider;
+import org.lognet.springboot.grpc.GRpcGlobalInterceptor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Stack;
+
+@Configuration
+public class Config {
+
+    @org.springframework.beans.factory.annotation.Value("${neo4j.server.uri}")
+    public String neo4jServerUri;
+
+    @org.springframework.beans.factory.annotation.Value("${neo4j.server.user}")
+    public String neo4jServerUser;
+
+    @org.springframework.beans.factory.annotation.Value("${neo4j.server.password}")
+    public String neo4jServerPassword;
+
+    @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 Neo4JConnector neo4JConnector() {
+        return new Neo4JConnector(neo4jServerUri, neo4jServerUser, neo4jServerPassword);
+    }
+
+    @Bean
+    public Stack<ServiceInterceptor> getInterceptorSet(Authenticator authInterceptor) {
+        Stack<ServiceInterceptor> interceptors = new Stack<>();
+        interceptors.add(authInterceptor);
+        return interceptors;
+    }
+
+    @Bean
+    @GRpcGlobalInterceptor
+    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/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
new file mode 100644
index 0000000..57f69a5
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/DRMSApiRunner.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.api;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+@ComponentScan(basePackages = {"org.apache.airavata.drms"})
+@SpringBootApplication
+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/GroupServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/GroupServiceHandler.java
new file mode 100644
index 0000000..5ad81d1
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/GroupServiceHandler.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.api.handlers;
+
+import io.grpc.stub.StreamObserver;
+import org.apache.airavata.datalake.drms.groups.*;
+import org.lognet.springboot.grpc.GRpcService;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@GRpcService
+public class GroupServiceHandler extends GroupServiceGrpc.GroupServiceImplBase {
+
+    @Override
+    public void fetchCurrentUser(FetchCurrentUserRequest request, StreamObserver<FetchCurrentUserResponse> responseObserver) {
+        try {
+            User user = getUserByAccessToken(request.getAuthToken().getAccessToken());
+            responseObserver.onNext(FetchCurrentUserResponse.newBuilder().setUser(user).build());
+            responseObserver.onCompleted();
+        } catch (Exception e) {
+            responseObserver.onError(e);
+        }
+    }
+
+    @Override
+    public void fetchUser(FetchUserRequest request, StreamObserver<FetchUserResponse> responseObserver) {
+        super.fetchUser(request, responseObserver);
+    }
+
+    @Override
+    public void fetchUserGroups(FetchUserGroupsRequest request, StreamObserver<FetchUserGroupsResponse> responseObserver) {
+        super.fetchUserGroups(request, responseObserver);
+    }
+
+    @Override
+    public void fetchCurrentUserGroups(FetchCurrentUserGroupsRequest request,
+                                       StreamObserver<FetchCurrentUserGroupsResponse> responseObserver) {
+        try {
+            User user = getUserByAccessToken(request.getAuthToken().getAccessToken());
+            List<Group> userGroups = getUserGroups(user.getUserId());
+            responseObserver.onNext(FetchCurrentUserGroupsResponse.newBuilder().addAllGroups(userGroups).build());
+            responseObserver.onCompleted();
+
+        } catch (Exception e) {
+            responseObserver.onError(e);
+        }
+    }
+
+    private User getUserByAccessToken(String accessToken) throws Exception {
+        switch (accessToken) {
+            case "Token-1":
+                return User.newBuilder().setUserId("user-1").setUsername("bob").setFirstName("Bob").setLastName("Leech")
+                        .setEmailAddress("bob@gmail.com").build();
+            case "Token-2":
+                return User.newBuilder().setUserId("user-2").setUsername("alice").setFirstName("Alice").setLastName("Ann")
+                        .setEmailAddress("alice@gmail.com").build();
+        }
+        throw new Exception("No user for given access token");
+    }
+
+    private List<Group> getUserGroups(String userId) {
+        Map<String, Group> groups = new HashMap<>();
+        List<Group> groupList = new ArrayList<>();
+        groups.put("group-1", Group.newBuilder().setGroupId("group-1").setName("Teachers").setDescription("Teachers").build());
+        groups.put("group-2", Group.newBuilder().setGroupId("group-2").setName("Students").setDescription("Students").build());
+
+        switch (userId) {
+            case "user-1":
+                groupList.add(groups.get("group-1"));
+                groupList.add(groups.get("group-2"));
+                break;
+            case "user-2":
+                groupList.add(groups.get("group-2"));
+                break;
+        }
+        return groupList;
+    }
+}
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
new file mode 100644
index 0000000..9917ee8
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.api.handlers;
+
+import com.google.protobuf.Empty;
+import io.grpc.ManagedChannel;
+import io.grpc.ManagedChannelBuilder;
+import io.grpc.stub.StreamObserver;
+import org.apache.airavata.datalake.drms.DRMSServiceAuthToken;
+import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest;
+import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse;
+import org.apache.airavata.datalake.drms.groups.GroupServiceGrpc;
+import org.apache.airavata.datalake.drms.groups.User;
+import org.apache.airavata.datalake.drms.resource.GenericResource;
+import org.apache.airavata.datalake.drms.storage.*;
+import org.apache.airavata.drms.core.Neo4JConnector;
+import org.apache.airavata.drms.core.constants.ResourceConstants;
+import org.apache.airavata.drms.core.constants.StorageConstants;
+import org.apache.airavata.drms.core.deserializer.AnyStoragePreferenceDeserializer;
+import org.apache.airavata.drms.core.deserializer.GenericResourceDeserializer;
+import org.apache.airavata.drms.core.deserializer.MetadataDeserializer;
+import org.lognet.springboot.grpc.GRpcService;
+import org.neo4j.driver.Record;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+@GRpcService
+public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceImplBase {
+
+    private static final Logger logger = LoggerFactory.getLogger(ResourceServiceHandler.class);
+
+    @Autowired
+    private Neo4JConnector neo4JConnector;
+
+    @org.springframework.beans.factory.annotation.Value("${group.service.host}")
+    private String groupServiceHost;
+
+    @org.springframework.beans.factory.annotation.Value("${group.service.port}")
+    private int groupServicePort;
+
+    private User getUser(DRMSServiceAuthToken authToken) {
+        ManagedChannel channel = ManagedChannelBuilder.forAddress(groupServiceHost, groupServicePort).usePlaintext().build();
+        GroupServiceGrpc.GroupServiceBlockingStub groupClient = GroupServiceGrpc.newBlockingStub(channel);
+        FetchCurrentUserResponse userResponse = groupClient.fetchCurrentUser(
+                FetchCurrentUserRequest.newBuilder().setAuthToken(authToken).build());
+        return userResponse.getUser();
+    }
+
+    @Override
+    public void fetchResource(ResourceFetchRequest request, StreamObserver<ResourceFetchResponse> responseObserver) {
+        User callUser = getUser(request.getAuthToken());
+
+        // 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 res.resourceId = '" + request.getResourceId() + "' and u.userId = '"
+                        + callUser.getUserId() + "' return distinct res, sp, s");
+
+        if (!records.isEmpty()) {
+            try {
+                List<GenericResource> genericResourceList = GenericResourceDeserializer.deserializeList(records);
+                responseObserver.onNext(ResourceFetchResponse.newBuilder().setResource(genericResourceList.get(0)).build());
+                responseObserver.onCompleted();
+            } catch (Exception e) {
+
+                logger.error("Errored while fetching resource with id {}", request.getResourceId(), e);
+                responseObserver.onError(new Exception("Errored while fetching resource with id "
+                        + request.getResourceId() + ". Msg " + e.getMessage()));
+            }
+        } else {
+            logger.error("Could not find a generic resource with id {}", request.getResourceId());
+            responseObserver.onError(new Exception("Could not find a generic resource with id "
+                    + request.getResourceId()));
+        }
+    }
+
+    @Override
+    public void createResource(ResourceCreateRequest request, StreamObserver<ResourceCreateResponse> responseObserver) {
+        super.createResource(request, responseObserver);
+    }
+
+    @Override
+    public void updateResource(ResourceUpdateRequest request, StreamObserver<ResourceUpdateResponse> responseObserver) {
+        super.updateResource(request, responseObserver);
+    }
+
+    @Override
+    public void deletePreferenceStorage(ResourceDeleteRequest request, StreamObserver<Empty> responseObserver) {
+        super.deletePreferenceStorage(request, responseObserver);
+    }
+
+    @Override
+    public void searchResource(ResourceSearchRequest request, StreamObserver<ResourceSearchResponse> responseObserver) {
+        User callUser = getUser(request.getAuthToken());
+
+        // 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");
+        try {
+            List<GenericResource> genericResourceList = GenericResourceDeserializer.deserializeList(records);
+            ResourceSearchResponse.Builder builder = ResourceSearchResponse.newBuilder();
+            builder.addAllResources(genericResourceList);
+            responseObserver.onNext(builder.build());
+            responseObserver.onCompleted();
+
+        } catch (Exception e) {
+            logger.error("Errored while searching generic resources; Message: {}", e.getMessage(), e);
+            responseObserver.onError(e);
+        }
+    }
+
+    @Override
+    public void addResourceMetadata(AddResourceMetadataRequest request, StreamObserver<Empty> responseObserver) {
+        User callUser = getUser(request.getAuthToken());
+        this.neo4JConnector.createMetadataNode(ResourceConstants.RESOURCE_LABEL, "resourceId",
+                request.getResourceId(), callUser.getUserId(),
+                request.getMetadata().getKey(), request.getMetadata().getValue());
+        responseObserver.onNext(Empty.getDefaultInstance());
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void fetchResourceMetadata(FetchResourceMetadataRequest request, StreamObserver<FetchResourceMetadataResponse> responseObserver) {
+        User callUser = getUser(request.getAuthToken());
+        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");
+        try {
+            List<MetadataNode> metadataNodes = MetadataDeserializer.deserializeList(records);
+            if (metadataNodes.size() == 1) {
+                responseObserver.onNext(FetchResourceMetadataResponse.newBuilder().setMetadataNode(metadataNodes.get(0)).build());
+                responseObserver.onCompleted();
+            } else {
+                logger.error("No metadata entry for resource {}", request.getResourceId());
+                responseObserver.onError(new Exception("No metadata entry for resource " + request.getResourceId()));
+            }
+        } catch (Exception e) {
+            logger.error("Errored while fetching metadata for resource with id {}", request.getResourceId(), e);
+            responseObserver.onError(new Exception("Errored while fetching metadata for resource with id "
+                    + request.getResourceId() + ". Msg " + e.getMessage()));
+        }
+    }
+}
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
new file mode 100644
index 0000000..ab560c3
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.api.handlers;
+
+import com.google.protobuf.Empty;
+import io.grpc.ManagedChannel;
+import io.grpc.ManagedChannelBuilder;
+import io.grpc.stub.StreamObserver;
+import org.apache.airavata.datalake.drms.DRMSServiceAuthToken;
+import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest;
+import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse;
+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.deserializer.AnyStoragePreferenceDeserializer;
+import org.lognet.springboot.grpc.GRpcService;
+import org.neo4j.driver.Record;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+@GRpcService
+public class StoragePreferenceServiceHandler extends StoragePreferenceServiceGrpc.StoragePreferenceServiceImplBase {
+
+    private static final Logger logger = LoggerFactory.getLogger(StoragePreferenceServiceHandler.class);
+
+    @Autowired
+    private Neo4JConnector neo4JConnector;
+
+    @org.springframework.beans.factory.annotation.Value("${group.service.host}")
+    private String groupServiceHost;
+
+    @org.springframework.beans.factory.annotation.Value("${group.service.port}")
+    private int groupServicePort;
+
+
+    private User getUser(DRMSServiceAuthToken authToken) {
+        ManagedChannel channel = ManagedChannelBuilder.forAddress(groupServiceHost, groupServicePort).usePlaintext().build();
+        GroupServiceGrpc.GroupServiceBlockingStub groupClient = GroupServiceGrpc.newBlockingStub(channel);
+        FetchCurrentUserResponse userResponse = groupClient.fetchCurrentUser(
+                FetchCurrentUserRequest.newBuilder().setAuthToken(authToken).build());
+        return userResponse.getUser();
+    }
+
+    @Override
+    public void fetchStoragePreference(StoragePreferenceFetchRequest request, StreamObserver<StoragePreferenceFetchResponse> responseObserver) {
+        User callUser = getUser(request.getAuthToken());
+
+        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");
+
+        if (!records.isEmpty()) {
+            try {
+                List<AnyStoragePreference> storagePrefList = AnyStoragePreferenceDeserializer.deserializeList(records);
+                responseObserver.onNext(StoragePreferenceFetchResponse.newBuilder().setStoragePreference(
+                        storagePrefList.get(0)).build());
+                responseObserver.onCompleted();
+            } catch (Exception e) {
+
+                logger.error("Errored while fetching storage preference with id {}", request.getStoragePreferenceId(), e);
+                responseObserver.onError(new Exception("Errored while fetching storage preference with id "
+                        + request.getStoragePreferenceId() + ". Msg " + e.getMessage()));
+            }
+        } else {
+            logger.error("Could not find a storage preference with id {}", request.getStoragePreferenceId());
+            responseObserver.onError(new Exception("Could not find a storage preference with id "
+                    + request.getStoragePreferenceId()));
+        }
+    }
+
+    @Override
+    public void createStoragePreference(StoragePreferenceCreateRequest request, StreamObserver<StoragePreferenceCreateResponse> responseObserver) {
+        super.createStoragePreference(request, responseObserver);
+    }
+
+    @Override
+    public void updateStoragePreference(StoragePreferenceUpdateRequest request, StreamObserver<StoragePreferenceUpdateResponse> responseObserver) {
+        super.updateStoragePreference(request, responseObserver);
+    }
+
+    @Override
+    public void deletePreferenceStorage(StoragePreferenceDeleteRequest request, StreamObserver<Empty> responseObserver) {
+        super.deletePreferenceStorage(request, responseObserver);
+    }
+
+    @Override
+    public void searchStoragePreference(StoragePreferenceSearchRequest request, StreamObserver<StoragePreferenceSearchResponse> responseObserver) {
+        User callUser = getUser(request.getAuthToken());
+
+        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");
+        try {
+            List<AnyStoragePreference> storagePrefList = AnyStoragePreferenceDeserializer.deserializeList(records);
+            StoragePreferenceSearchResponse.Builder builder = StoragePreferenceSearchResponse.newBuilder();
+            builder.addAllStoragesPreference(storagePrefList);
+            responseObserver.onNext(builder.build());
+            responseObserver.onCompleted();
+
+        } catch (Exception e) {
+            logger.error("Errored while searching storage preferences; Message: {}", e.getMessage(), e);
+            responseObserver.onError(e);
+        }
+    }
+}
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
new file mode 100644
index 0000000..a00b7ca
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.api.handlers;
+
+import com.google.protobuf.Empty;
+import io.grpc.ManagedChannel;
+import io.grpc.ManagedChannelBuilder;
+import io.grpc.stub.StreamObserver;
+import org.apache.airavata.datalake.drms.DRMSServiceAuthToken;
+import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest;
+import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse;
+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.serializer.AnyStorageSerializer;
+import org.lognet.springboot.grpc.GRpcService;
+import org.neo4j.driver.Record;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+import java.util.Map;
+
+@GRpcService
+public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImplBase {
+
+    private static final Logger logger = LoggerFactory.getLogger(StorageServiceHandler.class);
+
+    @Autowired
+    private Neo4JConnector neo4JConnector;
+
+    @org.springframework.beans.factory.annotation.Value("${group.service.host}")
+    private String groupServiceHost;
+
+    @org.springframework.beans.factory.annotation.Value("${group.service.port}")
+    private int groupServicePort;
+
+
+    private User getUser(DRMSServiceAuthToken authToken) {
+        ManagedChannel channel = ManagedChannelBuilder.forAddress(groupServiceHost, groupServicePort).usePlaintext().build();
+        GroupServiceGrpc.GroupServiceBlockingStub groupClient = GroupServiceGrpc.newBlockingStub(channel);
+        FetchCurrentUserResponse userResponse = groupClient.fetchCurrentUser(
+                FetchCurrentUserRequest.newBuilder().setAuthToken(authToken).build());
+        return userResponse.getUser();
+    }
+
+    @Override
+    public void fetchStorage(StorageFetchRequest request, StreamObserver<StorageFetchResponse> responseObserver) {
+
+        User callUser = getUser(request.getAuthToken());
+
+        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() +
+                        "' return distinct s");
+
+        if (!records.isEmpty()) {
+            try {
+                List<AnyStorage> storageList = AnyStorageDeserializer.deserializeList(records);
+                responseObserver.onNext(StorageFetchResponse.newBuilder().setStorage(storageList.get(0)).build());
+                responseObserver.onCompleted();
+            } catch (Exception e) {
+
+                logger.error("Errored while fetching storage with id {}", request.getStorageId(), e);
+                responseObserver.onError(new Exception("Errored while fetching storage with id " + request.getStorageId()
+                        + ". Msg " + e.getMessage()));
+            }
+        } else {
+            logger.error("Could not find a storage with id {}", request.getStorageId());
+            responseObserver.onError(new Exception("Could not find a storage with id " + request.getStorageId()));
+        }
+    }
+
+    @Override
+    public void createStorage(StorageCreateRequest request, StreamObserver<StorageCreateResponse> responseObserver) {
+        User user = getUser(request.getAuthToken());
+        AnyStorage storage = request.getStorage();
+        Map<String, Object> serializedMap = AnyStorageSerializer.serializeToMap(storage);
+        this.neo4JConnector.createNode(serializedMap, StorageConstants.STORAGE_LABEL, user.getUserId());
+    }
+
+    @Override
+    public void updateStorage(StorageUpdateRequest request, StreamObserver<StorageUpdateResponse> responseObserver) {
+        super.updateStorage(request, responseObserver);
+    }
+
+    @Override
+    public void deleteStorage(StorageDeleteRequest request, StreamObserver<Empty> responseObserver) {
+        super.deleteStorage(request, responseObserver);
+    }
+
+    @Override
+    public void addStorageMetadata(AddStorageMetadataRequest request, StreamObserver<Empty> responseObserver) {
+        User callUser = getUser(request.getAuthToken());
+        this.neo4JConnector.createMetadataNode(StorageConstants.STORAGE_LABEL, "storageId",
+                request.getStorageId(), callUser.getUserId(),
+                request.getKey(), request.getValue());
+        responseObserver.onNext(Empty.getDefaultInstance());
+        responseObserver.onCompleted();
+    }
+
+    @Override
+    public void searchStorage(StorageSearchRequest request, StreamObserver<StorageSearchResponse> responseObserver) {
+        User callUser = getUser(request.getAuthToken());
+
+        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");
+        try {
+            List<AnyStorage> storageList = AnyStorageDeserializer.deserializeList(records);
+            StorageSearchResponse.Builder builder = StorageSearchResponse.newBuilder();
+            builder.addAllStorages(storageList);
+            responseObserver.onNext(builder.build());
+            responseObserver.onCompleted();
+
+        } catch (Exception e) {
+            logger.error("Errored while searching storages; Message: {}", e.getMessage(), e);
+            responseObserver.onError(e);
+        }
+    }
+}
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java
new file mode 100644
index 0000000..b76facc
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java
@@ -0,0 +1,78 @@
+package org.apache.airavata.drms.api.interceptors;
+
+import io.grpc.Metadata;
+import org.apache.airavata.datalake.drms.storage.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+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(Authenticator.class);
+
+//    @Autowired
+//    private CustosClientProvider custosClientProvider;
+
+
+    @Override
+    public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) throws IOException {
+//        IdentityManagementClient identityManagementClient = custosClientProvider.getIdentityManagementClient();
+//        Optional<String> token = getAccessToken(msg);
+//        User user = identityManagementClient.getUser(token.get());
+//        org.apache.airavata.datalake.drms.groups.User drmsUser = org.apache.airavata.datalake.drms.groups.User
+//                .newBuilder()
+//                .setUserId(user.getUsername())
+//                .setFirstName(user.getFirstName())
+//                .setLastName(user.getLastName())
+//                .setEmailAddress(user.getEmailAddress())
+//                .build();
+        return msg;
+
+    }
+
+
+    private Optional<String> getAccessToken(Object msg) {
+
+        if (msg instanceof StorageCreateRequest) {
+            return Optional.of(((StorageCreateRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StorageFetchRequest) {
+            return Optional.of(((StorageFetchRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StorageUpdateRequest) {
+            return Optional.of(((StorageUpdateRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StorageDeleteRequest) {
+            return Optional.of(((StorageDeleteRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StorageSearchRequest) {
+            return Optional.of(((StorageSearchRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof AddStorageMetadataRequest) {
+            return Optional.of(((AddStorageMetadataRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof ResourceCreateRequest) {
+            return Optional.of(((ResourceCreateRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof ResourceFetchRequest) {
+            return Optional.of(((ResourceFetchRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof ResourceUpdateRequest) {
+            return Optional.of(((ResourceUpdateRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof ResourceDeleteRequest) {
+            return Optional.of(((ResourceDeleteRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof ResourceSearchRequest) {
+            return Optional.of(((ResourceSearchRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof AddResourceMetadataRequest) {
+            return Optional.of(((AddResourceMetadataRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof FetchResourceMetadataRequest) {
+            return Optional.of(((FetchResourceMetadataRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StoragePreferenceFetchRequest) {
+            return Optional.of(((StoragePreferenceFetchRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StoragePreferenceUpdateRequest) {
+            return Optional.of(((StoragePreferenceUpdateRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StoragePreferenceDeleteRequest) {
+            return Optional.of(((StoragePreferenceDeleteRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StoragePreferenceCreateRequest) {
+            return Optional.of(((StoragePreferenceCreateRequest) msg).getAuthToken().getAccessToken());
+        } else if (msg instanceof StoragePreferenceSearchRequest) {
+            return Optional.of(((StoragePreferenceSearchRequest) msg).getAuthToken().getAccessToken());
+        }
+        return Optional.empty();
+    }
+}
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/InterceptorPipelineExecutor.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/InterceptorPipelineExecutor.java
new file mode 100644
index 0000000..02f6104
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/InterceptorPipelineExecutor.java
@@ -0,0 +1,69 @@
+package org.apache.airavata.drms.api.interceptors;
+
+import io.grpc.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Iterator;
+import java.util.Stack;
+
+/**
+ * This class execute interceptor stack sequentially
+ */
+
+public class InterceptorPipelineExecutor implements ServerInterceptor {
+    private final Logger LOGGER = LoggerFactory.getLogger(InterceptorPipelineExecutor.class);
+
+    private Stack<ServiceInterceptor> interceptorSet;
+
+    public InterceptorPipelineExecutor(Stack<ServiceInterceptor> integrationServiceInterceptors) {
+        this.interceptorSet = integrationServiceInterceptors;
+    }
+
+    @Override
+    public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> serverCall,
+                                                                 Metadata metadata, ServerCallHandler<ReqT, RespT> serverCallHandler) {
+        String fullMethod = serverCall.getMethodDescriptor().getFullMethodName();
+        String methodName = fullMethod.split("/")[1];
+        String serviceName = fullMethod.split("/")[0];
+
+        LOGGER.debug("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)) {
+
+            ReqT resp = null;
+
+            @Override
+            public void onMessage(ReqT message) {
+                try {
+                    Iterator it = interceptorSet.iterator();
+                    while (it.hasNext()) {
+                        ServiceInterceptor interceptor = (ServiceInterceptor) it.next();
+                        resp = interceptor.intercept(methodName, metadata, (resp == null) ? message : resp);
+                    }
+                    super.onMessage(resp);
+                } catch (Exception ex) {
+                    String msg = "Error while validating method " + methodName + ", " + ex.getMessage();
+                    LOGGER.error(msg, ex);
+                    serverCall.close(Status.INVALID_ARGUMENT.withDescription(msg), new Metadata());
+                }
+            }
+
+            @Override
+            public void onHalfClose() {
+                try {
+                    super.onHalfClose();
+                } catch (IllegalStateException e) {
+                    LOGGER.debug(e.getMessage());
+                } catch (Exception e) {
+                    String msg = "Error while validating method " + methodName + ", " + e.getMessage();
+                    LOGGER.error(msg);
+                    serverCall.close(Status.INVALID_ARGUMENT.withDescription(msg), metadata);
+                }
+            }
+
+        };
+
+    }
+}
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/ServiceInterceptor.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/ServiceInterceptor.java
new file mode 100644
index 0000000..2f99aac
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/ServiceInterceptor.java
@@ -0,0 +1,7 @@
+package org.apache.airavata.drms.api.interceptors;
+
+import io.grpc.Metadata;
+
+public interface ServiceInterceptor {
+    public <ReqT> ReqT intercept(String method, Metadata headers, ReqT msg) throws Exception;
+}
diff --git a/data-resource-management-service/drms-api/src/main/resources/application.properties b/data-resource-management-service/drms-api/src/main/resources/application.properties
new file mode 100644
index 0000000..6dee75c
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/resources/application.properties
@@ -0,0 +1,27 @@
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+neo4j.server.uri=bolt://192.168.0.14:7687
+neo4j.server.user=neo4j
+neo4j.server.password=123456
+group.service.host=localhost
+group.service.port=6565
+custos.id=CHANGE_ME
+custos.secret=CHANGE_ME
+custos.host=custos.scigap.org
+custos.port=31499
\ No newline at end of file
diff --git a/data-resource-management-service/drms-api/src/main/resources/logback.xml b/data-resource-management-service/drms-api/src/main/resources/logback.xml
new file mode 100644
index 0000000..dcf6d23
--- /dev/null
+++ b/data-resource-management-service/drms-api/src/main/resources/logback.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<configuration>
+
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d [%t] %-5p %c{30} %m [%X]%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>../logs/airavata.log</File>
+        <Append>true</Append>
+        <encoder>
+            <pattern>%d [%t] %-5p %c{30} %m [%X]%n</pattern>
+        </encoder>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>../logs/airavata.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>1GB</totalSizeCap>
+        </rollingPolicy>
+    </appender>
+
+    <logger name="ch.qos.logback" level="WARN"/>
+    <logger name="org.apache.airavata" level="INFO"/>
+    <root level="INFO">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="LOGFILE"/>
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/data-resource-management-service/drms-core/pom.xml b/data-resource-management-service/drms-core/pom.xml
new file mode 100644
index 0000000..a32e81f
--- /dev/null
+++ b/data-resource-management-service/drms-core/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>data-resource-management-service</artifactId>
+        <groupId>org.apache.airavata.data.lake</groupId>
+        <version>0.01-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>drms-core</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.neo4j</groupId>
+            <artifactId>neo4j-ogm-core</artifactId>
+            <version>${neo4j.ogm.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.neo4j</groupId>
+            <artifactId>neo4j-ogm-bolt-driver</artifactId>
+            <version>${neo4j.ogm.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.neo4j</groupId>
+            <artifactId>neo4j</artifactId>
+            <version>${neo4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.airavata.data.lake</groupId>
+            <artifactId>drms-stubs</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>net.sf.dozer</groupId>
+            <artifactId>dozer</artifactId>
+            <version>${dozer}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <version>${spring.boot.version}</version>
+        </dependency>
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/Neo4JConnector.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/Neo4JConnector.java
new file mode 100644
index 0000000..1d39ce4
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/Neo4JConnector.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.core;
+
+import org.neo4j.driver.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class Neo4JConnector {
+
+    private String uri;
+    private String userName;
+    private String password;
+
+    public Neo4JConnector(String uri, String userName, String password) {
+        this.uri = uri;
+        this.userName = userName;
+        this.password = password;
+    }
+
+    public List<Record> searchNodes(String query) {
+        Driver driver = GraphDatabase.driver(uri, AuthTokens.basic(userName, password));
+        Session session = driver.session();
+        Result result = session.run(query);
+        return result.list();
+    }
+
+    public void createNode(Map<String, Object> properties, String label, String userId) {
+        Driver driver = GraphDatabase.driver(uri, AuthTokens.basic(userName, password));
+        Session session = driver.session();
+        Map<String, Object> parameters = new HashMap<>();
+        parameters.put("props", properties);
+        Transaction tx = session.beginTransaction();
+        Result result = tx.run("match (u:User)-[r1:MEMBER_OF {membershipType:'USER_GROUP'}]->(g:Group) where u.userId = '" + userId + "' CREATE (n:" + label + ")-[r2:SHARED_WITH {permission:'WRITE'}]->(g) SET n = $props return n", parameters);
+        tx.commit();
+        tx.close();
+    }
+
+    public void createMetadataNode(String parentLabel, String parentIdName, String parentIdValue,
+                                   String userId, String key, String value) {
+        Driver driver = GraphDatabase.driver(uri, AuthTokens.basic(userName, password));
+        Session session = driver.session();
+        Transaction tx = session.beginTransaction();
+        tx.run("match (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:" + parentLabel + ") where u.userId='" + userId +
+                "' and s." + parentIdName + "='" + parentIdValue +
+                        "' merge (m:Metadata)<-[r3:HAS_METADATA]-(s) set m." + key + "='" + value + "' return m");
+        tx.commit();
+        tx.close();
+    }
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/MetadataConstants.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/MetadataConstants.java
new file mode 100644
index 0000000..da573e8
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/MetadataConstants.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.airavata.drms.core.constants;
+
+public final class MetadataConstants {
+    public static final String METADATA_LABEL = "Metadata";
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/ResourceConstants.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/ResourceConstants.java
new file mode 100644
index 0000000..2c7e0e2
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/ResourceConstants.java
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.core.constants;
+
+public class ResourceConstants {
+    public static final String RESOURCE_LABEL = "Resource";
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/StorageConstants.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/StorageConstants.java
new file mode 100644
index 0000000..f7d6a9d
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/StorageConstants.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.core.constants;
+
+public final class StorageConstants {
+    public static final String STORAGE_LABEL = "Storage";
+    public static final String STORAGE_TYPE_LABEL = "type";
+    public static final String SSH_STORAGE_TYPE_LABEL = "SSH";
+    public static final String S3_STORAGE_TYPE_LABEL = "S3";
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/StoragePreferenceConstants.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/StoragePreferenceConstants.java
new file mode 100644
index 0000000..e819c2b
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/constants/StoragePreferenceConstants.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.airavata.drms.core.constants;
+
+public final class StoragePreferenceConstants {
+    public static final String STORAGE_PREFERENCE_LABEL = "StoragePreference";
+    public static final String STORAGE_PREFERENCE_TYPE_LABEL = "type";
+    public static final String SSH_STORAGE_PREFERENCE_TYPE_LABEL = "SSH";
+    public static final String S3_STORAGE_PREFERENCE_TYPE_LABEL = "S3";
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/AnyStorageDeserializer.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/AnyStorageDeserializer.java
new file mode 100644
index 0000000..4edf2da
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/AnyStorageDeserializer.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.core.deserializer;
+
+import org.apache.airavata.datalake.drms.storage.AnyStorage;
+import org.apache.airavata.datalake.drms.storage.s3.S3Storage;
+import org.apache.airavata.datalake.drms.storage.ssh.SSHStorage;
+import org.apache.airavata.drms.core.constants.StorageConstants;
+import org.neo4j.driver.Record;
+import org.neo4j.driver.Value;
+import org.neo4j.driver.internal.InternalRecord;
+import org.neo4j.driver.types.Node;
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.PropertyAccessorFactory;
+
+import java.util.*;
+
+public class AnyStorageDeserializer {
+
+    public static List<AnyStorage> deserializeList(List<Record> neo4jRecords) throws Exception {
+        List<AnyStorage> storageList = new ArrayList<>();
+        for (Record record : neo4jRecords) {
+            InternalRecord  internalRecord = (InternalRecord) record;
+            List<Value> values = internalRecord.values();
+            for (Value value : values) {
+                Node node = value.asNode();
+                if (node.hasLabel(StorageConstants.STORAGE_LABEL)) {
+                    storageList.add(deriveStorageFromMap(node.asMap()));
+                }
+            }
+        }
+        return storageList;
+    }
+
+    public static AnyStorage deriveStorageFromMap(Map<String, Object> fixedMap) throws Exception {
+
+        Map<String, Object> asMap = new HashMap<>(fixedMap);
+        AnyStorage.Builder anyStorageBuilder = AnyStorage.newBuilder();
+        String type = (String)asMap.get(StorageConstants.STORAGE_TYPE_LABEL);
+        asMap.remove(StorageConstants.STORAGE_TYPE_LABEL);
+
+        switch (type) {
+            case StorageConstants.SSH_STORAGE_TYPE_LABEL:
+                SSHStorage.Builder builder = SSHStorage.newBuilder();
+                setObjectFieldsUsingMap(builder, asMap);
+                SSHStorage sshStorage = builder.build();
+                anyStorageBuilder.setSshStorage(sshStorage);
+                break;
+            case StorageConstants.S3_STORAGE_TYPE_LABEL:
+                S3Storage.Builder s3Builder = S3Storage.newBuilder();
+                setObjectFieldsUsingMap(s3Builder, asMap);
+                anyStorageBuilder.setS3Storage(s3Builder.build());
+                break;
+            default:
+                throw new Exception("Unsupported storage type for deserializing : " + type);
+        }
+
+        return anyStorageBuilder.build();
+    }
+
+    private static void setObjectFieldsUsingMap(Object target, Map<String, Object> values) {
+        for (String field :values.keySet()) {
+            BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(target);
+            beanWrapper.setPropertyValue(field, values.get(field));
+        }
+    }
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/AnyStoragePreferenceDeserializer.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/AnyStoragePreferenceDeserializer.java
new file mode 100644
index 0000000..92159e0
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/AnyStoragePreferenceDeserializer.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.airavata.drms.core.deserializer;
+
+import org.apache.airavata.datalake.drms.storage.AnyStorage;
+import org.apache.airavata.datalake.drms.storage.AnyStoragePreference;
+import org.apache.airavata.datalake.drms.storage.preference.s3.S3StoragePreference;
+import org.apache.airavata.datalake.drms.storage.preference.ssh.SSHStoragePreference;
+import org.apache.airavata.drms.core.constants.StorageConstants;
+import org.apache.airavata.drms.core.constants.StoragePreferenceConstants;
+import org.neo4j.driver.Record;
+import org.neo4j.driver.Value;
+import org.neo4j.driver.internal.InternalRecord;
+import org.neo4j.driver.types.Node;
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.PropertyAccessorFactory;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class AnyStoragePreferenceDeserializer {
+    public static List<AnyStoragePreference> deserializeList(List<Record> neo4jRecords) throws Exception {
+        List<AnyStoragePreference> storagePrefList = new ArrayList<>();
+        for (Record record : neo4jRecords) {
+            InternalRecord internalRecord = (InternalRecord) record;
+            List<Value> values = internalRecord.values();
+            if (values.size() == 2) {
+                Value prfValue = values.get(0);
+                Value stoValue = values.get(1);
+                Node prefNode = prfValue.asNode();
+                Node stoNode = stoValue.asNode();
+                if (prefNode.hasLabel(StoragePreferenceConstants.STORAGE_PREFERENCE_LABEL) && stoNode.hasLabel(StorageConstants.STORAGE_LABEL)) {
+                    AnyStorage storage = AnyStorageDeserializer.deriveStorageFromMap(stoNode.asMap());
+                    AnyStoragePreference preference = deriveStoragePrefFromMap(prefNode.asMap(), storage);
+                    storagePrefList.add(preference);
+                }
+            }
+        }
+        return storagePrefList;
+    }
+
+    public static AnyStoragePreference deriveStoragePrefFromMap(Map<String, Object> fixedMap, AnyStorage anyStorage) throws Exception {
+
+        Map<String, Object> asMap = new HashMap<>(fixedMap);
+        AnyStoragePreference.Builder anyStoragePrefBuilder = AnyStoragePreference.newBuilder();
+        String type = (String)asMap.get(StoragePreferenceConstants.STORAGE_PREFERENCE_TYPE_LABEL);
+        asMap.remove(StoragePreferenceConstants.STORAGE_PREFERENCE_TYPE_LABEL);
+
+        switch (type) {
+            case StoragePreferenceConstants.SSH_STORAGE_PREFERENCE_TYPE_LABEL:
+                SSHStoragePreference.Builder builder = SSHStoragePreference.newBuilder();
+                setObjectFieldsUsingMap(builder, asMap);
+                builder.setStorage(anyStorage.getSshStorage());
+                SSHStoragePreference sshStoragePreference = builder.build();
+                anyStoragePrefBuilder.setSshStoragePreference(sshStoragePreference);
+                break;
+            case StoragePreferenceConstants.S3_STORAGE_PREFERENCE_TYPE_LABEL:
+                S3StoragePreference.Builder s3Builder = S3StoragePreference.newBuilder();
+                setObjectFieldsUsingMap(s3Builder, asMap);
+                s3Builder.setStorage(anyStorage.getS3Storage());
+                anyStoragePrefBuilder.setS3StoragePreference(s3Builder.build());
+                break;
+            default:
+                throw new Exception("Unsupported storage type for deserializing : " + type);
+        }
+
+        return anyStoragePrefBuilder.build();
+    }
+
+    private static void setObjectFieldsUsingMap(Object target, Map<String, Object> values) {
+        for (String field :values.keySet()) {
+            BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(target);
+            beanWrapper.setPropertyValue(field, values.get(field));
+        }
+    }
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java
new file mode 100644
index 0000000..c4f4d97
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.airavata.drms.core.deserializer;
+
+import org.apache.airavata.datalake.drms.resource.GenericResource;
+import org.apache.airavata.datalake.drms.storage.AnyStorage;
+import org.apache.airavata.datalake.drms.storage.AnyStoragePreference;
+import org.apache.airavata.drms.core.constants.ResourceConstants;
+import org.apache.airavata.drms.core.constants.StorageConstants;
+import org.apache.airavata.drms.core.constants.StoragePreferenceConstants;
+import org.neo4j.driver.Record;
+import org.neo4j.driver.Value;
+import org.neo4j.driver.internal.InternalRecord;
+import org.neo4j.driver.types.Node;
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.PropertyAccessorFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class GenericResourceDeserializer {
+
+    public static List<GenericResource> deserializeList(List<Record> neo4jRecords) throws Exception {
+        List<GenericResource> resourceList = new ArrayList<>();
+        for (Record record : neo4jRecords) {
+            InternalRecord internalRecord = (InternalRecord) record;
+            List<Value> values = internalRecord.values();
+            if (values.size() == 3) {
+                Value resourceValue = values.get(0);
+                Value prfValue = values.get(1);
+                Value stoValue = values.get(2);
+                Node resourceNode = resourceValue.asNode();
+                Node prefNode = prfValue.asNode();
+                Node stoNode = stoValue.asNode();
+                if (resourceNode.hasLabel(ResourceConstants.RESOURCE_LABEL) &&
+                        prefNode.hasLabel(StoragePreferenceConstants.STORAGE_PREFERENCE_LABEL) &&
+                        stoNode.hasLabel(StorageConstants.STORAGE_LABEL)) {
+
+                    AnyStorage storage = AnyStorageDeserializer.deriveStorageFromMap(stoNode.asMap());
+                    AnyStoragePreference preference = AnyStoragePreferenceDeserializer.deriveStoragePrefFromMap(
+                            prefNode.asMap(), storage);
+                    GenericResource genericResource = deriveGenericResourceFromMap(resourceNode.asMap(), preference);
+                    resourceList.add(genericResource);
+                }
+            }
+        }
+        return resourceList;
+    }
+
+    public static GenericResource deriveGenericResourceFromMap(Map<String, Object> fixedMap,
+                                                               AnyStoragePreference preference) throws Exception {
+
+        GenericResource.Builder genericResourceBuilder = GenericResource.newBuilder();
+        setObjectFieldsUsingMap(genericResourceBuilder, fixedMap);
+        switch (preference.getStorageCase()){
+            case S3STORAGEPREFERENCE:
+                genericResourceBuilder.setS3Preference(preference.getS3StoragePreference());
+                break;
+            case SSHSTORAGEPREFERENCE:
+                genericResourceBuilder.setSshPreference(preference.getSshStoragePreference());
+                break;
+        }
+
+        return genericResourceBuilder.build();
+    }
+
+    private static void setObjectFieldsUsingMap(Object target, Map<String, Object> values) {
+        for (String field :values.keySet()) {
+            BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(target);
+            beanWrapper.setPropertyValue(field, values.get(field));
+        }
+    }
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/MetadataDeserializer.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/MetadataDeserializer.java
new file mode 100644
index 0000000..e87d4f6
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/MetadataDeserializer.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.airavata.drms.core.deserializer;
+
+import org.apache.airavata.datalake.drms.storage.Metadata;
+import org.apache.airavata.datalake.drms.storage.MetadataNode;
+import org.apache.airavata.drms.core.constants.MetadataConstants;
+import org.neo4j.driver.Record;
+import org.neo4j.driver.Value;
+import org.neo4j.driver.internal.InternalRecord;
+import org.neo4j.driver.types.Node;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class MetadataDeserializer {
+
+    public static List<MetadataNode> deserializeList(List<Record> neo4jRecords) throws Exception {
+        List<MetadataNode> metadataNodeList = new ArrayList<>();
+        for (Record record : neo4jRecords) {
+            InternalRecord internalRecord = (InternalRecord) record;
+            List<Value> values = internalRecord.values();
+
+            if (values.size() == 1) {
+                Value metadataValue = values.get(0);
+                Node metadataNode = metadataValue.asNode();
+                if (metadataNode.hasLabel(MetadataConstants.METADATA_LABEL)) {
+                    MetadataNode.Builder metadataNodeBuilder = MetadataNode.newBuilder();
+                    Map<String, Object> propertiesMap = metadataNode.asMap();
+                    propertiesMap.forEach((key, val) ->
+                    metadataNodeBuilder.addMetadata(Metadata.newBuilder().setKey(key).setValue(val.toString()).build()));
+                    metadataNodeList.add(metadataNodeBuilder.build());
+                }
+            }
+        }
+        return metadataNodeList;
+    }
+}
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/serializer/AnyStorageSerializer.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/serializer/AnyStorageSerializer.java
new file mode 100644
index 0000000..5f6d583
--- /dev/null
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/serializer/AnyStorageSerializer.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.airavata.drms.core.serializer;
+
+import com.google.protobuf.Descriptors;
+import org.apache.airavata.datalake.drms.storage.AnyStorage;
+import org.apache.airavata.datalake.drms.storage.s3.S3Storage;
+import org.apache.airavata.datalake.drms.storage.ssh.SSHStorage;
+import org.apache.airavata.drms.core.constants.StorageConstants;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class AnyStorageSerializer {
+
+    public static Map<String, Object> serializeToMap(AnyStorage anyStorage) {
+
+        Map<String, Object> fields = new HashMap<>();
+        Map<Descriptors.FieldDescriptor, Object> allFields = null;
+        switch (anyStorage.getStorageCase()) {
+            case SSHSTORAGE:
+                SSHStorage sshStorage = anyStorage.getSshStorage();
+                allFields = sshStorage.getAllFields();
+                fields.put(StorageConstants.STORAGE_TYPE_LABEL, StorageConstants.SSH_STORAGE_TYPE_LABEL);
+                break;
+            case S3STORAGE:
+                S3Storage s3Storage = anyStorage.getS3Storage();
+                allFields = s3Storage.getAllFields();
+                fields.put(StorageConstants.STORAGE_TYPE_LABEL, StorageConstants.S3_STORAGE_TYPE_LABEL);
+                break;
+            case STORAGE_NOT_SET:
+                break;
+        }
+
+        if (allFields != null) {
+            allFields.forEach((descriptor, value) -> {
+                String fieldName = descriptor.getJsonName();
+                fields.put(fieldName, value);
+            });
+        }
+
+        return fields;
+    }
+}
diff --git a/metadata-service/db-service/stub/pom.xml b/data-resource-management-service/drms-stubs/pom.xml
similarity index 53%
copy from metadata-service/db-service/stub/pom.xml
copy to data-resource-management-service/drms-stubs/pom.xml
index e032813..abb8a3b 100644
--- a/metadata-service/db-service/stub/pom.xml
+++ b/data-resource-management-service/drms-stubs/pom.xml
@@ -1,57 +1,83 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>metadata-service</artifactId>
-        <groupId>org.apache.airavata.data.lake</groupId>
-        <version>0.01-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>stub</artifactId>
-
-    <properties>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
-    </properties>
-    <dependencies>
-        <dependency>
-            <groupId>com.google.protobuf</groupId>
-            <artifactId>protobuf-java</artifactId>
-            <version>${protobuf.java}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <extensions>
-            <extension>
-                <groupId>kr.motd.maven</groupId>
-                <artifactId>os-maven-plugin</artifactId>
-                <version>${os.maven.plugin}</version>
-            </extension>
-        </extensions>
-        <plugins>
-            <plugin>
-                <groupId>org.xolstice.maven.plugins</groupId>
-                <artifactId>protobuf-maven-plugin</artifactId>
-                <version>${protobuf.maven.plugin}</version>
-                <configuration>
-                    <protocArtifact>com.google.protobuf:protoc:3.0.2:exe:${os.detected.classifier}</protocArtifact>
-                    <pluginId>grpc-java</pluginId>
-                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier}</pluginArtifact>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>compile</goal>
-                            <goal>compile-custom</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>data-resource-management-service</artifactId>
+        <groupId>org.apache.airavata.data.lake</groupId>
+        <version>0.01-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>drms-stubs</artifactId>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java</artifactId>
+            <version>${protobuf.java}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-services</artifactId>
+            <version>${grpc.services}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.google.code.gson</groupId>
+                    <artifactId>gson</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+            <version>${javax.annotation.version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <extensions>
+            <extension>
+                <groupId>kr.motd.maven</groupId>
+                <artifactId>os-maven-plugin</artifactId>
+                <version>${os.maven.plugin}</version>
+            </extension>
+        </extensions>
+        <plugins>
+            <plugin>
+                <groupId>org.xolstice.maven.plugins</groupId>
+                <artifactId>protobuf-maven-plugin</artifactId>
+                <version>${protobuf.maven.plugin}</version>
+                <configuration>
+                    <protocArtifact>com.google.protobuf:protoc:3.0.2:exe:${os.detected.classifier}</protocArtifact>
+                    <pluginId>grpc-java</pluginId>
+                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier}</pluginArtifact>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>compile</goal>
+                            <goal>compile-custom</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/Common.proto b/data-resource-management-service/drms-stubs/src/main/proto/Common.proto
new file mode 100644
index 0000000..8511c74
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/Common.proto
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms;
+
+import "google/api/annotations.proto";
+
+message DRMSServiceAuthToken {
+    string access_token = 1;
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/group/Group.proto b/data-resource-management-service/drms-stubs/src/main/proto/group/Group.proto
new file mode 100644
index 0000000..4515c21
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/group/Group.proto
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.groups;
+
+import "google/api/annotations.proto";
+
+message User {
+    string userId = 1;
+    string username = 2;
+    string firstName = 3;
+    string lastName = 4;
+    string emailAddress = 5;
+}
+
+message Group {
+    string groupId = 1;
+    string name = 2;
+    string description = 3;
+    repeated Group childGroups = 4;
+    string parentGroupId = 5;
+    repeated GroupMembership groupMembership = 6;
+}
+
+message GroupMembership {
+    User user = 1;
+    string groupId = 2;
+    string membershipType = 3;
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/group/GroupService.proto b/data-resource-management-service/drms-stubs/src/main/proto/group/GroupService.proto
new file mode 100644
index 0000000..389d4cb
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/group/GroupService.proto
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.groups;
+
+import "google/api/annotations.proto";
+import "group/Group.proto";
+import "Common.proto";
+
+message FetchCurrentUserRequest {
+    org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+}
+
+message FetchCurrentUserResponse {
+    User user = 1;
+}
+
+message FetchUserRequest {
+    org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+    string userId = 2;
+}
+
+message FetchUserResponse {
+    User user = 1;
+}
+
+message FetchCurrentUserGroupsRequest {
+    org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+}
+
+message FetchCurrentUserGroupsResponse {
+    repeated Group groups = 1;
+}
+
+message FetchUserGroupsRequest {
+    org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+    string userId = 2;
+}
+
+message FetchUserGroupsResponse {
+    repeated Group groups = 1;
+}
+
+service GroupService {
+
+    rpc fetchCurrentUser(FetchCurrentUserRequest) returns (FetchCurrentUserResponse) {
+        option (google.api.http) = {
+            get: "/v1.0/api/currentuser"
+        };
+    }
+
+    rpc fetchUser (FetchUserRequest) returns (FetchUserResponse) {
+        option (google.api.http) = {
+            get: "/v1.0/api/user"
+        };
+    }
+
+    rpc fetchUserGroups (FetchUserGroupsRequest) returns (FetchUserGroupsResponse) {
+        option (google.api.http) = {
+            get: "/v1.0/api/usergroups"
+        };
+    }
+
+    rpc fetchCurrentUserGroups (FetchCurrentUserGroupsRequest) returns (FetchCurrentUserGroupsResponse) {
+        option (google.api.http) = {
+            get: "/v1.0/api/currentusergroups"
+        };
+    }
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/preference/S3Preference.proto b/data-resource-management-service/drms-stubs/src/main/proto/preference/S3Preference.proto
new file mode 100644
index 0000000..850b295
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/preference/S3Preference.proto
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.storage.preference.s3;
+
+import "google/api/annotations.proto";
+import "storage/S3Storage.proto";
+
+message S3StoragePreference {
+    string storagePreferenceId = 1;
+    string credentialToken = 2;
+    /*enum AuthType {
+        CLIENT_ID_SECRET_ID = 0;
+        OPEN = 2;
+    }*/
+    string authType = 3;
+    org.apache.airavata.datalake.drms.storage.s3.S3Storage storage = 4;
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/preference/SSHPreference.proto b/data-resource-management-service/drms-stubs/src/main/proto/preference/SSHPreference.proto
new file mode 100644
index 0000000..f071151
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/preference/SSHPreference.proto
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.storage.preference.ssh;
+
+import "google/api/annotations.proto";
+import "storage/SSHStorage.proto";
+
+message SSHStoragePreference {
+  string storagePreferenceId = 1;
+  string credentialToken = 2;
+  string userName = 3;
+  /*enum AuthType {
+    SSH_KEY = 0;
+    PASSWORD = 1;
+    OPEN = 2;
+  }*/
+  string authType = 4;
+  org.apache.airavata.datalake.drms.storage.ssh.SSHStorage storage = 5;
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/preference/StoragePreferenceService.proto b/data-resource-management-service/drms-stubs/src/main/proto/preference/StoragePreferenceService.proto
new file mode 100644
index 0000000..29e07c6
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/preference/StoragePreferenceService.proto
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.storage;
+
+import "google/api/annotations.proto";
+import "Common.proto";
+import "preference/SSHPreference.proto";
+import "preference/S3Preference.proto";
+import "google/protobuf/empty.proto";
+
+message AnyStoragePreference {
+  oneof storage {
+    org.apache.airavata.datalake.drms.storage.preference.ssh.SSHStoragePreference sshStoragePreference = 1;
+    org.apache.airavata.datalake.drms.storage.preference.s3.S3StoragePreference s3StoragePreference = 2;
+  }
+}
+message StoragePreferenceFetchRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string storagePreferenceId = 2;
+}
+
+message StoragePreferenceFetchResponse {
+  AnyStoragePreference storagePreference = 1;
+}
+
+message StoragePreferenceCreateRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  AnyStoragePreference storagePreference = 2;
+}
+
+message StoragePreferenceCreateResponse {
+  AnyStoragePreference storagePreference = 1;
+}
+
+message StoragePreferenceUpdateRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string storagePreferenceId = 2;
+  AnyStoragePreference storagePreference = 3;
+}
+
+message StoragePreferenceUpdateResponse {
+  AnyStoragePreference storagePreference = 1;
+}
+
+message StoragePreferenceDeleteRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string storagePreferenceId = 2;
+}
+
+message StoragePreferenceSearchQuery {
+  string field = 1;
+  string value = 2;
+  string options = 3; // LIKE, NOT, EQUALS, GREATER, LESS
+}
+
+message StoragePreferenceSearchRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  repeated StoragePreferenceSearchQuery queries = 2;
+}
+
+message StoragePreferenceSearchResponse {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  repeated AnyStoragePreference storagesPreference = 2;
+}
+
+service StoragePreferenceService {
+
+  rpc fetchStoragePreference (StoragePreferenceFetchRequest) returns (StoragePreferenceFetchResponse) {
+    option (google.api.http) = {
+      get: "/v1.0/api/drms/storagePreference"
+    };
+  }
+
+  rpc createStoragePreference (StoragePreferenceCreateRequest) returns (StoragePreferenceCreateResponse) {
+    option (google.api.http) = {
+      post: "/v1.0/api/drms/storagePreference"
+    };
+  }
+
+  rpc updateStoragePreference (StoragePreferenceUpdateRequest) returns (StoragePreferenceUpdateResponse) {
+    option (google.api.http) = {
+      put: "/v1.0/api/drms/storagePreference"
+    };
+  }
+
+  rpc deletePreferenceStorage (StoragePreferenceDeleteRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1.0/api/drms/storagePreference"
+    };
+  }
+
+  rpc searchStoragePreference (StoragePreferenceSearchRequest) returns (StoragePreferenceSearchResponse) {
+    option (google.api.http) = {
+      post: "/v1.0/api/drms/storagePreference/searchPreference"
+    };
+  }
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto b/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto
new file mode 100644
index 0000000..adf1231
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.resource;
+
+import "google/api/annotations.proto";
+import "preference/S3Preference.proto";
+import "preference/SSHPreference.proto";
+
+message GenericResource {
+  string resourceId = 1;
+  string resourcePath = 2;
+  oneof storagePreference {
+    org.apache.airavata.datalake.drms.storage.preference.s3.S3StoragePreference s3Preference = 3;
+    org.apache.airavata.datalake.drms.storage.preference.ssh.SSHStoragePreference sshPreference = 4;
+  }
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResourceService.proto b/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResourceService.proto
new file mode 100644
index 0000000..fa3a24a
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResourceService.proto
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.storage;
+
+import "google/api/annotations.proto";
+import "Common.proto";
+import "resource/DRMSResource.proto";
+import "google/protobuf/empty.proto";
+
+
+message ResourceFetchRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string resourceId = 2;
+}
+
+message ResourceFetchResponse {
+  org.apache.airavata.datalake.drms.resource.GenericResource resource = 1;
+}
+
+message ResourceCreateRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  org.apache.airavata.datalake.drms.resource.GenericResource resource = 2;
+}
+
+message ResourceCreateResponse {
+  org.apache.airavata.datalake.drms.resource.GenericResource resource = 1;
+}
+
+message ResourceUpdateRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string resourceId = 2;
+  org.apache.airavata.datalake.drms.resource.GenericResource resource = 3;
+}
+
+message ResourceUpdateResponse {
+  org.apache.airavata.datalake.drms.resource.GenericResource resource = 1;
+}
+
+message ResourceDeleteRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string resourceId = 2;
+}
+
+message ResourceSearchQuery {
+  string field = 1;
+  string value = 2;
+  string options = 3; // LIKE, NOT, EQUALS, GREATER, LESS
+}
+
+message ResourceSearchRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  repeated ResourceSearchQuery queries = 2;
+}
+
+message ResourceSearchResponse {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  repeated org.apache.airavata.datalake.drms.resource.GenericResource resources = 2;
+}
+
+message Metadata {
+  string key = 1;
+  string value = 2;
+}
+
+message AddResourceMetadataRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string resourceId = 2;
+  Metadata metadata = 3;
+}
+
+message FetchResourceMetadataRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string resourceId = 2;
+}
+
+message MetadataNode {
+  repeated Metadata metadata = 1;
+}
+
+message FetchResourceMetadataResponse {
+  MetadataNode metadataNode = 1;
+}
+
+
+service ResourceService {
+
+  rpc fetchResource (ResourceFetchRequest) returns (ResourceFetchResponse) {
+    option (google.api.http) = {
+      get: "/v1.0/api/drms/resource"
+    };
+  }
+
+  rpc createResource (ResourceCreateRequest) returns (ResourceCreateResponse) {
+    option (google.api.http) = {
+      post: "/v1.0/api/drms/resource"
+    };
+  }
+
+  rpc updateResource (ResourceUpdateRequest) returns (ResourceUpdateResponse) {
+    option (google.api.http) = {
+      put: "/v1.0/api/drms/resource"
+    };
+  }
+
+  rpc deletePreferenceStorage (ResourceDeleteRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1.0/api/drms/resource"
+    };
+  }
+
+  rpc searchResource (ResourceSearchRequest) returns (ResourceSearchResponse) {
+    option (google.api.http) = {
+      post: "/v1.0/api/drms/resource/searchPreference"
+    };
+  }
+
+  rpc addResourceMetadata (AddResourceMetadataRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      post: "/v1.0/api/drms/resource/metadata"
+    };
+  }
+
+  rpc fetchResourceMetadata (FetchResourceMetadataRequest) returns (FetchResourceMetadataResponse) {
+    option (google.api.http) = {
+      get: "/v1.0/api/drms/resource/metadata"
+    };
+  }
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/sharing/Sharing.proto b/data-resource-management-service/drms-stubs/src/main/proto/sharing/Sharing.proto
new file mode 100644
index 0000000..17517f3
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/sharing/Sharing.proto
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.sharing;
+
+import "google/api/annotations.proto";
+
+message ShareStorageRequest {
+    string storageId = 1;
+    string groupId = 2;
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/storage/S3Storage.proto b/data-resource-management-service/drms-stubs/src/main/proto/storage/S3Storage.proto
new file mode 100644
index 0000000..93b2a00
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/storage/S3Storage.proto
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.storage.s3;
+
+import "google/api/annotations.proto";
+
+message S3Storage {
+    string storageId = 1;
+    string bucketName = 2;
+    string region = 3;
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/storage/SSHStorage.proto b/data-resource-management-service/drms-stubs/src/main/proto/storage/SSHStorage.proto
new file mode 100644
index 0000000..d7d8bb4
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/storage/SSHStorage.proto
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.storage.ssh;
+
+import "google/api/annotations.proto";
+
+message SSHStorage {
+    string storageId = 1;
+    string hostName = 2;
+    int32 port = 3;
+}
\ No newline at end of file
diff --git a/data-resource-management-service/drms-stubs/src/main/proto/storage/StorageService.proto b/data-resource-management-service/drms-stubs/src/main/proto/storage/StorageService.proto
new file mode 100644
index 0000000..fca430a
--- /dev/null
+++ b/data-resource-management-service/drms-stubs/src/main/proto/storage/StorageService.proto
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+package org.apache.airavata.datalake.drms.storage;
+
+import "google/api/annotations.proto";
+import "Common.proto";
+import "storage/SSHStorage.proto";
+import "storage/S3Storage.proto";
+import "google/protobuf/empty.proto";
+
+message AnyStorage {
+  oneof storage {
+    org.apache.airavata.datalake.drms.storage.ssh.SSHStorage sshStorage = 1;
+    org.apache.airavata.datalake.drms.storage.s3.S3Storage s3Storage = 2;
+  }
+}
+message StorageFetchRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string storageId = 2;
+}
+
+message StorageFetchResponse {
+    AnyStorage storage = 1;
+}
+
+message StorageCreateRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  AnyStorage storage = 2;
+}
+
+message StorageCreateResponse {
+  AnyStorage storage = 1;
+}
+
+message StorageUpdateRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string storageId = 2;
+  AnyStorage storage = 3;
+}
+
+message StorageUpdateResponse {
+  AnyStorage storage = 1;
+}
+
+message StorageDeleteRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string storageId = 2;
+}
+
+message StorageSearchQuery {
+  string field = 1;
+  string value = 2;
+  string options = 3; // LIKE, NOT, EQUALS, GREATER, LESS
+}
+
+message StorageSearchRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  repeated StorageSearchQuery queries = 2;
+}
+
+message StorageSearchResponse {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  repeated AnyStorage storages = 2;
+}
+
+message AddStorageMetadataRequest {
+  org.apache.airavata.datalake.drms.DRMSServiceAuthToken authToken = 1;
+  string storageId = 2;
+  string key = 3;
+  string value = 4;
+}
+
+service StorageService {
+
+  rpc fetchStorage (StorageFetchRequest) returns (StorageFetchResponse) {
+    option (google.api.http) = {
+      get: "/v1.0/api/drms/storage"
+    };
+  }
+
+  rpc createStorage (StorageCreateRequest) returns (StorageCreateResponse) {
+    option (google.api.http) = {
+      post: "/v1.0/api/drms/storage"
+    };
+  }
+
+  rpc updateStorage (StorageUpdateRequest) returns (StorageUpdateResponse) {
+    option (google.api.http) = {
+      put: "/v1.0/api/drms/storage"
+    };
+  }
+
+  rpc deleteStorage (StorageDeleteRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      delete: "/v1.0/api/drms/storage"
+    };
+  }
+
+  rpc searchStorage (StorageSearchRequest) returns (StorageSearchResponse) {
+    option (google.api.http) = {
+      post: "/v1.0/api/drms/storage/search"
+    };
+  }
+
+  rpc addStorageMetadata(AddStorageMetadataRequest) returns (google.protobuf.Empty) {
+    option (google.api.http) = {
+      post: "/v1.0/api/drms/storage/metadata"
+    };
+  }
+}
\ No newline at end of file
diff --git a/data-resource-management-service/pom.xml b/data-resource-management-service/pom.xml
new file mode 100644
index 0000000..d1c7685
--- /dev/null
+++ b/data-resource-management-service/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+      http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>airavata-data-lake</artifactId>
+        <groupId>org.apache.airavata.data.lake</groupId>
+        <version>0.01-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>data-resource-management-service</artifactId>
+    <packaging>pom</packaging>
+    <modules>
+        <module>drms-stubs</module>
+        <module>drms-core</module>
+        <module>drms-api</module>
+    </modules>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>log4j-over-slf4j</artifactId>
+            <version>${log4j.over.slf4j}</version>
+        </dependency>
+    </dependencies>
+
+
+</project>
\ No newline at end of file
diff --git a/metadata-service/data-builders/data-builders.iml b/metadata-service/data-builders/data-builders.iml
index 3d5413d..e93f7d3 100644
--- a/metadata-service/data-builders/data-builders.iml
+++ b/metadata-service/data-builders/data-builders.iml
@@ -1,5 +1,19 @@
 <?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" />
@@ -7,10 +21,800 @@
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <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" />
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/github/lognet/grpc-spring-boot-starter/3.5.1/grpc-spring-boot-starter-3.5.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-netty/1.25.0/grpc-netty-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-core/1.25.0/grpc-core-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-api/1.25.0/grpc-api-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-context/1.25.0/grpc-context-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/errorprone/error_prone_annotations/2.3.3/error_prone_annotations-2.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/guava/guava/28.1-android/guava-28.1-android.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/opencensus/opencensus-api/0.21.0/opencensus-api-0.21.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/opencensus/opencensus-contrib-grpc-metrics/0.21.0/opencensus-contrib-grpc-metrics-0.21.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-http2/4.1.42.Final/netty-codec-http2-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-common/4.1.42.Final/netty-common-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-buffer/4.1.42.Final/netty-buffer-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-transport/4.1.42.Final/netty-transport-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-resolver/4.1.42.Final/netty-resolver-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec/4.1.42.Final/netty-codec-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-handler/4.1.42.Final/netty-handler-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-http/4.1.42.Final/netty-codec-http-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-handler-proxy/4.1.42.Final/netty-handler-proxy-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-socks/4.1.42.Final/netty-codec-socks-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-services/1.25.0/grpc-services-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-protobuf/1.25.0/grpc-protobuf-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-protobuf-lite/1.25.0/grpc-protobuf-lite-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-stub/1.25.0/grpc-stub-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/protobuf/protobuf-java-util/3.10.0/protobuf-java-util-3.10.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-tcnative-boringssl-static/2.0.25.Final/netty-tcnative-boringssl-static-2.0.25.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-bolt-driver/3.2.20/neo4j-ogm-bolt-driver-3.2.20.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-api/3.2.20/neo4j-ogm-api-3.2.20.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.9/jackson-datatype-jdk8-2.9.9.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.9/jackson-datatype-jsr310-2.9.9.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/neo4j/driver/neo4j-java-driver/4.0.2/neo4j-java-driver-4.0.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-core/3.2.20/neo4j-ogm-core-3.2.20.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/apache/commons/commons-lang3/3.8/commons-lang3-3.8.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/github/classgraph/classgraph/4.8.86/classgraph-4.8.86.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-web/2.4.2/spring-boot-starter-web-2.4.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter/2.4.2/spring-boot-starter-2.4.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot/2.4.2/spring-boot-2.4.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-core/5.3.3/spring-core-5.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-jcl/5.3.3/spring-jcl-5.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-context/5.3.3/spring-context-5.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-aop/5.3.3/spring-aop-5.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-beans/5.3.3/spring-beans-5.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-expression/5.3.3/spring-expression-5.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-autoconfigure/2.4.2/spring-boot-autoconfigure-2.4.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-logging/2.4.2/spring-boot-starter-logging-2.4.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-json/2.4.2/spring-boot-starter-json-2.4.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-web/5.3.3/spring-web-5.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-tomcat/2.4.2/spring-boot-starter-tomcat-2.4.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <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/data-builders/pom.xml b/metadata-service/data-builders/pom.xml
index 1af2131..3fb6b0a 100644
--- a/metadata-service/data-builders/pom.xml
+++ b/metadata-service/data-builders/pom.xml
@@ -3,10 +3,10 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>airavata-data-lake</artifactId>
+        <artifactId>metadata-service</artifactId>
         <groupId>org.apache.airavata.data.lake</groupId>
         <version>0.01-SNAPSHOT</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/metadata-service/db-service/client/client.iml b/metadata-service/db-service/client/client.iml
index 64181aa..3bd38e0 100644
--- a/metadata-service/db-service/client/client.iml
+++ b/metadata-service/db-service/client/client.iml
@@ -1,109 +1,628 @@
 <?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>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<module version="4" relativePaths="false" type="JAVA_MODULE"> 
+  <component name="NewModuleRootManager"> 
+    <exclude-output/>  
+    <orderEntry type="inheritedJdk"/>  
+    <!-- output url="file://$$MODULE_DIR$$/${maven.build.dest}"/ -->  
+    <!-- output-test url="file://$$MODULE_DIR$$/${maven.test.dest}"/ -->  
+    <content url="file://$MODULE_DIR$"> 
+      <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.sourceDirectory}" isTestSource="false"/ -->  
+      <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.testSourceDirectory}" isTestSource="true"/ -->  
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false"/>
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true"/>
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false"/>
+      <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/generated-sources"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/maven-status"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/test-classes"/>
+    </content>  
+    <orderEntry type="sourceFolder" forTests="false"/>  
+    <!-- Next include each dependency:
+      <orderEntry type="module" module-name="${dep.artifactId}"/>
+      <orderEntry type="module-library">
+        <library name="${dep.artifactId}">
+          <CLASSES>
+            <root url="jar://${lib.path}!/"/>
+          </CLASSES>
+          <JAVADOC/>
+          <SOURCES/>
+        </library>
+      </orderEntry>
+     -->  
+    <output url="file://$MODULE_DIR$/target/classes"/>  
+    <output-test url="file://$MODULE_DIR$/target/test-classes"/>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry>  
+    <orderEntry type="module" module-name="stub"/>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry> 
+  </component>  
+  <component name="ModuleRootManager"/>  
+  <!-- If it's a war project:
+  <component name="WebModuleProperties">
+    <containerElement type="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/classes" />
+    </containerElement>
+    <containerElement type="library" level="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/${dep.systemPath.name}" />
+    </containerElement>
+    <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}/WEB-INF/web.xml" version="" />
+    <webroots>
+      <root url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}" relative="/" />
+    </webroots>
   </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$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="stub" />
-    <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
+  --> 
+</module>
diff --git a/metadata-service/db-service/client/db-service-client.iml b/metadata-service/db-service/client/db-service-client.iml
deleted file mode 100644
index 3d5413d..0000000
--- a/metadata-service/db-service/client/db-service-client.iml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?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$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/metadata-service/db-service/client/pom.xml b/metadata-service/db-service/client/pom.xml
index f2d89d3..5234a7a 100644
--- a/metadata-service/db-service/client/pom.xml
+++ b/metadata-service/db-service/client/pom.xml
@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>metadata-service</artifactId>
+        <artifactId>db-service</artifactId>
         <groupId>org.apache.airavata.data.lake</groupId>
         <version>0.01-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
diff --git a/metadata-service/db-service/db-service.iml b/metadata-service/db-service/db-service.iml
index 3851d1d..00d19bb 100644
--- a/metadata-service/db-service/db-service.iml
+++ b/metadata-service/db-service/db-service.iml
@@ -1,27 +1,11 @@
 <?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$/server/src/main/java" />
-          <root url="file://$MODULE_DIR$/server/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$/server/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/server/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/server/src/main/resources" type="java-resource" />
       <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" />
     </content>
     <orderEntry type="inheritedJdk" />
@@ -29,6 +13,330 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/github/lognet/grpc-spring-boot-starter/3.5.1/grpc-spring-boot-starter-3.5.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-netty/1.25.0/grpc-netty-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-core/1.25.0/grpc-core-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-api/1.25.0/grpc-api-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-context/1.25.0/grpc-context-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/errorprone/error_prone_annotations/2.3.3/error_prone_annotations-2.3.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/guava/guava/28.1-android/guava-28.1-android.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/opencensus/opencensus-api/0.21.0/opencensus-api-0.21.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/opencensus/opencensus-contrib-grpc-metrics/0.21.0/opencensus-contrib-grpc-metrics-0.21.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-http2/4.1.42.Final/netty-codec-http2-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-common/4.1.42.Final/netty-common-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-buffer/4.1.42.Final/netty-buffer-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-transport/4.1.42.Final/netty-transport-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-resolver/4.1.42.Final/netty-resolver-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec/4.1.42.Final/netty-codec-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-handler/4.1.42.Final/netty-handler-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-http/4.1.42.Final/netty-codec-http-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-handler-proxy/4.1.42.Final/netty-handler-proxy-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-socks/4.1.42.Final/netty-codec-socks-4.1.42.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-services/1.25.0/grpc-services-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-protobuf/1.25.0/grpc-protobuf-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-protobuf-lite/1.25.0/grpc-protobuf-lite-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-stub/1.25.0/grpc-stub-1.25.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/com/google/protobuf/protobuf-java-util/3.10.0/protobuf-java-util-3.10.0.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/io/netty/netty-tcnative-boringssl-static/2.0.25.Final/netty-tcnative-boringssl-static-2.0.25.Final.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
           <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-bolt-driver/3.2.20/neo4j-ogm-bolt-driver-3.2.20.jar!/" />
         </CLASSES>
         <JAVADOC />
@@ -92,7 +400,7 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
+          <root url="jar://$USER_HOME$/.m12/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -146,6 +454,42 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$USER_HOME$/.m12/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
           <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-web/2.4.2/spring-boot-starter-web-2.4.2.jar!/" />
         </CLASSES>
         <JAVADOC />
@@ -377,6 +721,54 @@
         <SOURCES />
       </library>
     </orderEntry>
+    <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" />
@@ -392,11 +784,6 @@
     <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.core:jackson-databind:2.11.4" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" 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" />
@@ -408,13 +795,10 @@
     <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: 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: org.slf4j:slf4j-api:1.7.25" 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: 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/pom.xml b/metadata-service/db-service/pom.xml
index c0f14fb..611a6df 100644
--- a/metadata-service/db-service/pom.xml
+++ b/metadata-service/db-service/pom.xml
@@ -14,9 +14,9 @@
     <packaging>pom</packaging>
 
     <modules>
-        <module>db-service-server</module>
-        <module>db-service-client</module>
-        <module>db-service-stub</module>
+        <module>client</module>
+        <module>server</module>
+        <module>stub</module>
     </modules>
 
     <properties>
diff --git a/metadata-service/db-service/server/db-service-server.iml b/metadata-service/db-service/server/db-service-server.iml
deleted file mode 100644
index fe7fa68..0000000
--- a/metadata-service/db-service/server/db-service-server.iml
+++ /dev/null
@@ -1,462 +0,0 @@
-<?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" />
-          <root url="file://$MODULE_DIR$/target/maven-shared-archive-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$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-bolt-driver/3.2.20/neo4j-ogm-bolt-driver-3.2.20.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-api/3.2.20/neo4j-ogm-api-3.2.20.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.9/jackson-datatype-jdk8-2.9.9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.9/jackson-datatype-jsr310-2.9.9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/neo4j/driver/neo4j-java-driver/4.0.2/neo4j-java-driver-4.0.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-core/3.2.20/neo4j-ogm-core-3.2.20.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/commons/commons-lang3/3.8/commons-lang3-3.8.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/github/classgraph/classgraph/4.8.86/classgraph-4.8.86.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-web/2.4.2/spring-boot-starter-web-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter/2.4.2/spring-boot-starter-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot/2.4.2/spring-boot-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-core/5.3.3/spring-core-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-jcl/5.3.3/spring-jcl-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-context/5.3.3/spring-context-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-aop/5.3.3/spring-aop-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-beans/5.3.3/spring-beans-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-expression/5.3.3/spring-expression-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-autoconfigure/2.4.2/spring-boot-autoconfigure-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-logging/2.4.2/spring-boot-starter-logging-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-json/2.4.2/spring-boot-starter-json-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-web/5.3.3/spring-web-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-tomcat/2.4.2/spring-boot-starter-tomcat-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <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.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.1.RELEASE" 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.12.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.29" 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.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.1.RELEASE" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" 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.core:jackson-databind:2.11.4" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" 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="module" module-name="db-service-stub" />
-    <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: 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="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: 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" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/metadata-service/db-service/server/server.iml b/metadata-service/db-service/server/server.iml
index a06d26e..3bd38e0 100644
--- a/metadata-service/db-service/server/server.iml
+++ b/metadata-service/db-service/server/server.iml
@@ -1,109 +1,628 @@
 <?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>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<module version="4" relativePaths="false" type="JAVA_MODULE"> 
+  <component name="NewModuleRootManager"> 
+    <exclude-output/>  
+    <orderEntry type="inheritedJdk"/>  
+    <!-- output url="file://$$MODULE_DIR$$/${maven.build.dest}"/ -->  
+    <!-- output-test url="file://$$MODULE_DIR$$/${maven.test.dest}"/ -->  
+    <content url="file://$MODULE_DIR$"> 
+      <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.sourceDirectory}" isTestSource="false"/ -->  
+      <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.testSourceDirectory}" isTestSource="true"/ -->  
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false"/>
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true"/>
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false"/>
+      <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/generated-sources"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/maven-status"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/test-classes"/>
+    </content>  
+    <orderEntry type="sourceFolder" forTests="false"/>  
+    <!-- Next include each dependency:
+      <orderEntry type="module" module-name="${dep.artifactId}"/>
+      <orderEntry type="module-library">
+        <library name="${dep.artifactId}">
+          <CLASSES>
+            <root url="jar://${lib.path}!/"/>
+          </CLASSES>
+          <JAVADOC/>
+          <SOURCES/>
+        </library>
+      </orderEntry>
+     -->  
+    <output url="file://$MODULE_DIR$/target/classes"/>  
+    <output-test url="file://$MODULE_DIR$/target/test-classes"/>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry>  
+    <orderEntry type="module" module-name="stub"/>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry> 
+  </component>  
+  <component name="ModuleRootManager"/>  
+  <!-- If it's a war project:
+  <component name="WebModuleProperties">
+    <containerElement type="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/classes" />
+    </containerElement>
+    <containerElement type="library" level="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/${dep.systemPath.name}" />
+    </containerElement>
+    <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}/WEB-INF/web.xml" version="" />
+    <webroots>
+      <root url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}" relative="/" />
+    </webroots>
   </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$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </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="module" module-name="stub" />
-    <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.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.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="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: 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.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: io.grpc:grpc-core:1.25.0" 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: com.google.protobuf:protobuf-java-util:3.10.0" level="project" />
-  </component>
-</module>
\ No newline at end of file
+  --> 
+</module>
diff --git a/metadata-service/db-service/stub/db-service-stub.iml b/metadata-service/db-service/stub/db-service-stub.iml
deleted file mode 100644
index d2ffd43..0000000
--- a/metadata-service/db-service/stub/db-service-stub.iml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?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="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$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/proto" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/protobuf/grpc-java" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/protobuf/java" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Bundled Protobuf Distribution" level="application" />
-    <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:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.1.RELEASE" 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.12.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.29" 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.2.1.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.1.RELEASE" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" 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.apache.commons:commons-lang3: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/stub/pom.xml b/metadata-service/db-service/stub/pom.xml
index e032813..a04c02b 100644
--- a/metadata-service/db-service/stub/pom.xml
+++ b/metadata-service/db-service/stub/pom.xml
@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>metadata-service</artifactId>
+        <artifactId>db-service</artifactId>
         <groupId>org.apache.airavata.data.lake</groupId>
         <version>0.01-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
diff --git a/metadata-service/db-service/stub/stub.iml b/metadata-service/db-service/stub/stub.iml
index c833fd5..3c3548c 100644
--- a/metadata-service/db-service/stub/stub.iml
+++ b/metadata-service/db-service/stub/stub.iml
@@ -1,111 +1,632 @@
 <?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/resources" />
-          <root url="file://$MODULE_DIR$/target/generated-sources/protobuf/grpc-java" />
-          <root url="file://$MODULE_DIR$/target/generated-sources/protobuf/java" />
-        </sourceRoots>
-      </configuration>
-    </facet>
-    <facet type="Spring" name="Spring">
-      <configuration />
-    </facet>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<module version="4" relativePaths="false" type="JAVA_MODULE"> 
+  <component name="NewModuleRootManager"> 
+    <exclude-output/>  
+    <orderEntry type="inheritedJdk"/>  
+    <!-- output url="file://$$MODULE_DIR$$/${maven.build.dest}"/ -->  
+    <!-- output-test url="file://$$MODULE_DIR$$/${maven.test.dest}"/ -->  
+    <content url="file://$MODULE_DIR$"> 
+      <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.sourceDirectory}" isTestSource="false"/ -->  
+      <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.testSourceDirectory}" isTestSource="true"/ -->  
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/protobuf/java" isTestSource="false"/>
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/protobuf/grpc-java" isTestSource="false"/>
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true"/>
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false"/>
+      <sourceFolder url="file://$MODULE_DIR$/src/main/proto" isTestSource="false"/>
+      <sourceFolder url="file://$MODULE_DIR$/src/main/proto" isTestSource="false"/>
+      <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/generated-sources/annotations"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/maven-status"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/protoc-dependencies"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/protoc-plugins"/>
+      <excludeFolder url="file://$MODULE_DIR$/target/test-classes"/>
+    </content>  
+    <orderEntry type="sourceFolder" forTests="false"/>  
+    <!-- Next include each dependency:
+      <orderEntry type="module" module-name="${dep.artifactId}"/>
+      <orderEntry type="module-library">
+        <library name="${dep.artifactId}">
+          <CLASSES>
+            <root url="jar://${lib.path}!/"/>
+          </CLASSES>
+          <JAVADOC/>
+          <SOURCES/>
+        </library>
+      </orderEntry>
+     -->  
+    <output url="file://$MODULE_DIR$/target/classes"/>  
+    <output-test url="file://$MODULE_DIR$/target/test-classes"/>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry> 
+  </component>  
+  <component name="ModuleRootManager"/>  
+  <!-- If it's a war project:
+  <component name="WebModuleProperties">
+    <containerElement type="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/classes" />
+    </containerElement>
+    <containerElement type="library" level="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/${dep.systemPath.name}" />
+    </containerElement>
+    <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}/WEB-INF/web.xml" version="" />
+    <webroots>
+      <root url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}" relative="/" />
+    </webroots>
   </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$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/protobuf/grpc-java" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/protobuf/java" isTestSource="false" generated="true" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Bundled Protobuf Distribution" level="application" />
-    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.10.0" level="project" />
-    <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: 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
+  --> 
+</module>
diff --git a/metadata-service/metadata-service.iml b/metadata-service/metadata-service.iml
index 00d19bb..8920578 100644
--- a/metadata-service/metadata-service.iml
+++ b/metadata-service/metadata-service.iml
@@ -1,804 +1,621 @@
 <?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="true" />
-      <sourceFolder url="file://$MODULE_DIR$/target/maven-shared-archive-resources" isTestSource="false" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/github/lognet/grpc-spring-boot-starter/3.5.1/grpc-spring-boot-starter-3.5.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-netty/1.25.0/grpc-netty-1.25.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-core/1.25.0/grpc-core-1.25.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-api/1.25.0/grpc-api-1.25.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-context/1.25.0/grpc-context-1.25.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/errorprone/error_prone_annotations/2.3.3/error_prone_annotations-2.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/guava/guava/28.1-android/guava-28.1-android.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/opencensus/opencensus-api/0.21.0/opencensus-api-0.21.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/opencensus/opencensus-contrib-grpc-metrics/0.21.0/opencensus-contrib-grpc-metrics-0.21.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-http2/4.1.42.Final/netty-codec-http2-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-common/4.1.42.Final/netty-common-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-buffer/4.1.42.Final/netty-buffer-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-transport/4.1.42.Final/netty-transport-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-resolver/4.1.42.Final/netty-resolver-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec/4.1.42.Final/netty-codec-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-handler/4.1.42.Final/netty-handler-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-http/4.1.42.Final/netty-codec-http-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-handler-proxy/4.1.42.Final/netty-handler-proxy-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-codec-socks/4.1.42.Final/netty-codec-socks-4.1.42.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-services/1.25.0/grpc-services-1.25.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-protobuf/1.25.0/grpc-protobuf-1.25.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/api/grpc/proto-google-common-protos/1.12.0/proto-google-common-protos-1.12.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-protobuf-lite/1.25.0/grpc-protobuf-lite-1.25.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/grpc/grpc-stub/1.25.0/grpc-stub-1.25.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/google/protobuf/protobuf-java-util/3.10.0/protobuf-java-util-3.10.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/netty/netty-tcnative-boringssl-static/2.0.25.Final/netty-tcnative-boringssl-static-2.0.25.Final.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-bolt-driver/3.2.20/neo4j-ogm-bolt-driver-3.2.20.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-api/3.2.20/neo4j-ogm-api-3.2.20.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-databind/2.9.9/jackson-databind-2.9.9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.9/jackson-datatype-jdk8-2.9.9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.9/jackson-datatype-jsr310-2.9.9.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/neo4j/driver/neo4j-java-driver/4.0.2/neo4j-java-driver-4.0.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/neo4j/neo4j-ogm-core/3.2.20/neo4j-ogm-core-3.2.20.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/commons/commons-lang3/3.8/commons-lang3-3.8.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/io/github/classgraph/classgraph/4.8.86/classgraph-4.8.86.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/commons-beanutils/commons-beanutils/1.9.1/commons-beanutils-1.9.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-web/2.4.2/spring-boot-starter-web-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter/2.4.2/spring-boot-starter-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot/2.4.2/spring-boot-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-core/5.3.3/spring-core-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-jcl/5.3.3/spring-jcl-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-context/5.3.3/spring-context-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-aop/5.3.3/spring-aop-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-beans/5.3.3/spring-beans-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-expression/5.3.3/spring-expression-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-autoconfigure/2.4.2/spring-boot-autoconfigure-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-logging/2.4.2/spring-boot-starter-logging-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/logging/log4j/log4j-to-slf4j/2.13.3/log4j-to-slf4j-2.13.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/logging/log4j/log4j-api/2.13.3/log4j-api-2.13.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/slf4j/jul-to-slf4j/1.7.30/jul-to-slf4j-1.7.30.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-json/2.4.2/spring-boot-starter-json-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-web/5.3.3/spring-web-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/com/fasterxml/jackson/module/jackson-module-parameter-names/2.11.4/jackson-module-parameter-names-2.11.4.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/boot/spring-boot-starter-tomcat/2.4.2/spring-boot-starter-tomcat-2.4.2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/tomcat/embed/tomcat-embed-core/9.0.41/tomcat-embed-core-9.0.41.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/glassfish/jakarta.el/3.0.3/jakarta.el-3.0.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.41/tomcat-embed-websocket-9.0.41.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$USER_HOME$/.m12/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <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" />
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<module version="4" relativePaths="false" type="JAVA_MODULE"> 
+  <component name="NewModuleRootManager"> 
+    <exclude-output/>  
+    <orderEntry type="inheritedJdk"/>  
+    <!-- output url="file://$$MODULE_DIR$$/${maven.build.dest}"/ -->  
+    <!-- output-test url="file://$$MODULE_DIR$$/${maven.test.dest}"/ -->  
+    <content url="file://$MODULE_DIR$"> 
+      <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.sourceDirectory}" isTestSource="false"/ -->  
+      <!-- sourceFolder url="file://$$MODULE_DIR$$/${pom.build.testSourceDirectory}" isTestSource="true"/ -->  
+      <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="sourceFolder" forTests="false"/>  
+    <!-- Next include each dependency:
+      <orderEntry type="module" module-name="${dep.artifactId}"/>
+      <orderEntry type="module-library">
+        <library name="${dep.artifactId}">
+          <CLASSES>
+            <root url="jar://${lib.path}!/"/>
+          </CLASSES>
+          <JAVADOC/>
+          <SOURCES/>
+        </library>
+      </orderEntry>
+     -->  
+    <output url="file://$MODULE_DIR$/target/classes"/>  
+    <output-test url="file://$MODULE_DIR$/target/test-classes"/>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/yaml/snakeyaml/1.27/snakeyaml-1.27.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry>  
+    <orderEntry type="module-library"> 
+      <library> 
+        <CLASSES>
+          <root url="jar:///Users/isururanawaka/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/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/.m12/org/springframework/spring-webmvc/5.3.3/spring-webmvc-5.3.3.jar!/"/>
+        </CLASSES>
+      </library> 
+    </orderEntry> 
+  </component>  
+  <component name="ModuleRootManager"/>  
+  <!-- If it's a war project:
+  <component name="WebModuleProperties">
+    <containerElement type="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/classes" />
+    </containerElement>
+    <containerElement type="library" level="module" name="${dep.artifactId}">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/${dep.systemPath.name}" />
+    </containerElement>
+    <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}/WEB-INF/web.xml" version="" />
+    <webroots>
+      <root url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}" relative="/" />
+    </webroots>
   </component>
-</module>
\ No newline at end of file
+  --> 
+</module>
diff --git a/metadata-service/pom.xml b/metadata-service/pom.xml
index e1199c8..1ea277f 100644
--- a/metadata-service/pom.xml
+++ b/metadata-service/pom.xml
@@ -12,7 +12,10 @@
     <artifactId>metadata-service</artifactId>
     <packaging>pom</packaging>
 
-
+    <modules>
+        <module>db-service</module>
+        <module>data-builders</module>
+    </modules>
     <dependencies>
 
         <dependency>
@@ -52,18 +55,4 @@
             <version>${dozer}</version>
         </dependency>
     </dependencies>
-
-
-    <properties>
-        <protobuf.maven.plugin>0.5.1</protobuf.maven.plugin>
-        <os.maven.plugin>1.5.0.Final</os.maven.plugin>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
-        <protobuf.java>3.10.0</protobuf.java>
-        <grpc.spring.boot>3.5.1</grpc.spring.boot>
-        <spring.boot.data.jpa>2.2.1.RELEASE</spring.boot.data.jpa>
-        <dozer>5.5.1</dozer>
-    </properties>
-
-
 </project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index f80038e..b4eddf9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,9 +31,7 @@
     <modules>
         <module>data-orchestrator</module>
         <module>metadata-service</module>
-        <module>metadata-service/db-service/server</module>
-        <module>metadata-service/db-service/stub</module>
-        <module>metadata-service/db-service/client</module>
+        <module>data-resource-management-service</module>
     </modules>
 
     <parent>
@@ -84,10 +82,19 @@
         <jmockit.version>1.8</jmockit.version>
         <java.version>11</java.version>
         <javax.annotation.version>1.3.2</javax.annotation.version>
+
         <maven.compiler.plugin>3.8.1</maven.compiler.plugin>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
 
+        <!-- Grpc / protobuf dependencies -->
         <protobuf.maven.plugin>0.5.1</protobuf.maven.plugin>
         <os.maven.plugin>1.5.0.Final</os.maven.plugin>
+        <protobuf.java>3.10.0</protobuf.java>
+        <grpc.spring.boot>3.5.1</grpc.spring.boot>
+        <spring.boot.data.jpa>2.2.1.RELEASE</spring.boot.data.jpa>
+        <dozer>5.5.1</dozer>
+        <grpc.services>1.25.0</grpc.services>
 
         <!-- Spring dependencies -->
         <spring.boot.version>2.4.2</spring.boot.version>
@@ -140,7 +147,12 @@
 
         <com.codahale.version>0.7.0</com.codahale.version>
 
+        <neo4j.ogm.version>3.2.20</neo4j.ogm.version>
+        <neo4j.version>3.4.6</neo4j.version>
+
+        <log4j.over.slf4j>1.7.26</log4j.over.slf4j>
 
+        <custos.clients.version>1.0-SNAPSHOT</custos.clients.version>
     </properties>
 
 </project>