Skip to content
This repository has been archived by the owner on Oct 11, 2024. It is now read-only.

Releases: alcionai/corso

v0.11.0

18 Jul 08:08
3efb67e
Compare
Choose a tag to compare

Added

  • Drive items backup and restore link shares
  • Restore commands now accept an optional top-level restore destination with the --destination flag. Setting the destination to '/' will restore items back into their original location.
  • Restore commands can specify item collision behavior. Options are Skip (default), Replace, and Copy.
  • Introduced repository maintenance commands to help optimize the repository as well as unreferenced data.

Fixed

  • Return a ServiceNotEnabled error when a tenant has no active SharePoint license.
  • Added retries for http/2 stream connection failures when downloading large item content.

Known issues

  • If a link share is created for an item with inheritance disabled (via the Graph API), the link shares restored in that item will not be inheritable by children
  • Link shares with password protection can't be restored

v0.10.0

26 Jun 19:19
c8ae50c
Compare
Choose a tag to compare

Added

  • Exceptions and cancellations for recurring events are now backed up and restored
  • Introduced a URL cache for OneDrive that helps reduce Graph API calls for long running (>1hr) backups
  • Improve incremental backup behavior by leveraging information from incomplete backups
  • Improve restore performance and memory use for Exchange and OneDrive

Fixed

  • Handle OLE conversion errors when trying to fetch attachments
  • Fix uploading large attachments for emails and calendar
  • Fixed high memory use in OneDrive backup related to logging

Changed

  • Switched to Go 1.20

v0.9.0

05 Jun 07:10
29ef5e4
Compare
Choose a tag to compare

Added

  • Added ProtectedResourceName to the backup list json output. ProtectedResourceName holds either a UPN or a WebURL, depending on the resource type.
  • Rework base selection logic for incremental backups so it's more likely to find a valid base.
  • Improve OneDrive restore performance by paralleling item restores

Fixed

  • Fix Exchange folder cache population error when parent folder isn't found.
  • Fix Exchange backup issue caused by incorrect json serialization
  • Fix issues with details model containing duplicate entry for api consumers

Changed

  • Do not display all the items that we restored at the end if there are more than 15. You can override this with --verbose.

v0.8.0

15 May 23:06
97ed97c
Compare
Choose a tag to compare

Added

  • Released the --mask-sensitive-data flag, which will automatically obscure private data in logs.
  • Added --disable-delta flag to disable delta based backups for Exchange
  • Permission support for SharePoint libraries.

Fixed

  • Graph requests now automatically retry in case of a Bad Gateway or Gateway Timeout.
  • POST Retries following certain status codes (500, 502, 504) will re-use the post body instead of retrying with a no-content request.
  • Fix nil pointer exception when running an incremental backup on SharePoint where the base backup used an older index data format.
  • --user and --mailbox flags have been removed from CLI examples for details and restore commands (they were already not supported, this only updates the docs).
  • Improve restore time on large restores by optimizing how items are loaded from the remote repository.
  • Remove exchange item filtering based on m365 item ID via the CLI.
  • OneDrive backups no longer include a user's non-default drives.
  • OneDrive and SharePoint file downloads will properly redirect from 3xx responses.
  • Refined oneDrive rate limiter controls to reduce throttling errors.
  • Fix handling of duplicate folders at the same hierarchy level in Exchange. Duplicate folders will be merged during restore operations.
  • Fix backup for mailboxes that has used up all their storage quota

Known Issues

  • Restore operations will merge duplicate Exchange folders at the same hierarchy level into a single folder.
  • Sharepoint SiteGroup permissions are not restored.
  • SharePoint document library data can't be restored after the library has been deleted.

Full Changelog: v0.7.0...v0.8.0

v0.7.0

02 May 09:22
b6ef2d5
Compare
Choose a tag to compare

Changelog

Added

  • Permissions backup for OneDrive is now out of experimental (By default, only newly backed up items will have their permissions backed up. You will have to run a full backup to ensure all items have their permissions backed up.)
  • LocationRef is now populated for all services and data types. It should be used in place of RepoRef if a location for an item is required.
  • User selection for Exchange and OneDrive can accept either a user PrincipalName or the user's canonical ID.
  • Add path information to items that were skipped during backup because they were flagged as malware.

Fixed

  • Fixed permissions restore in latest backup version.
  • Incremental OneDrive backups could panic if the delta token expired and a folder was seen and deleted in the course of item enumeration for the backup.
  • Incorrectly moving subfolder hierarchy from a deleted folder to a new folder at the same path during OneDrive incremental backup.
  • Handle calendar events with no body.
  • Items not being deleted if they were created and deleted during item enumeration of a OneDrive backup.
  • Enable compression for all data uploaded by kopia.
  • SharePoint --folder selectors correctly return items.
  • Fix Exchange cli args for filtering items
  • Skip OneNote items bigger than 2GB (Graph API prevents us from downloading them)
  • ParentPath of json output for Exchange calendar now shows names instead of IDs.
  • Fixed failure when downloading huge amount of attachments
  • Graph API requests that return an ECONNRESET error are now retried.
  • Fixed edge case in incremental backups where moving a subfolder, deleting and recreating the subfolder's original parent folder, and moving the subfolder back to where it started would skip backing up unchanged items in the subfolder.
  • SharePoint now correctly displays site urls on backup list, instead of the site id.
  • Drives with a directory containing a folder named 'folder' will now restore without error.
  • The CORSO_LOG_FILE env is appropriately utilized if no --log-file flag is provided.
  • Fixed Exchange events progress output to show calendar names instead of IDs.
  • Fixed reporting no items match if restoring or listing details on an older Exchange backup and filtering by folder.

Known Issues

  • Restoring a OneDrive or SharePoint file with the same name as a file with that name as its M365 ID may restore both items.
  • Exchange event restores will display calendar IDs instead of names in the progress output.

v0.6.1

22 Mar 00:17
1aa3154
Compare
Choose a tag to compare

Added

  • Sharepoint library (document files) support: backup, list, details, and restore.
  • OneDrive item downloads that return 404 during backup (normally due to external deletion while Corso processes) are now skipped instead of quietly dropped. These items will appear in the skipped list alongside other skipped cases such as malware detection.
  • Listing a single backup by id will also list the skipped and failed items that occurred during the backup. These can be filtered out with the flags --failed-items hide, --skipped-items hide, and --recovered-errors hide.
  • Enable incremental backups for OneDrive if permissions aren't being backed up.
  • Show progressbar while files for user are enumerated
  • Hidden flag to control parallelism for fetching Exchange items (--fetch-parallelism). May help reduce ApplicationThrottled errors but will slow down backup.

Fixed

  • Fix repo connect not working without a config file
  • Fix item re-download on expired links silently being skipped
  • Improved permissions backup and restore for OneDrive
  • CLI calls default to a 10-day context deadline to avoid letting graph api restrict requests to a 100 second deadline.
  • --endpoint flag now handles fully qualified URLs

Known Issues

  • Owner (Full control) or empty (Restricted View) roles cannot be restored for OneDrive
  • OneDrive will not do an incremental backup if permissions are being backed up.
  • Event instance exceptions (ie: changes to a single event within a recurring series) are not backed up.

v0.5.0

13 Mar 05:24
6c98c86
Compare
Choose a tag to compare

Added

  • Show owner information when doing backup list in json format
  • Permissions for groups can now be backed up and restored
  • Onedrive files that are flagged as malware get skipped during backup. Skipped files are listed in the backup results as part of the status, including a reference to their categorization, eg: "Completed (0 errors, 1 skipped: 1 malware)".

Fixed

  • Corso-generated .meta files and permissions no longer appear in the backup details.
  • Panic and recovery if a user didn't exist in the tenant.

Known Issues

  • Folders and Calendars containing zero items or subfolders are not included in the backup.
  • OneDrive files ending in .meta or .dirmeta are omitted from details and restores.
  • Backups generated prior to this version will show 0 errors when listed, even if error count was originally non-zero.

v0.4.0

20 Feb 06:09
5707036
Compare
Choose a tag to compare

Fixed

  • Support for item.Attachment:Mail restore
  • Errors from duplicate names in Exchange Calendars
  • Resolved an issue where progress bar displays could fail to exit, causing unbounded CPU consumption.
  • Fix Corso panic within Docker images

Changed

  • When using Restore and Details on Exchange Calendars, the --event-calendar flag can now identify calendars by either a Display Name or a Microsoft 365 ID.
  • Exchange Calendars storage entries now construct their paths using container IDs instead of display names. This fixes cases where duplicate display names caused system failures.

Known Issues

v0.3.0

07 Feb 07:42
b327de5
Compare
Choose a tag to compare

Added

  • Document Corso's fault-tolerance and restartability features
  • Add retries on timeouts and status code 500 for Exchange
  • Increase page size preference for delta requests for Exchange to reduce number of roundtrips
  • OneDrive file/folder permissions can now be backed up and restored
  • Add --restore-permissions flag to toggle restoration of OneDrive permissions
  • Add versions to backups so that we can understand/handle older backup formats

Fixed

  • Backing up a calendar that has the same name as the default calendar
  • Added additional backoff-retry to all OneDrive queries.
  • Users with null userType values are no longer excluded from user queries.

Known Issues

  • When the same user has permissions to a file and the containing
    folder, we only restore folder level permissions for the user and no
    separate file only permission is restored.
  • Link shares are not restored

v0.2.0

29 Jan 05:03
37cd9b8
Compare
Choose a tag to compare

Fixed

  • Check if the user specified for an exchange backup operation has a mailbox.
  • Handle case where user's drive has not been initialized
  • Inline attachments (e.g. copy/paste ) are discovered and backed up correctly (#2163)
  • Guest and External users (for cloud accounts) and non-on-premise users (for systems that use on-prem AD syncs) are now excluded from backup and restore operations.
  • Remove the M365 license guid check in OneDrive backup which wasn't reliable.
  • Reduced extra socket consumption while downloading multiple drive files.
  • Extended timeout boundaries for exchange attachment downloads, reducing risk of cancellation on large files.
  • Identify all drives associated with a user or SharePoint site instead of just the results on the first page returned by Graph API.