I am interested in directly adding content to my OmniFocus database by programmatically writing transaction files into my sync server data store. (Example use case: email-to-OmniFocus inbox, appearing immediately on an iOS device without needing a Mac to actually be online and fetching mail at the time.)
The format seems relatively simple (especially for simple item additions).
A few questions arise:
What is the exact naming scheme for the transaction files? It seems to be simply:
What is the hash function, and what is hashed? Does this actually matter, or is it just there to create a safe unique ID for the file?
How is the timezone determined? (It doesn't seem to be UTC or local…)
Does file metadata matter (timestamp), or is everything just pulled from the name and contents?
Are the app-id, app-version, os-name, etc. parameters treated significantly by any of the clients at sync time (e.g. for schema migrations), or are they mostly informational? Would leaving these largely blank and specifying a custom app-id likely work?
Is the object ID significant in any way other than being unique? Would it be safe to generate another arbitrary unique base64 string when adding new items?
Thanks for entertaining some nerdy questions.
The format seems relatively simple (especially for simple item additions).
A few questions arise:
What is the exact naming scheme for the transaction files? It seems to be simply:
Code:
[date +%Y%m%d%H%M%s]=[base64encode(hash)].zip
How is the timezone determined? (It doesn't seem to be UTC or local…)
Does file metadata matter (timestamp), or is everything just pulled from the name and contents?
Are the app-id, app-version, os-name, etc. parameters treated significantly by any of the clients at sync time (e.g. for schema migrations), or are they mostly informational? Would leaving these largely blank and specifying a custom app-id likely work?
Is the object ID significant in any way other than being unique? Would it be safe to generate another arbitrary unique base64 string when adding new items?
Thanks for entertaining some nerdy questions.