* Update to kopia with required callback * Support structs for materializing backup details Kopia will not allow us to pass data to it that should be passed back to us in the `FinishedFile` callback. To work around this, create a small thread-safe support struct that handles information about files kopia is currently processing. Entries are removed from the set when kopia is done with them and if no error occurred, the item's info will be added to the BackupDetails. * Switch to best attempt for iterating through files Defaulting to "best-attempt" error handling where all data that didn't result in an error is handed to kopia and then all errors encountered are returned at the end. * Test for uploads that have an error Simple error reading a file. BackupDetails should not contain information about the file that had the error (needs update to kopia code and this code to pass). All other files should be present in kopia and in BackupDetails. Co-authored-by: Danny <danny@alcion.ai>
Corso
Corso is the first open-source tool that aims to assist admins with the critical task of protecting SaaS service data. It provides a reliable, secure, and efficient data protection engine. Admins decide where backup data is stored and have the flexibility to execute backups of their desired service through an intuitive interface. As Corso evolves, it can become a great building block for more complex data protection workflows.
Corso is initially focused on protecting data in Microsoft 365 services such as Exchange, OneDrive, SharePoint, and Teams. The goals is to expand coverage for additional services, M365 or others, over time based on the interest and needs of the community.
Getting Started
TODO - Link to the appropriate page in the published docs.
Building Corso
# Build a binary. Will be placed in bin/
./build/build.sh
# Build a container image
./build/build-container.sh
Contribution Guidelines
TODO
Code of Conduct
It is important that our community is inclusive and respectful of everyone. We ask that all Corso users and contributors take a few minutes to review our Code of Conduct
License
TODO `