Possible to transmit ODK Collect version to aggregate?


I know that form version can be sent with the filled forms to aggregate. Is it possible to parse ODK collect app version in the form and send to the aggregate server? I fear that some of my clients have very old version of collect, and I need to figure them out.


The Collect version is communicated to servers in the User-Agent header. Neither Aggregate nor Central currently parses this but it may be available in logs or you could intercept and parse headers.

Add more metadata to the audit log describes adding this information to the audit log. I'd also like to make it available to form designers but I don't know when that might happen unless you or someone else is able to contribute the feature design and implementation.

Possibly an easy, low-impact way to expose this (to a form) would be adding an appropriate new property to https://github.com/opendatakit/javarosa/blob/master/src/main/java/org/javarosa/core/services/properties/JavaRosaPropertyRules.java

Then should be accessible via XPath expression, eg property("ClientVersion") , right?

[or are we trying to steer away from using property() in general?]