anchor.diff:                                                        KVs)),
       RestApiPrefix = binary_to_list(get_element(<<"rest-api-prefix">>, KVs)),
       DocRoot = decode_docroot(get_element(<<"doc-root">>, KVs)),
  +    ReqHdrFilter = decode_request_header_filter(
  +                     get_opt_element(<<"request-headers-filter">>, KVs)),
       case {valid_service(ServiceName),
             find_plugin_by_prefix(RestApiPrefix, Plugins)} of
           {true, false} ->
  
positive.code: -define(TIMEOUT, 60000).
  -define(PART_SIZE, 100000).
  -define(WINDOW_SIZE, 5).
  
  -type service_name()   :: atom().
  -type rest_api_prefix():: string().
  -type proxy_strategy() :: local.
  -record(plugin, { name            :: service_name(),
                    proxy_strategy  :: proxy_strategy(),
                    rest_api_prefix :: rest_api_prefix(),
                    doc_root        :: {multiple_roots, [string()]} | string()}).
  -type plugin()  :: #plugin{}.
  -type plugins() :: [plugin()].
  
  -define(VIEW_PLUGIN, #plugin{name = views,
                               proxy_strategy = local,
                               rest_api_prefix = "couchBase",
                               doc_root = ""}).
  
  -spec find_plugins() -> plugins().
  find_plugins() ->
  
negative.code:     {Key, Val} = lists:keyfind(Key, 1, KVs),
      Val.
  
  get_opt_element(Key, KVs) ->
      case lists:keyfind(Key, 1, KVs) of
          {Key, Val} ->
              Val;
           false ->
              undefined
      end.
  
  decode_proxy_strategy(<<"local">>) ->
      local.
  
  