anchor.diff:      get_file_shares/1,
       update_share_name/1,
       delete_share/1,
  -    set_get_json_metadata/1,
  -    set_get_json_metadata_id/1,
  -    set_get_rdf_metadata/1,
  -    set_get_rdf_metadata_id/1,
  -    set_get_json_metadata_inherited/1,
  -    set_get_xattr_inherited/1,
  -    set_get_json_metadata_using_filter/1,
  -    primitive_json_metadata_test/1,
  -    empty_metadata_invalid_json_test/1,
       list_transfers/1,
  -    track_transferred_files/1
  +    track_transferred_files/1,
  +    xattr_put/1,
  +    primitive_json_metadata_test/1
   ]).
   
   %utils
  
positive.code:         DecodedBody
      ).
  
  xattr_get(Config) ->
      [_WorkerP2, WorkerP1] = ?config(op_worker_nodes, Config),
      SessionId = ?config({session_id, {<<"user1">>, ?GET_DOMAIN(WorkerP1)}}, Config),
      [{_SpaceId, SpaceName} | _] = ?config({spaces, <<"user1">>}, Config),
      File = filename:join(["/", SpaceName, "file1_xg"]),
      {ok, FileGuid} = lfm_proxy:create(WorkerP1, SessionId, File, 8#700),
      ok = lfm_proxy:set_xattr(WorkerP1, SessionId, {guid, FileGuid}, #xattr{name = <<"k1">>, value = <<"v1">>}),
  
      % when
      {ok, 200, _, Body} = rest_test_utils:request(WorkerP1, <<"metadata/xattrs", File/binary, "?attribute=k1">>, get, ?USER_1_AUTH_HEADERS(Config), []),
  
      % then
      DecodedBody = json_utils:decode(Body),
      ?assertEqual(
          #{
              <<"k1">> => <<"v1">>
          },
          DecodedBody
      ).
  
  xattr_put(Config) ->
      [_WorkerP2, WorkerP1] = ?config(op_worker_nodes, Config),
      SessionId = ?config({session_id, {<<"user1">>, ?GET_DOMAIN(WorkerP1)}}, Config),
  
negative.code:     posix_mode_get/1,
      posix_mode_put/1,
      attributes_list/1,
      metric_get/1,
      list_spaces/1,
      get_space/1,
      create_share/1,
  