When trying to use jamf-upload to upload a .mobileconfig file with the preference domain com.apple.mobiledevice.passwordpolicy, Jamf returns an error: Conflict Unable to update the database.
I'm trying to upload .mobileconfigs from the macOS Security Compliance Project. The others work fine, but this specific preference domain triggers this error, even with an absolutely minimal .mobileconfig profile.
Resources to reproduce this are in this gist, as well as some information about what profiles look like when uploaded via Jamf Compliance Editor (which does work).
The output of running the recipe with -vvvv is as follows:
Processing local.jamf.SonomaCISConfigProfile...
{'APP_CATEGORY': 'Compliance',
'AUTOPKG_VERSION': '2.7.2',
'CLIENT_ID': 'SNIP',
'CLIENT_SECRET': 'SNIP',
'JSS_URL': 'https://SNIP.jamfcloud.com',
'MUNKI_REPO': '/Users/Shared/munki-repo',
'PARENT_RECIPES': ['/Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes/CIS_Compliance/SonomaCISConfigProfile.jamf.recipe.yaml'],
'PROFILE_DOMAIN': 'com.apple.mobiledevice.passwordpolicy',
'PROFILE_NAME': 'CIS - Sonoma - com.apple.mobiledevice.passwordpolicy',
'PROFILE_PATH': '/Users/Shared/sonoma/mobileconfigs/unsigned/com.apple.mobiledevice.passwordpolicy.mobileconfig',
'RECIPE_CACHE_DIR': '/Users/jacob.burley/Library/AutoPkg/Cache/local.jamf.SonomaCISConfigProfile',
'RECIPE_DIR': '/Users/jacob.burley/Library/AutoPkg/RecipeOverrides',
'RECIPE_OVERRIDE_DIRS': ['~/Library/AutoPkg/RecipeOverrides/'],
'RECIPE_PATH': '/Users/jacob.burley/Library/AutoPkg/RecipeOverrides/SonomaCISConfigProfile.jamf.recipe.yaml',
'RECIPE_REPOS': {'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.dataJAR-recipes': {'URL': 'https://github.com/autopkg/dataJAR-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.eholtam-recipes': {'URL': 'https://github.com/autopkg/eholtam-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.erikng-recipes': {'URL': 'https://github.com/autopkg/erikng-recipes'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.faumac-recipes': {'URL': 'https://github.com/autopkg/faumac-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.foigus-recipes': {'URL': 'https://github.com/autopkg/foigus-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.gerardkok-recipes': {'URL': 'https://github.com/autopkg/gerardkok-recipes'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes': {'URL': 'https://github.com/autopkg/grahampugh-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.haircut-recipes': {'URL': 'https://github.com/autopkg/haircut-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.hansen-m-recipes': {'URL': 'https://github.com/autopkg/hansen-m-recipes'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.hjuutilainen-recipes': {'URL': 'https://github.com/autopkg/hjuutilainen-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.homebysix-recipes': {'URL': 'https://github.com/autopkg/homebysix-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.jazzace-recipes': {'URL': 'https://github.com/autopkg/jazzace-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.jessepeterson-recipes': {'URL': 'https://github.com/autopkg/jessepeterson-recipes'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.jleggat-recipes': {'URL': 'https://github.com/autopkg/jleggat-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.kevinmcox-recipes': {'URL': 'https://github.com/autopkg/kevinmcox-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.killahquam-recipes': {'URL': 'https://github.com/autopkg/killahquam-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.mikestechshop-recipes': {'URL': 'https://github.com/autopkg/mikestechshop-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.mlbz521-recipes': {'URL': 'https://github.com/autopkg/mlbz521-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.moofit-recipes': {'URL': 'https://github.com/autopkg/moofit-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.nstrauss-recipes': {'URL': 'https://github.com/autopkg/nstrauss-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.orchard-recipes': {'URL': 'https://github.com/autopkg/orchard-recipes'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.paul-cossey-recipes': {'URL': 'https://github.com/autopkg/paul-cossey-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.peshay-recipes': {'URL': 'https://github.com/autopkg/peshay-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.psaintemarie-recipes': {'URL': 'https://github.com/autopkg/psaintemarie-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes': {'URL': 'https://github.com/autopkg/recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.rtrouton-recipes': {'URL': 'https://github.com/autopkg/rtrouton-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.smithjw-recipes': {'URL': 'https://github.com/autopkg/smithjw-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.timsutton-recipes': {'URL': 'https://github.com/autopkg/timsutton-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.valdore86-recipes': {'URL': 'https://github.com/autopkg/valdore86-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.wardsparadox-recipes': {'URL': 'https://github.com/autopkg/wardsparadox-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.wegotoeleven-recipes': {'URL': 'https://github.com/autopkg/wegotoeleven-recipes.git'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.zentral-recipes': {'URL': 'https://github.com/autopkg/zentral-recipes'},
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes': {'URL': 'ssh://git@some.internal.repo/some/path/autopkg-recipes.git'}},
'RECIPE_SEARCH_DIRS': ['.',
'~/Library/AutoPkg/Recipes',
'/Library/AutoPkg/Recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.dataJAR-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.eholtam-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.erikng-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.faumac-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.foigus-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.gerardkok-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.haircut-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.hansen-m-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.hjuutilainen-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.homebysix-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.jazzace-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.jessepeterson-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.jleggat-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.kevinmcox-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.killahquam-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.mlbz521-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.moofit-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.nstrauss-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.paul-cossey-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.peshay-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.psaintemarie-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.rtrouton-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.smithjw-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.timsutton-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.valdore86-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.wardsparadox-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.wegotoeleven-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.zentral-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.mikestechshop-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.orchard-recipes',
'/Users/jacob.burley/Library/AutoPkg/RecipeOverrides'],
'REPLACE_OBJECTS': 'True',
'SONOMA_GROUP_NAME': 'macOS Major Version - 14 (Sonoma)',
'verbose': 4}
com.github.haircut.processors/DatetimeOutputter
{'Input': {}}
{'Output': {'datetime': '2024-04-09T11:23:15.025968'}}
StopProcessingIf
{'Input': {'predicate': 'PROFILE_DOMAIN == ""'}}
StopProcessingIf: (PROFILE_DOMAIN == "") is False
{'Output': {}}
StopProcessingIf
{'Input': {'predicate': 'PROFILE_PATH == ""'}}
StopProcessingIf: (PROFILE_PATH == "") is False
{'Output': {}}
com.github.grahampugh.jamf-upload.processors/JamfCategoryUploader
{'Input': {'CLIENT_ID': 'SNIP',
'CLIENT_SECRET': 'SNIP',
'JSS_URL': 'https://SNIP.jamfcloud.com',
'category_name': 'Compliance'}}
JamfCategoryUploader: No value supplied for category_priority, setting default value of: 10
JamfCategoryUploader: No value supplied for replace_category, setting default value of: False
JamfCategoryUploader: No value supplied for sleep, setting default value of: 0
JamfCategoryUploader: Checking for existing authentication token
JamfCategoryUploader: No existing valid token found
JamfCategoryUploader: Getting an authentication token using OAuth
JamfCategoryUploader: Output file is: /tmp/jamf_upload_x6n_8huc/jamf_upload_96hx9hif.txt
JamfCategoryUploader: No existing cookie found - starting new session
JamfCategoryUploader: curl command: /usr/bin/curl --dump-header /tmp/jamf_upload_x6n_8huc/curl_headers_from_jamf_upload.txt https://SNIP.jamfcloud.com/api/oauth/token --request POST --silent --show-error --header Content-Type: application/x-www-form-urlencoded --output /tmp/jamf_upload_x6n_8huc/jamf_upload_96hx9hif.txt --cookie-jar /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --data-urlencode client_id=SNIP --data-urlencode grant_type=client_credentials --data-urlencode client_secret=SNIP
JamfCategoryUploader: Session token received
JamfCategoryUploader: Token: SNIP
JamfCategoryUploader: Expires: 2024-04-09T09:24:14.520663Z
JamfCategoryUploader: Checking for existing 'Compliance' on https://SNIP.jamfcloud.com
JamfCategoryUploader: Output file is: /tmp/jamf_upload_x6n_8huc/jamf_upload_me3sr8op.txt
JamfCategoryUploader: curl command: /usr/bin/curl --dump-header /tmp/jamf_upload_x6n_8huc/curl_headers_from_jamf_upload.txt https://SNIP.jamfcloud.com/uapi/v1/categories?page=0&page-size=1000&sort=id&filter=name%3D%3D%22Compliance%22 --request GET --silent --show-error --header authorization: Bearer SNIP --header Accept: application/json --output /tmp/jamf_upload_x6n_8huc/jamf_upload_me3sr8op.txt --cookie-jar /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt
JamfCategoryUploader: ID: 70 NAME: Compliance
JamfCategoryUploader: Category 'Compliance' already exists: ID 70
JamfCategoryUploader: Not replacing existing category. Use replace_category='True' to enforce.
{'Output': {}}
com.github.grahampugh.jamf-upload.processors/JamfComputerGroupUploader
{'Input': {'CLIENT_ID': 'SNIP',
'CLIENT_SECRET': 'SNIP',
'JSS_URL': 'https://SNIP.jamfcloud.com',
'computergroup_name': 'macOS Major Version - 14 (Sonoma)',
'computergroup_template': 'SmartGroup-single-condition.xml',
'sleep': 60}}
JamfComputerGroupUploader: No value supplied for replace_group, setting default value of: False
JamfComputerGroupUploader: Matching dir: /Users/jacob.burley/Library/AutoPkg/RecipeOverrides
JamfComputerGroupUploader: Looking for SmartGroup-single-condition.xml in /Users/jacob.burley/Library/AutoPkg/RecipeOverrides
JamfComputerGroupUploader: Matching dir: /Users/jacob.burley/Library/AutoPkg/RecipeOverrides
JamfComputerGroupUploader: Parent Recipe: /Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes/CIS_Compliance/SonomaCISConfigProfile.jamf.recipe.yaml
JamfComputerGroupUploader: Matching dir: /Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes
JamfComputerGroupUploader: File found at: /Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes/Jamf_Group_Templates/SmartGroup-single-condition.xml
JamfComputerGroupUploader: Checking for existing 'macOS Major Version - 14 (Sonoma)' on https://SNIP.jamfcloud.com
JamfComputerGroupUploader: Checking for existing authentication token
JamfComputerGroupUploader: Checking https://SNIP.jamfcloud.com against https://SNIP.jamfcloud.com
JamfComputerGroupUploader: URL and user for token matches current request
JamfComputerGroupUploader: No existing valid token found
JamfComputerGroupUploader: Getting an authentication token using OAuth
JamfComputerGroupUploader: Output file is: /tmp/jamf_upload_x6n_8huc/jamf_upload_pvmzov9z.txt
JamfComputerGroupUploader: curl command: /usr/bin/curl --dump-header /tmp/jamf_upload_x6n_8huc/curl_headers_from_jamf_upload.txt https://SNIP.jamfcloud.com/api/oauth/token --request POST --silent --show-error --header Content-Type: application/x-www-form-urlencoded --output /tmp/jamf_upload_x6n_8huc/jamf_upload_pvmzov9z.txt --cookie-jar /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --data-urlencode client_id=SNIP --data-urlencode grant_type=client_credentials --data-urlencode client_secret=SNIP
JamfComputerGroupUploader: Session token received
JamfComputerGroupUploader: Token: SNIP
JamfComputerGroupUploader: Expires: 2024-04-09T09:24:15.494538Z
JamfComputerGroupUploader: Output file is: /tmp/jamf_upload_x6n_8huc/jamf_upload_vftiye7n.txt
JamfComputerGroupUploader: curl command: /usr/bin/curl --dump-header /tmp/jamf_upload_x6n_8huc/curl_headers_from_jamf_upload.txt https://SNIP.jamfcloud.com/JSSResource/computergroups --request GET --silent --show-error --header authorization: Bearer SNIP --header Accept: application/json --output /tmp/jamf_upload_x6n_8huc/jamf_upload_vftiye7n.txt --cookie-jar /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt
JamfComputerGroupUploader: {'computer_groups': [{'id': 1, 'name': 'All Managed Clients', 'is_smart': True}, {'id': 2, 'name': 'All Managed Servers', 'is_smart': True}, {'id': 37, 'name': 'Excluded from ManagedClient configuration', 'is_smart': True}, {'id': 6, 'name': 'Group Name', 'is_smart': True}, {'id': 168, 'name': 'macOS Major Version - 14 (Sonoma)', 'is_smart': True}, {'id': 110, 'name': 'test2', 'is_smart': True}, {'id': 35, 'name': '0b6zij7maqll', 'is_smart': False}, {'id': 83, 'name': '1ISWT27550', 'is_smart': False}, {'id': 84, 'name': '2B1HLBKHT7', 'is_smart': False}, {'id': 69, 'name': '2LA3T3ZXJT', 'is_smart': False}, {'id': 48, 'name': '2T9X5UT93G', 'is_smart': False}, {'id': 79, 'name': '2V9CIDGKQ8', 'is_smart': False}, {'id': 53, 'name': '3MEM7N4EYV', 'is_smart': False}, {'id': 70, 'name': '3TW1ZG7MOI', 'is_smart': False}, {'id': 62, 'name': '46ATO2IHYB', 'is_smart': False}, {'id': 29, 'name': '4RZ1XML719N', 'is_smart': False}, {'id': 153, 'name': '6o0ecl7t0qbp', 'is_smart': False}, {'id': 90, 'name': '6X2IS7JPAD', 'is_smart': False}, {'id': 63, 'name': '7O17F157J8', 'is_smart': False}, {'id': 81, 'name': '8QRKH77J3U', 'is_smart': False}, {'id': 36, 'name': '9kfgezjvdf9j', 'is_smart': False}, {'id': 64, 'name': 'B8I5QGL3L2', 'is_smart': False}, {'id': 58, 'name': 'C27A0HIVH4', 'is_smart': False}, {'id': 26, 'name': 'CS6DT288VN', 'is_smart': False}, {'id': 80, 'name': 'CTGFPWFIPP', 'is_smart': False}, {'id': 59, 'name': 'DJABCEKEJX', 'is_smart': False}, {'id': 89, 'name': 'DOHJSCK11J', 'is_smart': False}, {'id': 75, 'name': 'DP2OID0SO7', 'is_smart': False}, {'id': 94, 'name': 'EPK08JBWBE', 'is_smart': False}, {'id': 56, 'name': 'F0TIVZDL8X', 'is_smart': False}, {'id': 98, 'name': 'F6UJUPAJ2K', 'is_smart': False}, {'id': 30, 'name': 'FCMF3VCGRV', 'is_smart': False}, {'id': 5, 'name': 'fpgybuu4sbmg', 'is_smart': False}, {'id': 134, 'name': 'g08l4ttw8idz', 'is_smart': False}, {'id': 45, 'name': 'g6o6n89y34ca', 'is_smart': False}, {'id': 67, 'name': 'GECKEEKK4L', 'is_smart': False}, {'id': 17, 'name': 'GR2MRDZ1H4', 'is_smart': False}, {'id': 13, 'name': 'H55LS4VFWK', 'is_smart': False}, {'id': 65, 'name': 'IQXR9WAZO1', 'is_smart': False}, {'id': 95, 'name': 'IT9I7CJZ8N', 'is_smart': False}, {'id': 51, 'name': 'IURW83SWBF', 'is_smart': False}, {'id': 78, 'name': 'IZP8Q999LW', 'is_smart': False}, {'id': 61, 'name': 'JBK5Q89U1W', 'is_smart': False}, {'id': 31, 'name': 'KX23QRN03N', 'is_smart': False}, {'id': 43, 'name': 'KZG32L0OQY', 'is_smart': False}, {'id': 27, 'name': 'l48gr8a283m2', 'is_smart': False}, {'id': 8, 'name': 'lf3xlh1d2oxs', 'is_smart': False}, {'id': 14, 'name': 'lgzb47sjpraf', 'is_smart': False}, {'id': 82, 'name': 'LSMTKIHV7O', 'is_smart': False}, {'id': 40, 'name': 'MAKGWK4XAM', 'is_smart': False}, {'id': 54, 'name': 'MDJXDNS40O', 'is_smart': False}, {'id': 77, 'name': 'MV4OWN4C7K', 'is_smart': False}, {'id': 154, 'name': 'mx8cwb70oel0', 'is_smart': False}, {'id': 76, 'name': 'N0MKH7I5M3', 'is_smart': False}, {'id': 66, 'name': 'NEOPM8217I', 'is_smart': False}, {'id': 73, 'name': 'NGDZ1BXTFG', 'is_smart': False}, {'id': 96, 'name': 'NJHFXW0B5S', 'is_smart': False}, {'id': 92, 'name': 'O7TH3KIFKP', 'is_smart': False}, {'id': 60, 'name': 'P0DNUTF684', 'is_smart': False}, {'id': 49, 'name': 'PHKKZTLE6R', 'is_smart': False}, {'id': 57, 'name': 'PMR5LE9LZ1', 'is_smart': False}, {'id': 72, 'name': 'PP3QI1GP5H', 'is_smart': False}, {'id': 109, 'name': 'PYQBRKZRU5', 'is_smart': False}, {'id': 91, 'name': 'QYBQIE0MTB', 'is_smart': False}, {'id': 86, 'name': 'RC2U7K5OHC', 'is_smart': False}, {'id': 21, 'name': 'RFKUVHQDDE', 'is_smart': False}, {'id': 93, 'name': 'RONDXSN5QL', 'is_smart': False}, {'id': 97, 'name': 'SK6U6ZLUCD', 'is_smart': False}, {'id': 55, 'name': 'SP79JMSZFU', 'is_smart': False}, {'id': 155, 'name': 't2303lg9hbep', 'is_smart': False}, {'id': 142, 'name': 't4BXYGKyND', 'is_smart': False}, {'id': 19, 'name': 'Test Computer Group', 'is_smart': False}, {'id': 20, 'name': 'Test Computer Group 2', 'is_smart': False}, {'id': 47, 'name': 'test1', 'is_smart': False}, {'id': 16, 'name': 'tfb40k7awqep', 'is_smart': False}, {'id': 163, 'name': 'tfc3gyxuhud8', 'is_smart': False}, {'id': 71, 'name': 'THEGU7AU0D', 'is_smart': False}, {'id': 87, 'name': 'UJ83BAU106', 'is_smart': False}, {'id': 3, 'name': 'vJhHgGvtxS', 'is_smart': False}, {'id': 74, 'name': 'VLRXHWB3S3', 'is_smart': False}, {'id': 38, 'name': 'VUORWDHCC3', 'is_smart': False}, {'id': 68, 'name': 'W4P4DSNIG5', 'is_smart': False}, {'id': 52, 'name': 'WNKDWT6X5R', 'is_smart': False}, {'id': 85, 'name': 'WSCIAZXSKY', 'is_smart': False}, {'id': 50, 'name': 'X6WS5P3E2I', 'is_smart': False}, {'id': 88, 'name': 'YAIOOAPQHU', 'is_smart': False}, {'id': 131, 'name': 'yc7xxfrgdmus', 'is_smart': False}, {'id': 4, 'name': 'YsVnzVvOBK', 'is_smart': False}, {'id': 141, 'name': 'ZeVIqAY8Gg', 'is_smart': False}, {'id': 132, 'name': 'ziyg3qgmyiwu', 'is_smart': False}, {'id': 44, 'name': 'ZMDKT6Y40L', 'is_smart': False}, {'id': 39, 'name': 'ZW495JZYHT', 'is_smart': False}]}
JamfComputerGroupUploader: {'id': 1, 'name': 'All Managed Clients', 'is_smart': True}
JamfComputerGroupUploader: {'id': 2, 'name': 'All Managed Servers', 'is_smart': True}
JamfComputerGroupUploader: {'id': 37, 'name': 'Excluded from ManagedClient configuration', 'is_smart': True}
JamfComputerGroupUploader: {'id': 6, 'name': 'Group Name', 'is_smart': True}
JamfComputerGroupUploader: {'id': 168, 'name': 'macOS Major Version - 14 (Sonoma)', 'is_smart': True}
JamfComputerGroupUploader: {'id': 110, 'name': 'test2', 'is_smart': True}
JamfComputerGroupUploader: {'id': 35, 'name': '0b6zij7maqll', 'is_smart': False}
JamfComputerGroupUploader: {'id': 83, 'name': '1ISWT27550', 'is_smart': False}
JamfComputerGroupUploader: {'id': 84, 'name': '2B1HLBKHT7', 'is_smart': False}
JamfComputerGroupUploader: {'id': 69, 'name': '2LA3T3ZXJT', 'is_smart': False}
JamfComputerGroupUploader: {'id': 48, 'name': '2T9X5UT93G', 'is_smart': False}
JamfComputerGroupUploader: {'id': 79, 'name': '2V9CIDGKQ8', 'is_smart': False}
JamfComputerGroupUploader: {'id': 53, 'name': '3MEM7N4EYV', 'is_smart': False}
JamfComputerGroupUploader: {'id': 70, 'name': '3TW1ZG7MOI', 'is_smart': False}
JamfComputerGroupUploader: {'id': 62, 'name': '46ATO2IHYB', 'is_smart': False}
JamfComputerGroupUploader: {'id': 29, 'name': '4RZ1XML719N', 'is_smart': False}
JamfComputerGroupUploader: {'id': 153, 'name': '6o0ecl7t0qbp', 'is_smart': False}
JamfComputerGroupUploader: {'id': 90, 'name': '6X2IS7JPAD', 'is_smart': False}
JamfComputerGroupUploader: {'id': 63, 'name': '7O17F157J8', 'is_smart': False}
JamfComputerGroupUploader: {'id': 81, 'name': '8QRKH77J3U', 'is_smart': False}
JamfComputerGroupUploader: {'id': 36, 'name': '9kfgezjvdf9j', 'is_smart': False}
JamfComputerGroupUploader: {'id': 64, 'name': 'B8I5QGL3L2', 'is_smart': False}
JamfComputerGroupUploader: {'id': 58, 'name': 'C27A0HIVH4', 'is_smart': False}
JamfComputerGroupUploader: {'id': 26, 'name': 'CS6DT288VN', 'is_smart': False}
JamfComputerGroupUploader: {'id': 80, 'name': 'CTGFPWFIPP', 'is_smart': False}
JamfComputerGroupUploader: {'id': 59, 'name': 'DJABCEKEJX', 'is_smart': False}
JamfComputerGroupUploader: {'id': 89, 'name': 'DOHJSCK11J', 'is_smart': False}
JamfComputerGroupUploader: {'id': 75, 'name': 'DP2OID0SO7', 'is_smart': False}
JamfComputerGroupUploader: {'id': 94, 'name': 'EPK08JBWBE', 'is_smart': False}
JamfComputerGroupUploader: {'id': 56, 'name': 'F0TIVZDL8X', 'is_smart': False}
JamfComputerGroupUploader: {'id': 98, 'name': 'F6UJUPAJ2K', 'is_smart': False}
JamfComputerGroupUploader: {'id': 30, 'name': 'FCMF3VCGRV', 'is_smart': False}
JamfComputerGroupUploader: {'id': 5, 'name': 'fpgybuu4sbmg', 'is_smart': False}
JamfComputerGroupUploader: {'id': 134, 'name': 'g08l4ttw8idz', 'is_smart': False}
JamfComputerGroupUploader: {'id': 45, 'name': 'g6o6n89y34ca', 'is_smart': False}
JamfComputerGroupUploader: {'id': 67, 'name': 'GECKEEKK4L', 'is_smart': False}
JamfComputerGroupUploader: {'id': 17, 'name': 'GR2MRDZ1H4', 'is_smart': False}
JamfComputerGroupUploader: {'id': 13, 'name': 'H55LS4VFWK', 'is_smart': False}
JamfComputerGroupUploader: {'id': 65, 'name': 'IQXR9WAZO1', 'is_smart': False}
JamfComputerGroupUploader: {'id': 95, 'name': 'IT9I7CJZ8N', 'is_smart': False}
JamfComputerGroupUploader: {'id': 51, 'name': 'IURW83SWBF', 'is_smart': False}
JamfComputerGroupUploader: {'id': 78, 'name': 'IZP8Q999LW', 'is_smart': False}
JamfComputerGroupUploader: {'id': 61, 'name': 'JBK5Q89U1W', 'is_smart': False}
JamfComputerGroupUploader: {'id': 31, 'name': 'KX23QRN03N', 'is_smart': False}
JamfComputerGroupUploader: {'id': 43, 'name': 'KZG32L0OQY', 'is_smart': False}
JamfComputerGroupUploader: {'id': 27, 'name': 'l48gr8a283m2', 'is_smart': False}
JamfComputerGroupUploader: {'id': 8, 'name': 'lf3xlh1d2oxs', 'is_smart': False}
JamfComputerGroupUploader: {'id': 14, 'name': 'lgzb47sjpraf', 'is_smart': False}
JamfComputerGroupUploader: {'id': 82, 'name': 'LSMTKIHV7O', 'is_smart': False}
JamfComputerGroupUploader: {'id': 40, 'name': 'MAKGWK4XAM', 'is_smart': False}
JamfComputerGroupUploader: {'id': 54, 'name': 'MDJXDNS40O', 'is_smart': False}
JamfComputerGroupUploader: {'id': 77, 'name': 'MV4OWN4C7K', 'is_smart': False}
JamfComputerGroupUploader: {'id': 154, 'name': 'mx8cwb70oel0', 'is_smart': False}
JamfComputerGroupUploader: {'id': 76, 'name': 'N0MKH7I5M3', 'is_smart': False}
JamfComputerGroupUploader: {'id': 66, 'name': 'NEOPM8217I', 'is_smart': False}
JamfComputerGroupUploader: {'id': 73, 'name': 'NGDZ1BXTFG', 'is_smart': False}
JamfComputerGroupUploader: {'id': 96, 'name': 'NJHFXW0B5S', 'is_smart': False}
JamfComputerGroupUploader: {'id': 92, 'name': 'O7TH3KIFKP', 'is_smart': False}
JamfComputerGroupUploader: {'id': 60, 'name': 'P0DNUTF684', 'is_smart': False}
JamfComputerGroupUploader: {'id': 49, 'name': 'PHKKZTLE6R', 'is_smart': False}
JamfComputerGroupUploader: {'id': 57, 'name': 'PMR5LE9LZ1', 'is_smart': False}
JamfComputerGroupUploader: {'id': 72, 'name': 'PP3QI1GP5H', 'is_smart': False}
JamfComputerGroupUploader: {'id': 109, 'name': 'PYQBRKZRU5', 'is_smart': False}
JamfComputerGroupUploader: {'id': 91, 'name': 'QYBQIE0MTB', 'is_smart': False}
JamfComputerGroupUploader: {'id': 86, 'name': 'RC2U7K5OHC', 'is_smart': False}
JamfComputerGroupUploader: {'id': 21, 'name': 'RFKUVHQDDE', 'is_smart': False}
JamfComputerGroupUploader: {'id': 93, 'name': 'RONDXSN5QL', 'is_smart': False}
JamfComputerGroupUploader: {'id': 97, 'name': 'SK6U6ZLUCD', 'is_smart': False}
JamfComputerGroupUploader: {'id': 55, 'name': 'SP79JMSZFU', 'is_smart': False}
JamfComputerGroupUploader: {'id': 155, 'name': 't2303lg9hbep', 'is_smart': False}
JamfComputerGroupUploader: {'id': 142, 'name': 't4BXYGKyND', 'is_smart': False}
JamfComputerGroupUploader: {'id': 19, 'name': 'Test Computer Group', 'is_smart': False}
JamfComputerGroupUploader: {'id': 20, 'name': 'Test Computer Group 2', 'is_smart': False}
JamfComputerGroupUploader: {'id': 47, 'name': 'test1', 'is_smart': False}
JamfComputerGroupUploader: {'id': 16, 'name': 'tfb40k7awqep', 'is_smart': False}
JamfComputerGroupUploader: {'id': 163, 'name': 'tfc3gyxuhud8', 'is_smart': False}
JamfComputerGroupUploader: {'id': 71, 'name': 'THEGU7AU0D', 'is_smart': False}
JamfComputerGroupUploader: {'id': 87, 'name': 'UJ83BAU106', 'is_smart': False}
JamfComputerGroupUploader: {'id': 3, 'name': 'vJhHgGvtxS', 'is_smart': False}
JamfComputerGroupUploader: {'id': 74, 'name': 'VLRXHWB3S3', 'is_smart': False}
JamfComputerGroupUploader: {'id': 38, 'name': 'VUORWDHCC3', 'is_smart': False}
JamfComputerGroupUploader: {'id': 68, 'name': 'W4P4DSNIG5', 'is_smart': False}
JamfComputerGroupUploader: {'id': 52, 'name': 'WNKDWT6X5R', 'is_smart': False}
JamfComputerGroupUploader: {'id': 85, 'name': 'WSCIAZXSKY', 'is_smart': False}
JamfComputerGroupUploader: {'id': 50, 'name': 'X6WS5P3E2I', 'is_smart': False}
JamfComputerGroupUploader: {'id': 88, 'name': 'YAIOOAPQHU', 'is_smart': False}
JamfComputerGroupUploader: {'id': 131, 'name': 'yc7xxfrgdmus', 'is_smart': False}
JamfComputerGroupUploader: {'id': 4, 'name': 'YsVnzVvOBK', 'is_smart': False}
JamfComputerGroupUploader: {'id': 141, 'name': 'ZeVIqAY8Gg', 'is_smart': False}
JamfComputerGroupUploader: {'id': 132, 'name': 'ziyg3qgmyiwu', 'is_smart': False}
JamfComputerGroupUploader: {'id': 44, 'name': 'ZMDKT6Y40L', 'is_smart': False}
JamfComputerGroupUploader: {'id': 39, 'name': 'ZW495JZYHT', 'is_smart': False}
JamfComputerGroupUploader: Computer group 'macOS Major Version - 14 (Sonoma)' already exists: ID 168
JamfComputerGroupUploader: Not replacing existing Computer Group. Use replace_group='True' to enforce.
{'Output': {}}
com.github.grahampugh.jamf-upload.processors/JamfComputerProfileUploader
{'Input': {'CLIENT_ID': 'SNIP',
'CLIENT_SECRET': 'SNIP',
'JSS_URL': 'https://SNIP.jamfcloud.com',
'mobileconfig': '/Users/Shared/sonoma/mobileconfigs/unsigned/com.apple.mobiledevice.passwordpolicy.mobileconfig',
'organization': 'DatBoi Corp',
'profile_category': 'Compliance',
'profile_computergroup': 'macOS Major Version - 14 (Sonoma)',
'profile_description': 'Automatically uploaded by AutoPkg '
'2024-04-09T11:23:15.025968',
'profile_name': 'CIS - Sonoma - '
'com.apple.mobiledevice.passwordpolicy',
'profile_template': 'Profile-single-group.xml',
'sleep': 60}}
JamfComputerProfileUploader: No value supplied for unsign_profile, setting default value of: False
JamfComputerProfileUploader: No value supplied for replace_profile, setting default value of: False
JamfComputerProfileUploader: No value supplied for retain_scope, setting default value of: False
JamfComputerProfileUploader: Matching dir: /Users/jacob.burley/Library/AutoPkg/RecipeOverrides
JamfComputerProfileUploader: Looking for Profile-single-group.xml in /Users/jacob.burley/Library/AutoPkg/RecipeOverrides
JamfComputerProfileUploader: Matching dir: /Users/jacob.burley/Library/AutoPkg/RecipeOverrides
JamfComputerProfileUploader: Parent Recipe: /Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes/CIS_Compliance/SonomaCISConfigProfile.jamf.recipe.yaml
JamfComputerProfileUploader: Matching dir: /Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes
JamfComputerProfileUploader: File found at: /Users/jacob.burley/Library/AutoPkg/RecipeRepos/some.internal.repo.autopkg-recipes/Jamf_Profile_Templates/Profile-single-group.xml
JamfComputerProfileUploader: mobileconfig file supplied: /Users/Shared/sonoma/mobileconfigs/unsigned/com.apple.mobiledevice.passwordpolicy.mobileconfig
JamfComputerProfileUploader: ['/usr/bin/security', 'cms', '-D', '-i', '/Users/Shared/sonoma/mobileconfigs/unsigned/com.apple.mobiledevice.passwordpolicy.mobileconfig', '-o', '/tmp/a0197400-68f6-4e4f-ae4a-eaec1e14b9d7']
JamfComputerProfileUploader: Profile is not signed.
JamfComputerProfileUploader: b'security: failed to add data to decoder: UNKNOWN (-8183(d)\nsecurity: problem decoding\n'
JamfComputerProfileUploader: Configuration Profile name: [cis_lvl2] com.apple.mobiledevice.passwordpolicy settings
JamfComputerProfileUploader: Mobileconfig contents:
JamfComputerProfileUploader: <?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>ConsentText</key>
<dict>
<key>default</key>
<string>THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY, CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER.</string>
</dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadIdentifier</key>
<string>alacarte.macOS.cis_lvl2.6aff250d-f9d2-466a-9206-807775e8d5bc</string>
<key>PayloadType</key>
<string>com.apple.mobiledevice.passwordpolicy</string>
<key>PayloadUUID</key>
<string>6aff250d-f9d2-466a-9206-807775e8d5bc</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>customRegex</key>
<dict>
<key>passwordContentDescription</key>
<dict>
<key>default</key>
<string>Password must match custom regex.</string>
</dict>
<key>passwordContentRegex</key>
<string>.*[A-Z]{1,}[a-z]{1,}.*</string>
</dict>
<key>maxFailedAttempts</key>
<integer>5</integer>
<key>maxPINAgeInDays</key>
<integer>365</integer>
<key>minComplexChars</key>
<integer>1</integer>
<key>minLength</key>
<integer>15</integer>
<key>minutesUntilFailedLoginReset</key>
<integer>15</integer>
<key>pinHistory</key>
<integer>15</integer>
<key>requireAlphanumeric</key>
<true/>
</dict>
</array>
<key>PayloadDescription</key>
<string>Created: 2024-04-09
Configuration settings for the com.apple.mobiledevice.passwordpolicy preference domain.</string>
<key>PayloadDisplayName</key>
<string>[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings</string>
<key>PayloadIdentifier</key>
<string>com.apple.mobiledevice.passwordpolicy.cis_lvl2</string>
<key>PayloadOrganization</key>
<string>macOS Security Compliance Project</string>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>87a04d13-b9fc-47fc-8073-96f3294023f3</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
JamfComputerProfileUploader: Checking for existing '[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings' on https://SNIP.jamfcloud.com
JamfComputerProfileUploader: Checking for existing authentication token
JamfComputerProfileUploader: Checking https://SNIP.jamfcloud.com against https://SNIP.jamfcloud.com
JamfComputerProfileUploader: URL and user for token matches current request
JamfComputerProfileUploader: No existing valid token found
JamfComputerProfileUploader: Getting an authentication token using OAuth
JamfComputerProfileUploader: Output file is: /tmp/jamf_upload_x6n_8huc/jamf_upload_vx7vhf1y.txt
JamfComputerProfileUploader: curl command: /usr/bin/curl --dump-header /tmp/jamf_upload_x6n_8huc/curl_headers_from_jamf_upload.txt https://SNIP.jamfcloud.com/api/oauth/token --request POST --silent --show-error --header Content-Type: application/x-www-form-urlencoded --output /tmp/jamf_upload_x6n_8huc/jamf_upload_vx7vhf1y.txt --cookie-jar /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --data-urlencode client_id=SNIP --data-urlencode grant_type=client_credentials --data-urlencode client_secret=SNIP
JamfComputerProfileUploader: Session token received
JamfComputerProfileUploader: Token: SNIP
JamfComputerProfileUploader: Expires: 2024-04-09T09:24:16.440800Z
JamfComputerProfileUploader: Output file is: /tmp/jamf_upload_x6n_8huc/jamf_upload_epk265z1.txt
JamfComputerProfileUploader: curl command: /usr/bin/curl --dump-header /tmp/jamf_upload_x6n_8huc/curl_headers_from_jamf_upload.txt https://SNIP.jamfcloud.com/JSSResource/osxconfigurationprofiles --request GET --silent --show-error --header authorization: Bearer SNIP --header Accept: application/json --output /tmp/jamf_upload_x6n_8huc/jamf_upload_epk265z1.txt --cookie-jar /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt
JamfComputerProfileUploader: {'os_x_configuration_profiles': [{'id': 1, 'name': 'ACME certificate'}, {'id': 2, 'name': 'Managed Client information'}, {'id': 4, 'name': 'Munki Configuration'}, {'id': 5, 'name': 'Test Wi-Fi'}, {'id': 6, 'name': 'Test passcode'}, {'id': 8, 'name': 'Sonoma_cis_lvl2-mobiledevice.passwordpolicy'}]}
JamfComputerProfileUploader: {'id': 1, 'name': 'ACME certificate'}
JamfComputerProfileUploader: {'id': 2, 'name': 'Managed Client information'}
JamfComputerProfileUploader: {'id': 4, 'name': 'Munki Configuration'}
JamfComputerProfileUploader: {'id': 5, 'name': 'Test Wi-Fi'}
JamfComputerProfileUploader: {'id': 6, 'name': 'Test passcode'}
JamfComputerProfileUploader: {'id': 8, 'name': 'Sonoma_cis_lvl2-mobiledevice.passwordpolicy'}
JamfComputerProfileUploader: Configuration Profile '[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings' not found - will create
JamfComputerProfileUploader: Replacing any instances of 'mobileconfig_name' with '[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings'
JamfComputerProfileUploader: Replacing any instances of 'description' with 'Automatically uploaded by AutoPkg 2024-04-09T11:23:15.025968'
JamfComputerProfileUploader: Replacing any instances of 'category' with 'Compliance'
JamfComputerProfileUploader: Replacing any instances of 'uuid' with 'com.github.grahampugh.jamf-upload.e2bd9487-d7ec-4fda-a5ec-f1839a825c22'
JamfComputerProfileUploader: Replacing any instances of 'payload' with '<?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>ConsentText</key><dict><key>default</key><string>THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY, CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER.</string></dict><key>PayloadContent</key><array><dict><key>PayloadIdentifier</key><string>alacarte.macOS.cis_lvl2.6aff250d-f9d2-466a-9206-807775e8d5bc</string><key>PayloadType</key><string>com.apple.mobiledevice.passwordpolicy</string><key>PayloadUUID</key><string>6aff250d-f9d2-466a-9206-807775e8d5bc</string><key>PayloadVersion</key><integer>1</integer><key>customRegex</key><dict><key>passwordContentDescription</key><dict><key>default</key><string>Password must match custom regex.</string></dict><key>passwordContentRegex</key><string>.*[A-Z]{1,}[a-z]{1,}.*</string></dict><key>maxFailedAttempts</key><integer>5</integer><key>maxPINAgeInDays</key><integer>365</integer><key>minComplexChars</key><integer>1</integer><key>minLength</key><integer>15</integer><key>minutesUntilFailedLoginReset</key><integer>15</integer><key>pinHistory</key><integer>15</integer><key>requireAlphanumeric</key><true/></dict></array><key>PayloadDescription</key><string>Created: 2024-04-09Configuration settings for the com.apple.mobiledevice.passwordpolicy preference domain.</string><key>PayloadDisplayName</key><string>[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings</string><key>PayloadIdentifier</key><string>com.apple.mobiledevice.passwordpolicy.cis_lvl2</string><key>PayloadOrganization</key><string>macOS Security Compliance Project</string><key>PayloadScope</key><string>System</string><key>PayloadType</key><string>Configuration</string><key>PayloadUUID</key><string>87a04d13-b9fc-47fc-8073-96f3294023f3</string><key>PayloadVersion</key><integer>1</integer></dict></plist>'
JamfComputerProfileUploader: Replacing any instances of 'computergroup_name' with 'macOS Major Version - 14 (Sonoma)'
JamfComputerProfileUploader: Configuration Profile with intermediate substitution:
JamfComputerProfileUploader: <?xml version="1.0" encoding="UTF-8"?>
<os_x_configuration_profile>
<general>
<name>[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings</name>
<description>Automatically uploaded by AutoPkg 2024-04-09T11:23:15.025968</description>
<category>
<name>Compliance</name>
</category>
<distribution_method>Install Automatically</distribution_method>
<user_removable>false</user_removable>
<level>computer</level>
<uuid>com.github.grahampugh.jamf-upload.e2bd9487-d7ec-4fda-a5ec-f1839a825c22</uuid>
<redeploy_on_update>All</redeploy_on_update>
<payloads><?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>ConsentText</key><dict><key>default</key><string>THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY, CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER.</string></dict><key>PayloadContent</key><array><dict><key>PayloadIdentifier</key><string>alacarte.macOS.cis_lvl2.6aff250d-f9d2-466a-9206-807775e8d5bc</string><key>PayloadType</key><string>com.apple.mobiledevice.passwordpolicy</string><key>PayloadUUID</key><string>6aff250d-f9d2-466a-9206-807775e8d5bc</string><key>PayloadVersion</key><integer>1</integer><key>customRegex</key><dict><key>passwordContentDescription</key><dict><key>default</key><string>Password must match custom regex.</string></dict><key>passwordContentRegex</key><string>.*[A-Z]{1,}[a-z]{1,}.*</string></dict><key>maxFailedAttempts</key><integer>5</integer><key>maxPINAgeInDays</key><integer>365</integer><key>minComplexChars</key><integer>1</integer><key>minLength</key><integer>15</integer><key>minutesUntilFailedLoginReset</key><integer>15</integer><key>pinHistory</key><integer>15</integer><key>requireAlphanumeric</key><true/></dict></array><key>PayloadDescription</key><string>Created: 2024-04-09Configuration settings for the com.apple.mobiledevice.passwordpolicy preference domain.</string><key>PayloadDisplayName</key><string>[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings</string><key>PayloadIdentifier</key><string>com.apple.mobiledevice.passwordpolicy.cis_lvl2</string><key>PayloadOrganization</key><string>macOS Security Compliance Project</string><key>PayloadScope</key><string>System</string><key>PayloadType</key><string>Configuration</string><key>PayloadUUID</key><string>87a04d13-b9fc-47fc-8073-96f3294023f3</string><key>PayloadVersion</key><integer>1</integer></dict></plist></payloads>
</general>
<scope>
<all_computers>false</all_computers>
<all_jss_users>false</all_jss_users>
<computers/>
<buildings/>
<departments/>
<computer_groups>
<computer_group>
<name>macOS Major Version - 14 (Sonoma)</name>
</computer_group>
</computer_groups>
<jss_users/>
<jss_user_groups/>
<limitations>
<users/>
<user_groups/>
<network_segments/>
<ibeacons/>
</limitations>
<exclusions>
<computers/>
<buildings/>
<departments/>
<computer_groups/>
<users/>
<user_groups/>
<network_segments/>
<ibeacons/>
<jss_users/>
<jss_user_groups/>
</exclusions>
</scope>
</os_x_configuration_profile>
JamfComputerProfileUploader: Configuration Profile to be uploaded:
JamfComputerProfileUploader: <?xml version="1.0" encoding="UTF-8"?>
<os_x_configuration_profile>
<general>
<name>[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings</name>
<description>Automatically uploaded by AutoPkg 2024-04-09T11:23:15.025968</description>
<category>
<name>Compliance</name>
</category>
<distribution_method>Install Automatically</distribution_method>
<user_removable>false</user_removable>
<level>computer</level>
<uuid>com.github.grahampugh.jamf-upload.e2bd9487-d7ec-4fda-a5ec-f1839a825c22</uuid>
<redeploy_on_update>All</redeploy_on_update>
<payloads><?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>ConsentText</key><dict><key>default</key><string>THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT SHALL NIST BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY WAY CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY, CONTRACT, TORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED HEREUNDER.</string></dict><key>PayloadContent</key><array><dict><key>PayloadIdentifier</key><string>alacarte.macOS.cis_lvl2.6aff250d-f9d2-466a-9206-807775e8d5bc</string><key>PayloadType</key><string>com.apple.mobiledevice.passwordpolicy</string><key>PayloadUUID</key><string>6aff250d-f9d2-466a-9206-807775e8d5bc</string><key>PayloadVersion</key><integer>1</integer><key>customRegex</key><dict><key>passwordContentDescription</key><dict><key>default</key><string>Password must match custom regex.</string></dict><key>passwordContentRegex</key><string>.*[A-Z]{1,}[a-z]{1,}.*</string></dict><key>maxFailedAttempts</key><integer>5</integer><key>maxPINAgeInDays</key><integer>365</integer><key>minComplexChars</key><integer>1</integer><key>minLength</key><integer>15</integer><key>minutesUntilFailedLoginReset</key><integer>15</integer><key>pinHistory</key><integer>15</integer><key>requireAlphanumeric</key><true/></dict></array><key>PayloadDescription</key><string>Created: 2024-04-09Configuration settings for the com.apple.mobiledevice.passwordpolicy preference domain.</string><key>PayloadDisplayName</key><string>[cis_lvl2] com.apple.mobiledevice.passwordpolicy settings</string><key>PayloadIdentifier</key><string>com.apple.mobiledevice.passwordpolicy.cis_lvl2</string><key>PayloadOrganization</key><string>macOS Security Compliance Project</string><key>PayloadScope</key><string>System</string><key>PayloadType</key><string>Configuration</string><key>PayloadUUID</key><string>87a04d13-b9fc-47fc-8073-96f3294023f3</string><key>PayloadVersion</key><integer>1</integer></dict></plist></payloads>
</general>
<scope>
<all_computers>false</all_computers>
<all_jss_users>false</all_jss_users>
<computers/>
<buildings/>
<departments/>
<computer_groups>
<computer_group>
<name>macOS Major Version - 14 (Sonoma)</name>
</computer_group>
</computer_groups>
<jss_users/>
<jss_user_groups/>
<limitations>
<users/>
<user_groups/>
<network_segments/>
<ibeacons/>
</limitations>
<exclusions>
<computers/>
<buildings/>
<departments/>
<computer_groups/>
<users/>
<user_groups/>
<network_segments/>
<ibeacons/>
<jss_users/>
<jss_user_groups/>
</exclusions>
</scope>
</os_x_configuration_profile>
JamfComputerProfileUploader: Uploading Configuration Profile...
JamfComputerProfileUploader: Configuration Profile upload attempt 1
JamfComputerProfileUploader: Output file is: /tmp/jamf_upload_x6n_8huc/jamf_upload_f22cwtl5.txt
JamfComputerProfileUploader: curl command: /usr/bin/curl --dump-header /tmp/jamf_upload_x6n_8huc/curl_headers_from_jamf_upload.txt https://SNIP.jamfcloud.com/JSSResource/osxconfigurationprofiles/id/0 --request POST --silent --show-error --header authorization: Bearer SNIP --upload-file /tmp/jamf_upload_x6n_8huc/jamf_upload_j39155p3.txt --header Content-type: application/xml --output /tmp/jamf_upload_x6n_8huc/jamf_upload_f22cwtl5.txt --cookie-jar /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_x6n_8huc/curl_cookies_from_jamf_upload.txt
JamfComputerProfileUploader: API response:
b'<html>\n<head>\n <title>Status page</title>\n</head>\n<body style="font-family: sans-serif;">\n<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Conflict</p>\n<p>Unable to update the database</p>\n<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">here</a>.<br>\nPlease continue your visit at our <a href="/">home page</a>.\n</p>\n</body>\n</html>\n'
Traceback (most recent call last):
File "/Library/AutoPkg/autopkglib/__init__.py", line 840, in process
self.env = processor.process()
File "/Library/AutoPkg/autopkglib/__init__.py", line 626, in process
self.main()
File "/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfComputerProfileUploader.py", line 143, in main
self.execute()
File "/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfComputerProfileUploaderBase.py", line 509, in execute
self.upload_mobileconfig(
File "/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfComputerProfileUploaderBase.py", line 255, in upload_mobileconfig
self.status_check(
File "/Users/jacob.burley/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfUploaderBase.py", line 538, in status_check
f"conflict: {parser.error.replace('Error: ', '')}"
AttributeError: 'NoneType' object has no attribute 'replace'
File "/Library/AutoPkg/autopkglib/__init__.py", line 840, in process
self.env = processor.process()
'NoneType' object has no attribute 'replace'
Failed.
Receipt written to /Users/jacob.burley/Library/AutoPkg/Cache/local.jamf.SonomaCISConfigProfile/receipts/local.jamf-receipt-20240409-112318.plist
The following recipes failed:
local.jamf.SonomaCISConfigProfile
Error in local.jamf.SonomaCISConfigProfile: Processor: com.github.grahampugh.jamf-upload.processors/JamfComputerProfileUploader: Error: 'NoneType' object has no attribute 'replace'
Nothing downloaded, packaged or imported.
When trying to use jamf-upload to upload a .mobileconfig file with the preference domain
com.apple.mobiledevice.passwordpolicy
, Jamf returns an error:Conflict Unable to update the database
.I'm trying to upload .mobileconfigs from the macOS Security Compliance Project. The others work fine, but this specific preference domain triggers this error, even with an absolutely minimal .mobileconfig profile.
Resources to reproduce this are in this gist, as well as some information about what profiles look like when uploaded via Jamf Compliance Editor (which does work).
The output of running the recipe with
-vvvv
is as follows: