Files
claudetools/session-logs/2026-05-25-session.md
Mike Swanson e991e8d604 sync: auto-sync from GURU-5070 at 2026-05-25 05:04:30
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-05-25 05:04:30
2026-05-25 05:04:33 -07:00

9.0 KiB

Session Log -- 2026-05-25

User

  • User: Mike Swanson (mike)
  • Machine: DESKTOP-0O8A1RL (GURU-5070)
  • Role: admin
  • Session span: ~19:42 PT (2026-05-24) -- 04:59 PT (2026-05-25)

Session Summary

Session opened with three completed tasks carrying over from the prior context: Pluto machine doc, rmm-audit skill update, and session save. Those were completed and synced before this session started (see 2026-05-24 session log updates).

The MacBook's in-progress auto-update re-dispatch fix was picked up. The MacBook session had identified that agents BB-SERVER and RECEPTIONIST-PC were stuck on v0.6.37 while the fleet was on v0.6.38, and had left uncommitted changes to server/src/ws/mod.rs. Since those changes were not committed, the fix was reimplemented from scratch against the live server code. The Coding Agent implemented db::get_pending_update() check before needs_update() in the reconnect handler, using the original update_id for re-dispatch with semver guard and URL/checksum validation. A bonus discovery: migrations 042-044 (agent_mspbackups_mapping and related) had not been applied to production and the .sqlx offline cache was stale -- both fixed in the same commit (c8d5af6). Service deployed and confirmed active. Both agents confirmed on 0.6.38 with status=completed update records within minutes of deploy.

Tucson Golden Corral was onboarded as a new GuruRMM client. Client "Tucson Golden Corral" and site "Co-Located" were created via the GuruRMM API (auth via admin JWT). Site enrollment key vaulted at clients/tucson-golden-corral/gururmm-site-co-located.sops.yaml. The IEX installer one-liner was requested -- it already existed at the dashboard installer page (irm 'https://rmm.azcomputerguru.com/install/INNER-STORM-2733/windows' | iex); this was not checked before asking.

TGC-SERVER enrolled immediately after the installer was run. Metrics pulled via RMM showed: online, v0.6.38, Windows Server 2016 (build 14393), 16 GB RAM at 45.6%, 1.8 TB disk at 36.2%, CPU at 23.8%, uptime ~5 hours. Process list indicated DNS, Active Directory, SQL Server, IIS (with Certify the Web/Let's Encrypt), ScreenConnect, Hyper-V, and Chrome running as Administrator on a DC. A PowerShell command was dispatched via the RMM to enumerate installed Windows roles; result confirmed: Hyper-V installed with two VMs (MAS90 -- Running, MAS90.old -- Off) and a full RDS stack (Connection Broker, Gateway, Licensing, Session Host, Web Access). User confirmed Hyper-V should not be on this server; RDS is expected. MAS90 = Sage 100 ERP. Disposition of the VMs not yet decided -- session ended before resolution.


Key Decisions

  • Reimplement from scratch rather than recover MacBook draft: MacBook changes were uncommitted and inaccessible from DESKTOP. Reimplementation from session log description + live code produced a cleaner result than the MacBook draft which had gone through two rejection cycles.
  • Bundle migrations with fix commit: Migrations 042-044 were a pre-existing production blocker (next CI server build would have failed silently). Bundling avoids a separate emergency fix.
  • Vault TGC enrollment key immediately on site creation: Consistent with practice for all other clients. Key is a shared secret for agent enrollment; losing it means re-generating and updating all agents.

Problems Encountered

  • Wrong field name on auth login: Sent username instead of email field. API returned deserialization error. Fixed by reading the error message.
  • Commands endpoint field mismatch: Sent command_text instead of command field. Discovered correct field name by reading the SendCommandRequest struct in server/src/api/commands.rs.
  • JSON escaping in bash heredoc: Shell escaping of PowerShell dollar signs in JSON payload caused empty responses from curl. Resolved by using PowerShell's Invoke-RestMethod with a here-string for the command body.
  • Checked wrong IEX installer URL: Asked if an irm | iex endpoint existed before checking the dashboard installer page, which already displayed it. The URL (/install/INNER-STORM-2733/windows) uses site_code not site_id UUID.

Configuration Changes

New files (vault repo):

  • clients/tucson-golden-corral/gururmm-site-co-located.sops.yaml -- GuruRMM enrollment key for TGC Co-Located site

Modified files (gururmm repo, pushed to Gitea):

  • server/src/ws/mod.rs -- added use semver::Version; + pending update re-dispatch logic
  • .sqlx/ -- regenerated offline query cache after applying migrations 042-044

Applied DB migrations (production gururmm PostgreSQL on 172.16.3.30):

  • Migration 042 -- agent_mspbackups_mapping table
  • Migration 043 -- (mspbackups related)
  • Migration 044 -- (mspbackups related)

Credentials & Secrets

Tucson Golden Corral -- Co-Located site:

  • Enrollment API key: grmm_p4g5z7Oj1-rE6GjjjrQqWBouk9BGl4v3
  • Vault: clients/tucson-golden-corral/gururmm-site-co-located.sops.yaml

GuruRMM admin (already in vault):

  • Email: admin@azcomputerguru.com
  • Password: GuruRMM2025
  • Vault: projects/gururmm/dashboard.sops.yaml

Infrastructure & Servers

Host IP Notes
GuruRMM server 172.16.3.30 gururmm-server restarted after re-dispatch fix deploy
TGC-SERVER public IP 98.181.90.163 New GuruRMM client; Windows Server 2016 build 14393; DC+DNS+SQL+IIS+RDS+Hyper-V

TGC-SERVER details:

  • Agent ID: 1275daa1-3996-4ecf-a1db-c82e88f757b4
  • OS: Windows Server 2016 (build 14393), extended support ends Jan 2027
  • Roles confirmed installed: Hyper-V, RDS (full stack), AD DS, DNS
  • Hyper-V VMs: MAS90 (Running -- Sage 100 ERP), MAS90.old (Off -- prior snapshot/backup)
  • Other services: SQL Server, IIS + Certify the Web (Let's Encrypt), ScreenConnect client
  • Administrator logged in, idle since boot, running Chrome on a DC (security concern)
  • RDS expected per customer; Hyper-V NOT expected per customer

New GuruRMM client/site:

  • Client: Tucson Golden Corral (ID: 3248bdec-cbc3-45df-ba63-c8cdc9395e58)
  • Site: Co-Located (ID: e5caa88f-f395-40e3-befa-f54e035f4293, code: INNER-STORM-2733)

Commands & Outputs

`powershell

GuruRMM API auth

POST http://172.16.3.30:3001/api/auth/login {"email":"admin@azcomputerguru.com","password":"GuruRMM2025"}

Create client

POST http://172.16.3.30:3001/api/clients {"name":"Tucson Golden Corral"}

-> id: 3248bdec-cbc3-45df-ba63-c8cdc9395e58

Create site

POST http://172.16.3.30:3001/api/sites {"name":"Co-Located","client_id":"3248bdec-cbc3-45df-ba63-c8cdc9395e58"}

-> site_id: e5caa88f, site_code: INNER-STORM-2733, api_key: grmm_p4g5z7Oj1-rE6GjjjrQqWBouk9BGl4v3

Windows installer one-liner (already on dashboard installer page)

irm 'https://rmm.azcomputerguru.com/install/INNER-STORM-2733/windows' | iex

RMM command dispatched to TGC-SERVER (command ID: e4d372fb)

Checked installed Hyper-V + RDS roles and running VMs

Result: Hyper-V + full RDS stack installed; VMs: MAS90 (Running), MAS90.old (Off)

Verify BB-SERVER/RECEPTIONIST-PC update completion

SELECT hostname, old_version, target_version, status, completed_at FROM agent_updates JOIN agents ON agents.id = agent_updates.agent_id WHERE hostname IN ('BB-SERVER','RECEPTIONIST-PC') ORDER BY started_at DESC LIMIT 4;

Both show status=completed, 0.6.37->0.6.38, ~00:13-00:14 UTC 2026-05-25

`


Pending / Incomplete Tasks

  • TGC-SERVER Hyper-V disposition: MAS90 (Sage 100 ERP) is running in a Hyper-V VM on TGC-SERVER. Customer says Hyper-V should not be on this box. Options: (1) migrate MAS90 VM to dedicated Hyper-V host, (2) P2V or migrate MAS90 to run natively. Decision not made -- needs customer input on hardware and MAS90 usage pattern.
  • TGC-SERVER Chrome-on-DC: Administrator account actively browsing from a domain controller. Should be flagged to customer and remediated (dedicated admin workstation or jump server).
  • TGC-SERVER OS age: Windows Server 2016 -- extended support Jan 2027. Not urgent but should be in the planning queue.
  • MSPBackups Phase 2: The mspbackups mapping migrations (042-044) were applied to production but no backup status data has been pulled yet for TGC or other clients.

Reference Information

gururmm commits:

  • c8d5af6 -- fix(server): re-dispatch pending updates on agent reconnect + sqlx migrate + .sqlx cache

Agents confirmed updated:

  • BB-SERVER: agent_id 6c02baa7, now 0.6.38, completed_at 2026-05-25 00:14 UTC
  • RECEPTIONIST-PC: agent_id 9c91d324, now 0.6.38, completed_at 2026-05-25 00:13 UTC

TGC RMM command result (e4d372fb):

  • Hyper-V, RSAT-Hyper-V-Tools, Hyper-V-Tools, Hyper-V-PowerShell -- all Installed
  • Remote-Desktop-Services, RDS-Connection-Broker, RDS-Gateway, RDS-Licensing, RDS-RD-Server, RDS-Web-Access -- all Installed
  • MAS90 VM: Running, Operating normally
  • MAS90.old VM: Off, Operating normally

IEX installer: irm 'https://rmm.azcomputerguru.com/install/INNER-STORM-2733/windows' | iex

Vault paths:

  • TGC enrollment key: clients/tucson-golden-corral/gururmm-site-co-located.sops.yaml
  • GuruRMM admin: projects/gururmm/dashboard.sops.yaml
  • GuruRMM API JWT secret: projects/gururmm/api-server.sops.yaml