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:36 UTC

[airavata-data-lake] 29/42: Add working version for EMC to search data

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 9fe66b6555796945e47dcd6a9268b7246817feda
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Tue May 11 16:11:04 2021 -0400

    Add working version for EMC to search data
---
 airavata-data-lake.iws                             | 140 ++++++++++++++++++---
 .../java/org/apache/airavata/drms/api/Client.java  |  34 ++++-
 .../drms/api/handlers/ResourceServiceHandler.java  |  35 ++----
 .../handlers/StoragePreferenceServiceHandler.java  |  14 ---
 .../drms/api/handlers/StorageServiceHandler.java   |  25 +---
 .../drms/api/interceptors/Authenticator.java       |  14 ++-
 .../src/main/resources/application.properties      |   4 +-
 .../deserializer/GenericResourceDeserializer.java  |  61 +++++----
 .../drms-rest-proxy/src/main/resources/drms.pb     | Bin 101906 -> 102693 bytes
 .../src/main/resources => drms-stubs}/drms.pb      | Bin 101906 -> 102693 bytes
 .../src/main/proto/resource/DRMSResource.proto     |   2 +
 .../airavata/datalake/metadata/clients/Test.java   |  26 ++--
 .../neo4j/curd/operators/GenericService.java       |   5 +-
 .../backend/neo4j/curd/operators/Service.java      |   5 +-
 .../metadata/backend/neo4j/model/nodes/Entity.java |  13 +-
 .../metadata/backend/neo4j/model/nodes/Group.java  | 106 ++++++++--------
 .../backend/neo4j/model/nodes/Resource.java        |  83 ++++++------
 .../metadata/backend/neo4j/model/nodes/User.java   |  36 +++---
 18 files changed, 355 insertions(+), 248 deletions(-)

diff --git a/airavata-data-lake.iws b/airavata-data-lake.iws
index b0c58e9..16dcad0 100644
--- a/airavata-data-lake.iws
+++ b/airavata-data-lake.iws
@@ -6,6 +6,22 @@
   <component name="ChangeListManager">
     <list default="true" id="1d1ef003-bfaa-49fa-837e-dc14d1daa977" name="Default Changelist" comment="">
       <change beforePath="$PROJECT_DIR$/airavata-data-lake.iws" beforeDir="false" afterPath="$PROJECT_DIR$/airavata-data-lake.iws" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/application.properties" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -259,11 +275,12 @@
     <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/commons/src/main/java/org/apache/airavata/datalake/commons" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources" />
     <property name="nodejs_package_manager_path" value="npm" />
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources" />
       <recent name="$PROJECT_DIR$/commons/src/main/java/org/apache/airavata/datalake/commons" />
       <recent name="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors" />
       <recent name="$PROJECT_DIR$/metadata-service" />
@@ -273,7 +290,7 @@
       <recent name="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources" />
     </key>
   </component>
-  <component name="RunManager" selected="Application.Test">
+  <component name="RunManager" selected="Application.Client">
     <configuration selected="false" default="true" type="Applet" factoryName="Applet">
       <module name="" />
       <option name="MAIN_CLASS_NAME" />
@@ -368,10 +385,10 @@
     </configuration>
     <recent_temporary>
       <list>
+        <item itemvalue="Application.Client" />
+        <item itemvalue="Spring Boot.DRMSApiRunner" />
         <item itemvalue="Application.Test" />
         <item itemvalue="Spring Boot.Neo4JServiceInitializer" />
-        <item itemvalue="Spring Boot.DRMSApiRunner" />
-        <item itemvalue="Application.Client" />
       </list>
     </recent_temporary>
   </component>
@@ -419,7 +436,9 @@
       <workItem from="1616955618046" duration="1487000" />
       <workItem from="1616977751983" duration="68000" />
       <workItem from="1617213356776" duration="28852000" />
-      <workItem from="1617717367883" duration="12574000" />
+      <workItem from="1617717367883" duration="16718000" />
+      <workItem from="1619528905307" duration="115000" />
+      <workItem from="1620245029118" duration="11436000" />
     </task>
     <servers />
   </component>
@@ -558,17 +577,12 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url>
-          <line>78</line>
+          <line>107</line>
           <option name="timeStamp" value="19" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url>
-          <line>77</line>
-          <option name="timeStamp" value="20" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url>
-          <line>73</line>
+          <line>103</line>
           <option name="timeStamp" value="22" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
@@ -578,7 +592,7 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url>
-          <line>68</line>
+          <line>47</line>
           <option name="timeStamp" value="25" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
@@ -633,17 +647,17 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url>
-          <line>57</line>
+          <line>58</line>
           <option name="timeStamp" value="45" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url>
-          <line>60</line>
+          <line>61</line>
           <option name="timeStamp" value="46" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url>
-          <line>65</line>
+          <line>66</line>
           <option name="timeStamp" value="48" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
@@ -671,6 +685,100 @@
           <line>18</line>
           <option name="timeStamp" value="57" />
         </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java</url>
+          <line>129</line>
+          <option name="timeStamp" value="58" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url>
+          <option name="timeStamp" value="59" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url>
+          <line>108</line>
+          <option name="timeStamp" value="60" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java</url>
+          <line>28</line>
+          <option name="timeStamp" value="62" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java</url>
+          <line>37</line>
+          <option name="timeStamp" value="63" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java</url>
+          <line>132</line>
+          <option name="timeStamp" value="64" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url>
+          <line>90</line>
+          <option name="timeStamp" value="65" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url>
+          <line>98</line>
+          <option name="timeStamp" value="66" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url>
+          <line>103</line>
+          <option name="timeStamp" value="67" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url>
+          <line>43</line>
+          <option name="timeStamp" value="69" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url>
+          <line>44</line>
+          <option name="timeStamp" value="71" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url>
+          <line>51</line>
+          <option name="timeStamp" value="74" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url>
+          <line>46</line>
+          <option name="timeStamp" value="75" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url>
+          <line>48</line>
+          <option name="timeStamp" value="77" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url>
+          <line>55</line>
+          <option name="timeStamp" value="78" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url>
+          <line>80</line>
+          <option name="timeStamp" value="79" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url>
+          <line>83</line>
+          <option name="timeStamp" value="80" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url>
+          <line>104</line>
+          <option name="timeStamp" value="81" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url>
+          <line>89</line>
+          <option name="timeStamp" value="82" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>
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
index af5e740..184d83a 100644
--- 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
@@ -16,9 +16,25 @@
  */
 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.resource.GenericResource;
+import org.apache.airavata.datalake.drms.storage.*;
+import org.apache.custos.clients.CustosClientProvider;
+import org.apache.custos.clients.core.ClientUtils;
+import org.apache.custos.user.management.client.UserManagementClient;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.logging.Logger;
+
 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();
 //
@@ -61,6 +77,20 @@ public class Client {
 //                .setValue("02/15/2021")
 //                .build());
 
+
+        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 6565).usePlaintext().build();
+        ResourceServiceGrpc.ResourceServiceBlockingStub resourceClient = ResourceServiceGrpc.newBlockingStub(channel);
+
+        DRMSServiceAuthToken authToken = DRMSServiceAuthToken.newBuilder().
+                setAccessToken("eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4bTBuMk91R1hLckxMREZ3S0lBQ2J4T2JMYzUtY0MzRnFkT3M2akdLaGQ4In0.eyJqdGkiOiIwNWI5ZWY0ZS1lYzRkLTQyMWUtOWQ4Zi1lNmQ0NzEyMjczMWEiLCJleHAiOjE2MjA3NDkzODEsIm5iZiI6MCwiaWF0IjoxNjIwNzQ3NTgxLCJpc3MiOiJodHRwczovL2tleWNsb2FrLmN1c3Rvcy5zY2lnYXAub3JnOjMxMDAwL2F1dGgvcmVhbG1zLzEwMDAwNzAyIiwiYXVkIjpbInJlYWxtLW1hbmFnZW1lbnQiLCJhY2NvdW50Il0sInN1YiI6ImU4NzE2NjkzLWE5MzYtNDcwNy1hYjhhLWM2ZGMxYjNiOTcxMSIsInR5cCI6IkJlYXJlciIsImF6cCI6 [...]
+                .build();
+        ResourceSearchRequest request = ResourceSearchRequest.newBuilder().setAuthToken(authToken).build();
+
+        ResourceSearchResponse response =  resourceClient.searchResource(request);
+        for (GenericResource resource: response.getResourcesList()) {
+            System.out.println(resource.getType());
+        }
+
 //        try {
 //            InputStream inputStream = ClientUtils.getServerCertificate("custos.scigap.org",
 //                    "custos-2zuomcugra3ebgsqtzmf-10000514", "mupUhF4JL0S3IFHBjfhiTfLJS1NgSWfvkCj3l6c7");
@@ -76,7 +106,7 @@ public class Client {
 //                    .setClientId("custos-2zuomcugra3ebgsqtzmf-10000514")
 //                    .setClientSec("mupUhF4JL0S3IFHBjfhiTfLJS1NgSWfvkCj3l6c7").build();
 //            UserManagementClient userManagementClient = custosClientProvider.getUserManagementClient();
-//            userManagementClient.getUser("testuser123", "custos-2zuomcugra3ebgsqtzmf-10000514");
+//            userManagementClient.getUser("testuser", "custos-cmcdclbywlxmc2ktzv0d-10000702");
 //
 //        } catch (Exception ex) {
 //
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
index 75ee2a9..ff77b68 100644
--- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
@@ -17,15 +17,8 @@
 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.AuthenticatedUser;
-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;
@@ -48,20 +41,6 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
     @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());
@@ -81,7 +60,6 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
                 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()));
@@ -113,10 +91,15 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
         AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
 
         // TODO review (u)-[r4:MEMBER_OF]->(g2:Group)<-[r5:SHARED_WITH]-(sp),
-        List<Record> records = this.neo4JConnector.searchNodes(
-                "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference)-[r6:HAS_RESOURCE]->(res:Resource), " +
-                        "(u)-[r7:MEMBER_OF]->(g3:Group)<-[r8:SHARED_WITH]-(res) " +
-                        "where u.userId = '" + callUser.getUsername() + "' return distinct res, sp, s");
+//        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.getUsername() + "' return distinct res, sp, s");
+
+        List<Record> records = this.neo4JConnector.searchNodes("match (u:User)-[:HAS_PERMISSION]->(r)  where u.username='" + callUser.getUsername() + "'optional match (u)-[:MEMBER_OF]->(g)-[:HAS_PERMISSION]->(m)<-[:CHILD_OF]-(p) " +
+                "return distinct r, m,p");
+
+
         try {
             List<GenericResource> genericResourceList = GenericResourceDeserializer.deserializeList(records);
             ResourceSearchResponse.Builder builder = ResourceSearchResponse.newBuilder();
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java
index 1a68e6a..0886533 100644
--- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java
@@ -46,20 +46,6 @@ public class StoragePreferenceServiceHandler extends StoragePreferenceServiceGrp
     @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) {
diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
index b078944..40a0e77 100644
--- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
+++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
@@ -17,15 +17,8 @@
 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.AuthenticatedUser;
-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.constants.StorageConstants;
@@ -48,20 +41,6 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl
     @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) {
@@ -92,10 +71,10 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl
 
     @Override
     public void createStorage(StorageCreateRequest request, StreamObserver<StorageCreateResponse> responseObserver) {
-        User user = getUser(request.getAuthToken());
+        AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
         AnyStorage storage = request.getStorage();
         Map<String, Object> serializedMap = AnyStorageSerializer.serializeToMap(storage);
-        this.neo4JConnector.createNode(serializedMap, StorageConstants.STORAGE_LABEL, user.getUserId());
+        this.neo4JConnector.createNode(serializedMap, StorageConstants.STORAGE_LABEL, callUser.getUsername());
     }
 
     @Override
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
index 8476f44..476ec96 100644
--- 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
@@ -40,6 +40,7 @@ public class Authenticator implements ServiceInterceptor {
     }
 
 
+    // TODO : replace with security context
     private Optional<String> getAccessToken(Object msg) {
 
         if (msg instanceof StorageCreateRequest) {
@@ -104,8 +105,6 @@ public class Authenticator implements ServiceInterceptor {
 
         } else if (msg instanceof ResourceDeleteRequest) {
 
-        } else if (msg instanceof ResourceSearchRequest) {
-
         } else if (msg instanceof AddResourceMetadataRequest) {
 
         } else if (msg instanceof FetchResourceMetadataRequest) {
@@ -130,6 +129,17 @@ public class Authenticator implements ServiceInterceptor {
 
         } else if (msg instanceof StoragePreferenceSearchRequest) {
 
+        }else if (msg instanceof  ResourceSearchRequest) {
+            DRMSServiceAuthToken drmsServiceAuthToken = ((ResourceSearchRequest) msg)
+                    .getAuthToken();
+            drmsServiceAuthToken = drmsServiceAuthToken
+                    .toBuilder()
+                    .setAuthenticatedUser(user)
+                    .build();
+
+            return ((ResourceSearchRequest) msg)
+                    .toBuilder()
+                    .setAuthToken(drmsServiceAuthToken).build();
         }
         return Optional.empty();
     }
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
index d891249..1e261be 100644
--- a/data-resource-management-service/drms-api/src/main/resources/application.properties
+++ b/data-resource-management-service/drms-api/src/main/resources/application.properties
@@ -16,9 +16,9 @@
 # limitations under the License.
 #
 
-neo4j.server.uri=bolt://192.168.0.14:7687
+neo4j.server.uri=bolt://149.165.156.173:7687
 neo4j.server.user=neo4j
-neo4j.server.password=123456
+neo4j.server.password=blastcovid19
 group.service.host=localhost
 group.service.port=6565
 custos.id=custos-2zuomcugra3ebgsqtzmf-10000514
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
index c4f4d97..b5458cb 100644
--- 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
@@ -18,49 +18,42 @@
 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.apache.commons.collections.map.HashedMap;
 import org.neo4j.driver.Record;
 import org.neo4j.driver.Value;
 import org.neo4j.driver.internal.InternalRecord;
 import org.neo4j.driver.types.Node;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanWrapper;
 import org.springframework.beans.PropertyAccessorFactory;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 public class GenericResourceDeserializer {
+    public static final Logger LOGGER = LoggerFactory.getLogger(GenericResourceDeserializer.class);
 
     public static List<GenericResource> deserializeList(List<Record> neo4jRecords) throws Exception {
-        List<GenericResource> resourceList = new ArrayList<>();
+        Map<Long, Node> nodeMap = new HashedMap();
         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);
-                }
+
+            if (values.size() > 0) {
+                Map<Long, Node> longNodeMap = values.stream().filter(val ->
+                        val.toString().equals("NULL") ? false : true
+                ).collect(Collectors.toMap(val -> val.asNode().id(),
+                        Value::asNode,(existing, replacement) -> existing));
+                nodeMap.putAll(longNodeMap);
             }
         }
-        return resourceList;
+
+        return deriveGenericResourceFromMap(nodeMap);
     }
 
     public static GenericResource deriveGenericResourceFromMap(Map<String, Object> fixedMap,
@@ -68,7 +61,7 @@ public class GenericResourceDeserializer {
 
         GenericResource.Builder genericResourceBuilder = GenericResource.newBuilder();
         setObjectFieldsUsingMap(genericResourceBuilder, fixedMap);
-        switch (preference.getStorageCase()){
+        switch (preference.getStorageCase()) {
             case S3STORAGEPREFERENCE:
                 genericResourceBuilder.setS3Preference(preference.getS3StoragePreference());
                 break;
@@ -80,10 +73,28 @@ public class GenericResourceDeserializer {
         return genericResourceBuilder.build();
     }
 
+    public static List<GenericResource> deriveGenericResourceFromMap(Map<Long, Node> nodeMap) throws Exception {
+        return nodeMap.values().stream().map(node -> {
+            GenericResource.Builder genericResourceBuilder = GenericResource.newBuilder();
+            Iterator<String> iterator = node.labels().iterator();
+            while (iterator.hasNext()) {
+                genericResourceBuilder.setType(iterator.next());
+            }
+            for (String field : node.asMap().keySet()) {
+                genericResourceBuilder.putProperties(field, String.valueOf(node.asMap().get(field)));
+            }
+            return genericResourceBuilder.build();
+        }).collect(Collectors.toList());
+
+    }
+
+
     private static void setObjectFieldsUsingMap(Object target, Map<String, Object> values) {
-        for (String field :values.keySet()) {
+        for (String field : values.keySet()) {
             BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(target);
             beanWrapper.setPropertyValue(field, values.get(field));
         }
     }
+
+
 }
diff --git a/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb b/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb
index bb14862..528ff35 100644
Binary files a/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb and b/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb differ
diff --git a/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb b/data-resource-management-service/drms-stubs/drms.pb
similarity index 98%
copy from data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb
copy to data-resource-management-service/drms-stubs/drms.pb
index bb14862..528ff35 100644
Binary files a/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb and b/data-resource-management-service/drms-stubs/drms.pb differ
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
index adf1231..fb95271 100644
--- 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
@@ -31,4 +31,6 @@ message GenericResource {
     org.apache.airavata.datalake.drms.storage.preference.s3.S3StoragePreference s3Preference = 3;
     org.apache.airavata.datalake.drms.storage.preference.ssh.SSHStoragePreference sshPreference = 4;
   }
+  map<string, string> properties = 5;
+  string type=6;
 }
\ No newline at end of file
diff --git a/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java b/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java
index 4ddd116..4f0155b 100644
--- a/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java
+++ b/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java
@@ -297,20 +297,20 @@ public class Test {
                 .setTenant(tenant)
                 .build();
 
-//        stub.createTenant(request);
-//
+        stub.createTenant(request);
 
-//        ResourceMetadataServiceGrpc.ResourceMetadataServiceBlockingStub resourceMetadataServiceBlockingStub = serviceClient.resource();
-//
-//        ResourcePermissionRequest permissionRequest = ResourcePermissionRequest
-//                .newBuilder()
-//                .setPermissionType("READ")
-//                .setUsername("testuser")
-//                .setResourceName("FileA")
-//                .setTenantId("custos-cmcdclbywlxmc2ktzv0d-10000702")
-//                .build();
-//      ResourcePermissionResponse response =   resourceMetadataServiceBlockingStub.hasAccess(permissionRequest);
-//        System.out.println(response.getAccessible());
+
+        ResourceMetadataServiceGrpc.ResourceMetadataServiceBlockingStub resourceMetadataServiceBlockingStub = serviceClient.resource();
+
+        ResourcePermissionRequest permissionRequest = ResourcePermissionRequest
+                .newBuilder()
+                .setPermissionType("READ")
+                .setUsername("testuser")
+                .setResourceName("FileA")
+                .setTenantId("custos-cmcdclbywlxmc2ktzv0d-10000702")
+                .build();
+      ResourcePermissionResponse response =   resourceMetadataServiceBlockingStub.hasAccess(permissionRequest);
+        System.out.println(response.getAccessible());
 
 
 //        TenantMetadataAPIRequest tenantMetadataAPIRequest = TenantMetadataAPIRequest
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java
index 389277e..2352bcc 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java
@@ -14,6 +14,7 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 import java.util.concurrent.atomic.AtomicReference;
 
 
@@ -40,12 +41,12 @@ public abstract class GenericService<T> implements Service<T>, Closeable {
     }
 
     @Override
-    public T find(Long id) {
+    public T find(UUID id) {
         return session.load(getEntityType(), id, DEPTH_ENTITY);
     }
 
     @Override
-    public void delete(Long id) {
+    public void delete(UUID id) {
         session.delete(session.load(getEntityType(), id));
     }
 
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java
index e1fecb7..008c086 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java
@@ -7,14 +7,15 @@ import org.neo4j.ogm.cypher.query.SortOrder;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 public interface Service<T> {
 
     Iterable<T> findAll();
 
-    T find(Long id);
+    T find(UUID id);
 
-    void delete(Long id);
+    void delete(UUID id);
 
     Collection<T> search(List<SearchOperator> searchOperatorList);
 
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java
index c1a2bcc..0ebec8d 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java
@@ -3,14 +3,19 @@ package org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes;
 import org.apache.airavata.datalake.metadata.backend.neo4j.model.relationships.Has;
 import org.apache.airavata.datalake.metadata.parsers.ExecutionContext;
 import org.neo4j.ogm.annotation.*;
+import org.neo4j.ogm.annotation.typeconversion.Convert;
+import org.neo4j.ogm.id.UuidStrategy;
+import org.neo4j.ogm.typeconversion.UuidStringConverter;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.UUID;
 
 public abstract class Entity {
     @Id
-    @GeneratedValue
-    private Long id;
+    @GeneratedValue(strategy = UuidStrategy.class )
+    @Convert(UuidStringConverter.class)
+    private UUID id;
 
     @Properties(prefix = "external_id")
     private Map<String,String > externalIds = new HashMap<>();
@@ -41,7 +46,7 @@ public abstract class Entity {
 
 
 
-    public Long getId() {
+    public UUID getId() {
         return id;
     }
 
@@ -109,7 +114,7 @@ public abstract class Entity {
         this.tenantId = tenantId;
     }
 
-    public void setId(Long id) {
+    public void setId(UUID id) {
         this.id = id;
     }
 
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java
index 9b735ec..1841e43 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java
@@ -24,15 +24,15 @@ public class Group extends Entity {
 
     @Relationship(type = "HAS_CHILD_GROUP", direction = Relationship.INCOMING)
     private HasChildGroup childGroupInPointers;
+//
+//    @Relationship(type = "HAS_CHILD_USER")
+//    private Set<HasChildUser> childUsers = new HashSet<>();
 
-    @Relationship(type = "HAS_CHILD_USER")
-    private Set<HasChildUser> childUsers = new HashSet<>();
-
-    @Relationship(type = "HAS_PARENT_GROUP", direction = Relationship.INCOMING)
-    private final Set<HasParentGroup> parentGroupInPointers = new HashSet<>();
-
-    @Relationship(type = "HAS_PARENT_GROUP")
-    private HasParentGroup parent;
+//    @Relationship(type = "HAS_PARENT_GROUP", direction = Relationship.INCOMING)
+//    private final Set<HasParentGroup> parentGroupInPointers = new HashSet<>();
+//
+//    @Relationship(type = "HAS_PARENT_GROUP")
+//    private HasParentGroup parent;
 
     @Relationship(type = "MEMBER_OF", direction = Relationship.INCOMING)
     private Set<MemberOf> memberUsersInPointers = new HashSet<>();
@@ -40,8 +40,8 @@ public class Group extends Entity {
     @Relationship(type = "SHARED_WITH", direction = Relationship.INCOMING)
     private final Set<SharedWith> sharedResourcesInPointers = new HashSet<>();
 
-    @Relationship(type = "HAS_ACCESS")
-    private final Set<HasAccess> accessibleResources = new HashSet<>();
+//    @Relationship(type = "HAS_ACCESS")
+//    private final Set<HasAccess> accessibleResources = new HashSet<>();
 
 
     public Group() {
@@ -73,13 +73,13 @@ public class Group extends Entity {
         this.childGroups.add(childGroup);
     }
 
-    public Set<HasChildUser> getChildUsers() {
-        return childUsers;
-    }
-
-    public void addChildUser(HasChildUser childUser) {
-        this.childUsers.add(childUser);
-    }
+//    public Set<HasChildUser> getChildUsers() {
+//        return childUsers;
+//    }
+//
+//    public void addChildUser(HasChildUser childUser) {
+//        this.childUsers.add(childUser);
+//    }
 
 
     public Set<MemberOf> getMemberUsersInPointers() {
@@ -98,13 +98,13 @@ public class Group extends Entity {
         this.sharedResourcesInPointers.add(sharedResourcesInPointer);
     }
 
-    public Set<HasAccess> getAccessibleResources() {
-        return accessibleResources;
-    }
-
-    public void addAccessibleResources(HasAccess accessibleResources) {
-        this.accessibleResources.add(accessibleResources);
-    }
+//    public Set<HasAccess> getAccessibleResources() {
+//        return accessibleResources;
+//    }
+//
+//    public void addAccessibleResources(HasAccess accessibleResources) {
+//        this.accessibleResources.add(accessibleResources);
+//    }
 
     public void setChildGroups(Set<HasChildGroup> childGroups) {
         this.childGroups = childGroups;
@@ -118,25 +118,25 @@ public class Group extends Entity {
         this.childGroupInPointers = childGroupInPointers;
     }
 
-    public void setChildUsers(Set<HasChildUser> childUsers) {
-        this.childUsers = childUsers;
-    }
-
-    public Set<HasParentGroup> getParentGroupInPointers() {
-        return parentGroupInPointers;
-    }
-
-    private void addParentGroupInPointer(HasParentGroup parentGroup) {
-        this.parentGroupInPointers.add(parentGroup);
-    }
-
-    public HasParentGroup getParent() {
-        return parent;
-    }
-
-    public void setParent(HasParentGroup parent) {
-        this.parent = parent;
-    }
+//    public void setChildUsers(Set<HasChildUser> childUsers) {
+//        this.childUsers = childUsers;
+//    }
+
+//    public Set<HasParentGroup> getParentGroupInPointers() {
+//        return parentGroupInPointers;
+//    }
+//
+//    private void addParentGroupInPointer(HasParentGroup parentGroup) {
+//        this.parentGroupInPointers.add(parentGroup);
+//    }
+//
+//    public HasParentGroup getParent() {
+//        return parent;
+//    }
+//
+//    public void setParent(HasParentGroup parent) {
+//        this.parent = parent;
+//    }
 
     public void setMemberUsersInPointers(Set<MemberOf> memberUsersInPointers) {
         this.memberUsersInPointers = memberUsersInPointers;
@@ -160,8 +160,8 @@ public class Group extends Entity {
         childUser.setUserType(membership);
         childUser.setStartEntity(this);
         childUser.setEndEntity(user);
-        user.addGroup(childUser);
-        this.addChildUser(childUser);
+//        user.addGroup(childUser);
+//        this.addChildUser(childUser);
 
         if (relationshipCreatedAt != 0) {
             memberOf.setCreatedAt(relationshipCreatedAt);
@@ -188,22 +188,22 @@ public class Group extends Entity {
         this.addChildGroup(hasChildGroup);
         group.setChildGroupInPointers(hasChildGroup);
 
-        HasParentGroup hasParentGroup = new HasParentGroup();
-        hasParentGroup.setStartEntity(group);
-        hasParentGroup.setEndEntity(this);
-        group.setParent(hasParentGroup);
-        this.addParentGroupInPointer(hasParentGroup);
+//        HasParentGroup hasParentGroup = new HasParentGroup();
+//        hasParentGroup.setStartEntity(group);
+//        hasParentGroup.setEndEntity(this);
+//        group.setParent(hasParentGroup);
+//        this.addParentGroupInPointer(hasParentGroup);
 
         if (relationShipCreatedAt != 0) {
-            hasParentGroup.setCreatedAt(relationShipCreatedAt);
+//            hasParentGroup.setCreatedAt(relationShipCreatedAt);
             hasChildGroup.setCreatedAt(relationShipCreatedAt);
         }
         if (relationShipModifiedAt != 0) {
-            hasParentGroup.setLastModifiedAt(relationShipModifiedAt);
+//            hasParentGroup.setLastModifiedAt(relationShipModifiedAt);
             hasChildGroup.setLastModifiedAt(relationShipModifiedAt);
         }
         if (relationshipProperties != null) {
-            hasParentGroup.setProperties(relationshipProperties);
+//            hasParentGroup.setProperties(relationshipProperties);
             hasChildGroup.setProperties(relationshipProperties);
         }
 
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java
index a61848b..aea5eba 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java
@@ -7,13 +7,12 @@ import org.neo4j.ogm.annotation.*;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 
 @NodeEntity
 public class Resource extends Entity {
 
-    @Id
-    @GeneratedValue
-    private Long id;
+
 
     @Property(name = "name")
     private String name;
@@ -27,17 +26,17 @@ public class Resource extends Entity {
     @Relationship(type = "HAS_CHILD_RESOURCE", direction = Relationship.INCOMING)
     private HasChildResource parentInPointer;
 
-    @Relationship(type = "HAS_PARENT_RESOURCE", direction = Relationship.INCOMING)
-    private final Set<HasParentResource> childInPointers = new HashSet<>();
-
-    @Relationship(type = "HAS_PARENT_RESOURCE")
-    private HasParentResource parent;
+//    @Relationship(type = "HAS_PARENT_RESOURCE", direction = Relationship.INCOMING)
+//    private final Set<HasParentResource> childInPointers = new HashSet<>();
+//
+//    @Relationship(type = "HAS_PARENT_RESOURCE")
+//    private HasParentResource parent;
 
     @Relationship(type = "SHARED_WITH")
     private final Set<SharedWith> shares = new HashSet<>();
 
-    @Relationship(type = "HAS_ACCESS", direction = Relationship.INCOMING)
-    private final Set<HasAccess> accesses = new HashSet<>();
+//    @Relationship(type = "HAS_ACCESS", direction = Relationship.INCOMING)
+//    private final Set<HasAccess> accesses = new HashSet<>();
 
     public Resource() {
     }
@@ -59,21 +58,21 @@ public class Resource extends Entity {
         this.childResourceSet.add(childResource);
     }
 
-    public Set<HasParentResource> getChildInPointers() {
-        return childInPointers;
-    }
-
-    public void addChildInPointers(HasParentResource childInPointers) {
-        this.childInPointers.add(childInPointers);
-    }
-
-    public HasParentResource getParent() {
-        return parent;
-    }
-
-    public void setParent(HasParentResource parent) {
-        this.parent = parent;
-    }
+//    public Set<HasParentResource> getChildInPointers() {
+//        return childInPointers;
+//    }
+//
+//    public void addChildInPointers(HasParentResource childInPointers) {
+//        this.childInPointers.add(childInPointers);
+//    }
+//
+//    public HasParentResource getParent() {
+//        return parent;
+//    }
+//
+//    public void setParent(HasParentResource parent) {
+//        this.parent = parent;
+//    }
 
     public HasChildResource getParentInPointer() {
         return parentInPointer;
@@ -99,28 +98,20 @@ public class Resource extends Entity {
         this.shares.add(share);
     }
 
-    public Set<HasAccess> getAccesses() {
-        return accesses;
-    }
-
-    public void addAccess(HasAccess access) {
-        this.accesses.add(access);
-    }
+//    public Set<HasAccess> getAccesses() {
+//        return accesses;
+//    }
+//
+//    public void addAccess(HasAccess access) {
+//        this.accesses.add(access);
+//    }
 
     @Override
     public String getSearchableId() {
         return this.getName()+"@"+this.getTenantId();
     }
 
-    @Override
-    public Long getId() {
-        return id;
-    }
 
-    @Override
-    public void setId(Long id) {
-        this.id = id;
-    }
 
     public void addChildResource(Resource resource, long createdAt, long lastModifiedAt,
                                  Map<String, String> properties) {
@@ -133,8 +124,8 @@ public class Resource extends Entity {
         HasParentResource hasParentResource = new HasParentResource();
         hasParentResource.setStartEntity(resource);
         hasParentResource.setEndEntity(this);
-        resource.setParent(hasParentResource);
-        this.addChildInPointers(hasParentResource);
+//        resource.setParent(hasParentResource);
+//        this.addChildInPointers(hasParentResource);
 
         if (createdAt != 0) {
             hasParentResource.setCreatedAt(createdAt);
@@ -165,8 +156,8 @@ public class Resource extends Entity {
         hasAccess.setStartEntity(user);
         hasAccess.setEndEntity(this);
         hasAccess.setPermissionType(permission);
-        this.addAccess(hasAccess);
-        user.addAccessibleResources(hasAccess);
+//        this.addAccess(hasAccess);
+//        user.addAccessibleResources(hasAccess);
 
         if (createdAt != 0) {
             sharedWith.setCreatedAt(createdAt);
@@ -197,8 +188,8 @@ public class Resource extends Entity {
         hasAccess.setStartEntity(group);
         hasAccess.setEndEntity(this);
         hasAccess.setPermissionType(permission);
-        this.addAccess(hasAccess);
-        group.addAccessibleResources(hasAccess);
+//        this.addAccess(hasAccess);
+//        group.addAccessibleResources(hasAccess);
 
         if (relationshipCreatedAt != 0) {
             sharedWith.setCreatedAt(relationshipCreatedAt);
diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java
index 10a00ff..326d11d 100644
--- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java
+++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java
@@ -30,14 +30,14 @@ public class User extends Entity {
     @Relationship(type = "MEMBER_OF")
     private final Set<MemberOf> memberGroups = new HashSet<>();
 
-    @Relationship(type = "HAS_CHILD_USER", direction = Relationship.INCOMING)
-    private final Set<HasChildUser> groups = new HashSet<>();
+//    @Relationship(type = "HAS_CHILD_USER", direction = Relationship.INCOMING)
+//    private final Set<HasChildUser> groups = new HashSet<>();
 
     @Relationship(type = "SHARED_WITH", direction = Relationship.INCOMING)
     private final Set<SharedWith> sharedResources = new HashSet<>();
 
-    @Relationship(type = "HAS_ACCESS")
-    private final Set<HasAccess> accessibleResources = new HashSet<>();
+//    @Relationship(type = "HAS_ACCESS")
+//    private final Set<HasAccess> accessibleResources = new HashSet<>();
 
     public User() {
     }
@@ -106,13 +106,13 @@ public class User extends Entity {
         this.memberGroups.add(memberGroup);
     }
 
-    public Set<HasChildUser> getGroups() {
-        return groups;
-    }
-
-    public void addGroup(HasChildUser hasChildUser) {
-        this.groups.add(hasChildUser);
-    }
+//    public Set<HasChildUser> getGroups() {
+//        return groups;
+//    }
+//
+//    public void addGroup(HasChildUser hasChildUser) {
+//        this.groups.add(hasChildUser);
+//    }
 
     public Set<SharedWith> getSharedResources() {
         return sharedResources;
@@ -122,13 +122,13 @@ public class User extends Entity {
         this.sharedResources.add(sharedResource);
     }
 
-    public Set<HasAccess> getAccessibleResources() {
-        return accessibleResources;
-    }
-
-    public void addAccessibleResources(HasAccess accessibleResources) {
-        this.accessibleResources.add(accessibleResources);
-    }
+//    public Set<HasAccess> getAccessibleResources() {
+//        return accessibleResources;
+//    }
+//
+//    public void addAccessibleResources(HasAccess accessibleResources) {
+//        this.accessibleResources.add(accessibleResources);
+//    }
 
     @Override
     public String getSearchableId() {