Row level access filter

Hi,
One of the major issues of ODK Aggregate on my current system is long sync. There are multiple users, and all table rows syncs to all of them. I am finding a solution to improve the sync duration.

I am aware of Row-Level Access Filters feature which is stated here https://docs.odk-x.org/data-permission-filters/#row-level-access-filters. I test and can confirm that I could only see the rows belonging to me (row owner). However, it seems that it is about visibility only as I could see other rows on sqlite db on the phone. When I sync, will invisible rows involve in the sync also? Is the sync faster than the case where I can see all of rows?

I also notice that this card https://github.com/odk-x/tool-suite-X/issues/95 is still under consideration. That means the implementation so far is about visibility only, not about sync. Is that correct?

Hi! Great question.

So I don’t think row level access filters will affect the speed of the sync. The implementation so far is only about visibility, not about sync, you are correct.

Thanks @elmps2018 for the confirmation.

1 Like

A couple of small points that might be helpful.

  1. The first sync is always the long sync, then it only the changes.
  2. If you take lots of pictures or other binary content you can chose not to sync those which can speed things up.
  3. Setting the camera to lower resolution will help with the size if you do want to sync all pictures. We do have a feature under development to automatically resize the pictures on the down sync. A full size image will be uploaded to the server but then on the way to other mobile devices the picture will be decreased resolution to speed up sync.
2 Likes