anchor.diff:  %% node ops
   %%
   
  --spec create_node(#chef_node{}) -> {ok, 1} | {error, term()}.
  -create_node(#chef_node{}=Node) ->
  -    create_object(Node).
  -
  --spec delete_node(bin_or_string()) -> {ok, 1 | 'none' | 'not_found'} | {error, term()}.
  -delete_node(NodeId) when is_list(NodeId) ->
  -    delete_node(list_to_binary(NodeId));
  -delete_node(#chef_node{id=NodeId})->
  -    delete_node(NodeId);
  -delete_node(NodeId) when is_binary(NodeId) ->
  -    delete_object(delete_node_by_id, NodeId).
  -
  --spec update_node(#chef_node{}) -> {ok, 1 | not_found} | {error, term()}.
  -update_node(#chef_node{environment = Environment,
  -                       last_updated_by = LastUpdatedBy,
  -                       updated_at = UpdatedAt,
  -                       serialized_object = Object,
  -                       id = Id}) ->
  -    UpdateFields = [Environment, LastUpdatedBy, UpdatedAt, Object, Id],
  -    do_update(update_node_by_id, UpdateFields).
  -
   -spec bulk_get_nodes([binary()]) -> {ok, [binary()] | not_found} |
                                       {error, term()}.
   bulk_get_nodes(Ids) ->
  
positive.code: bulk_get_data_bag_items(Ids) ->
      bulk_get_objects(data_bag_item, Ids).
  
  -spec create_data_bag_item(#chef_data_bag_item{}) -> {ok, 1} | {error, term()}.
  create_data_bag_item(#chef_data_bag_item{}=DataBagItem) ->
      create_object(DataBagItem).
  
  -spec delete_data_bag_item(bin_or_string()) -> {ok, 1 | 'none' | 'not_found'} | {error, term()}.
  delete_data_bag_item(DataBagItemId) when is_list(DataBagItemId) ->
      delete_data_bag_item(list_to_binary(DataBagItemId));
  delete_data_bag_item(#chef_data_bag_item{id=DataBagItemId})->
      delete_data_bag_item(DataBagItemId);
  delete_data_bag_item(DataBagItemId) when is_binary(DataBagItemId) ->
      delete_object(delete_data_bag_item_by_id, DataBagItemId).
  
  -spec update_data_bag_item(#chef_data_bag_item{}) -> {ok, 1 | not_found} | {error, term()}.
  update_data_bag_item(#chef_data_bag_item{last_updated_by = LastUpdatedBy,
                         updated_at = UpdatedAt,
                         serialized_object = Object,
                         id = Id}) ->
      UpdateFields = [LastUpdatedBy, UpdatedAt, Object, Id],
      do_update(update_data_bag_item_by_id, UpdateFields).
  
  %%
  %% environment ops
  %%
  
negative.code:                                            {error, term()}.
  bulk_get_environments(Ids) ->
      bulk_get_objects(environment, Ids).
  
  %%
  %% client ops
  