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
This commit is contained in:
154
session-logs/2026-05-25-session.md
Normal file
154
session-logs/2026-05-25-session.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user