-
Notifications
You must be signed in to change notification settings - Fork 90
Workflow Schedule Behavior
The default super
workflow behavior is to always remain "active" until that workflow is completed as soon as possible. However, many environments prefer to schedule "maintenance windows" for any workflow that interrupts the user. As such, super
can be configured to only run workflows during specific weekdays and times.
All super
workflows also have a zero date (and time) defined the beginning of a super
workflow. All day-based super
options rely on the zero date as the "starting" time of the workflow. For example, if you have a deadline option set for "2 days", the deadline would be active 2 days after zero day.
The default super
behavior automatically sets the workflow zero date to the date (and time) when the workflow is initial configured or a new Apple software update is discovered by super
. There are several options that allow you to specify an alternate workflow zero date.
Only allow the super
to be active at specific weekdays and times.
Command option example:
--schedule-workflow-active=TUE:13:00-17:00,WED:13:00-17:00,THU:13:00-17:00
Command option disable example:
--schedule-workflow-active=X
Configuration Profile Example:
<key>ScheduleWorkflowActive</key>
<string>TUE:13:00-17:00,WED:13:00-17:00,THU:13:00-17:00</string>
Each schedule workflow active time frame must be specified using the following format DAY:hh:mm-hh:mm
where weekdays are defined as MON|TUE|WED|THU|FRI|SAT|SUN
and times are in 24-hour format. Multiple time frames are separated by a comma with no spaces.
For example, if you want super
to only be active on the afternoons during the middle of the work week then you would specify --schedule-workflow-active=TUE:13:00-17:00,WED:13:00-17:00,THU:13:00-17:00
. Also, you can specify multiple time frames for any weekday. For example, if you want super
to only be active during non-business hours on Monday, then for that weekday you would specify multiple time frames around your normal work hours like so, MON:00:00-09:00,MON:17:00-23:59
.
Enabling this option directly affects other super
features and options including deferral, scheduled installation, and deadline behaviors. In most cases super
can automatically adjust workflow timings to fit within the scheduled active time frames. These automatic adjustments always show as warnings in the super.log.
Set the workflow zero date to the release day of the target macOS update or upgrade.
Command option example:
--schedule-zero-date-release
Command option disable example:
--schedule-zero-date-release-off
Configuration Profile Example:
<key>ScheduleZeroDateRelease</key>
<true/>
This option relies on the Mac Admins Open Source SOFA macOS data feed. Specifically, if the workflow target is a macOS update or upgrade, then super
downloads https://sofafeed.macadmins.io/v1/macos_data_feed.json
to determine the specific macOS version release date. This date is used to set the workflow zero date.
When this option is enabled, if the super
workflow target is not a macOS update or upgrade, then the default automatic workflow zero date is used. Similarly, if the SOFA data feed can't be reached or the target macOS version isn't found, then the default automatic workflow zero date is used.
Use a specific (presumably internal) custom SOFA url for the macOS releases data feed.
Command option example:
--schedule-zero-date-sofa-custom-url=https://sofa.example.com/v1/macos_data_feed.json
Command option disable example:
--schedule-zero-date-sofa-custom-url=X
Configuration Profile Example:
<key>ScheduleZeroDateSOFACustomURL</key>
<string>https://sofa.example.com/v1/macos_data_feed.json</string>
This option requires that you have also specified the --schedule-zero-date-release
option. Similarly, if the custom SOFA data feed can't be reached or the target macOS version isn't found, then the default automatic workflow zero date is used.
Set a specific workflow zero date and time.
Command option example:
--schedule-zero-date-manual=2024-10-02:10:15
Command option disable example:
--schedule-zero-date-manual=X
Configuration Profile Example:
<key>ScheduleZeroDateManual</key>
<string>2024-10-02:10:15</string>
At a minimum, you must always specify "YYYY-MM-DD". Hours are represented by a 24-hour clock, and any non-specified hours or minutes are rounded to "00".
This option is largely used for testing days-based workflows, but it can also be used in production to set potentially more consistent day zero behavior. Note that you need to manually update this value every time you want to set a new manual day zero.