A major update to the practical, MDM-agnostic, user-friendly approach to surfacing Mac compliance information directly to end-users — and now enterprise reporting data warehouses — via your MDM's self-service app
Splunk Dashboard
Health Checks
Reporting
16-Jul-2026
- Raised the minimum required swiftDialog version to
3.1.0.4994and refactored pre-flight checks to skip redundant production package downloads when the installed release already matches the latest production build - Added JSON health reporting with optional Splunk HTTP Event Collector (HEC) delivery, plus stricter cached-report validation so failed cached uploads no longer look like successful report generation
- Added the Inspect Mode-flavored end-user report (
inspectSummaryPreset="on") forSelf Service, including cached replay viainspectReplayMaximumAgeSeconds,Next Steps,Quick Actions, a conditionalRemediation Guide, status-aware bento-grid cards, and a stronger unhealthy-results hierarchy - Updated the generated and detached Preset 6 Inspect configs and demo assets for swiftDialog
3.1.0.4979compliance findings with live compliance plist sources, trigger/readiness/result control paths, source-level labels, plist-backed detail sheets, non-plistdetailOverlaysupport, renderer-owned 6 / 12 / 24 / 36pt spacing, an explicit12-point bento-grid gap, and stricter validation for highlight content - Refactored full
Silenthealth-check runs to write/var/tmp/MacHealthCheck-Inspect-Config.jsonand/var/tmp/MacHealthCheck-Inspect-Compliance.plistwithout launching swiftDialog - Refactored
SilentwithsplunkOperationMode=productionto suppress non-Splunk console output while still logging fully toscriptLog, skipjamf recon, and return success when local report generation plus Splunk HEC delivery succeed regardless of recorded health findings - Added Force Fresh Run support for
SilentwithsplunkOperationMode=production, including the/var/tmp/MacHealthCheck-Force-Fresh-Runone-shot trigger file, Script Parameter 11forceFreshRun, source-levelreportDebug, and cached local Splunk report removal before fresh report generation - Added Client-Side Cache nightly report generation, Jamf Pro cached Splunk upload optimization, LaunchDaemon deployment for daily
Silentreport refresh with deterministic per-Mac jitter around 1:23 a.m., and LaunchDaemon-only loginwindowlastUserNamefallback for user-scoped checks when no GUI user is active - Sanitized the client-side script copy so it does not perform Jamf inventory submission, routed LaunchDaemon stdout/stderr to
/dev/nullto prevent duplicate prefixedSilentlog lines, and normalized client-side cache, LaunchDaemon validation/loading, external-check helper, and user-context command-preview logging - Added
checkWiFiStrength()and enhanced Wi-Fi Strength test reporting; thanks, @kgolden-code and thanks for PR #90, @HowardGMac! - Added
checkEntraIDRegistration()to Jamf Pro-specific checks and includedidentity.entraIDRegistrationin JSON reports and Inspect Mode summaries - Refactored Palo Alto GlobalProtect-related code to support connected-non-pa status, safe plist reads, disconnected-as-warning behavior, and normalized external-check output; inspired by @kgolden-code's PR #88
- Refactored
checkHomebrewStatus()to more accurately reflect Homebrew's actual installation status andcheckElectronCornerMaskto reduce execution time - Updated Free Disk Space and folder size/item count reporting info; thanks for PR #89, @HowardGMac!
- Refactored
updateComputerInventory()to warn end users whenjamf reconfails and added a90-second timeout with timeout-specific logging and messaging - Refactored the final standard dialog to distinguish warning-only results from failures, showing
Computer Needs Attentionwith an amber exclamation mark and returning exit code0when no checks failed - Removed
displayFailureNotification()in favor of the Inspect Mode-flavored report - Improved external-check result parsing, logging, and client-side cache installs
- Documented PR #684 tolerant scalar decoding while continuing to emit strictly typed JSON, and refreshed tracked Preset 6 demo assets and Inspect Mode documentation
What's Changed
- Add repo-specific security scan workflow and security policy by @dan-snelson in #85
- 3.2.0 by @dan-snelson in #86
- 4.0.0 by @dan-snelson in #98
Full Changelog: v3.2.0...v4.0.0