Our remote event receiver is setup to track changes for every document on a web. This includes documents in all subsites and all lists in a recursive manner.
The way it is setup is as follows. It requires full control of site collection permission. Then during app install sync event it registers an async event for all existing documents, recursively in all lists and subsites. Also an async event whenever a new subsite or list is created.
If a new subsite or list is created, the async event is fired and in that event it sets up async events for all documents in that list and all lists and documents in the subsite.
Is this the best way of handling this requirement? If I request item changed/deleted/added/moved permissions instead in the manifest file, would this fire the sync event for all documents (recursively in all subsites and lists)?