WIP: Add Google Drive as alternative export
Problem
OSF/COS has proven to be an unreliable data storage solution, with multiple incidents of data loss (#120). This undermines the "born open" data collection model that DataPipe aims to support, as researchers are losing valuable experimental data due to OSF infrastructure issues.
Solution
This PR adds Google Drive as an alternative (or additional) export destination for experimental data. Users can choose to (1) Use OSF exclusively (existing behavior), (2) Use Google Drive exclusively, or (3) Use both Google Drive and OSF simultaneously for redundant backups.
Key Changes
- Google Drive OAuth 2.0 authentication (
/api/google-drive-auth,/api/google-drive-callback) - Google Drive file upload (
put-file-google-drive.js) - Google Drive configuration component in account settings
Comments
This is intended to maintain full backward compatibility -- existing experiments using OSF should continue to work unchanged. This is an intricate PR so I'd be happy to break it into smaller pieces for review. I also ran into some issues running the testing suite with the local firebase emulator (because I don't have access to datapipe-test) so I'm hoping we can more carefully test these changes.