dan-snelson
Valued Contributor II

Easily allowing your end-users to opt-in or opt-out of your internal beta program is the first step to building your user-base of “trusted testers.”

Let's take a closer look at how we implemented this via Self Service, and how we utilized the combination of an Extension Attribute and Inventory Update to populate our testing group, rather than the Jamf Pro API.

This type of workflow can be used for implementing your own beta test group, or it can be used in conjunction with other workflows where you want users to self-report.

This workflow was originally posted to my personal blog, which you can find by following this link.

Additionally, I've documented some related workflows and spoken about our beta test program at JNUC. Feel free to take a look at the links below if you would like to learn more:
Dan K. Snelson Blog - Your Internal Beta Test Program: Opt-in / Opt-out via Self Service (sans Jamf ... 
Dan K. Snelson Blog - Invitation Only Betas 
JNUC 2019 - Your Internal Beta Test Program: Opt-in, Opt-out via Self Service (API) 
JNUC 2022 - Your Internal Beta Test Program '22: Invitation-Only Betas 

Easily allow your users to opt-in / opt-out of your internal beta test program via Jamf Pro’s Self Service.

Screen-Shot-2022-10-01-at-11.27.47-AM.png

Background

After watching the JNUC 2022 Invitation-only Betas presentation, @slippery asked for “the ‘new’ EA read method” for opting-in / opting-out via Self Service.

Hopefully the following will prove helpful.

Configuration

Complete the following configuration steps in your Jamf Pro server:

  1. Extension Attribute
  2. Smart Groups
  3. Scripts
  4. Policies

Extension Attribute

Testing Level Plist

Screen-Shot-2022-10-01-at-9.00.18-AM.png

  1. Download the Testing-Level-Plist.xml
  2. Upload the downloaded Computer Extension Attribute
  3. Modify filepath to match the Reverse Domain Name Notation for your organization (i.e., org.churchofjesuschrist)
  4. Click Save

Smart Groups

The following Smart Group examples include criteria for both the API and the non-API methods; feel free to use one or both.

Testing: None

Screen-Shot-2022-10-01-at-9.18.24-AM.png

Screen Shot 2022-10-25 at 1.47.13 PM.png

Testing: Gamma Group

Screen-Shot-2022-10-01-at-9.10.19-AM.png

Screen Shot 2022-10-25 at 1.54.14 PM.png

Scripts

Property List Writer

Property-List-Writer.png

  1. Download Property-List-Writer.sh
  2. Add the downloaded Script to Jamf Pro
  3. Modify filepath to match the Reverse Domain Name Notation for your organization (i.e., org.churchofjesuschrist)
  4. Click the Options tab and configure the Parameter Labels as follows:
    • Parameter 4: Key (i.e., Name of the "key" for which the value will be set)
    • Parameter 5: Value (i.e., The value to which "key" will be set)
  5. Click Save

Display Message via swiftDialog

Display_Message_Dialog_Script.png

  1. Download Display-Message-via-Dialog.bash
  2. Add the downloaded Script to Jamf Pro
  3. Modify the Parameter Labels
  4. Click Save

Policies

Screen-Shot-2022-10-01-at-9.25.17-AM.png

Opt-in Beta Test Program (sans API)

Options

Expand

General

  • Display Name: Opt-in Beta Test Program (sans API)
  • Execution Frequency: Ongoing

Scripts

Display-Message-via-Dialog.bash
Property-List-Writer.sh
  • Key: Testing Level
  • Value: Gamma

Maintenance

  • Update Inventory

Files and Processes

Execute Command: /usr/bin/su - "/usr/bin/stat -f%Su /dev/console" -c "/usr/bin/osascript -e 'tell application \"Self Service\" to activate' -e 'tell application \"System Events\" to key code 53' -e 'tell application \"System Events\" to keystroke \"r\" using {command down}'"

Scope

Expand
  • Target: All Jamf Pro Compliant Computers
  • Limitations: None
  • Exclusions:
    • Testing: Alpha Group
    • Testing: Beta Group
    • Testing: Gamma Group

Self Service 

Expand
  • Self Service Display Name: Opt-in Beta Test Program (sans API)
  • Button Name Before Initiation: Opt-in
  • Button Name After Initiation: Opt-in
  • Description: **First, thank you for being an opt-in macOS Beta Tester.** We could not complete a critical part of our jobs without you. \n\nOpt-in Beta Testers help secure the Church Workforce who prefer macOS.

Opt-out Beta Test Program (sans API)

Options

Expand

General

  • Display Name: Opt-out Beta Test Program (sans API)
  • Execution Frequency: Ongoing

Scripts

Property-List-Writer.sh
  • Key: Testing Level
  • Value: None

Maintenance

  • Update Inventory

Files and Processes

  • Execute Command: /System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil unenroll ; /usr/sbin/pkgutil --forget com.apple.pkg.macOSCustomerBetaAccessUtility.16U2035 ; /usr/bin/su - "/usr/bin/stat -f%Su /dev/console" -c "/usr/bin/osascript -e 'tell application \"Self Service\" to activate' -e 'tell application \"System Events\" to key code 53' -e 'tell application \"System Events\" to keystroke \"r\" using {command down}'"

Scope

Expand
  • Target:
    • Testing: Alpha Group
    • Testing: Beta Group
    • Testing: Gamma Group
  • Limitations: None
  • Exclusions: None

Self Service 

Expand
  • Self Service Display Name: Opt-out Beta Test Program (sans API)
  • Button Name Before Initiation: Opt-out
  • Button Name After Initiation: Opt-out
  • Description: We're sorry to see you go. Click **Opt-out** to remove _this computer_ from the beta testing program. (You can opt-in again at any time.)

 

1 Comment