anchor.diff:              <<"creationTime">> => CreationTime
           }),
           <<"canViewPrivateData">> => false
  -    };
  +    } end;
   
   translate_cluster(#gri{aspect = users}, Users) ->
       #{
  
positive.code:     gs_protocol:data() | fun((gs_protocol:client()) -> gs_protocol:data()).
  translate_harvester(#gri{id = HarvesterId, aspect = instance, scope = private}, Harvester) ->
      #od_harvester{
          name = Name, endpoint = Endpoint, 
          plugin = Plugin
      } = Harvester,
      fun(?USER(UserId)) ->
          #{
              <<"name">> => Name,
              <<"scope">> => <<"private">>,
              <<"endpoint">> => Endpoint,
              <<"plugin">> => atom_to_binary(Plugin, utf8),
              <<"indexList">> => gs_protocol:gri_to_string(#gri{type = od_harvester, id = HarvesterId, aspect = indices}),
              <<"canViewPrivileges">> => harvester_logic:has_eff_privilege(Harvester, UserId, ?HARVESTER_VIEW_PRIVILEGES),
              <<"directMembership">> => harvester_logic:has_direct_user(Harvester, UserId),
              <<"userList">> => gs_protocol:gri_to_string(#gri{type = od_harvester, id = HarvesterId, aspect = users}),
              <<"effUserList">> => gs_protocol:gri_to_string(#gri{type = od_harvester, id = HarvesterId, aspect = eff_users}),
              <<"groupList">> => gs_protocol:gri_to_string(#gri{type = od_harvester, id = HarvesterId, aspect = groups}),
              <<"effGroupList">> => gs_protocol:gri_to_string(#gri{type = od_harvester, id = HarvesterId, aspect = eff_groups}),
              <<"spaceList">> => gs_protocol:gri_to_string(#gri{type = od_harvester, id = HarvesterId, aspect = spaces}),
              <<"info">> => maps:merge(translate_creator(Harvester#od_harvester.creator), #{
                  <<"creationTime">> => Harvester#od_harvester.creation_time
              })
          }
      end;
  
  translate_harvester(#gri{aspect = instance, scope = protected}, HarvesterData) ->
      #{
          <<"name">> := Name,
          <<"public">> := Public,
  
negative.code:         <<"creationTime">> := CreationTime,
          <<"creator">> := Creator
      } = HarvesterData,
      fun(?USER(UserId)) -> #{
          <<"name">> => Name,
          <<"public">> => Public,
          <<"plugin">> => Plugin,
          <<"endpoint">> => Endpoint,
          <<"scope">> => <<"protected">>,
          <<"directMembership">> => harvester_logic:has_direct_user(HarvesterId, UserId),
          <<"info">> => maps:merge(translate_creator(Creator), #{
              <<"creationTime">> => CreationTime
          })
      } end;
  
  translate_harvester(#gri{aspect = gui_plugin_config}, Config) ->
      #{
  