215 lines
13 KiB
Markdown
215 lines
13 KiB
Markdown
# Cascades of Tucson Technology Plan — built and finalized (client deliverable)
|
||
|
||
## User
|
||
- **User:** Howard Enos (howard)
|
||
- **Machine:** Howard-Home
|
||
- **Role:** tech
|
||
|
||
## Session Summary
|
||
|
||
Built the client-facing Technology Plan for Cascades of Tucson (FY 2026–2027), starting from
|
||
the June 2026 CARF-oriented drafts and reconciling them against the wiki (current truth) via a
|
||
delegated fact-check. Howard directed a plain, Done / To-do structure per area with an
|
||
Action/Owner/Cost/Target table — no fluff, no negative framing of ACG, no CARF-intake blockers
|
||
(governance fields left as *[at adoption]* placeholders).
|
||
|
||
The plan covers the 8 core areas (Hardware, Software, Security/HIPAA, Confidentiality, Backup,
|
||
Assistive technology, Disaster recovery, Virus & threat protection) plus supplementary areas
|
||
(Communication technology, Services purchased, Use of AI) and a review/revision block. Rendered
|
||
as a branded 3-page PDF via headless Chrome from a hand-built HTML using the ACG design tokens
|
||
(paper/ink/orange palette, Barlow Condensed / Lexend / JetBrains Mono).
|
||
|
||
Iterated to final on Howard's live corrections: backup section reworded to plain
|
||
Synology-syncs-to-server + online off-site backup (no MSP360/license talk); all "outdated
|
||
server" age references removed; offline switches recognized as by-design (wiki updated + errorlog
|
||
correction); workstation replacement list expanded from hardware evidence in the March 2026
|
||
fleet audit (workstations.md); server power-supply row dropped (unit just not connected);
|
||
M365 licensing changed to a right-sizing item (not everyone needs full Office); Synology NAS
|
||
repurpose-as-onsite-backup added to area 5; the two remaining legacy-agent machines named
|
||
(DESKTOP-TRCIEJA, DESKTOP-F94M8UT); Ashley Jensen's name removed from the document entirely;
|
||
CHEF-PC changed from rebuild to full replace (list now 5 + spare); UPS coverage moved to Done
|
||
(installed on all switches) and the verify to-do removed. Howard confirmed the "scope and quote
|
||
a server refresh project" row stays as written.
|
||
|
||
Final deliverable: 3-page PDF, no Chrome header/footer, verified visually page-by-page. The
|
||
.md (master content), .html (render source), and .pdf are in sync.
|
||
|
||
## Key Decisions
|
||
|
||
- Done / To-do per-area structure at Howard's request; positive professional tone, no
|
||
self-criticism of ACG, minimal prose.
|
||
- Governance fields (adopted by/date, next review) intentionally left as *[at adoption]*
|
||
placeholders rather than blocking on CARF intake answers.
|
||
- Workstation replacement list built strictly from the March 2026 hardware audit evidence
|
||
(Win11 CPU support, RAM, machine age) — no guessed machines.
|
||
- Final replacement list (5 + spare): DESKTOP-TRCIEJA (Lupe Sanchez, EOL), ASSISTMAN-PC
|
||
(Meredith Kuhn, i5-6200U cannot run Win11), MDIRECTOR-PC (Shelby Trozzi, 3.9 GB RAM),
|
||
MEMRECEPT-PC (Pentium E5500, oldest in fleet), CHEF-PC (Culinary — Howard upgraded it from
|
||
rebuild to replace), plus spare deployed to a new hire.
|
||
- M365: right-size licensing instead of consolidate-everyone-onto-Business-Premium — Howard:
|
||
not everyone needs the full Office license; framed as "reduces monthly cost".
|
||
- Synology NAS will be repurposed as the server's ONSITE backup target (off-site online backup
|
||
continues) — added as a 60–90 day Backup to-do.
|
||
- Server power supply is NOT a work item (likely just not connected) — removed.
|
||
- UPS: installed on all switches — moved to Done in area 7; verify-coverage to-do removed.
|
||
- No client staff names in the deliverable (Ashley Jensen removed; masthead now "Attn: Business
|
||
Office"). Note: replacement-list user names (Lupe/Meredith/Shelby) were kept — only Ashley's
|
||
was requested removed.
|
||
- "Scope and quote a server refresh project" kept as-is after explaining it to Howard (it means
|
||
produce a formal quote within 90 days, not committed spend; pairs with area 7 server
|
||
redundancy).
|
||
|
||
## Problems Encountered
|
||
|
||
- Headless Chrome render intermittently no-ops on first invocation after taskkill (exit path
|
||
produces no PDF, or leaves the stale file untouched — caught once by identical byte size +
|
||
old timestamp). Fix: retry the same command; verify freshness by timestamp/byte-size change
|
||
before trusting the output.
|
||
- First render in the earlier segment had Chrome's default header/footer — fixed with
|
||
`--no-pdf-header-footer` (kept in all subsequent renders).
|
||
- PDF text-extraction check (zlib streams) found nothing — text is drawn with subset-encoded
|
||
glyphs; verification must be visual (Read the PDF) not grep-based.
|
||
- `pdftoppm` not available on this machine — Read the PDF without the pages param instead.
|
||
- Wiki article too large to Read directly (~70k tokens) — fact-check delegated to an Explore
|
||
agent with an itemized claim checklist.
|
||
|
||
## Configuration Changes
|
||
|
||
- [created/edited] `clients/cascades-tucson/docs/proposals/cascades-technology-plan-2026-07-15.md`
|
||
— master plan content (final).
|
||
- [created/edited] `clients/cascades-tucson/docs/proposals/cascades-technology-plan-2026-07-15.html`
|
||
— branded render source (final, in sync with .md).
|
||
- [created/rendered] `clients/cascades-tucson/docs/proposals/cascades-technology-plan-2026-07-15.pdf`
|
||
— 3-page deliverable, 400,341 bytes, rendered 2026-07-15 11:14.
|
||
- [edited] `clients/cascades-tucson/docs/proposals/carf-technology-plan-intake.md` — backup
|
||
wording plain (Synology syncs to server, server backed up online); MSP360 removed.
|
||
- [edited] `wiki/clients/cascades-tucson.md` — offline switches (Switch 4th Floor #2, USW Pro
|
||
Max 16) marked "offline by design — not an issue (Howard, 2026-07-15). Do not flag or
|
||
investigate."
|
||
- [appended] `errorlog.md` — `--correction`: assumed offline UniFi switches were an issue;
|
||
correct is offline by design.
|
||
|
||
## Credentials & Secrets
|
||
|
||
None touched this session.
|
||
|
||
## Infrastructure & Servers
|
||
|
||
- CS-SERVER: EDR covered since 2026-07-13; Datto EDR is the endpoint standard (~35 agents).
|
||
- Legacy-agent stragglers: DESKTOP-TRCIEJA (Bitdefender BD_ACTIVE; GravityZone console-only
|
||
uninstall; retires with its hardware replacement) and DESKTOP-F94M8UT (Alma Montt's old
|
||
machine, powered off; BD-aware EDR install queued, fires on power-on).
|
||
- Network: UniFi 77 APs / 12 managed switches; pfSense dual-WAN (Cox); UPS now on all switches.
|
||
- M365 tenant cascadestucson.com — Business Premium 45 seats enabled; licensing right-size
|
||
planned.
|
||
|
||
## Commands & Outputs
|
||
|
||
- PDF render (proven, flaky on first run — retry if no fresh file):
|
||
`"/c/Program Files/Google/Chrome/Application/chrome.exe" --headless --disable-gpu --no-sandbox
|
||
--no-pdf-header-footer --virtual-time-budget=8000 --print-to-pdf="<abs path>.pdf"
|
||
"file:///C:/claudetools/clients/cascades-tucson/docs/proposals/cascades-technology-plan-2026-07-15.html"`
|
||
- Page count: `py -c "import re;d=open('<pdf>','rb').read();print(max(int(m) for m in
|
||
re.findall(rb'/Count\s+(\d+)',d)))"` → 3.
|
||
- Freshness check: compare byte size + mtime after render; identical size/old mtime = stale,
|
||
re-run.
|
||
|
||
## Pending / Incomplete Tasks
|
||
|
||
- Deliver the PDF to Cascades (Business Office) — Howard to send.
|
||
- Borderline replacement candidates NOT added (offered, not confirmed): ACCT2-PC (i3-1005G1,
|
||
118 GB disk), LAPTOP-DRQ5L558 + LAPTOP-E0STJJE8 (Ryzen 3500U, 6 GB).
|
||
- Governance placeholders (*[at adoption]*, adopted-by date, next annual review) to be filled
|
||
when Cascades formally adopts the plan.
|
||
- Synology onsite-backup repurpose is now a committed plan item (60–90 days) — actual
|
||
implementation work not started.
|
||
- Standing items from 7/14 session remain: Juan Andrade offboarding (7/16 PM), break-glass
|
||
accounts, audit logging build, BAA inventory.
|
||
|
||
## Reference Information
|
||
|
||
- Deliverable dir: `clients/cascades-tucson/docs/proposals/`
|
||
- Fleet audit source: `clients/cascades-tucson/docs/workstations.md` (March 2026)
|
||
- Remaining-work plan: `clients/cascades-tucson/docs/REMAINING-WORK-PLAN.md`
|
||
- Straggler pass log: `clients/cascades-tucson/session-logs/2026-06/2026-06-26-howard-edr-bd-straggler-9am-pass.md`
|
||
- Prepaid balance shown in footer: 37.5 hrs as of 2026-07-10
|
||
|
||
## Update: 12:21 PT — Mike's verification edits applied
|
||
|
||
Applied all 4 items from Mike's coord message (6c0abc15) per Howard's "fix the cost wording
|
||
and update the docs, and do as mike wants":
|
||
|
||
1. **Area 2 cost correction** — Mike's live Graph check showed the relicensing claim was wrong
|
||
(office staff sit on a SUSPENDED Business Standard sub, no Premium seats). Reworded to
|
||
"new licensing, ~$375–575/mo depending on mix" (net-new spend, not savings).
|
||
2. **Area 8 wording** — "every device" -> "every managed, enrolled device (35), including the
|
||
main server (verified live July 2026)". Dropped DESKTOP-F94M8UT from the legacy-agent row
|
||
(already gone from the Datto console); DESKTOP-TRCIEJA remains.
|
||
3. **CARF conformance elements added** — standard reference row (CARF Technology and System
|
||
Plan, Aging Services manual Section 1, edition placeholder), "Basis of this plan" section
|
||
(needs of persons served / personnel / stakeholders + strategic alignment), Ashley Jensen
|
||
restored as named plan owner (governance table ONLY — masthead stays "Attn: Business
|
||
Office"; Howard approved via "do as mike wants" after the earlier name-removal request),
|
||
and a Completed column added to all 28 action rows across 8 to-do tables (living-action-
|
||
document format).
|
||
4. **Stale docs refreshed** — wiki CS-SERVER line superseded (Datto EDR agent reinstalled,
|
||
agent b41befcf-e418-4d0d-8552-bc7662364d07, verified live; 6/26 removal note no longer
|
||
current) and docs/cloud/m365.md licensing section rewritten to the live Graph numbers
|
||
(SPB 45/41/4, Standard SUSPENDED 30 consumed) + stale "MFA: Not enabled" line fixed.
|
||
|
||
PDF re-rendered: 4 pages, 433,980 bytes, verified visually page-by-page. Coord reply sent to
|
||
Mike (GURU-5070) confirming: id 3c07fd3e-7f93-401d-8d46-339c968552f9.
|
||
|
||
Files touched this update: proposals .md/.html/.pdf, docs/cloud/m365.md,
|
||
wiki/clients/cascades-tucson.md.
|
||
|
||
## Update: 12:51 PT — Live verification sweep + jodi.ramstack decommission
|
||
|
||
### Live verification of the tech plan (Howard requested)
|
||
|
||
Ran 4 parallel read-only verification agents + direct DNS checks against every verifiable
|
||
"Done" claim in the plan. Results:
|
||
|
||
**CONFIRMED live (plan accurate):**
|
||
- Email auth: SPF `-all`, DMARC `p=quarantine pct=100`, DKIM selectors published (M365).
|
||
- M365: SPB 45/41/4; Standard SUSPENDED 30 consumed. MFA-for-all CA policy enabled;
|
||
caregiver network-block CA policy live (trusted location 72.211.21.217/32 +
|
||
184.191.143.62/32) + 8h sign-in frequency. ALIS SSO SP enabled, active sign-ins today.
|
||
- Datto EDR (azcomp4587): 35/35 agents AV-enabled; CS-SERVER heartbeat ~3 min old, defs
|
||
released today. DESKTOP-TRCIEJA active (retires w/ replacement); DESKTOP-F94M8UT gone.
|
||
Stale unchanged: desktop-kqsl232 47d, maintenance-pc 26d.
|
||
- UniFi (UOS 172.16.3.29:11443, site va6iba3v): exactly 77 APs (75 online); ~240 networks —
|
||
per-room VLANs 101–631, voice VLAN 30 with exactly 37 clients, staff/guest/mgmt separated.
|
||
Sub-gigabit to-do current: 34 active 100Mb switch ports + 5 APs uplinked at 100Mb
|
||
(APs 122, 145, 204, 236, 240 — highest-impact fixes).
|
||
- MSP360: CS-SERVER file backup Success today 07:00 (daily verified).
|
||
|
||
**Discrepancies found (NOT applied — Howard: "leave the rest alone and do not add"):**
|
||
- Switches: controller shows 11 (8 online, 2 offline USL24PB, 1 pending), plan says 12.
|
||
- Caregiver policy live since 2026-04-29 (plan says 2026-07-01 — that was another policy's mod date).
|
||
- MSP360 image plan last success 2026-07-05 (file plan is the daily one).
|
||
- pfSense config vaulted 2026-06-17 point-in-time; Netgate ACB still not enabled.
|
||
- Dual-WAN failover: configured/documented, not live-verified (pfSense GUI needed).
|
||
|
||
**Correction (logged --correction):** verification agent reported Synology-to-server sync as
|
||
partial/overstated based on STALE wiki (6/18 Team Folder [PENDING] notes). Howard confirmed
|
||
the shared-folder syncs to the server ARE set up. Wiki lines ~487/633 in
|
||
wiki/clients/cascades-tucson.md are stale on this point (not yet edited).
|
||
|
||
### jodi.ramstack decommission (Howard requested)
|
||
|
||
Via remediation-tool user-manager tier (Graph), user id b7cddbeb-6026-436b-a3aa-67c4be43e3fb:
|
||
1. accountEnabled=false (204); 2. revokeSignInSessions (200); 3. removed license
|
||
f245ecc8-75af-4f8e-b61f-27d8114de5f3 (suspended Business Standard) (200). Verified:
|
||
disabled, assignedLicenses=[].
|
||
|
||
Shared-mailbox conversion attempted (exchange-op tier, EXO admin API): **no mailbox exists**
|
||
— Set-Mailbox/Get-Mailbox -SoftDeletedMailbox/Get-Recipient all NotFound; Graph
|
||
mailboxSettings 404 MailboxNotEnabledForRESTAPI. Mailbox was deprovisioned long before today
|
||
by the suspended subscription (last sign-in 2025-03-28) — no mail data left in the tenant to
|
||
preserve. Account object retained (disabled/unlicensed).
|
||
|
||
Gotcha hit: `UID` is a readonly bash variable — use another name (JID) in Git-Bash one-liners.
|
||
|
||
PDF unchanged (4 pages, 433,980 bytes) — Howard sends to Mike.
|