Notes
This is a pre-release version of Nudge created by GitHub Actions.
Nudge.app has been signed and notarized. The package has been signed, notarized and stapled.
By default Nudge looks for a com.github.macadmins.Nudge.json
file located in /Library/Preferences
. If you would like to use an alternative path, please read the README or the WIKI
About the LaunchAgent
This is a basic launch agent that opens Nudge twice an hour, every 30 minutes.
If you would like to reduce the amount of times Nudge launches per day, it is recommended to create your own LaunchAgent.
Changelog
Requires macOS 12.0 and higher. Further releases and feature requests may make this macOS 13 and higher depending on code complexity.
Changed
- You can now pass the strings
latest
,latest-supported
andlatest-minor
in therequiredMinimumOSVersion
keylatest
: always force latest release and if the machine can't this version, show the new "unsupported device" user interfacelatest-supported
: always get the latest version sofa shows that is supported by this devicelatest-minor
: stay in the current major release and get the latest minor updates available- This requires utilizing the SOFA feed features to properly work
- Nudge will then utilize two date integers to automatically calculate the
requiredInstallationDate
activelyExploitedCVEsInstallationSLA
under theosVersionRequirement
key will default to 14 daysnonActivelyExploitedCVEsSLA
under theosVersionRequirement
key will default to 21 daysstandardInstallationSLA
under theosVersionRequirement
key will default to 28 days- These dates are calculated against the
ReleaseDate
key in the SOFA feed - If you'd like to not have nudge events for releases without any known CVEs, please configure the
disableNudgeForStandardInstalls
key underoptionalFeatures
to true
Fixed
Upcoming
Added
- Remote URLs can now be used on
iconDarkPath
,iconLightPath
,screenShotDarkPath
andscreenShotLightPath
- Actively Exploited CVEs in the left sidebar
- To disable this item, please configure the
showActivelyExploitedCVEs
key underuserInterface
to false
- To disable this item, please configure the
- An admin can now allow users to move the Nudge window with
userExperience
keyallowMovableWindow
- Basic SwiftUI support for Markdown text options
- Utilizing Apple's markdown features, you can now utilize, bold, italic, underline, subscript and url links directly into any of the text fields
- SOFA feed support
- Set the
utilizeSOFAFeed
keytrue
underoptionalFeatures
to enable this feature - Nudge will by default check the feed every 24 hours.
- In order to change this, please configure the
refreshSOFAFeedTime
key underoptionalFeatures
in seconds - If you are utilizing a custom sofa feed, please configure the
customSOFAFeedURL
key underoptionalFeatures
- Set the
- "Unsupported device" UI in standard mode that utilizes the SOFA feed
- Set the
attemptToCheckForSupportedDevice
keyfalse
underoptionalFeatures
to disable this feature - There are now keys to set all of text fields
informationButtonTextUnsupported
,mainContentHeaderUnsupported
,mainContentNoteUnsupported
,mainContentSubHeaderUnsupported
,mainContentTextUnsupported
,subHeaderUnsupported
unsupportedURL
andunsupportedURLs
can change the information button itself, but it will remain in theosVersionRequirement
key withunsupportedURLs
andunsupportedURLs
.- An icon will appear as an overlay on top of the company image to further emphasize the device is no longer supported
- Set the
Changes
- 26e7fc1 - try and move back to zsh with --no-rcs in the shebangs
- ec9d2d7 - CHange Schema placeholder to EX: en to prevent confusion when configuring a language. (#566)
- f3232ca - v.1.2.0
- c4dd6b2 - bump to macos12 and fix marketing version
- 1520f7b - add remote image support to companyLogo/screenShot
- f38ae97 - tweak screenshot zoom again
- c86a76f - move to web assets
- 0cfd064 - mark macOS 12 and higher for now
- 62178c2 - allow window to be movable by admin (allowMovableWindow)
- 9d6838c - first real attempt at getting gdmf data
- f83eab8 - return board-id for gdmf comparison
- ce83f3c - get rid of some compiler warnings
- 9a3e8a4 - support for apple silicon vs intel hardware for gdmf
- 16426c2 - refactor gdmf and hardmodel
- 6324510 - strip newlines in modelID
- 9fa46e2 - Remove optional logging in serviceTargetProperty
- 05e052e - Add a temporary comparison loop of the macOS Assets from gdmf
- 17853d2 - initial query of sofa v1 api
- b09d493 - remove need for custom decoding strategy for sofa
- 2deab45 - new version of sofa has SupportedDevices enabled
- 0f31977 - new utilizeSOFAFeed preference - defaults to false
- b20dd44 - start implementing unsupported ui
- a8f382a - change the other text ternaries
- bc956ca - sort the keys
- 2afb778 - finish sorting
- cd53504 - flesh out device supported logic
- 098d361 - add sofa logging events
- 335b1bf - add unsupportedURL and informationButtonTextUnsupported
- fc0ce05 - start testing for actively exploited cve info
- 0fb6528 - TODOs so I don't forget
- 027450e - more todo notes
- ad4247b - handle new sofa values for "Latest"
- d290f0e - first attempt at implementing "latest" with ui
- c12fb99 - add activelyExploitedInstallationSLA and standardInstallationSLA
- 0764e29 - add actively exploited UI
- 90974f4 - more todo
- 51184f7 - markdown provided unsupported device
- 0d54d7c - add overlay
- a010370 - move to xcode 15.4
- a3e984d - add logic for sofa caching
- 93757a8 - 2.0.0 release and more notes
- 67936c4 - macos13 to macos14 for new xcode
- 0c6535f - dont try -large
- 5f4b899 - fix changelog
- bc7ec7e - remove forced unsupported
- c5c1dd4 - add another todo
- 45928ce - remove unneccessary key for testing latest
- 9468590 - add support for "latest-supported"
- 3b36418 - add logic to test bundle profile
- 1ba078f - finish all the wrapping around local plist
- 4b33f1d - fix key typo for utilizeSOFAFeed on mdm profiles
- d7f041a - simplify the sofa logic and add latest-* supported
- 5fbd517 - fix bug when matching requiredMinimumOSVersion with OS version values
- 1e0fa3d - test the skip macOS versions no CVE logic
- 863477a - add showActivelyExploitedCVEs
- 8a49079 - active exploit cve test to red when true
- 8185036 - add user-agent in sofa request
- 31dd94b - move to globals.bundleid for all bundleid calls
- ead34ff - add customSOFAFeedURL
- c5bf7cc - add etag logic even though it doesn't work in syncronous calls
- 8a35535 - move to modified date not creation date
- 2a32c12 - break the loop after one query
- b536468 - move sofa logic to a function so it can be called after other logc
- 34cd108 - fix probable issue with xcode tests failing
- 585712f - move todos