Roadmap : Make One efficient with local files
Requirements :
-
Alyx can store to which remote repository is associated the session data. Only one main repository per session.
-
Copies can be made between remote hard drives externally, through third party apps like FreeFileSync of any auto backup system.
-
One data_access mode can be set to remote mode (root of session is their associated main repository in the alyx database) or in local mode (in wich case root of session is the local data folder set at installation of ONE)
-
All data supplied relative to the session to any function will use session_details, which contains all data available for the session on the alyx database, and the current root path based on data_access mode. For now, to change this, you will need to select a different mode and get the session again ("hotswap" may be available later, if necessary)
-
Initially session_details was a dict, need to make sure it is working in both conditions, so the dict should have name = UUID, and key must be callable as attributes.
-
Make auto change of repo of files associated with session if repo of session changes
-
Make this association with a remote repo based on a prostgre columns, instead of first associated file.
-
One can check if a file is registered in a dataset by supplying the path.
-
One can check if a file registered in alyx and returned by find_datasets is existing on the currentely selected data location (remote or local). It can send warning in case registered files went missing.
-
One can unregister data files by path seamlessly.
-
Try to create a valid dataset name with files that don't have the alf type ? Can file records actually do not follow alf directives ?
-
using freefilesync cli :
add cnx.pull and cnx.push (with session_details as argument) to either- pull all files to local folder (checking for newest file versions and creating folder if not exist)
- or push all files to remote folder (checking for newest file versions and removing local folder if argument clean = True, False by default)