corso/CHANGELOG.md
Abin Simon 9da0a7878b
Backup versioning (#2324)
## Description

Add backup format version information to the backups so that we can distinguish between backups which use a single file vs the ones that use both .data and .meta files.

Overrides https://github.com/alcionai/corso/pull/2297. I've also set it against `main` so that the diff shows up properly.
Ref: https://github.com/alcionai/corso/pull/2324#issuecomment-1409709118

## Does this PR need a docs update or release note?

- [x]  Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [ ]  No 

## Type of change

<!--- Please check the type of change your PR introduces: --->
- [x] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Test
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup

## Issue(s)

<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* fixes https://github.com/alcionai/corso/issues/2230
* https://github.com/alcionai/corso/issues/2253

## Test Plan

<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual (Tested manually, will add an e2e test in a followup)
- [ ]  Unit test
- [ ] 💚 E2E
2023-02-03 04:03:14 +00:00

8.2 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased (alpha)

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

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.

v0.2.0 (alpha) - 2023-1-29

Fixed

  • Check if the user specified for an exchange backup operation has a mailbox.

Changed

  • Item.Attachments are disabled from being restored for the patching of (#2353)
  • BetaClient introduced. Enables Corso to be able to interact with SharePoint Page objects. Package located /internal/connector/graph/betasdk
  • 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.

v0.1.0 (alpha) - 2023-01-13

Added

  • Folder entries in backup details now indicate whether an item in the hierarchy was updated
  • Incremental backup support for exchange is now enabled by default.

Changed

  • The selectors Reduce() process will only include details that match the DiscreteOwner, if one is specified.
  • New selector constructors will automatically set the DiscreteOwner if given a single-item slice.
  • Write logs to disk by default (#2082)

Fixed

  • Issue where repository connect progress bar was clobbering backup/restore operation output.
  • Issue where a backup create exchange produced one backup record per data type.
  • Specifying multiple users in a onedrive backup (ex: --user a,b,c) now properly delimits the input along the commas.
  • Updated the list of M365 SKUs used to check if a user has a OneDrive license.

Known Issues

  • backup list will not display a resource owner for backups created prior to this release.

v0.0.4 (alpha) - 2022-12-23

Added

  • Incremental backup support for Exchange (#1777). This is currently enabled by specifying the --enable-incrementals
    with the backup create command. This functionality will be enabled by default in an upcoming release.
  • Folder entries in backup details now include size and modified time for the hierarchy (#1896)

Changed

  • Breaking Change: Changed how backup details are stored in the repository to improve memory usage (#1735)
  • Improve OneDrive backup speed (#1842)
  • Upgrade MS Graph SDK libraries (#1856)
  • Docs: Add Algolia docsearch to Corso docs (#1844)
  • Add an updated flag to backup details (#1813)
  • Docs: Speed up Windows Powershell download (#1798)
  • Switch to Go 1.19 (#1632)

Fixed

  • Fixed retry logic in the Graph SDK that would result in an 400 Empty Payload error when the request was retried (1778)(msgraph-sdk-go #341)
  • Don't error out if a folder was deleted during an exchange backup operation (#1849)
  • Docs: Fix CLI auto-generated docs headers (#1845)

v0.0.3 (alpha) - 2022-12-05

Added

  • Display backup size in backup list command (#1648) from meain
  • Improve OneDrive backup performance (#1607) from meain
  • Improve Exchange backup performance (#1608) from meain
  • Add flag to retain all progress bars (#1582) from ryanfkeepers
  • Fix resource owner display on backup list (#1580) from ryanfkeepers

Changed

  • Improve logging (#1642) from ryanfkeepers
  • Generate separate backup for each resource owner (#1609) from ashmrtn
  • Print version info to stdout instead of stderr (#1503) from meain

v0.0.2 (alpha) - 2022-11-14

Added

  • Added AWS X-Ray support for better observability (#1111) from ryanfkeepers
  • Allow disabling TLS and TLS verification (#1415) from vkamra
  • Add filtering based on path prefix/contains (#1224) from ryanfkeepers
  • Add info about doc owner for OneDrive files (#1366) from meain
  • Add end time for Exchange events from (#1366) meain

Changed

  • Export RepoAlreadyExists error for sdk users (#1136)from ryanfkeepers
  • RudderStack logger now respects corso logger settings (#1324) from ryanfkeepers

v0.0.1 (alpha) - 2022-10-24

New features

  • Supported M365 Services

    • Exchange - email, events, contacts (RM-8)
    • OneDrive - files (RM-12)
  • Backup workflows

    • Create a full backup (RM-19)
    • Create a backup for a specific service and all or some data types (RM-19)
    • Create a backup for all or a specific user (RM-20)
    • Delete a backup manually (RM-24)
  • Restore workflows

    • List, filter, and view backup content details (RM-23)
    • Restore one or more items or folders from backup (RM-28, RM-29)
    • Non-destructive restore to a new folder/calendar in the same account (RM-30)
  • Backup storage

    • Zero knowledge encrypted backups with user conrolled passphrase (RM-6)
    • Initialize and connect to an S3-compliant backup repository (RM-5)
  • Miscellaneous

    • Optional usage statistics reporting (RM-35)