nudge icon indicating copy to clipboard operation
nudge copied to clipboard

Ability to Set a Quiet Window

Open tbridgejc opened this issue 2 years ago • 2 comments

As Admins, we want to use Nudge to:

  • Respect a (series of) Quiet Window(s) from one timestamp to another.
  • During this timeframe, Nudge will not launch, and will act as if there are no updates available and assigned during that time.

One-Time Quiet WIndow

As an admin, I have a one-time period of time where I absolutely do not want users to be nudged. For example, a company-wide meeting, a company holiday, etc.

A sample config might look like:

<dict> <key>quiet_windows</key> <array> <dict> <key>type</key> <string>one_time</string> <key>start_time</key> <string>{{date}}</string> <key>end_time</key> <string>{{date}}</string> </dict> </array> </dict> </plist>

If an admin has configured this setting, the Nudge popup window would:

  • Automatically close at the beginning of this window.
  • Not be shown at all during this window.
  • Begin appearing again, immediately if appropriate, at the end of the window.
  • Quiet windows are additive, so if one Quiet window ends but another is still active, then the Quiet continues until all windows have ended.

Alternatively, it might also be desirable to have a repeating window based on relative time-date values.

Weekly Quiet Window

As an admin, there are periods of time each week where I want to make sure my users are not nudged to upgrade their OS. For example, the CEO presents to customers on Friday afternoons so I do not want to nudge them at that time. Another example would be that I don’t want to nudge users on nights/weekends because if something goes wrong then I do not want to have to support that user off-hours.

<dict> <key>quiet_windows</key> <array> <dict> <key>type</key> <string>recurring</string> <key>start_time</key> <string>{{Day / Time format}}</string> <key>duration</key> <string>{{X seconds}}</string> </dict> </array> </dict> </plist>

If an admin has configured this setting, the Nudge popup window would:

  • Automatically close at the beginning of this window each week.
  • Not be shown at all during this window.
  • Begin appearing again, immediately if appropriate, at the end of the window.
  • Quiet windows are additive, so if one quiet window ends but another is still active, then the quiet continues until all windows have ended.

tbridgejc avatar Aug 30 '21 17:08 tbridgejc

I think this request is potentially useful, but to play devils advocate a bit...

You probably want a system-wide tool that respects your maintenance windows instead of building the same feature in Nudge and a dozen other individual apps. One way to accomplish it would be to write a utility that loads/unloads the respective LaunchAgents when you want the "quiet" period to happen. You can also do this without any additional tools if you're using a configuration management solution like Chef today.

groob avatar Aug 30 '21 17:08 groob

Agreed that there are postures where this behavior can be accomplished by the LaunchAgent's removal or deactivation, and those may make sense for some organizations.

My hope was that this would allow this to be fully controlled by MDM Profile, not just by engagement with the LaunchAgent.

tbridgejc avatar Aug 30 '21 22:08 tbridgejc