Skip to content

Releases: macadmins/outset

Outset 4.3.0.22014 Beta 1

06 Mar 21:50
b04be4c

Choose a tag to compare

Pre-release

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

Fixed

  • Managed profile payload processing (Login.swift, Payloads.swift, closes #64): three related bugs prevented scripts delivered via MDM managed profiles from running correctly when local Outset directories were empty.

  • DMG package installation (installPackage): corrected a variable assignment bug where the DMG mount path was used as the package path instead of the actual .pkg/.mpkg file path. Also fixed a loop that overwrote a single variable on each iteration, meaning only the last package in a DMG was ever installed.

  • Network timeout (Boot.swift): the configured network_timeout preference value was being divided by 10 before being passed to waitForNetworkUp, causing the actual wait to be ten times shorter than configured.

  • Privileged login trigger (Login.swift): the condition that fires the login-privileged launchd trigger used || (OR) instead of && (AND), meaning the trigger would only fire when both the login-privileged-once and login-privileged-every directories were non-empty.

  • Log file path is now context-aware (Globals.swift, writeFileLog): Outset runs in both root context (boot, login-privileged, on-demand-privileged) and user context (login-every, login-once, on-demand). The previous single log path (/usr/local/outset/logs/outset.log) is in a root-owned directory, so user-context runs could not write to it. The log path is now determined at runtime: root context continues to log to /usr/local/outset/logs/outset.log; user-context runs log to ~/Library/Logs/outset.log. Log file permissions are 0o644 in both cases (previously 0o666).

  • LaunchDaemon Program key (io.macadmins.Outset.on-demand-privileged.plist, closes #72): the Program key was incorrectly typed as an <array> instead of a <string>. All LaunchDaemon plists now use the correct <string> type for the Program key as required by launchd.

Added

  • Background script execution: scripts whose filename begins with an underscore (e.g. _my-task.sh) are now dispatched concurrently on background threads while the remaining foreground scripts continue to execute sequentially. Documentation here

  • Ed25519 script signing: scripts can now be signed with an Ed25519 private key, with the signature embedded directly in the script as a # ed25519: <base64sig> comment. When an MDM-delivered public key (manifest_signing_key preference) is present, every script must carry a valid embedded signature — scripts without a valid signature are refused with an error log. Documentation here

Changelog

  • 675de98 - Made the EA more robust to any future changes in the number of agents/daemons. This should fix #59
  • 96023e1 - Added check in case directories we want to look at are missing
  • af323b9 - Some initial cleanup and re-arranging to assist with addressing issue #64
  • fc44464 - Some more tidy up. Initial work on getting boot-once data recorded. More to do
  • c5a6ca6 - Fixes boot-once issue when specifying a boot-once script as an MDM payload. run info is now properly recorded
  • 9ace5fe - fix for making sure login-privileged-once only runs once
  • fd49645 - more cleanup and comments. Also identified a logic error in removeIgnoredUsers
  • b921a27 - update add and remove for ignored users and overrides
  • 8f31c21 - Update created by
  • 9cd6191 - fix logic issue loading and writing runeonce for boot-once when running as root
  • 0ec1681 - Merge pull request #66 from macadmins/bugfix/jamf-ea
  • 5bac290 - Merge pull request #65 from macadmins/bugfix/64-managed-profiles
  • 737331e - Change program from type array to type string
  • e53d1d4 - Merge pull request #67 from macadmins/bugfix/on-demand-privileged
  • c873097 - Updated build number to 4.2.1
  • 7c08827 - Merge pull request #68 from macadmins/v4.2.1
  • 3ff2fb4 - Fix DMG package installation bugs in installPackage
  • 8fadd59 - Fix network timeout being 10x shorter than configured value
  • 4c34ea6 - Fix privileged login trigger not firing when only one directory has content
  • 2d562c4 - Guard against empty array in computeChecksum
  • e67b621 - Fix log file permissions and remove force unwraps in Logging and Shell
  • 4ccab98 - Eliminate global mutable state; pass consoleUser explicitly (Option B)
  • 7068957 - Add OutsetTests target with 27 unit tests
  • 264c288 - Add UntestableFunctionality.swift documenting test coverage gaps
  • e7fcb6f - Integration testing
  • e889ca9 - Version bump
  • 24c852b - Updated file permissions for integrated tests
  • 044716c - Add background script execution support (closes #69)
  • 9f0bfb5 - Update changelog
  • 3307f2a - Fix managed profile payload processing bugs (closes #64)
  • e34ba8d - Add Ed25519 embedded script signing (closes #70)
  • 5a9bfde - Add --verify-script command to validate embedded Ed25519 signatures
  • 7536b34 - Enforce MDM-managed requirement for manifest_signing_key
  • c70f42e - Merge branch 'fix/payload-processing-64' into code_review
  • b1d3397 - Update build workflow to use macos-latest and dynamic Xcode path
  • f075c25 - Fix Info.plist version to match project.pbxproj (4.3.0)
  • f263f77 - Update CHANGELOG for 4.3.0
  • 8dbe841 - Remove stale DEVELOPMENT_TEAM SDK override from Outset Release config
  • e180c6b - Context-aware log path: root logs to /usr/local/outset/logs, user to ~/Library/Logs
  • 51e28b4 - Add managed profile payload processing fix to CHANGELOG (closes #64)
  • b04be4c - Merge pull request #73 from macadmins/code_review

Outset 4.2.0

05 Aug 00:35
c01bad2

Choose a tag to compare

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

🎉 Highlighted Features

🛠️ Fixes

  • LaunchAgents+LaunchDaemons - Program is using Array instead of String. Should fix #60
  • Fix the checksum all command so that the outset/logs folder is ignored #54
  • Fixed link to wiki FAQ in README.md.

🐞 Something not on this list? Please create an issue.

Contributors

@strlng, @HowardGMac, @rodchristiansen, @spacelatte, @bartreardon

Changes

  • 072f51e - ADD: JSON Schema for External Applications payload in Jamf Pro
  • 9539615 - FIX: Mismatched indentation
  • 89fc92c - Initial commit for 4.2.0 More code cleanup and re-arranging Added "on demand privileged" Added initial capability to run scripts contained as base64 bundles in a confir profile (currently nothing calls this)
  • 5296d50 - Update README.md
  • 7af77c1 - scripts as base64 encoded payloads TODO: - restrict to managed preferences - integrate with standard workflow including checks for run-once - remove debug code
  • dc01bf0 - Moved a bunch of stuff around to support running scripts from a preference plist This should now be working for all script types. Some work to do on properly procesing --add-override which currently prepends the login-once path which causes the override check to not match.
  • 8f80fe9 - Merge pull request #56 from strlng/patch-1
  • 4d91046 - Merge pull request #47 from VentionCo/jamfpro-jsonschema
  • e22ceb4 - Fix for issue #54
  • da95c68 - Merge pull request #58 from HowardGMac/dev_4.2.0
  • 90270b3 - update version number
  • ce6c46e - Merge remote-tracking branch 'refs/remotes/origin/dev_4.2.0'
  • acbea2d - Fixing Info.plist version so the github action works
  • 8c45f52 - Outset icon updated rocket graphic and as squircle
  • 121c163 - Merge pull request #61 from rodchristiansen/main
  • 9673efe - updating payload code for inclusion of scripts
  • 230c085 - Merge remote-tracking branch 'refs/remotes/origin/dev_4.2.0'
  • 73ae10e - Add logic to merge multiple script_payloads into one for processing. Add logic for add-override and remove-override to handle payload scripts with "payload=". The alternate is we don't assume loginOnce.directoryPath if no path is given. Discussion welcome
  • 78002de - Update payload logic to properly collect payload data from all defaults domains. Added logic to skip a payload if it's not from a managed domain and debug is not enabled.
  • 0e47d16 - Updated readme with new outset icon and cleaned up some of the text
  • 62125b1 - Update build_outset.zsh
  • ef7b4ad - Update build_outset_prerelease_manual.yml
  • 345ebc9 - update workflows for macOS 14
  • 650cfbc - update to v4 of upload-artifact
  • 0e4ff18 - Update build_outset.zsh
  • f9edb02 - Fix up processing for on-demand and on-demand-privileged tasks
  • 18689ed - fix typo for registering the on demand daemon (was agent instead of daemon)
  • 8626559 - update release build workflow
  • 4078398 - Added script to generate payload plists for use with MDM
  • d123560 - update project file referencing the new outset-payload script
  • 2af330b - Updated payloads to use data type instead of string
  • a1b1692 - fix(LaunchAgents+LaunchDaemons): Program is using Array instead of String
  • 497df79 - Merge pull request #63 from spacelatte/spacelatte/fix-program-array-to-string
  • 6499a45 - Update reference from outset-payload.sh to outset-payload
  • 6e0d605 - Update build_outset_prerelease_manual.yml
  • 5851ba9 - Update build_outset_release_manual.yml
  • c01bad2 - Merge pull request #62 from macadmins/dev_4.2.0

Outset 4.2.0.21964 RC 1

26 Jun 12:36

Choose a tag to compare

Pre-release

This is a release candidate for Outset 4.2.0. Please report any remaining bugs by creating a new issue

Updated information on the new script payloads feature can be found in the wiki along with the outset-payload helper script for generating payloads.

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

Changes

  • 072f51e - ADD: JSON Schema for External Applications payload in Jamf Pro
  • 9539615 - FIX: Mismatched indentation
  • 89fc92c - Initial commit for 4.2.0 More code cleanup and re-arranging Added "on demand privileged" Added initial capability to run scripts contained as base64 bundles in a confir profile (currently nothing calls this)
  • 5296d50 - Update README.md
  • 7af77c1 - scripts as base64 encoded payloads TODO: - restrict to managed preferences - integrate with standard workflow including checks for run-once - remove debug code
  • dc01bf0 - Moved a bunch of stuff around to support running scripts from a preference plist This should now be working for all script types. Some work to do on properly procesing --add-override which currently prepends the login-once path which causes the override check to not match.
  • 8f80fe9 - Merge pull request #56 from strlng/patch-1
  • 4d91046 - Merge pull request #47 from VentionCo/jamfpro-jsonschema
  • e22ceb4 - Fix for issue #54
  • da95c68 - Merge pull request #58 from HowardGMac/dev_4.2.0
  • 90270b3 - update version number
  • ce6c46e - Merge remote-tracking branch 'refs/remotes/origin/dev_4.2.0'
  • acbea2d - Fixing Info.plist version so the github action works
  • 8c45f52 - Outset icon updated rocket graphic and as squircle
  • 121c163 - Merge pull request #61 from rodchristiansen/main
  • 9673efe - updating payload code for inclusion of scripts
  • 230c085 - Merge remote-tracking branch 'refs/remotes/origin/dev_4.2.0'
  • 73ae10e - Add logic to merge multiple script_payloads into one for processing. Add logic for add-override and remove-override to handle payload scripts with "payload=". The alternate is we don't assume loginOnce.directoryPath if no path is given. Discussion welcome
  • 78002de - Update payload logic to properly collect payload data from all defaults domains. Added logic to skip a payload if it's not from a managed domain and debug is not enabled.
  • 0e47d16 - Updated readme with new outset icon and cleaned up some of the text
  • 345ebc9 - update workflows for macOS 14
  • 650cfbc - update to v4 of upload-artifact
  • 0e4ff18 - Update build_outset.zsh
  • f9edb02 - Fix up processing for on-demand and on-demand-privileged tasks
  • 18689ed - fix typo for registering the on demand daemon (was agent instead of daemon)
  • 8626559 - update release build workflow
  • 4078398 - Added script to generate payload plists for use with MDM
  • d123560 - update project file referencing the new outset-payload script

What's Changed

New Contributors

Full Changelog: main...dev_4.2.0

Outset 4.2.0.21970 RC2

01 Aug 02:22
ef7b4ad

Choose a tag to compare

Pre-release

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

Changelog (new since last preview release)

  • d123560 - update project file referencing the new outset-payload script
  • 2af330b - Updated payloads to use data type instead of string
  • a1b1692 - fix(LaunchAgents+LaunchDaemons): Program is using Array instead of String
  • 497df79 - Merge pull request #63 from spacelatte/spacelatte/fix-program-array-to-string
  • 6499a45 - Update reference from outset-payload.sh to outset-payload

Outset 4.2.0.21959

17 Apr 06:08
ef7b4ad

Choose a tag to compare

Outset 4.2.0.21959 Pre-release
Pre-release

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

New

Script Payloads

This release contains a feature for deploying scripts as MDM payloads. overrides and run-once are recorded as per usual

Setup:

encode your script as a base64 string: base64 -i /path/to/script.sh -w80

construct a payload in the following format:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>script_payloads[OPTIONAL_IDENTIFIER]</key>
        <dict>
                <key>ACTION_TYPE</key>
                <dict>
                        <key>SCRIPT_NAME</key>
                        <string>BASE64_ENCODED_DATA</string>
                </dict>
        </dict>
</dict>
</plist>

ACTION_TYPE can be one of the standard outset folder names, e.g. login-every, login-once etc. You can include multiple action types with additional <key><string> pairs per action.

SCRIPT_NAME can be any unique string. Set the users desktop picture is a valid script name. You can include multiple scripts per action type with additional <key><string> pairs per script.

BASE64_ENCODED_DATA is your base64 encoded script

The parent key by default is <key>script_payloads</key>. Outset will look for this key and process the contents. This key must be unique if deploying multiple profiles so to support this you can add an optional identifier, e.g. <key>script_payloads-VIP_Users</key>. You can deploy multiple profiles to a dingle device and Outset will combine them together for processing.

By default, Outset will only process managed payload scripts (i.e. delivered via MDM). For testing with local profiles in /Library/Preferences/, run outset with the --debug flag

To create an override for a payload delivered script run /usr/local/outset/outset --add-override payload="Script Name"

More detailed documentation will be available in the wiki in the near future.

Changelog

Changes

  • 072f51e - ADD: JSON Schema for External Applications payload in Jamf Pro
  • 9539615 - FIX: Mismatched indentation
  • 89fc92c - Initial commit for 4.2.0 More code cleanup and re-arranging Added "on demand privileged" Added initial capability to run scripts contained as base64 bundles in a confir profile (currently nothing calls this)
  • 5296d50 - Update README.md
  • 7af77c1 - scripts as base64 encoded payloads TODO: - restrict to managed preferences - integrate with standard workflow including checks for run-once - remove debug code
  • dc01bf0 - Moved a bunch of stuff around to support running scripts from a preference plist This should now be working for all script types. Some work to do on properly procesing --add-override which currently prepends the login-once path which causes the override check to not match.
  • 8f80fe9 - Merge pull request #56 from strlng/patch-1
  • 4d91046 - Merge pull request #47 from VentionCo/jamfpro-jsonschema
  • e22ceb4 - Fix for issue #54
  • da95c68 - Merge pull request #58 from HowardGMac/dev_4.2.0
  • 90270b3 - update version number
  • ce6c46e - Merge remote-tracking branch 'refs/remotes/origin/dev_4.2.0'
  • acbea2d - Fixing Info.plist version so the github action works
  • 8c45f52 - Outset icon updated rocket graphic and as squircle
  • 121c163 - Merge pull request #61 from rodchristiansen/main
  • 9673efe - updating payload code for inclusion of scripts
  • 230c085 - Merge remote-tracking branch 'refs/remotes/origin/dev_4.2.0'
  • 73ae10e - Add logic to merge multiple script_payloads into one for processing. Add logic for add-override and remove-override to handle payload scripts with "payload=". The alternate is we don't assume loginOnce.directoryPath if no path is given. Discussion welcome
  • 78002de - Update payload logic to properly collect payload data from all defaults domains. Added logic to skip a payload if it's not from a managed domain and debug is not enabled.
  • 0e47d16 - Updated readme with new outset icon and cleaned up some of the text
  • 345ebc9 - update workflows for macOS 14
  • 650cfbc - update to v4 of upload-artifact
  • 0e4ff18 - Update build_outset.zsh

Outset 4.2.0.21949

19 Nov 06:11
e1b64f1

Choose a tag to compare

Outset 4.2.0.21949 Pre-release
Pre-release

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

Changelog

Changes

  • 072f51e - ADD: JSON Schema for External Applications payload in Jamf Pro
  • 9539615 - FIX: Mismatched indentation
  • 89fc92c - Initial commit for 4.2.0 More code cleanup and re-arranging Added "on demand privileged" Added initial capability to run scripts contained as base64 bundles in a confir profile (currently nothing calls this)
  • 5296d50 - Update README.md
  • 7af77c1 - scripts as base64 encoded payloads TODO: - restrict to managed preferences - integrate with standard workflow including checks for run-once - remove debug code
  • dc01bf0 - Moved a bunch of stuff around to support running scripts from a preference plist This should now be working for all script types. Some work to do on properly procesing --add-override which currently prepends the login-once path which causes the override check to not match.
  • 8f80fe9 - Merge pull request #56 from strlng/patch-1
  • 4d91046 - Merge pull request #47 from VentionCo/jamfpro-jsonschema
  • e22ceb4 - Fix for issue #54
  • da95c68 - Merge pull request #58 from HowardGMac/dev_4.2.0
  • 90270b3 - update version number
  • ce6c46e - Merge remote-tracking branch 'refs/remotes/origin/dev_4.2.0'
  • acbea2d - Fixing Info.plist version so the github action works

Outset 4.1.2.21936

18 Apr 04:25
e1b64f1

Choose a tag to compare

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

Changelog

  • Fixed issue where overrides were not being added correctly #41
  • Fixed an issue where cleanup trigger was potentially being run in a context that didn't have permissions to clean up the files.
  • Some processing logs changes from .debug to .info so they always appear in the log without requiring debug to be enabled
  • Attempt to address conditions where overrides from Outset 3 do not get migrated to /Library/Preferences #50
  • Improvements to outset-pkg #35
  • Added extension attribute script for Jamf Pro to indicate outset agent health

Legacy Outset:

  • remove distutils/profiles, bump to 3.0.4 #52

Changes

  • cca4e2e - Update Outset.swift
  • 75f5645 - ADD: Service status extension attribute for Jamf Pro
  • a1d0aa0 - Merge pull request #42 from HowardGMac/fix41
  • 97446de - REF: simplify possible values for reporting to the extension attribute
  • 2ecc76f - Merge pull request #48 from seanchristians-vention/jamfpro-ea
  • 71bd8fe - Update outset-pkg with some additional features
  • f953005 - fixes an issue where cleanup trigger was potentially being run in a context that didn't have permissions to clean up the files.
  • 27f9f16 - fixes #44 all log content is sent to the log file now
  • 1c38f94 - Addresses #49 "Processing" type messages are sent as info instead of debug.
  • 8b91181 - Should address #50
  • 84ed18f - version number
  • ca069c9 - FIX: Expected behaviour when no user is logged in
  • cba46a8 - Merge pull request #51 from VentionCo/jamfpro-ea
  • ee29f32 - remove distutils/profiles, bump
  • bd56546 - Merge pull request #52 from arubdesu/py3.12bugfix
  • f3f7926 - reverting 27f9f16
  • 45d9bfc - Merge remote-tracking branch 'refs/remotes/origin/dev_4.1.2'
  • e1b64f1 - Merge pull request #53 from macadmins/dev_4.1.2

Outset 4.1.2.21935

09 Apr 10:39
457c116

Choose a tag to compare

Outset 4.1.2.21935 Pre-release
Pre-release

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

Changelog

Changes

  • cca4e2e - Update Outset.swift
  • 75f5645 - ADD: Service status extension attribute for Jamf Pro
  • a1d0aa0 - Merge pull request #42 from HowardGMac/fix41
  • 97446de - REF: simplify possible values for reporting to the extension attribute
  • 2ecc76f - Merge pull request #48 from seanchristians-vention/jamfpro-ea
  • 71bd8fe - Update outset-pkg with some additional features
  • f953005 - fixes an issue where cleanup trigger was potentially being run in a context that didn't have permissions to clean up the files.
  • 27f9f16 - fixes #44 all log content is sent to the log file now
  • 1c38f94 - Addresses #49 "Processing" type messages are sent as info instead of debug.
  • 8b91181 - Should address #50
  • 84ed18f - version number
  • ca069c9 - FIX: Expected behaviour when no user is logged in
  • cba46a8 - Merge pull request #51 from VentionCo/jamfpro-ea
  • ee29f32 - remove distutils/profiles, bump
  • bd56546 - Merge pull request #52 from arubdesu/py3.12bugfix
  • f3f7926 - reverting 27f9f16
  • 45d9bfc - Merge remote-tracking branch 'refs/remotes/origin/dev_4.1.2'

Outset 4.1.2.21929

27 Mar 08:33
457c116

Choose a tag to compare

Outset 4.1.2.21929 Pre-release
Pre-release

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

Changelog

Changes

  • cca4e2e - Update Outset.swift
  • 75f5645 - ADD: Service status extension attribute for Jamf Pro
  • a1d0aa0 - Merge pull request #42 from HowardGMac/fix41
  • 97446de - REF: simplify possible values for reporting to the extension attribute
  • 2ecc76f - Merge pull request #48 from seanchristians-vention/jamfpro-ea
  • 71bd8fe - Update outset-pkg with some additional features
  • f953005 - fixes an issue where cleanup trigger was potentially being run in a context that didn't have permissions to clean up the files.
  • 27f9f16 - fixes #44 all log content is sent to the log file now
  • 1c38f94 - Addresses #49 "Processing" type messages are sent as info instead of debug.
  • 8b91181 - Should address #50
  • 84ed18f - version number

Outset 4.1.1.21918

26 Oct 11:50
457c116

Choose a tag to compare

Notes

This is a version of Outset created by GitHub Actions.
Outset.app has been signed and notarized. The package has been signed, notarized and stapled.

Changelog

Changes

  • e1d49b5 - Updated README.md with current info. Also moved some content around and linked classic outset to the copy contained in this repo
  • 403a949 - Removed some typos
  • 9ebcd3b - Fix issue where on-demand cleanup wasn't happening. Added cleanup of the cleanup trigger to the cleanup logic (yo dawg) Also tidied up some of the SwiftLint stuff and moved disabled rules to the .swiftlint.yml file
  • ef84e94 - ugh, git cleanup - should be in line with main now
  • e5197fa - use marketing version instead of static version in info.plist
  • 140167e - ugh
  • 101dab3 - keeping the linter happy
  • 1cdcbbc - Moved things around so relevant components are easier to locate Some minor function renaming
  • e3cd80a - Folder re-name bumped version to 4.1.0
  • f03950b - update logging and output routines so error and debug are sent to stderr instead of stdout
  • 70bdfcd - Added log rotate function - crude for now, should probably look at https://github.com/apple/swift-log package
  • bcf8537 - moved some log variables around
  • ac1c801 - Merge pull request #37 from macadmins/dev_4.1.0
  • 9b6168a - Fixes #38
  • 74f0bdc - ensure spelling is consistent
  • feb75cc - Fix postinstall items
  • 532e629 - Merge pull request #40 from macadmins/hotfix-override
  • 457c116 - Merge pull request #39 from WardsParadox/main