- 
                Notifications
    
You must be signed in to change notification settings  - Fork 0
 
Edit User Profile
The Edit User Profile tool facilitates user input for a range of account and device details based on the information available in Jamf Pro. This tool simplifies the configuration process by presenting users with a dialog box to make their selections.
Users can supply:
- User Name
 - Full Name
 - E‑Mail
 - Computer Name
 - Asset Tag
 - Room
 - Position
 - Building
 - Department
 
All inputs are collected via a single dialog and then updated in Jamf Pro.
To launch the tool and prompt for all fields, including support‑team name and custom window sizing:
sudo rocketman EditUserProfile \
--clientId "..." \
--clientSecret "..." \
--requiredFields username email \
--enableFields username fullname email room position building department computername assettagThis command will:
- Retrieve available buildings and/or departments from Jamf Pro using the provided API credentials.
 - Display a dialog box prompting the user for all fields.
 - Define a description.
 - Clear out the title field so the default banner can stand by itself.
 - Update the user's information in Jamf Pro.
 
Specifies a space-separated list of fields that will be shown in the dialog.
- 
Type: string (space-separated)
 - 
Required: Yes
 - 
Options:
username,fullname,email,room,position,building,department,site,computername,assettag - 
Example:
--enableFields assettag department
 
Note: If building, department, or site is enabled, it will get all the available Buildings, Departments, or Sites (respectively) and display them to the user as a dropdown.
Specifies the Client ID for Jamf API authentication. Required if building, department, site, or assettag is defined for --enableFields. It is recommended to Encrypt these credentials using RCC's Encrypt tool.
- Type: string
 - 
Permissions: Create a New API Role with the following permissions:
- Read Buildings (If 
buildingis selected for--enabledFields) - Read Departments (If 
departmentare selected for--enabledFields) - Read Sites (If 
siteare selected for--enabledFields) - Read Computers (If 
assettagis selected for--enabledFields, or ifextensionAttributeis configured) - Update Computers (If 
assettagis selected for--enabledFields, or ifextensionAttributeis configured) - Read Extension Attributes (If 
extensionAttributeis configured) 
 - Read Buildings (If 
 - 
Example:
--clientId "myclientId" OR --clientId "ENC:myencryptedclientid"
 
Specifies the Client Secret for Jamf API authentication. Required if building, department, site, or assettag is defined for --enableFields. It is highly recommended to Encrypt these credentials using RCC's Encrypt tool.
- Type: string
 - 
Permissions: Create a New API Role with the following permissions:
- Read Buildings (If 
buildingis selected for--enabledFields) - Read Departments (If 
departmentare selected for--enabledFields) - Read Sites (If 
siteare selected for--enabledFields) - Read Computers (If 
assettagis selected for--enabledFields, or ifextensionAttributeis configured) - Update Computers (If 
assettagis selected for--enabledFields, or ifextensionAttributeis configured) - Read Extension Attributes (If 
extensionAttributeis configured) 
 - Read Buildings (If 
 - 
Example:
--clientSecret "myclientSecret" OR --clientSecret "ENC:myencryptedclientsecret"
 
Defines the domain for options set in local or managed plists.
- Type: string
 - 
Default: 
tech.rocketman.edituserprofile - 
Example:
--domain "custom.domain.selectTool" 
Specifies a space-separated list of fields that the user must complete before continuing.
- 
Type: string (space-separated)
 - 
Required: No
 - 
Options:
username,fullname,email,room,position,building,department,site,computername,assettag - 
Example:
--requiredFields username fullname email
 
Provides a default phone number to pre-populate the Phone field and to be referenced in your custom text via the %= variables.
- Type: string
 - Required: No
 - 
Example:
--phone "+1-555-123-4567" 
- 
Usage in templates: you can reference this value in
--description(or title, etc.) using the placeholder%=PHONE%.--description "Need help? Call us at %=PHONE%." 
Provides a default email address to pre-populate the E-Mail field and to be referenced in your custom text via the %= variables.
- 
Type: string
 - 
Required: No
 - 
Example:
--email "[email protected]" - 
Usage in templates: you can reference this value in
--description(or title, etc.) using the placeholder%=EMAIL%.--description "Questions? Email us at %=EMAIL%." 
Specifies the file path to a logo to display in the dialog.
- Type: string
 - Default: None
 - 
Example:
--logo /path/to/logo.png
 
Specifies the file path to an image to display in the header
- Type: string
 - Required: No
 - 
Example:
--backgroundImage "/path/to/background.png" 
Specifies the name of the support team for use in the default description template (see defaults for --description).
- 
Type: string
 - 
Required: No (only needed if you rely on the default
--description) - 
Example:
--supportTeamName "IT Support" 
Sets the title of the dialog window. If omitted, defaults to:
Happy %=WEEKDAY%!, %=LOCALUSERNAME%! 
Welcome to your new %=MODEL%
- 
Type: string
 - 
Default: the template shown above. (requires
--clientIdand --clientSecret to populate%=MODEL%if--titleis omitted) - 
Example:
--title "Welcome to your new %=MODEL%!" 
Defines the description text displayed in the dialog. If omitted, defaults to:
Please enter the **required** (\*) information for your %=MODEL%, then click
**Continue** to start applying settings to your new Mac.
If you need assistance, please contact the **%=SUPPORTTEAM%**.
- 
Type: string
 - 
Default: the template shown above (requires
--supportTeamNameto populate%=SUPPORTTEAM%if--descriptionis omitted) - 
Example:
--description "Please fill out the form below in order for IT to provide you with the applications and configurations you need.\n\nIf you need help, contact your hiring manager." 
Specifies the width of the dialog box.
- Type: string
 - 
Default: 
750 - 
Example:
--width 800
 
Specifies the height of the dialog box.
- Type: string
 - 
Default: 
720 - 
Example:
--height 500
 
Enables simulation mode, which prevents sending updates to Jamf Pro.
- Type: flag
 - Default: False
 - 
Example:
--simulate
 
The Jamf Pro API Roles and Clients used with Edit User Profile must have the following permissions to ensure proper functionality:
- 
Read Buildings (If 
buildingis selected for--enabledFields) - 
Read Departments (If 
departmentare selected for--enabledFields) - 
Read Sites (If 
siteare selected for--enabledFields) - 
Read Computers (If 
assettagis selected for--enabledFields, or ifextensionAttributeis configured) - 
Update Computers (If 
assettagis selected for--enabledFields, or ifextensionAttributeis configured) - 
Read Extension Attributes (If 
extensionAttributeis configured) 
Ensure that these permissions are assigned to your API client configuration in Jamf Pro prior to executing the tool.
To create a fully customized dialog box for building and department selection, including logo and window size adjustments:
sudo rocketman EditUserProfile \
--clientId "..." \
--clientSecret "..." \
--log debug
--requiredFields username fullname email building department \
--enableFields assettag \
--phone "+1-555-123-4567" \
--email "[email protected]" \
--supportTeamName "IT Support" \
--description "Welcome aboard! Please complete the **required** fields below to help us set up your account and hardware.\n\nIf you encounter any issues, reach out to the IT Support team.\n\nPhone: %=PHONE%\n\nEmail: %=EMAIL%" \
--title "🚀 Rocketman Tech Profile Setup"- 
Simulation Mode: Use 
--simulatefor testing the dialog configuration without affecting Jamf Pro data. 
{
  "title": "Edit User Profile (tech.rocketman.edituserprofile)",
  "description": "The Edit User Profile tool facilitates user input for a range of account and device details based on the information available in Jamf Pro. This tool simplifies the configuration process by presenting users with a dialog box to make their selections.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "clientId": {
      "title": "Client ID",
      "description": "Specifies the Client ID for Jamf API authentication. Required if building, department, site, or assettag is defined for --enableFields. It is recommended to Encrypt these credentials using RCC's Encrypt tool.",
      "property_order": 1,
      "type": "string"
    },
    "clientSecret": {
      "title": "Client Secret",
      "description": "Specifies the Client Secret for Jamf API authentication. Required if building, department, site, or assettag is defined for --enableFields. It is highly recommended to Encrypt these credentials using RCC's Encrypt tool.",
      "property_order": 2,
      "type": "string"
    },
    "enableFields": {
      "title": "Visible Fields",
      "description": "Fields to show in the dialog. Any not listed will be hidden. If building, department, or site is enabled, it will get all the available Buildings, Departments, or Sites (respectively) and display them to the user as a dropdown.",
      "property_order": 3,
      "type": "array",
      "items": {
        "type": "string",
        "title": "Visible Field",
        "enum": [
          "username",
          "fullname",
          "email",
          "room",
          "position",
          "building",
          "department",
          "site",
          "computername",
          "assettag"
        ]
      }
    },
    "requiredFields": {
      "title": "Required Fields",
      "description": "Fields that must be completed by the user before continuing.",
      "property_order": 4,
      "type": "array",
      "items": {
        "type": "string",
        "title": "Required Field",
        "enum": [
          "username",
          "fullname",
          "email",
          "room",
          "position",
          "building",
          "department",
          "site",
          "computername",
          "assettag"
        ]
      }
    },
    "extensionAttribute": {
      "title": "Extension Attributes (Custom Fields)",
      "description": "Defines Extension Attribute input fields to collect and send to Jamf Pro. Each entry must follow: \"name:<DisplayName>,id:<ExtensionAttributeID>[,required:<true|false>]\". Example: \"name:Employee ID,id:42,required:true\".",
      "property_order": 5,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^name:[^,]+,id:[0-9]+(,required:(true|false))?$",
        "title": "Custom Field",
        "default": "name:Display Name,id:00,required:true"
      }
    },
    "title": {
      "title": "Dialog Title",
      "description": "Custom Title to display in the Header. Variables supported: %=WEEKDAY%, %=LOCALUSERNAME%, %=MODEL%.",
      "property_order": 9,
      "type": "string",
      "default": "Happy %=WEEKDAY%, %=LOCALUSERNAME%!"
    },
    "subtitle": {
      "title": "Dialog Subtitle",
      "description": "Optional subtitle displayed under the title banner. Variables supported: %=WEEKDAY%, %=LOCALUSERNAME%, %=MODEL%.",
      "property_order": 10,
      "type": "string",
      "default": "Welcome to your new %=MODEL%."
    },
    "description": {
      "title": "Dialog Description",
      "description": "Markdown-supported body text. Default: \"Please enter the **required** (*) information for your %=MODEL%, then click **Continue** to start applying settings to your new Mac.\\n\\nIf you need assistance, please contact the **%=SUPPORTTEAM%**.\"",
      "property_order": 11,
      "default": "Please enter the **required** (*) information for your %=MODEL%, then click **Continue** to start applying settings to your new Mac.\\n\\nIf you need assistance, please contact the IT Service Desk",
      "type": "string"
    },
    "logo": {
      "title": "Logo Path",
      "description": "Path to a logo file to display in the dialog (e.g., /path/to/logo.png).",
      "property_order": 12,
      "default": "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.imac-unibody-27.icns",
      "type": "string"
    },
    "backgroundImage": {
      "title": "Header Background Image",
      "description": "Path to an image shown in the header (e.g., /path/to/background.png).",
      "property_order": 13,
      "type": "string"
    },
    "headerBackgroundColor": {
      "title": "Header Background Color",
      "description": "Hex color for header background (e.g., #f0f0f0).",
      "property_order": 14,
      "default": "#ffffff",
      "type": "string"
    },
    "headerTextColor": {
      "title": "Header Text Color",
      "description": "Hex color for header text (e.g., #333333).",
      "property_order": 15,
      "default": "#000000",
      "type": "string"
    },
    "width": {
      "title": "Window Width",
      "description": "Dialog width in pixels (string). Default 750.",
      "property_order": 16,
      "type": "string",
      "default": "750",
      "pattern": "^[0-9]{2,4}$"
    },
    "height": {
      "title": "Window Height",
      "description": "Dialog height in pixels (string). Default 720.",
      "property_order": 17,
      "type": "string",
      "default": "720",
      "pattern": "^[0-9]{2,4}$"
    }
  },
  "required": [
    "enableFields"
  ]
}- 
Encrypt
Encrypt any string. - 
App Setup Helper
Enables Screen Recording for apps. - 
Break Glass Admin
Manages emergency admin accounts. - 
Edit User Profile
Updates building and department info. - 
FileVault Token Revoker
Removes FileVault tokens. - 
Get Backdoor Admin Password From Keychain
Retrieves backdoor admin passwords. - 
List All FileVault Enabled Users
Lists FileVault-enabled users. - 
Rapid Response
Triggers scripts immediately. - 
Rename Computer
Renames Macs via Jamf. - 
Reset Jamf Connect Login Screen
Switches to macOS login. - 
Secure Token Sharing Tool
Grants secure tokens. - 
Self Service Email
Creates pre-filled emails. - 
Temporary Admin
Grants temporary admin rights. - 
Update User Info
Syncs user data with Jamf. - 
Upload Jamf Logs
Uploads log files to Jamf. - 
User Privilege Management
Adjusts user roles. - 
Change Static Group Membership
Change Static Group Membership - 
Fetch Database
Fetch Database