Form spec proposal: support Entity updates from multiple offline clients

I have updated the original post to reflect the latest thinking. Specifically, I have removed branchId from Entity create and have clarified that only forms with Entity spec version 2024.1.0 or higher should result in offline Entity creation or update. This is because we want servers to have branch id and trunk version information if there's the possibility of a chain of updates happening offline.

We have decided not to offer an explicit opt-out mechanism for offline Entities because it leads to confusing states when multiple forms interact with the same Entity List. A user or server implementation could choose to generate forms with a lower Entity spec version for a time if they wanted to initially opt-out. They could do this either by manually generating form XML or by using an older version of pyxform.

Because there is a lot of new functionality here with a lot of interaction between client and server, we will roll offline Entities out progressively and make time for quality assurance. As long as we don't find any serious issues with what we have built so far, we currently expect offline Entities to be fully available by late November. Here is a summary of our release plan (click to enlarge):

Note that Central will first have a release in which offline Entities functionality exists but is off by default because it will not generate forms with the v2024.1.0 Entities spec by default. We will then do another release of Central which both generates forms with the v2024.1.0 Entities spec and migrates existing Entities forms for a consistent client experience. @Ukang_a_Dickson this will likely be of interest to you.

Please let us know if you have any questions or comments!

3 Likes