sync: auto-sync from GURU-5070 at 2026-06-30 17:21:06
Author: Mike Swanson Machine: GURU-5070 Timestamp: 2026-06-30 17:21:06
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# Birth Biologic — Quality Systems Department -> Datto sync — COMPLETE
|
||||
|
||||
**Date:** 2026-06-30
|
||||
**Completed by:** Mike Swanson / claude-main (GURU-5070)
|
||||
**Status:** COMPLETE — verified against live Graph enumeration
|
||||
|
||||
## Outcome
|
||||
|
||||
Every file in the Datto source is now present in SharePoint.
|
||||
|
||||
| | Datto (source) | SharePoint (final) |
|
||||
|---|---:|---:|
|
||||
| Files | 3,768 | 3,769 |
|
||||
| Datto files missing from SharePoint | — | **0** |
|
||||
|
||||
All 301 large files (>=4MB, ~29.7 GB total, largest a 3.94 GB .mov) were uploaded via
|
||||
Graph chunked upload sessions. The idempotent size-check pass also detected and re-uploaded
|
||||
~700 files that existed in SharePoint with a mismatched size (partial/corrupt residue from
|
||||
the earlier failed OneDrive/PUT attempts).
|
||||
|
||||
## The 4 intentional differences (live current work — PRESERVED per Mike, 2026-06-30)
|
||||
|
||||
These are the "recently modified, do not clobber" carve-out. Confirmed as live edits made
|
||||
*today* by named client staff, so they were left intact rather than forced to match Datto:
|
||||
|
||||
| File | Datto size | SharePoint size | Note |
|
||||
|---|---:|---:|---|
|
||||
| `LOGS/Equipment/3. Temp Excursions/Temperature Excursion Log.xlsx` | not present | 40,253 | Created 2026-06-30 by Mary Ster, edited by Kristin Steen |
|
||||
| `LOGS/Equipment/2. Validation List/QSP-200.003.A Validation List.Current.docx` | 41,908 | 51,510 | Locked/open, edited today |
|
||||
| `LOGS/Equipment/1.Equipment List/QSP-200.001.C Equipment List.Current.docx` | 47,947 | 57,545 | Locked/open, edited today |
|
||||
| `LOGS/Quality Assurance Reporting Log/Deviations/2024/DEV39.Exhibit B.docx` | 15,525 | 22,437 | In use, edited today |
|
||||
|
||||
The three docs surfaced as upload "errors" (HTTP 423 Locked / 409 Conflict) precisely
|
||||
*because* staff had them open — SharePoint's lock protected live work. That is the correct
|
||||
result, not a failure.
|
||||
|
||||
## What actually fixed it (root cause of the all-day Mac failures)
|
||||
|
||||
1. **The prior upload script skipped every file >=4MB.** Datto has 301 such files (~29.7 GB).
|
||||
The old approach could never reach 3,768 no matter how many times it ran. Fix: proper Graph
|
||||
**upload sessions** (10 MB chunks, `Content-Range`) for large files.
|
||||
2. **RMM agent ignores the `timeout` field; it honors `timeout_seconds`.** Commands sent with
|
||||
`timeout` were capped at ~300 s, so long uploads died / went zombie ("running", no output).
|
||||
Using `timeout_seconds` allowed multi-minute/multi-hour commands to run to completion.
|
||||
3. **Long paths (>260 chars) in the Datto tree** were handled with the `\\?\` prefix for file
|
||||
reads.
|
||||
|
||||
## Method
|
||||
|
||||
- `clients/birth-biologic/scripts/enumerate-datto.ps1` — enumerate Datto, write a
|
||||
`relpath|size` manifest to `C:\Windows\Temp\quality-manifest.txt` on ACG-DWP-X-BB.
|
||||
- `clients/birth-biologic/scripts/upload-quality-final.ps1` — idempotent uploader: for each
|
||||
Datto file, skip if SharePoint already has it at matching size; else upload (simple PUT
|
||||
<4MB, chunked upload session >=4MB). Long-path safe, refreshes the Graph token on long
|
||||
runs, internal time budget + progress log (`C:\Windows\Temp\quality-upload.log`).
|
||||
- Ground truth verified from this machine via the Graph **delta** endpoint (whole-drive
|
||||
enumeration; far fewer round-trips than recursive `children` calls).
|
||||
|
||||
## Agent / drive
|
||||
|
||||
- Agent: ACG-DWP-X-BB (`a4524e85-8a07-45d0-91b1-51ce7e2ca74a`)
|
||||
- Datto source: `C:\Users\Public\Desktop\Datto Workplace Server Projects\Quality Department`
|
||||
- SharePoint drive: `b!F8BzMb1YakCIWCyWlmczb09LHqtxDxVMpLT6kAwYmsM7NUY4oPLSRq7ng3tJq-E9`
|
||||
- Graph app: `msp-tools/computerguru-tenant-admin` (tenant 19a568e8-...)
|
||||
|
||||
## Note on the earlier docs
|
||||
|
||||
The earlier `2026-06-30-quality-sync-to-datto.md` (surgical 5-file delete) and
|
||||
`CONTINUE-QUALITY-SYNC.md` (wipe + re-upload, in progress) describe superseded intermediate
|
||||
states. This file is the authoritative final record.
|
||||
Reference in New Issue
Block a user