Create generic Item implementations that
don't implement the ItemInfo interface.
These implementations can be used for
things like metadata files.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #4191
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [ ] 💚 E2E
Don't allow concurrent reads/writes to info in
lazyItem so we can make stronger assumptions
about state
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🐛 Bugfix
- [x] 🤖 Supportability/Tests
#### Test Plan
- [x] 💚 E2E
refactoring the sanity tests with three goals:
1. move from env vars to cli commands so that unsupported commands fail loudly.
2. set up support for groups restore and export testing.
3. introduce some code re-use throughout.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🤖 Supportability/Tests
#### Issue(s)
* #3988
#### Test Plan
- [x] 💚 E2E
corrects the storage and provider flag positioning to attach to the child command instead of the parent. Also corrects unit tests for flags to ensure flags are preset as expected.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🐛 Bugfix
#### Test Plan
- [x] ⚡ Unit test
- [x] 💚 E2E
Adds a groupByID call to services, and
adds CallConfig to the group by id api fn.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🌻 Feature
#### Issue(s)
* #3988
#### Test Plan
- [x] 💚 E2E
Drive pager usage currently showcases strong coupling between two layers: drive collection logic processing and drive api. This PR separates that coupling by moving the full item enumeration process into the
API, and letting the collection logic process the
results. This acs as both a simplification of complex code, and a clearer separation of ownership between the two layers.
A detrimental side effect of this change is that drive item enumeration has moved from page-streaming
(ie: each page is fully processed before moving on to the next) and onto batch processing (ie: all items are stored in memory and processed in a single pass). Acknowledging that this is an unacceptable regression, a follow-up PR will appear shortly with better handling for stream-processing enumeration from the API layer as a standard part of the pattern for all pager
implementations.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🧹 Tech Debt/Cleanup
#### Test Plan
- [x] ⚡ Unit test
- [x] 💚 E2E
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [x] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup
#### Test Plan
- [x] 💪 Manual
- [ ] ⚡ Unit test
- [ ] 💚 E2E
This reverts commit bc25869173df9052e358a055867539f32af8935c. #4373
We need more work for groups restore and export sanity tests to be functional. Reverting this to make the CI pass for now.
Example successful run: https://github.com/alcionai/corso/actions/runs/6336809043/job/17210633457
<!-- PR description-->
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [x] 💻 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. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ] ⚡ Unit test
- [ ] 💚 E2E
We were trying to delete a single backupOp multiple times across different tests. Added another backupOp to for use in the new test.
<!-- PR description-->
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 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. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ] ⚡ Unit test
- [x] 💚 E2E
Use a non-zero time as the fallback for the mod time of an item during enumeration. This should avoid an issue where the mod time in details differs from the mod time in kopia due to a serialization issue.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup
#### Test Plan
- [ ] 💪 Manual
- [ ] ⚡ Unit test
- [ ] 💚 E2E
adds a container-of-things to reduce mostly-unused return value bloat, and updates some func names to be more appropriate to their behavior.
No logical changes, just renaming/movement.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🧹 Tech Debt/Cleanup
<!-- PR description-->
Call repo.connect() in S3 connect command.
Was this missed as part of - https://github.com/alcionai/corso/pull/4343/files or am I misunderstanding something.
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🐛 Bugfix
#### Issue(s)
<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manua
Bumps [github.com/puzpuzpuz/xsync/v2](https://github.com/puzpuzpuz/xsync) from 2.5.0 to 2.5.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/puzpuzpuz/xsync/releases">github.com/puzpuzpuz/xsync/v2's releases</a>.</em></p>
<blockquote>
<h2>v2.5.1</h2>
<ul>
<li>Speed up built-in string hash function (<a href="https://redirect.github.com/puzpuzpuz/xsync/issues/106">#106</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c3b502018e"><code>c3b5020</code></a> Speed up built-in string hash function (<a href="https://redirect.github.com/puzpuzpuz/xsync/issues/106">#106</a>)</li>
<li>See full diff in <a href="https://github.com/puzpuzpuz/xsync/compare/v2.5.0...v2.5.1">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
You can trigger a rebase of this PR by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [sass](https://github.com/sass/dart-sass) from 1.67.0 to 1.68.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/sass/dart-sass/releases">sass's releases</a>.</em></p>
<blockquote>
<h2>Dart Sass 1.68.0</h2>
<p>To install Sass 1.68.0, download one of the packages below and <a href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or see <a href="https://sass-lang.com/install">the Sass website</a> for full installation instructions.</p>
<h1>Changes</h1>
<ul>
<li>Fix the source spans associated with the <code>abs-percent</code> deprecation.</li>
</ul>
<h3>JS API</h3>
<ul>
<li>
<p>Non-filesystem importers can now set the <code>nonCanonicalScheme</code> field, which declares that one or more URL schemes (without <code>:</code>) will never be used for URLs returned by the <code>canonicalize()</code> method.</p>
</li>
<li>
<p>Add a <code>containingUrl</code> field to the <code>canonicalize()</code> and <code>findFileUrl()</code> methods of importers, which is set to the canonical URL of the stylesheet that contains the current load. For filesystem importers, this is always set; for other importers, it's set only if the current load has no URL scheme, or if its URL scheme is declared as non-canonical by the importer.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>
<p>Add <code>AsyncImporter.isNonCanonicalScheme</code>, which importers (async or sync) can use to indicate that a certain URL scheme will never be used for URLs returned by the <code>canonicalize()</code> method.</p>
</li>
<li>
<p>Add <code>AsyncImporter.containingUrl</code>, which is set during calls to the <code>canonicalize()</code> method to the canonical URL of the stylesheet that contains the current load. This is set only if the current load has no URL scheme, or if its URL scheme is declared as non-canonical by the importer.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>The <code>CalculationValue.interpolation</code> field is deprecated and will be removed in a future version. It will no longer be set by the compiler, and if the host sets it it will be treated as equivalent to <code>CalculationValue.string</code> except that <code>"("</code> and <code>")"</code> will be added to the beginning and end of the string values.</p>
</li>
<li>
<p>Properly include TypeScript types in the <code>sass-embedded</code> package.</p>
</li>
</ul>
<p>See the <a href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1680">full changelog</a> for changes in earlier releases.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/sass/dart-sass/blob/main/CHANGELOG.md">sass's changelog</a>.</em></p>
<blockquote>
<h2>1.68.0</h2>
<ul>
<li>Fix the source spans associated with the <code>abs-percent</code> deprecation.</li>
</ul>
<h3>JS API</h3>
<ul>
<li>
<p>Non-filesystem importers can now set the <code>nonCanonicalScheme</code> field, which
declares that one or more URL schemes (without <code>:</code>) will never be used for
URLs returned by the <code>canonicalize()</code> method.</p>
</li>
<li>
<p>Add a <code>containingUrl</code> field to the <code>canonicalize()</code> and <code>findFileUrl()</code>
methods of importers, which is set to the canonical URL of the stylesheet that
contains the current load. For filesystem importers, this is always set; for
other importers, it's set only if the current load has no URL scheme, or if
its URL scheme is declared as non-canonical by the importer.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>
<p>Add <code>AsyncImporter.isNonCanonicalScheme</code>, which importers (async or sync) can
use to indicate that a certain URL scheme will never be used for URLs returned
by the <code>canonicalize()</code> method.</p>
</li>
<li>
<p>Add <code>AsyncImporter.containingUrl</code>, which is set during calls to the
<code>canonicalize()</code> method to the canonical URL of the stylesheet that contains
the current load. This is set only if the current load has no URL scheme, or
if its URL scheme is declared as non-canonical by the importer.</p>
</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>
<p>The <code>CalculationValue.interpolation</code> field is deprecated and will be removed
in a future version. It will no longer be set by the compiler, and if the host
sets it it will be treated as equivalent to <code>CalculationValue.string</code> except
that <code>"("</code> and <code>")"</code> will be added to the beginning and end of the string
values.</p>
</li>
<li>
<p>Properly include TypeScript types in the <code>sass-embedded</code> package.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="de618fa7bd"><code>de618fa</code></a> Fix an error during embedded compiler shutdown (<a href="https://redirect.github.com/sass/dart-sass/issues/2092">#2092</a>)</li>
<li><a href="873e91e5ff"><code>873e91e</code></a> Cut a release (<a href="https://redirect.github.com/sass/dart-sass/issues/2090">#2090</a>)</li>
<li><a href="13c9fb3c9d"><code>13c9fb3</code></a> Expose the containing URL to importers under some circumstances (<a href="https://redirect.github.com/sass/dart-sass/issues/2083">#2083</a>)</li>
<li><a href="69f1847bae"><code>69f1847</code></a> CI: Configure dependabot to update GitHub Actions, too (<a href="https://redirect.github.com/sass/dart-sass/issues/2087">#2087</a>)</li>
<li><a href="c22c84d2c5"><code>c22c84d</code></a> Update changelog for <a href="https://redirect.github.com/sass/embedded-host-node/issues/248">sass/embedded-host-node#248</a> (<a href="https://redirect.github.com/sass/dart-sass/issues/2086">#2086</a>)</li>
<li><a href="37e0ed54da"><code>37e0ed5</code></a> Fix source span for calculation deprecation warnings (<a href="https://redirect.github.com/sass/dart-sass/issues/2084">#2084</a>)</li>
<li><a href="7370d6a97d"><code>7370d6a</code></a> Fix changelog for 1.67.0 (<a href="https://redirect.github.com/sass/dart-sass/issues/2085">#2085</a>)</li>
<li>See full diff in <a href="https://github.com/sass/dart-sass/compare/1.67.0...1.68.0">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
You can trigger a rebase of this PR by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Fixes an issue where Get Site by id is looking for the `group` details in the additional data of the site items. It should be looking in `site.drive.owner` instead.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 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. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
Added a new test and tested using the `10rqc2` test tenant.
```
CORSO_CI_TESTS=true go test -run TestSiteIntegrationSuite/TestSites_GetByID -v
=== RUN TestSiteIntegrationSuite
tester.go:44: TestSiteIntegrationSuite run at 2023-09-26T17:34:05.383766Z
=== RUN TestSiteIntegrationSuite/TestSites_GetByID
tester.go:44: TestSiteIntegrationSuite/TestSites_GetByID run at 2023-09-26T17:34:05.3883Z
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,96772abb-cfbe-496d-a770-301650888b3a,7ff3cdd8-1bf4-4e5d-999d-830a276c8490
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8be0b20e-6eff-4ac8-8505-53c7030c9fb8,316e3a01-1d93-412b-9f31-8758a267bb4a
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,32c3d871-e17d-47de-abff-b5d7e3491a31,316e3a01-1d93-412b-9f31-8758a267bb4a
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,7a8d49ec-d275-4589-8fc1-a8088ed31332,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,0bd5608f-159c-488c-ac51-cd80f747bc1d,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4aae01c8-1d30-4202-9962-9e7b64b6bc10,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,d530b5ab-0dd9-4858-a07c-9d76a8f09b83,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,c87270a2-f375-44ec-b582-09f1b7ddd842,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,055d896c-88bc-45c3-aa4b-5af71f326bcc,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,13a2ff8b-537f-428f-aaf2-f2e4b08e4bde,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,1e16d84e-9e42-406e-b628-5d4b303309ed,41e5f79b-fe25-47c0-996b-d3e77571dbb1
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,2f9743f8-4ca3-411f-b85d-32e6441eefd2,11810f05-e8bd-45e2-9728-92e434260750
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4d799bb6-222e-46ce-a626-51051eb2f311,11810f05-e8bd-45e2-9728-92e434260750
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b0d4432d-432b-4681-9cdb-2ab789dfe145,ce88f380-fbaa-48aa-a3a1-e04599594e95
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,f10c5f9a-1b2b-4764-8685-d08e9883888c,ce88f380-fbaa-48aa-a3a1-e04599594e95
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8df7082a-62eb-4165-97f9-ead8cf04c0d8,11810f05-e8bd-45e2-9728-92e434260750
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,053684d8-ca6c-4376-a03e-2567816bb091,9b3e9abe-6a5e-4084-8b44-ea5a356fe02c
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,ba5dbd17-6f68-4405-b1b6-e1160c0ba746,8e229f4f-e962-42ef-a087-dc54daa2e48c
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,e946c519-47f6-443f-9544-574ab9f3966f,8e229f4f-e962-42ef-a087-dc54daa2e48c
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,846d8363-c646-496b-a603-06a2a22e0196,9b3e9abe-6a5e-4084-8b44-ea5a356fe02c
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bf300606-e52e-41d7-a860-e5927f57a46d,8e229f4f-e962-42ef-a087-dc54daa2e48c
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bf83915f-7454-4f2a-b3c1-1932251c714f,bf2bed00-f5ec-4551-96c1-dc7069392eb8
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,038e0095-4509-4f53-b045-0c86a7971b6a,3086932f-402c-494b-9aea-bf2bb1bf8303
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,25ca6d57-b92b-4731-9b87-23050e080eac,cf53a987-f1bb-4cea-a27e-62ee282ecca7
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8b672056-0409-46f6-98bb-4a9f5626830f,cf53a987-f1bb-4cea-a27e-62ee282ecca7
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,e1d12403-62e6-44d0-9798-15fd194858f7,69ca49fc-e607-438b-ba24-3bb40fc7baba
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4892edf5-2ebf-46be-a6e5-a40b2cbf1c1a,38ab6d06-fc82-4417-af93-22d8733c22be
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,6884eaa6-108e-42ee-ac1e-8f8d344d5e53,42c29db5-bf88-46b7-af47-05a5ca15c1b3
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,5cdb15ec-4440-4115-be94-d9221b9135b3,42c29db5-bf88-46b7-af47-05a5ca15c1b3
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4637d353-1c6d-4967-98a3-a75db4e1a925,42c29db5-bf88-46b7-af47-05a5ca15c1b3
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8b510176-8837-4a81-a26e-2020565adb92,276af97a-8a5e-4001-aa86-53958ac9548c
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,3d374d63-f5fa-4c6a-b5c3-119280bd5442,42c29db5-bf88-46b7-af47-05a5ca15c1b3
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8fa2edf7-1f13-47e5-834d-ccdb81879302,276af97a-8a5e-4001-aa86-53958ac9548c
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,7a8dccfa-aa6b-4a75-b7bd-eab3f85af9b0,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,54bc7530-a81c-4d90-8cfb-a8625168187f,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,2d6ba44f-0638-4950-8fee-537c854e9e28,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,23283ae3-170b-4db6-b50f-895b12373524,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,f238d00a-af70-4273-9017-6042a6d8a8e1,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,ee9af367-a8ef-4f56-99ad-72f53d1cd64f,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,291e91dd-f9f9-4e0f-8abc-269ade15e1be,a470fff3-c3a7-456a-98c3-ad51d166e222
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,5edef5e8-6654-4fb7-870b-52365d9818f4,859ccc3c-2ed3-4258-84d1-ec735b39adc1
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,203db13c-aa6b-4cb4-bb11-7b5ce9c2b5b6,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b8fff07f-350b-4f62-b35f-854b0920f180,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,26b58876-c2c2-4bee-9fae-a2acbb0ebeb0,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b39c8064-43bf-4740-83cf-8d4814ee8591,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,01af6484-492e-4bae-bd3b-ed7d14ed3369,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,6e27eab3-0ccc-4ce1-80ae-b32912c9468d,7f2cd296-9f7c-44e1-af81-3c06d0d43007
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bb5d5b4a-e089-4e66-9868-9e263ecc635d,4fa3a2c0-fa81-4e6f-8e8b-1479a8927bc6
=== RUN TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,009d6803-aa00-4db7-8233-e2cbd7d9f503,5408143c-ebd0-4130-82e6-767375686853
--- PASS: TestSiteIntegrationSuite (30.98s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID (30.97s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,96772abb-cfbe-496d-a770-301650888b3a,7ff3cdd8-1bf4-4e5d-999d-830a276c8490 (0.61s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8be0b20e-6eff-4ac8-8505-53c7030c9fb8,316e3a01-1d93-412b-9f31-8758a267bb4a (0.64s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,32c3d871-e17d-47de-abff-b5d7e3491a31,316e3a01-1d93-412b-9f31-8758a267bb4a (0.81s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,7a8d49ec-d275-4589-8fc1-a8088ed31332,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.59s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,0bd5608f-159c-488c-ac51-cd80f747bc1d,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.61s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4aae01c8-1d30-4202-9962-9e7b64b6bc10,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.65s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,d530b5ab-0dd9-4858-a07c-9d76a8f09b83,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.61s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,c87270a2-f375-44ec-b582-09f1b7ddd842,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.69s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,055d896c-88bc-45c3-aa4b-5af71f326bcc,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.71s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,13a2ff8b-537f-428f-aaf2-f2e4b08e4bde,cd8ae214-0f28-43e1-8ec4-ad3b9fb11809 (0.65s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,1e16d84e-9e42-406e-b628-5d4b303309ed,41e5f79b-fe25-47c0-996b-d3e77571dbb1 (0.57s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,2f9743f8-4ca3-411f-b85d-32e6441eefd2,11810f05-e8bd-45e2-9728-92e434260750 (0.62s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4d799bb6-222e-46ce-a626-51051eb2f311,11810f05-e8bd-45e2-9728-92e434260750 (0.79s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b0d4432d-432b-4681-9cdb-2ab789dfe145,ce88f380-fbaa-48aa-a3a1-e04599594e95 (0.52s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,f10c5f9a-1b2b-4764-8685-d08e9883888c,ce88f380-fbaa-48aa-a3a1-e04599594e95 (0.51s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8df7082a-62eb-4165-97f9-ead8cf04c0d8,11810f05-e8bd-45e2-9728-92e434260750 (0.62s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,053684d8-ca6c-4376-a03e-2567816bb091,9b3e9abe-6a5e-4084-8b44-ea5a356fe02c (0.55s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,ba5dbd17-6f68-4405-b1b6-e1160c0ba746,8e229f4f-e962-42ef-a087-dc54daa2e48c (0.63s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,e946c519-47f6-443f-9544-574ab9f3966f,8e229f4f-e962-42ef-a087-dc54daa2e48c (0.66s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,846d8363-c646-496b-a603-06a2a22e0196,9b3e9abe-6a5e-4084-8b44-ea5a356fe02c (0.50s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bf300606-e52e-41d7-a860-e5927f57a46d,8e229f4f-e962-42ef-a087-dc54daa2e48c (0.73s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bf83915f-7454-4f2a-b3c1-1932251c714f,bf2bed00-f5ec-4551-96c1-dc7069392eb8 (0.56s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,038e0095-4509-4f53-b045-0c86a7971b6a,3086932f-402c-494b-9aea-bf2bb1bf8303 (0.60s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,25ca6d57-b92b-4731-9b87-23050e080eac,cf53a987-f1bb-4cea-a27e-62ee282ecca7 (0.54s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8b672056-0409-46f6-98bb-4a9f5626830f,cf53a987-f1bb-4cea-a27e-62ee282ecca7 (0.52s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,e1d12403-62e6-44d0-9798-15fd194858f7,69ca49fc-e607-438b-ba24-3bb40fc7baba (0.51s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4892edf5-2ebf-46be-a6e5-a40b2cbf1c1a,38ab6d06-fc82-4417-af93-22d8733c22be (0.49s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,6884eaa6-108e-42ee-ac1e-8f8d344d5e53,42c29db5-bf88-46b7-af47-05a5ca15c1b3 (0.53s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,5cdb15ec-4440-4115-be94-d9221b9135b3,42c29db5-bf88-46b7-af47-05a5ca15c1b3 (0.50s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,4637d353-1c6d-4967-98a3-a75db4e1a925,42c29db5-bf88-46b7-af47-05a5ca15c1b3 (0.55s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8b510176-8837-4a81-a26e-2020565adb92,276af97a-8a5e-4001-aa86-53958ac9548c (0.53s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,3d374d63-f5fa-4c6a-b5c3-119280bd5442,42c29db5-bf88-46b7-af47-05a5ca15c1b3 (0.54s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,8fa2edf7-1f13-47e5-834d-ccdb81879302,276af97a-8a5e-4001-aa86-53958ac9548c (0.53s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,7a8dccfa-aa6b-4a75-b7bd-eab3f85af9b0,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.61s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,54bc7530-a81c-4d90-8cfb-a8625168187f,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.54s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,2d6ba44f-0638-4950-8fee-537c854e9e28,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.67s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,23283ae3-170b-4db6-b50f-895b12373524,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.80s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,f238d00a-af70-4273-9017-6042a6d8a8e1,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.74s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,ee9af367-a8ef-4f56-99ad-72f53d1cd64f,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.76s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,291e91dd-f9f9-4e0f-8abc-269ade15e1be,a470fff3-c3a7-456a-98c3-ad51d166e222 (0.61s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,5edef5e8-6654-4fb7-870b-52365d9818f4,859ccc3c-2ed3-4258-84d1-ec735b39adc1 (0.59s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,203db13c-aa6b-4cb4-bb11-7b5ce9c2b5b6,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.63s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b8fff07f-350b-4f62-b35f-854b0920f180,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.62s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,26b58876-c2c2-4bee-9fae-a2acbb0ebeb0,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.58s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,b39c8064-43bf-4740-83cf-8d4814ee8591,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.67s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,01af6484-492e-4bae-bd3b-ed7d14ed3369,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.69s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,6e27eab3-0ccc-4ce1-80ae-b32912c9468d,7f2cd296-9f7c-44e1-af81-3c06d0d43007 (0.63s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,bb5d5b4a-e089-4e66-9868-9e263ecc635d,4fa3a2c0-fa81-4e6f-8e8b-1479a8927bc6 (0.67s)
--- PASS: TestSiteIntegrationSuite/TestSites_GetByID/site_10rqc2.sharepoint.com,009d6803-aa00-4db7-8233-e2cbd7d9f503,5408143c-ebd0-4130-82e6-767375686853 (0.57s)
PASS
ok github.com/alcionai/corso/src/pkg/services/m365 31.635s
```
missed the root site call usage of expand drive
on the last fix.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🐛 Bugfix
#### Issue(s)
* #4337
#### Test Plan
- [x] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
Need to add `CORSO_SECONDARY_M365_TEST_USER_ID` to the CI before we merge this.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 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. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ] ⚡ Unit test
- [x] 💚 E2E
groups backup has a failing case where delta
queries are not supported, but we aren't distinguishing
that case from the invalid delta case as expected. This
results in backup failures, instead of success with no data.
---
#### Does this PR need a docs update or release note?
- [x] ✅ Yes, it's included
#### Type of change
- [x] 🐛 Bugfix
#### Issue(s)
* #3988
#### Test Plan
- [x] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [x] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup
#### Test Plan
- [x] 💪 Manual
- [ ] ⚡ Unit test
- [ ] 💚 E2E
<!-- PR description-->
allow deletion of multiple IDs in single command
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [ ] ⛔ No
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
#### Issue(s)
<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* https://github.com/alcionai/corso/issues/4119
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ] 💚 E2E
Use generic lazy item implementation for drive
backups. This is a bit of a stop-gap
implementation since the drive logic is more
complex than exchange logic
Refactoring the drive logic to streamline it
would help reduce the number of functions
called to download a single item etc.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #4191
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
Minor updates to error handling for
generic item implementation
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #4191
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
Use generic item structs for Groups
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #4191
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
splits the functionality for creating a new repository struct, and initializing or connecting to it. This is the first step in a multi-step improvement for init and connect processing.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #2025
#### Test Plan
- [x] ⚡ Unit test
- [x] 💚 E2E
Use generic item structs in Exchange code
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #4191
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
Can be reenabled when we get a good
solution to deletion markers for
individual items.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #2023
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
the addition of the drive expand requires onedrive permissions in order to retrieve sites by ID. This causes some users to violate customer contract by requiring unwanted permissions. This change allows configuration of the getbyID call to optionally include the drive extend, which enables the backup process to return to the permission set as expected from v0.12
---
#### Does this PR need a docs update or release note?
- [x] ✅ Yes, it's included
#### Type of change
- [x] 🌻 Feature
#### Issue(s)
* #4337
#### Test Plan
- [ ] 💪 Manual
- [ ] 💚 E2E
groups collection item streaming is missing
recoverable errors, and is only logging at this time. This may be causing backups to succeed even
when errors should cause a failure.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🐛 Bugfix
#### Issue(s)
* #3988
#### Test Plan
- [x] ⚡ Unit test
- [x] 💚 E2E
Generic structs implement items that have
details associated with them. Items that
don't have details will need a separate
struct since we use a downcast to
determine if we can get details.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #4191
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
<!-- PR description-->
Nightly tests are still timing out, even after increasing timeout to 1 hr. Now that we have long living aws tokens, we should be able to increase it to 2 hrs. Hopefully this would be a good short term fix.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [x] 💻 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. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ] ⚡ Unit test
- [ ] 💚 E2E
- Warns about using in production
- Moves some of the constraints up before setup
- Moves some text around for better flow
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🗺️ Documentation
moves exchange container enumeration funcs in
the api to the pager pattern established with item enumeration.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🧹 Tech Debt/Cleanup
#### Test Plan
- [x] ⚡ Unit test
- [x] 💚 E2E
This was an accidental mis-use of the skipped item pattern. Items deleted during in flight during backup due to race conditions do not count as permanent
skips in the way that other skipped items do.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* closes#4044
#### Test Plan
- [x] ⚡ Unit test
- [x] 💚 E2E
<!-- PR description-->
add `skip-permissions` flag for permission restore
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
#### Issue(s)
<!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. -->
* https://github.com/alcionai/corso/issues/3854
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [ ] ⚡ Unit test
- [ ] 💚 E2E
<!-- PR description-->
As of now, we try to restore channel messages and fail with the following error:
```
Error: Failed to run Groups restore: running restore: restoring collections: data category not supported
```
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [x] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 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. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [ ] 💚 E2E
Incremental backups requires us to mark some
folders as deleted by creating a collection
with state `data.DeletedState`
This PR creates a simple, generic "tombstone"
collection that does just that
The PR additionally uses the tombstone
collection in place of more complicated
implementations where any easy switch is
possible. Deleted collections in OneDrive
require more work since tests attempt to
cast to a concrete type
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #4191
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
Adds context embedding to pkg/count, and embeds
the backup, restore, and export operation ctx with the operations count.bus. The bus is extracted from the ctx in api middleware to track throttling response counts, as well as token consumption counts. Counts are globally tracked, not on a per-time or per resource basis.
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🌻 Feature
#### Test Plan
- [x] ⚡ Unit test
- [x] 💚 E2E
Wire backup cleanup into maintenance operation.
Currently it runs under a different mode so it
won't affect existing users of the maintenance
command. Once we're satisfied with testing we
can remove the temporary const and run this
when complete maintenance is run
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [x] 🕐 Yes, but in a later PR
- [ ] ⛔ No
#### Type of change
- [x] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [ ] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #3217
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [ ] 💚 E2E
First step to consolidating fields in backupBases.
This adds the consolidated fields to the code for
finding bases.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #3943
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [ ] 💚 E2E
<!-- PR description-->
Exposes docs for new CLI commands `repo init filesystem` and `repo connect filesystem`
---
#### 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: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [x] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 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. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [ ] ⚡ Unit test
- [ ] 💚 E2E
Expand BaseCollection to have a helper function that returns the Category. Attempts to source from the FullPath and falls back to the PreviousPath if necessary.
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 CI/Deployment
- [x] 🧹 Tech Debt/Cleanup
#### Issue(s)
* #4319
#### Test Plan
- [ ] 💪 Manual
- [x] ⚡ Unit test
- [ ] 💚 E2E
This will help us to upgrade to Docusaurus v3 when it comes out
---
#### Does this PR need a docs update or release note?
- [x] ⛔ No
#### Type of change
- [x] 🐛 Bugfix
#### Test Plan
- [x] 💪 Manual
Needed some changes in the func names.
``` bash
$ sed -i "s/By\([a-zA-Z]*\)IdString/By\1Id/g" **/*.go
```
<!-- PR description-->
---
#### Does this PR need a docs update or release note?
- [ ] ✅ Yes, it's included
- [ ] 🕐 Yes, but in a later PR
- [x] ⛔ No
#### Type of change
<!--- Please check the type of change your PR introduces: --->
- [ ] 🌻 Feature
- [ ] 🐛 Bugfix
- [ ] 🗺️ Documentation
- [ ] 🤖 Supportability/Tests
- [ ] 💻 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. -->
* #<issue>
#### Test Plan
<!-- How will this be tested prior to merging.-->
- [x] 💪 Manual
- [x] ⚡ Unit test
- [x] 💚 E2E
Bumps [jarallax](https://github.com/nk-o/jarallax) from 2.1.3 to 2.1.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/nk-o/jarallax/blob/master/CHANGELOG.md">jarallax's changelog</a>.</em></p>
<blockquote>
<h2>[2.1.4] - Aug 29, 2023</h2>
<ul>
<li>added correct styles to support picture tag in jarallax.css</li>
<li>added minified styles jarallax.min.css</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b173d6f777"><code>b173d6f</code></a> v2.1.4</li>
<li><a href="c0bd11eaea"><code>c0bd11e</code></a> updated deps</li>
<li><a href="8804bb2809"><code>8804bb2</code></a> Merge branch 'master' of <a href="https://github.com/nk-o/jarallax">https://github.com/nk-o/jarallax</a></li>
<li><a href="cd67ef2362"><code>cd67ef2</code></a> Create npm-publish.yml</li>
<li><a href="e0c2ce5800"><code>e0c2ce5</code></a> changed readme with info of how to import CSS (related <a href="https://redirect.github.com/nk-o/jarallax/issues/219">#219</a>)</li>
<li><a href="e907ef8da6"><code>e907ef8</code></a> added support for picture tag in CSS (resolves <a href="https://redirect.github.com/nk-o/jarallax/issues/219">#219</a>)</li>
<li><a href="226b1232fa"><code>226b123</code></a> Create FUNDING.yml</li>
<li><a href="c0ed3527b1"><code>c0ed352</code></a> build</li>
<li><a href="289159b4f7"><code>289159b</code></a> updated deps</li>
<li>See full diff in <a href="https://github.com/nk-o/jarallax/compare/v2.1.3...v2.1.4">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
You can trigger a rebase of this PR by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.27 to 8.4.30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/releases">postcss's releases</a>.</em></p>
<blockquote>
<h2>8.4.30</h2>
<ul>
<li>Improved source map performance (by <a href="https://github.com/romainmenke"><code>@romainmenke</code></a>).</li>
</ul>
<h2>8.4.29</h2>
<ul>
<li>Fixed <code>Node#source.offset</code> (by <a href="https://github.com/idoros"><code>@idoros</code></a>).</li>
<li>Fixed docs (by <a href="https://github.com/coliff"><code>@coliff</code></a>).</li>
</ul>
<h2>8.4.28</h2>
<ul>
<li>Fixed <code>Root.source.end</code> for better source map (by <a href="https://github.com/romainmenke"><code>@romainmenke</code></a>).</li>
<li>Fixed <code>Result.root</code> types when <code>process()</code> has no parser.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's changelog</a>.</em></p>
<blockquote>
<h2>8.4.30</h2>
<ul>
<li>Improved source map performance (by Romain Menke).</li>
</ul>
<h2>8.4.29</h2>
<ul>
<li>Fixed <code>Node#source.offset</code> (by Ido Rosenthal).</li>
<li>Fixed docs (by Christian Oliff).</li>
</ul>
<h2>8.4.28</h2>
<ul>
<li>Fixed <code>Root.source.end</code> for better source map (by Romain Menke).</li>
<li>Fixed <code>Result.root</code> types when <code>process()</code> has no parser.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="45c5501777"><code>45c5501</code></a> Release 8.4.30 version</li>
<li><a href="bc3c341f58"><code>bc3c341</code></a> Update linter</li>
<li><a href="b2be58a2eb"><code>b2be58a</code></a> Merge pull request <a href="https://redirect.github.com/postcss/postcss/issues/1881">#1881</a> from romainmenke/improve-sourcemap-performance--phil...</li>
<li><a href="6a291d6425"><code>6a291d6</code></a> apply suggestions from code review</li>
<li><a href="efa442c3e1"><code>efa442c</code></a> Update lib/map-generator.js</li>
<li><a href="de33cf6b44"><code>de33cf6</code></a> improve sourcemap performance</li>
<li><a href="1c6ad2549e"><code>1c6ad25</code></a> Highlight banner with lines</li>
<li><a href="e10d5c097d"><code>e10d5c0</code></a> More more detailed text below</li>
<li><a href="3ff5f5f06d"><code>3ff5f5f</code></a> Rephrase into</li>
<li><a href="272aae4ff2"><code>272aae4</code></a> Remove old banner</li>
<li>Additional commits viewable in <a href="https://github.com/postcss/postcss/compare/8.4.27...8.4.30">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
You can trigger a rebase of this PR by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>