anchor.diff:      ok = ?COUCH:compact_view_group(DbName, Id),
       send_json(Req, 202, {[{ok, true}]});
   
  -handle_compact_req(#httpd{method='POST'}=Req, Db) ->
  -    StartSeq = chttpd:qs_value(Req, "start_seq", "0"),
  -    ok = ?COUCH:compact_db(Db, list_to_integer(StartSeq)),
  -    send_json(Req, 202, {[{ok, true}]});
  -
  -handle_compact_req(Req, _Db) ->
  -    send_method_not_allowed(Req, "POST").
  -
  -handle_view_cleanup_req(#httpd{method='POST'}=Req, _Db) ->
  -    % delete unreferenced index files
  -    % ok = ?COUCH:cleanup_view_index_files(Db),
  -    send_json(Req, 202, {[{ok, true}]});
  -
  -handle_view_cleanup_req(Req, _Db) ->
  -    send_method_not_allowed(Req, "POST").
  -
  +handle_compact_req(Req, _) ->
  +    Msg = <<"Compaction is handled automatically by Cloudant">>,
  +    chttpd:send_error(Req, 403, Msg).
  +
  +handle_view_cleanup_req(Req, _) ->
  +    Msg = <<"Old view indices are purged automatically by Cloudant">>,
  +    chttpd:send_error(Req, 403, Msg).
   
   handle_design_req(#httpd{
           path_parts=[_DbName,_Design,_DesName, <<"_",_/binary>> = Action | _Rest],
  
positive.code:     NewDoc = Doc#doc{
          atts = UpdatedAtts ++ OldAtts2
      },
      {ok, NewRev} = fabric:update_doc(Db, NewDoc, []),
  
      send_json(Req, 201, [{"Etag", "\"" ++ ?b2l(couch_doc:rev_to_str(NewRev)) ++ "\""}], {[
          {ok, true},
  
negative.code:         ]});
      _Normal ->
          % normal
          {ok, NewRev} = fabric:update_doc(Db, Doc2, [{user_ctx,Ctx}]),
          DocUrl = absolute_uri(
              Req, binary_to_list(<<"/",DbName/binary,"/", DocId/binary>>)),
          send_json(Req, 201, [{"Location", DocUrl}], {[
  