anchor.diff:                                    [PoolId, Id]};
                                ["pools", PoolId, "bucketsStreaming", Id] ->
                                    {auth_bucket_with_info, fun handle_bucket_info_streaming/5,
  +                                  [PoolId, Id]};
  +                             ["pools", PoolId, "bucketsStreamingConfig", Id] ->
  +                                 {auth_bucket_with_info, fun handle_bucket_info_streaming_config/5,
                                     [PoolId, Id]};
                                ["pools", PoolId, "buckets", Id, "stats"] ->
                                    {auth_bucket, fun menelaus_stats:handle_bucket_stats/3,
  
positive.code:     OtpCookie = list_to_binary(atom_to_list(ns_node_disco:cookie_get())),
      WantENodes = ns_node_disco:nodes_wanted(),
      NodeStatuses = ns_doctor:get_nodes(),
      BucketsAll = expect_prop_value(buckets, MyPool),
      NodesBucketMemoryTotal =
          length(WantENodes) *
              lists:foldl(fun({_BucketName, BucketConfig}, Acc) ->
                                  Acc + proplists:get_value(size_per_node, BucketConfig, 0)
                          end,
                          0,
                          BucketsAll),
      {ok, Stats} = stats_aggregator:get_stats(1),
      NodesBucketMemoryAllocated = case dict:find("bytes", Stats) of
          {ok, [Bytes]} -> Bytes;
          error -> 0
      end,
      Nodes =
          lists:map(
            fun(WantENode) ->
  
negative.code:              %% TODO: this should be under a controllers/ kind of namespacing
               {flushCacheUri, list_to_binary(concat_url_path(["pools", PoolId,
                                                               "buckets", Id, "controller", "doFlush"]))},
               {nodes, Nodes},
               {stats, {struct, [{uri, StatsUri}]}}],
      List2 = case tgen:is_traffic_bucket(PoolId, Id) of
  