Files
claudetools/session-logs/2026-07/2026-07-15-mike-taylen-uisp-cascades-techplan.md
Mike Swanson dff86c7d05 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
2026-07-15 12:05:08 -07:00

9.3 KiB

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":"<id>"} -> {"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