sync: auto-sync from DESKTOP-0O8A1RL at 2026-05-21 14:10:00

Author: Mike Swanson
Machine: DESKTOP-0O8A1RL
Timestamp: 2026-05-21 14:10:00
This commit is contained in:
2026-05-21 14:10:03 -07:00
parent 8e8a18ce6f
commit 7ce0fa2145

View File

@@ -228,3 +228,84 @@ POST http://172.16.3.30:3001/api/auth/login
Posted internal Syncro comment to ticket #32303 (Cascades migration) documenting that Lauren Hasselman and Crystal Rodriguez passwords did not work — could not access their machines. Comment ID 412091314, hidden/internal, attributed to Howard Enos.
Ran `/sync`, pulled Mike's 11 commits. Reviewed updated `syncro.md` — key change: billing now uses `add_line_item` directly instead of the timer workflow. This affects all future Cascades billing. Full session log at `clients/cascades-tucson/session-logs/2026-05-21-session.md`.
---
## Update: late afternoon PT — IX hosting scan, hightechmortgage.com DNS, Rob Williams access
**User:** Mike Swanson (mike) | DESKTOP-0O8A1RL
### Session Summary
Mike requested activity stats for packetdial.com on IX hosting ahead of a meeting with Rob Williams. WHM API was used to confirm the account exists. cPanel session API was unusable (forced password reset redirect returning 307 on every call), so Python paramiko SSH to root on 172.16.3.10 was used instead to run `find` commands directly on the filesystem. A 90-day modified-file scan on `/home/packetdial/public_html` was run with WP core directories excluded (wp-admin, wp-includes, cache, vendor, node_modules, logs). Results showed limited file activity — mostly auto-update artifacts, no custom plugin or theme development in the scanned window.
Mike then asked to scan all 72 IX accounts for real dev work using the same approach. A Python paramiko script (`ix_all_sites.py`) was written and run, iterating every account returned by the WHM `listaccts` API, running monthly file modification counts per account, and flagging accounts with custom plugin/theme files or recent uploads. packetdial.com specifically showed low activity consistent with maintenance rather than active development.
During the Rob discussion, Mike forwarded a message from a client (hightechmortgage.com) asking Rob to add a Google Workspace TXT verification record. The record was added directly via WHM ZoneEdit API: `bash .claude/tmp/whm_dns.sh` against `172.16.3.10:2087`, adding `google-site-verification=7rmbUFlb1XViQjXJUZdpLpJSPvqkAvqrMgHhZ8yq6NA` as a TXT record on `hightechmortgage.com.` with TTL 300. Post-add verification confirmed the record was present.
Finally, Mike decided to give Rob Williams formalized access in the ClaudeTools Discord bot. Rob was added to `users.json` as a contractor and `DISCORD_CLAUDE.md` was updated to move him from no access to a "Recognized — Limited Operator" tier. His authorized scope covers M365 remediations via `/remediation-tool`, all IX Web Hosting and Websvr DNS/file/account changes, and full Syncro access (create/update/close tickets, add comments, bill time, create invoices). He cannot modify bot behavior, vault credentials, GuruRMM, or ACG's own M365 tenant. Rob's name was initially entered incorrectly as "Rob Quirarte" and corrected to "Rob Williams" after Mike pointed it out.
### Key Decisions
- **paramiko over cPanel session API.** cPanel UAPI via cookie session was blocked by a forced password reset page returning 307 on every request. Root SSH via paramiko bypasses this entirely and is faster for bulk filesystem scans.
- **WP core exclusions for activity scoring.** Excluded `wp-admin`, `wp-includes`, `cache`, `vendor`, `node_modules`, `uploads/cache`, `logs` when counting modified files. This prevents auto-update noise from inflating scores and gives a cleaner signal for actual dev work.
- **Rob's Syncro access = full tech-level.** Mike's guidance: "He can use Syncro, just cannot change behavior." Full create/update/close/bill access was granted rather than a read-only or restricted scope.
- **DISCORD_CLAUDE.md as access control surface.** Bot reads this file as its system prompt. Editing it directly controls Discord user permissions without any code deploys. Takes effect on next bot restart (`nssm restart ClaudeToolsDiscordBot` on BEAST).
### Problems Encountered
- **cPanel session API 307 redirect.** Every cPanel UAPI call via cookie session returned 307 redirect to a forced password reset page. Workaround: switched to paramiko root SSH, bypassing cPanel auth entirely.
- **Rob's name entered wrong.** `users.json` and `DISCORD_CLAUDE.md` initially had "Rob Quirarte" instead of "Rob Williams." Mike corrected this; both files were updated and recommitted (commit `063b209`).
- **Rob Syncro scope too restrictive on first pass.** Initial implementation gave Rob read-only Syncro. Mike clarified: full access. Updated in `DISCORD_CLAUDE.md` and committed as `8e8a18c`.
### Configuration Changes
- `D:/claudetools/.claude/users.json` — Added Rob Williams as contractor: email, role, Discord ID 261978810713505792, Syncro user_id 1760, authorized scope. Added "contractor" role definition.
- `D:/claudetools/projects/discord-bot/DISCORD_CLAUDE.md` — Rob moved from unknown/restricted to "Recognized — Limited Operator" with full scope definition. Multiple edits: initial access, name fix, Syncro upgrade.
### Credentials & Secrets
No new credentials created or vaulted.
Existing used:
- WHM root credentials: `infrastructure/ix-webhosting.sops.yaml` (host 172.16.3.10:2087)
- IX SSH: root@172.16.3.10 (same vault entry)
### Infrastructure & Servers
- **IX Web Hosting** — 172.16.3.10:2087 (WHM), 172.16.3.10:22 (SSH)
- **hightechmortgage.com** — DNS hosted on IX via cPanel account `hightechmortgage`; TXT verification record added
- **packetdial.com** — IX cPanel account `packetdial`; WordPress site, low recent dev activity
- **BEAST (GURU-BEAST-ROG)** — Discord bot service: `ClaudeToolsDiscordBot` (NSSM). Needs restart to pick up DISCORD_CLAUDE.md changes.
### Commands & Outputs
```bash
# WHM account list
curl -sk -u "root:<pass>" "https://172.16.3.10:2087/json-api/listaccts?api.version=1" | jq '[.data.acct[] | .user]'
# packetdial 90-day modified files (paramiko SSH)
find /home/packetdial/public_html -mtime -90 -type f \
! -path "*/wp-admin/*" ! -path "*/wp-includes/*" ! -path "*/cache/*" \
! -path "*/vendor/*" ! -path "*/node_modules/*" ! -path "*/logs/*" | wc -l
# hightechmortgage.com TXT record add (via WHM ZoneEdit API)
# Script: D:/claudetools/.claude/tmp/whm_dns.sh
# Result: status 1 (success), serial updated
TXT record: google-site-verification=7rmbUFlb1XViQjXJUZdpLpJSPvqkAvqrMgHhZ8yq6NA
TTL: 300, name: hightechmortgage.com.
```
### Pending / Incomplete Tasks
- **[Bot restart needed — BEAST]** `nssm restart ClaudeToolsDiscordBot` — required for Rob's new DISCORD_CLAUDE.md access to take effect
- **[SECURITY — IX]** packetdial.com webshell: `x919.php` at `/home/packetdial/public_html/x919.php` — responded HTTP 200 from 109.122.197.160. Needs deletion and investigation.
- **[MANUAL — Physical/ScreenConnect]** PST-SURFACE: reinstall GuruRMM agent 0.6.27, then verify IKEv2 VPN + cert deployment (agent offline since 2026-05-12)
### Reference Information
- Rob Williams Discord ID: `261978810713505792` | Syncro user_id: `1760`
- DISCORD_CLAUDE.md commits: initial access (pre-compaction), name fix `063b209`, Syncro upgrade `8e8a18c`
- IX hosting scripts: `D:/claudetools/.claude/tmp/ix_ssh.py`, `D:/claudetools/.claude/tmp/ix_all_sites.py`, `D:/claudetools/.claude/tmp/whm_dns.sh`
- packetdial.com webshell path: `/home/packetdial/public_html/x919.php`
- hightechmortgage.com WHM cPanel user: `hightechmortgage`