Briefcase: pull from Aggregate and then push to Central

Recently @aurdipas brought up that it is critical to have a path to restore an Aggregate backup to Central for data collection campaigns that are long-running. First, if you need to transfer data from Aggregate to Central, I'd like to hear more about your scenario. How long is your data collection campaign? Why are you considering the switch before completing your current data collection campaign?

I have been working to make Briefcase able to serve this need. Briefcase push to Central has never been fully functional because Briefcase is only aware of the latest form version and Central needs to know about every form version that it can receive a submission for. Consider the following:

  • you had v1 of a form on Aggregate, had a bunch of submissions come in, updated the form to v2 and then had more submissions come in
  • you used Briefcase to pull from Aggregate which got all the submissions but only the v2 form definition
  • you tried pushing to Central

Central would happily accept the v2 form definition and v2 submissions but would reject the v1 submissions.

I propose that when Briefcase pushes to Central, it detects all the form versions that there are submissions for and then creates fake form definitions for those versions by injecting the version string in the latest form definition.

It's always uncomfortable generating fake user data but I think it's acceptable in this case because:

  • Aggregate only keeps the latest version of the form so even if Briefcase could handle multiple form versions, Aggregate would not provide them.
  • Aggregate only allows non-structural form changes (no adding or removing fields).
  • Central currently does not allow any action other than viewing to be taken on old form versions. (However, it might eventually be possible to re-publish an old version)

We would display a dialog describing what is about to happen to give users a chance to cancel and manually upload prior form versions if they have access to them and want to retain them in Central for some reason.

@aurdipas and others with this need, would this Briefcase functionality work for you? Some alternatives would be to make the version generation a setting to turn on or put it in a tool other than Briefcase.

1 Like

I think this solution would work very well. Thanks for the effort and support @LN