3

We are building an application, using Box .NET sdk, to display the content of a customer Box account. Our synchronisation tool use the Box content API to retrieve folders and files and build a cache from this information. To detect if changes have happened since last synchronisation, we compare a folder modified_at field.

When inserting or updating a file, the parent folder modified_at fields is updated to the correct timestamp.

When deleting a file, the parent folder timestamp stays the same. Is it a bug or the correct behavior ?

Official forum question : https://community.box.com/t5/Developer-Forum/Box-Content-API-Is-modified-at-field-of-parent-folder-updated/td-p/15335

Simon ML
  • 1,819
  • 2
  • 14
  • 32

1 Answers1

1

This is a known issue, but we currently do not have a timeline on a fix. Here is a workaround to discover if what files have been recently deleted.

(1) Call the Events API with these parameters: "stream_type=admin_logs&event_type=delete". This will return a list of items that have been deleted, along with each item's parent folder id.

Example Request

curl "https://api.box.com/2.0/events?stream_type=admin_logs&event_type=delete" -H "Authorization: Bearer AUTH_TOKEN"

Example Response

{
  "chunk_size": 1,
  "next_stream_position": "0000000000000000000",
  "entries": [
    {
      "source": {
        "item_type": "file",
        "item_id": "00000000000",
        "item_name": "example-file.txt",
        "parent": {
          "type": "folder",
          "name": "Example Folder Name",
          "id": "0000000000"
        }
      },
      "created_by": {
        "type": "user",
        "id": "000000000",
        "name": "Example Name",
        "login": "example@example.com"
      },
      "created_at": "2016-04-15T00:00:00-07:00",
      "event_id": "00000000-0000-0000-0000-000000000000",
      "event_type": "DELETE",
      "ip_address": "Unknown IP",
      "type": "event",
      "session_id": null,
      "additional_details": {
        "version_id": "00000000000"
      }
    }
  ]
}

(2) Use the next_stream_position returned in step 1 on subsequent calls to get the deleted items after that point.

Murtza Manzur
  • 1,224
  • 1
  • 8
  • 12
  • This solution is not ideal since we will have to process all the delete events, file or folder, and regardless of the parent folder. It will make our sync logic pretty messy. I think we'll end up waiting for a fix to this problem instead... – Gabriel Apr 20 '16 at 13:50