Implement an export and import for volumes. Volume admins can request an export file for a volume that can be downloaded. When this file is imported in another Biigle instance, the volume including all information (image metadata, annotations etc) should be created there.
Note that the volume should be newly created. This feature does not provide a method to merge diverged volumes that exist in both Biigle instances.
Notes:
The export file does not include the image files. These must be uploaded manually. The user should be able to set a new volume URL during the import.
The export file must include the used label trees as well. If a label tree is not present in the Biigle instance where the volume should be imported, it must be created there as well.
Volumes and label trees must get an UUID so the import can reliably determine if any of them already exist in the Biigle instance.
Users probably need an UUID, too, so imported annotations can be assigned to them. If a user is not present in the Biigle instance, the annotation is created without a reference to a user. Display this as warning during the import.
Questions:
Should there be only a volume export or a project export as well? This would complicate matters because users don't have an UUID. But users could be discarded and the importing user set as only project admin, too.
Since label trees must be exported and imported for this feature, offer a separate label tree export and import as well? The use case was that users would create and annotate new volumes on a cruise and then import the new data back into their "main" Biigle instance. It would be easier for them if they had the required label trees from their main Biigle instance in their local Biigle instance on the ship, too.
I think we need a detailed use case before we can develop this issue further.
Add a user export/import so users of the onshore instance can be migrated (with their UUIDs) to an offshore instance.
Users should not be able to edit their UUID. Admins should be able to edit to add new users including their UUID.
Maybe add a config option to disallow exporting volumes. This might make sense for onshore instances so users don't export their volume there, import and change it offshore and then expect to merge it again in the onshore instance.
Create a "Biigle Lite" configuration which can be used offshore. If a label tree has been imported in Biigle Lite, it is read-only. This way we prevent possible merge conflicts when a volume is exported offshore and imported onshore where the original label tree still exists.
Since the label tree onshore can still be modified we probably need some kind of merging mechanism either way. If this can be done "formally correct" (always works without breaking anything) we may discard the read-only mode mentioned above.
Implement an export and import for volumes. Volume admins can request an export file for a volume that can be downloaded. When this file is imported in another Biigle instance, the volume including all information (image metadata, annotations etc) should be created there.
Note that the volume should be newly created. This feature does not provide a method to merge diverged volumes that exist in both Biigle instances.
Notes:
Questions:
I think we need a detailed use case before we can develop this issue further.