From dff86c7d05a4a4907200dc3eea7342a661640cd6 Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Wed, 15 Jul 2026 12:05:05 -0700 Subject: [PATCH] sync: auto-sync from GURU-5070 at 2026-07-15 12:04:36 Author: Mike Swanson Machine: GURU-5070 Timestamp: 2026-07-15 12:04:36 --- ...7-15-mike-taylen-uisp-cascades-techplan.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 session-logs/2026-07/2026-07-15-mike-taylen-uisp-cascades-techplan.md diff --git a/session-logs/2026-07/2026-07-15-mike-taylen-uisp-cascades-techplan.md b/session-logs/2026-07/2026-07-15-mike-taylen-uisp-cascades-techplan.md new file mode 100644 index 00000000..07121ae5 --- /dev/null +++ b/session-logs/2026-07/2026-07-15-mike-taylen-uisp-cascades-techplan.md @@ -0,0 +1,140 @@ +# 2026-07-15 — Taylen ER-X UISP onboarding + Cascades CARF tech-plan verification + +## User +- **User:** Mike Swanson (mike) +- **Machine:** GURU-5070 +- **Role:** admin + +## Session Summary + +Two distinct workstreams from the Taylen client site. First, brought a newly-installed +EdgeRouter X under UISP remote management. The ER-X was already reaching the self-hosted +UISP controller (unms.azcomputerguru.com) and checking in every minute, but sat in the +`unauthorized` pending queue with no site — so it was reachable but not actually manageable +(no config/firmware/backup push). Authenticated to the UISP v2.1 API with the vaulted admin +account, created a new endpoint site "Taylen" (address 1141 W Calle Concordia, Tucson AZ), +and authorized the device into it. Verified it flipped to authorized/active. UISP had already +auto-queued the EdgeOS firmware upgrade 1.10.11 -> 3.0.1 on authorization (auto-firmware +policy); flagged to Mike that it is a major-version jump that reboots the router. Created the +Taylen client wiki page and index row. + +Second, analyzed the finalized Cascades of Tucson CARF Technology & System Plan +(docs/proposals/cascades-technology-plan-2026-07-15.md, authored by Howard, pulled in via +sync). Read it against the CARF intake worksheet and the project memory. Assessment: strong +8-area action document but missing several CARF conformance elements, plus two "Done"-style +claims that needed live verification. Mike chose to verify the two live facts first. + +Ran two parallel read-only verification agents. (1) Datto EDR console: CS-SERVER is genuinely +protected (Datto EDR sensor + Datto AV, live heartbeat, current defs) — the Area 8 claim holds, +and the wiki's "Datto removed from CS-SERVER 2026-06-26" note is stale. (2) M365 Graph on the +Cascades tenant: the Area 2 claim that relicensing "reduces monthly cost" is WRONG — Business +Premium is 45 owned / 41 assigned / 4 free, the ~30 office staff sit on a suspended Business +Standard sub and none hold Premium, so relicensing is ~$572/mo new spend (26 net-new seats), +best case ~$374/mo after converting shared mailboxes. Sent Howard a coord message with the +findings and recommended edits, then saved. + +Also resolved a sync issue: the first `/sync` from the Taylen network couldn't reach the +internal Gitea host (172.16.3.20) — no route from the client LAN. Mike brought up Tailscale; +the retry hit the usual errorlog.md rebase conflict (everyone appends), which was resolved by +keeping both sides in newest-first order, and the push completed. + +## Key Decisions + +- Used the UISP REST API (login -> x-auth-token -> devices/sites) rather than SSHing the + EdgeRouter or the controller. UISP is the source of truth for "remotely manageable," and the + admin account was already vaulted — simplest path that directly answers the question. +- Authorized the ER-X into a NEW site "Taylen" (vs an existing site) per Mike's choice, matching + how other clients are organized (one endpoint site per client/location). +- Did NOT re-trigger or cancel the firmware upgrade — UISP had already queued 3.0.1 to the correct + platform (e50); re-POSTing risked interfering with the in-flight task. Flagged the reboot/major- + jump to Mike and offered to hold/cancel rather than acting unilaterally on a production reboot. +- For the Cascades plan, verified the two soft claims with live data BEFORE proposing edits — an + inaccurate "Done" in a CARF survey file is worse than an honest "in progress." Ran the two checks + as parallel read-only agents (independent, high-output skill investigations). +- errorlog.md conflict resolved by union (keep both sides) in newest-on-top order — the file is + append-only and both sides were new entries; no content dropped. + +## Problems Encountered + +- **UISP site create schema differed from the read schema.** POST /sites rejected `maximumEndpoints` + and empty `address`; the write body is flat (`name`/`address`/`note`). Site UPDATE needed the full + nested read-shape via PUT (PATCH 404'd; flat PUT 400'd "SiteDescription required") — resolved by + GET -> edit description.address -> PUT the whole object. +- **First sync failed: no route to internal Gitea** (172.16.3.20:3000 timed out) because the session + was on the Taylen client network. Resolved by Mike starting Tailscale, then re-running sync. +- **errorlog.md rebase conflict** on the retry (Howard's 7/15-7/14 entries vs my 7/13 GURU-5070 + entries). Resolved by keeping both, markers stripped, newest-first; rebase --continue succeeded. +- **Stale repo docs surfaced during verification:** the wiki CS-SERVER "Datto removed 6/26" line and + docs/cloud/m365.md ("34 Business Standard", no mention of the 45 Premium now owned). Flagged, not + yet fixed. + +## Configuration Changes + +- Created `wiki/clients/taylen.md` (new client wiki page — ER-X/UISP record). +- Modified `wiki/index.md` — added Taylen client row (auto-merged with Howard's incoming edits during rebase). +- Modified `errorlog.md` — conflict resolution (kept both sides); prior GURU-5070 7/13 entries retained. +- Created `session-logs/2026-07/2026-07-15-mike-taylen-uisp-cascades-techplan.md` (this log). +- UISP (external system, not repo): created endpoint site "Taylen"; authorized device "Taylen" ER-X + into it; set site address. Firmware upgrade 1.10.11->3.0.1 queued (auto). + +## Credentials & Secrets + +- No new credentials created or discovered. Used the existing vaulted UISP admin account + (`infrastructure/uisp-server`, web_admin_user `azcomputerguru`) for the API session; token was + ephemeral and temp files were cleaned up. +- Cascades M365 verification used the remediation-tool investigator app (App ID + bfbc12a4-f0dd-4e12-b06d-997e7271e10c) against tenant 207fa277-e9d8-4eb7-ada1-1064d2221498 — no creds surfaced. + +## Infrastructure & Servers + +### Taylen — EdgeRouter X (UISP-managed) +- Device "Taylen": ER-X EdgeRouter X, platform e50, MAC 60:22:32:54:91:c8, EdgeOS 1.10.11. +- WAN IP 24.23.65.18/23. Site address 1141 W Calle Concordia, Tucson AZ. +- UISP device id `199f1226-8053-4220-9928-0d0d733e27e0`; UISP site "Taylen" id + `6d44a2a7-942a-433b-bd50-072e3499e765`. +- UISP controller: unms.azcomputerguru.com -> 172.16.3.25 (DockerUISP on Jupiter 172.16.3.20). +- Status: authorized / active. Firmware upgrade to EdgeOS 3.0.1 queued. + +### Cascades of Tucson — verification targets +- Datto EDR: tenant azcomp4587, org "Cascades of Tucson" id 2d5ea96e-3228-461b-9c60-13ae464b61d8. + CS-SERVER agent b41befcf-e418-4d0d-8552-bc7662364d07 (WS2019, 192.168.2.248, public 72.211.21.217). + 35 enrolled agents, all Datto AV enabled; 28 online / 7 stale. +- M365 tenant cascadestucson.com (207fa277-e9d8-4eb7-ada1-1064d2221498): SPB (Business Premium) + 45 owned / 41 assigned / 4 free; O365_BUSINESS_PREMIUM (Business Standard) SUSPENDED, 30 consumed. + +## Commands & Outputs + +- UISP login: `POST /nms/api/v2.1/user/login` (JSON body) -> `x-auth-token` response header. +- List devices: `GET /nms/api/v2.1/devices` (header `x-auth-token`). Filtered for name "Taylen". +- Create site: `POST /nms/api/v2.1/sites` body `{"name","address","note"}` (flat) -> 200 + site id. +- Authorize: `POST /nms/api/v2.1/devices/{id}/authorize` body `{"siteId":""}` -> `{"result":true,"message":"Authorized"}`. +- Update site: `GET /sites/{id}` -> edit `description.address` -> `PUT /sites/{id}` (full object). +- Sync fail: `fatal: unable to access 'http://172.16.3.20:3000/...': Failed to connect ... Could not connect to server` — resolved via `tailscale up` (was stopped). +- Coord: message id `6c0abc15-a590-450d-b3e6-a74b9ef174e6` -> Howard-Home/claude-main. + +## Pending / Incomplete Tasks + +- **Taylen firmware upgrade 1.10.11 -> 3.0.1 is QUEUED** and will fire on the router's next ready + window, rebooting it (~3-5 min outage). Mike to decide: let it ride or cancel/defer to after-hours. + Verify config survived the major jump and the device re-checks-in green afterward. +- **Taylen open items:** ISP not confirmed (WAN 24.23.65.18/23); EdgeOS admin creds not captured + (vault under clients/taylen/ if custom); no GuruRMM/Syncro/endpoints documented. +- **Cascades tech-plan edits (option B, not yet done):** (1) correct Area 2 M365 cost framing to the + verified ~$374-572/mo new spend; (2) reword Area 8 "every device" -> "every managed/enrolled device + (35), incl. server"; (3) add missing CARF elements (standard citation + manual edition, needs-basis + paragraph, strategic-alignment paragraph, named plan owner, completion-date column) from the intake + worksheet; (4) refresh stale docs (wiki CS-SERVER line + docs/cloud/m365.md). Sent to Howard via coord. +- **Cascades cleanup:** DESKTOP-TRCIEJA still active in Datto (off-site 10.0.20.x) — legacy cleanup + open. Two very-stale Datto agents (desktop-kqsl232 ~47d, maintenance-pc ~26d) — confirm off vs decommissioned. +- **Cascades M365:** consider converting 8 role/shared mailboxes (accounting@, hr@, frontdesk@, etc.) + to free shared + removing former employee jodi.ramstack to cut the net-new Premium count. + +## Reference Information + +- Tech plan: `clients/cascades-tucson/docs/proposals/cascades-technology-plan-2026-07-15.md` +- CARF intake worksheet: `clients/cascades-tucson/docs/proposals/carf-technology-plan-intake.md` +- Project memory: `.claude/memory/project_cascades_carf_tech_plan.md` +- Taylen wiki: `wiki/clients/taylen.md` +- UISP vault entry: `infrastructure/uisp-server` +- UISP web: https://unms.azcomputerguru.com +- Coord message to Howard: `6c0abc15-a590-450d-b3e6-a74b9ef174e6`