sync: auto-sync from GURU-BEAST-ROG at 2026-07-22 16:31:30

Author: Mike Swanson
Machine: GURU-BEAST-ROG
Timestamp: 2026-07-22 16:31:30
This commit is contained in:
Winter Williams
2026-07-22 16:32:23 -07:00
parent 1768a76d82
commit b77743b4d6
5 changed files with 204 additions and 9 deletions

1
.cust3011084.json Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,169 @@
# 2026-07-22 — Janet Altschuler: MSP360 image backup provisioning (both machines)
## User
- **Executed by:** ClaudeTools Discord Bot (GURU-BEAST-ROG)
- **Requested by:** Winter Williams (@winterguru, via Discord) - tech
- **Role:** automation (acting on the requester's behalf)
> Thread opener: Winter (@winterguru) — initial backup-status questions.
> Provisioning work requested mid-thread by **Howard Enos** (@howard9645).
> Discord thread ID: 1529614171128463541.
## Session Summary
Winter asked whether Janet Altschuler (GPS client, Syncro cid 457710) has backups on any
platform. Wiki + gps-rmm-audit backup-map showed the 2026-07-06 endpoint-verified answer:
no backup of any kind on either machine, despite 2 Data Backup seats billed at $0 (Syncro
schedule 2666). Re-verified live for her follow-up.
Howard then requested full provisioning: use the msp360 skill to set up ALTSCHULER-JANE
with a scheduled full-image backup + daily incrementals, backup time at end of work day.
End-to-end chain built: B2 bucket `ACG-Altschuler` (usage-based, account key) → MSP360
company **Janet Altschuler** (`270f5748-cfff-44f2-814f-2f5346677c64`) → backup user
`altschulerbackups@azcomputerguru.com` (user id `a65a767c-4c2b-4649-b48b-bc81664ba159`)
→ destination assigned via `POST /api/Destinations` with real package 145036 "Data
Backup - Usage" ($0.007/GB) → MSP360 agent 8.6.0.338 deployed to ALTSCHULER-JANE via
GuruRMM (download + silent `/S` install split into two dispatches after a 600s timeout)
→ account added via `cbb.exe addaccount` → image plan created via `cbb.exe
addBackupIBBPlan`.
ALTSCHULER-JANE plan "Image Backup - Daily" (`0eabc5ce`): full system disk (931GB NVMe,
573GB used), new backup format, daily block-level incrementals 5:00 PM, monthly synthetic
full on the 1st, 30-day retention (`-purge 1m`), runMissed on. First run failed at 0
bytes because `-f` volume selection grabbed a 58.6GB removable USB stick; fixed with
`editBackupIBBPlan -r` (system-required volumes). Initial full re-started and confirmed
landing in B2 (`MBS-a65a767c.../CBB_ALTSCHULER-JANE/` DiskImage archive objects).
Howard confirmed the API-created account should be kept (he deleted his console-made
duplicate) and requested the second machine with modified settings. ALTSCHULER-FRON
provisioned identically except: **forever-forward incremental** (`-ffi yes`, one full
then incrementals only, no recurring fulls) and **90-day retention** (`-purge 90d`).
Plan `6392df33`, full 2TB NVMe system disk, daily 5:00 PM — first full fires on the
regular schedule. Licenses auto-assigned on both machines.
Credential vaulted (`clients/altschuler/msp360-backup-user`), wiki client article updated
with the full provisioning record, [RMM] alerts posted to #dev-alerts after each dispatch.
## Key Decisions
- **Kept the API-created MSP360 account** over Howard's console-made one (his call — he
deleted his); avoids duplicate company/user records.
- **B2 bucket-per-client convention** followed: created `ACG-Altschuler` under the
existing MSPBackups storage account rather than a new storage account/key.
- **Package 145036 "Data Backup - Usage"** used for the destination assignment — the
magic values -2/-1/0 seen on existing users are rejected by `POST /api/Destinations`;
a real package ID is required.
- **Direct `cbb.exe` CLI** for account + plan config instead of the msp360 PowerShell
Gallery module — the module download blew the 600s RMM timeout and adds nothing over
the branded agent CLI (`C:\Program Files\Arizona Computer Guru\Online Backup\cbb.exe`).
- **`-r` (system-required volumes) not `-f` (all fixed)** for image plans — `-f` captured
a removable USB stick on JANE. FRON used `-r` from the start.
- **JANE: monthly synthetic full + 30d retention; FRON: forever-forward incremental +
90d retention** — per Howard's explicit specs per machine.
- **5:00 PM daily** = "end of the work day" per Howard.
- **No client-side AES encryption** configured (compression only) — not requested;
candidate follow-up.
## Problems Encountered
- **msp360 skill `create-user` printed "[OK] created user" but the API returned "Bad
Request. Check fields of UsersAddModels"** — payload lacked required `Password` (the
skill's `--password` flag is optional and the SKILL.md example omits it). Worked around
via `raw POST /api/Users` with a full payload. Separate real bug: the skill prints [OK]
before validating the response. Logged to errorlog; patch/tracker offer pending with
Howard.
- **Destination-to-user assignment**: `PUT /api/Users` with DestinationList silently
no-ops; `POST /api/Accounts` variants → "Invalid parameters". Correct endpoint is
`POST /api/Destinations {UserID, AccountID, Destination, PackageID}` — found via
headless-Chrome fetch of the MBS API docs (WebFetch 404'd).
- **600s server-side reaper timeout** on the combined module-install + agent-install
dispatch (command_id dbb09e1d, status failed, nothing installed). Fixed by splitting:
download mbsSetup.exe (25MB, fast) then silent install `/S` as separate dispatches.
- **JANE first backup failed instantly (0 bytes)** — `-f` selected a VendorCo 58.6GB
exFAT USB stick as a backup source volume. Fixed with `editBackupIBBPlan -r`.
- **`editBackupIBBPlan` schedule clobber** — editing only the daily time reset the
force-full schedule to a one-time past date; re-adding force-full alone hit a catch-22
of parameter errors. Fix: pass both schedule groups (daily + force-full) in one edit.
The `-atForceFull '' is not a valid DateTime` stderr during create is cosmetic.
- **Monitoring feed lag** — `/api/Monitoring` still showed the old Failed row after the
fixed run started; B2 object listing used as ground truth for "backup is flowing".
## Configuration Changes
- Created: B2 bucket `ACG-Altschuler` (allPrivate).
- Created: MSP360 company `Janet Altschuler` (`270f5748-cfff-44f2-814f-2f5346677c64`),
user `altschulerbackups@azcomputerguru.com`, destination (B2 ACG-Altschuler via
MSPBackups storage account, package 145036).
- Installed: MSP360 backup agent 8.6.0.338 on ALTSCHULER-JANE and ALTSCHULER-FRON
(via GuruRMM; installer left at `C:\Temp\mbsSetup.exe` on both — cleanup candidate).
- Created backup plans:
- ALTSCHULER-JANE: "Image Backup - Daily" `0eabc5ce` — daily 5:00 PM block-level
incremental, synthetic full monthly (1st), 30-day retention, runMissed.
- ALTSCHULER-FRON: "Image Backup - Daily" `6392df33` — FFI (one full, then
incrementals only), daily 5:00 PM, 90-day retention, runMissed.
- Modified: `wiki/clients/janet-altschuler.md` — backup section replaced with
"PROVISIONED 2026-07-22" record (plan IDs, schedules, retention, vault path, gotchas).
- Created: vault entry `clients/altschuler/msp360-backup-user.sops.yaml` (see below).
- Appended: `session-logs/bot/2026-07/2026-07-22-bot-activity.md` (Winter's Q&A turns).
- Logged: errorlog.md entry for the msp360 false-OK bug.
- Temp PS1 dispatch scripts created and deleted (`.mbs-*.ps1`, `.backup-scan.ps1`).
## Credentials & Secrets
- **MSP360 backup user** — vaulted at `clients/altschuler/msp360-backup-user.sops.yaml`:
login `altschulerbackups@azcomputerguru.com`, password in `credentials:` block,
user id `a65a767c-4c2b-4649-b48b-bc81664ba159`, company id
`270f5748-cfff-44f2-814f-2f5346677c64`, destination bucket `ACG-Altschuler`.
Used by the MSP360 agent on both machines to auth to ACG MBS
(api.mspbackups.com / console.msp360.com). Verified encrypted; publishes with this sync.
- Vault reads (paths only): `msp-tools/msp360-api.sops.yaml`,
`infrastructure/gururmm-server.sops.yaml`,
`projects/claudetools/backblaze-b2.sops.yaml`.
## Infrastructure & Servers
- GuruRMM API `http://172.16.3.30:3001`; agents: Altschuler-Janet
`1379869a-a596-40af-a3a5-30a65ae3cfa4`, Altschuler-Front (resolved live), client
`d041b8db-1f68-4b30-9ef9-c7b38f44c079`, site GOLD-LION-1382.
- MSP360 MBS API `https://api.mspbackups.com`; console `console.msp360.com`.
- Backblaze B2: account `46f69bc61163`, region us-west-001, bucket `ACG-Altschuler`,
key `cloudberrykey` (agent side).
- Agent install path: `C:\Program Files\Arizona Computer Guru\Online Backup\cbb.exe`.
- Licenses auto-assigned: JANE `b6c96a4c...`, FRON `851c3d53...`.
## Commands & Outputs
- JANE plan create:
`cbb.exe addBackupIBBPlan -n "Image Backup - Daily" -aid e6a5fd5b-914e-43a2-ac3a-f06d098b0a1b -nbf -f -useBlockLevelBackup yes -every day -at "10:00 PM" -everyForceFull dayofmonth -dayForceFull 1 -purge 1m -runMissed yes`
then schedule fix + volume fix:
`editBackupIBBPlan -id 0eabc5ce... -r -every day -at "5:00 PM" -everyForceFull dayofmonth -dayForceFull 1`
- FRON plan create:
`cbb.exe addBackupIBBPlan -n "Image Backup - Daily" -aid e6a5fd5b-914e-43a2-ac3a-f06d098b0a1b -nbf -r -useBlockLevelBackup yes -ffi yes -every day -at "5:00 PM" -purge 90d -runMissed yes`
- Destination assign: `POST /api/Destinations {UserID, AccountID, Destination, PackageID: 145036}`.
- Quote-safe RMM dispatch: `bash .claude/scripts/ps-encoded.sh rmm <agent-id> <script.ps1> --timeout N`.
- Timeout failure (before split): command dbb09e1d-59a8-4752-b32e-58a51d1b121a →
`failed / Execution error: Command timeout` (server-side reaper, 600s).
## Pending / Incomplete Tasks
- Verify both initial full images complete in MSP360 monitoring (check ~2026-07-23;
monitoring row lagged at last check). JANE full was in progress; FRON full fires at
5:00 PM 2026-07-22.
- Awaiting Howard: Syncro ticket on cid 457710 for the provisioning work (offered twice).
- Awaiting Howard: msp360 skill patch (validate API response before "[OK]"; add
`--password` to SKILL.md example) and/or bug-tracker issue.
- Optional cleanup: delete `C:\Temp\mbsSetup.exe` on both endpoints.
- Consider enabling client-side AES encryption on both plans (currently compression only).
## Reference Information
- Discord thread: 1529614171128463541 (opener Winter; provisioning requested by Howard).
- Syncro customer: 457710 (Janet Altschuler — distinct from JANC Excavation 2248945);
billing schedule 2666 (2 Data Backup seats @ $0).
- Wiki: `wiki/clients/janet-altschuler.md`; audit history:
`projects/gps-rmm-audit/backup-map.md`, `projects/gps-rmm-audit/tracker.md`.
- MSP360 company `270f5748-cfff-44f2-814f-2f5346677c64`; user
`a65a767c-4c2b-4649-b48b-bc81664ba159`; storage account
`e6a5fd5b-914e-43a2-ac3a-f06d098b0a1b`; package 145036 "Data Backup - Usage".
- Plan IDs: JANE `0eabc5ce` (Image Backup - Daily), FRON `6392df33-5aaf-433f-ac4e-18da8f7a6aab`.
- B2 prefix: `MBS-a65a767c-4c2b-4649-b48b-bc81664ba159/CBB_<HOSTNAME>/`.

View File

@@ -19,6 +19,18 @@ Categories (the `[type]` tag): _(none)_ = skill/command execution failure ·
<!-- Append entries below this line -->
2026-07-22 | GURU-BEAST-ROG | msp360 | create-user prints [OK] before validating API response - API returned 'Bad Request. Check fields of UsersAddModels' but success message printed (false positive); root cause of failed call was operator omitting --password (optional CLI flag, required by API; SKILL.md example omits it) [ctx: cmd=create-user fix=validate response + add --password to SKILL.md example]
2026-07-22 | GURU-BEAST-ROG | msp360 | POST /api/Destinations -> HTTP 400: {'Message': 'The request is invalid.', 'ModelState': {'addDestination': ["Required property 'PackageID' not found in JSON. Path '', line 1, position 136."]}} [ctx: command=raw]
2026-07-22 | GURU-BEAST-ROG | msp360 | POST /api/Destinations -> HTTP 400: {'Message': "Limit with id '-1' not found"} [ctx: command=raw]
2026-07-22 | GURU-BEAST-ROG | msp360 | POST /api/Destinations -> HTTP 400: {'Message': "Limit with id '0' not found"} [ctx: command=raw]
2026-07-22 | GURU-BEAST-ROG | msp360 | POST /api/Destinations -> HTTP 400: {'Message': "Limit with id '-2' not found"} [ctx: command=raw]
2026-07-22 | GURU-BEAST-ROG | msp360 | POST /api/Accounts -> HTTP 400: {'_raw': 'Invalid parameters'} [ctx: command=raw] (x3)
2026-07-22 | GURU-5070 | unifi-wifi/apply-radio | [friction] remote 5GHz channel move on a wireless mesh (wired-root U7-Mesh, EcoSense) dropped both mesh children on 1st attempt (Eli's re-attached then fell off, Mobile Park never re-acquired -> outage, rolled back to 36); succeeded on retry only after the flapping/churning nodes were out of the mesh. Marginal-backhaul children can't blind-rescan+re-acquire a channel-hopped root reliably. Fix: do wired-root mesh 5GHz channel hops with onsite hands, or fix weak backhaul first [ctx: site=EcoSense band=na from=36 to=149 root=South-Office weaklink=Mobile-Park]
2026-07-22 | GURU-5070 | grok | grok review returned no result [ctx: mode=review-files session= stopReason=]

View File

@@ -0,0 +1,3 @@
18:09 AZ - Winter - password reset matilde@amtransit.com - CANCELLED by requester; blocked anyway (tenant not onboarded: no app consent, no vault creds, not in CIPP; consent URLs provided in thread 1529550274375450795)
22:21 AZ - Winter - Altschuler backup status query - answered from wiki/gps-audit: confirmed NOT backing up on any platform (endpoint-verified 2026-07-06), billed 2 seats at $0; offered re-scan
22:23 AZ - Winter - Altschuler backup status (live re-scan) - RMM scan both machines: still no backup software/WSB/tasks; Dropbox+OneDrive sync only (Front), stopped Toshiba OEM util (Janet); cmds 180b6825/fcc2ddfa

View File

@@ -45,15 +45,25 @@ Merc Desktop", cid 457710) all with `last_synced: None` — manually-entered, so
## GPS billing & backup status
- GPS: 2 devices billed. Backup: **2 Data Backup seats billed at $0** (Syncro schedule 2666).
- **Backup: CONFIRMED NOT RUNNING (2026-07-06, endpoint-verified).** With RMM on both
machines, a direct scan found **no backup software, no backup service, no scheduled
backup task, no Windows Server Backup, and no Datto backup agent** on either box (only
Dropbox on ALTSCHULER-FRON, installed but stopped). Also nothing in MSP360 / B2 / Seafile
/ ownCloud / Datto Workplace. No Datto Windows Agent + two physical workstations (no
server) effectively rules out an agentless SIRIS backup too. **She pays for 2 backup
seats but nothing is backing up.** Sent to Mike + Winter 2026-07-06. Do NOT provision a
backup job off the billing count — per-client decision
([[feedback_backup_targets_never_guessed]]). See `projects/gps-rmm-audit/backup-map.md`.
- **Backup: PROVISIONED 2026-07-22 (MSP360 image-based, both machines)** — requested by
Howard via Discord bot after the 2026-07-06 audit confirmed nothing was backing up.
- MSP360 company **Janet Altschuler** (`270f5748-cfff-44f2-814f-2f5346677c64`), backup
user `altschulerbackups@azcomputerguru.com` (vault:
`clients/altschuler/msp360-backup-user`), agent 8.6.0.338 on both machines.
- Storage: B2 bucket **ACG-Altschuler** via MSPBackups storage account, usage-based
package ($0.007/GB).
- **Altschuler-Janet** — plan "Image Backup - Daily" (`0eabc5ce`): full system disk
(931GB NVMe, 573GB used), daily block-level incrementals 5:00 PM, monthly synthetic
full on the 1st, 30-day retention, runMissed on. Gotcha: initial `-f` volume select
grabbed a USB stick; fixed with `-r` (system-required).
- **Altschuler-Front** — plan "Image Backup - Daily" (`6392df33`): full system disk
(2TB NVMe), **forever-forward incremental** (one full then incrementals only), daily
5:00 PM, **90-day retention**, runMissed on.
- Initial fulls started 2026-07-22 evening; verify completion in MSP360 monitoring.
- No client-side AES encryption (compression only) as of setup.
- Prior state (2026-07-06 endpoint-verified): no backup software/service/task/WSB/Datto
agent on either box; nothing in MSP360/B2/Seafile/ownCloud/Datto Workplace. History:
`projects/gps-rmm-audit/backup-map.md`.
## Backlinks