inetum-poland/Jamf Recovery Lock Rotation

GitHub Action for macOS Recovery Lock rotation in Jamf Pro with secure passphrase generation and no infrastructure required.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
jamf_urlJamf Pro base URL (e.g. https://example.jamfcloud.com)yes
rotation_scope"all" for every computer with a Management ID in inventory, or the exact Smart Computer Group name for a scoped run.noall
clear_passwordsIf true, skip the wordlist and send SET_RECOVERY_LOCK with an empty newPassword (clears Recovery Lock). Works with dry_run for simulation. Default false.nofalse
dry_runIf true, log intended actions without calling the MDM API.nofalse
show_passwords_in_dry_runWhen DRY_RUN is true, log extra detail at WARN: passphrases when rotating, or management IDs when clearing Recovery Lock. Ignored when dry_run is false.nofalse
log_levelLogging verbosity: debug, info, warn, or error.noinfo
wordlistBundled wordlist relative to the action root (e.g. wordlists/eff_short_wordlist_1.txt). Use this from any consumer workflow to pick a file shipped inside the action. Ignored when wordlist_path is set. If both are empty, the script default (bundled eff_large_wordlist.txt) is used.no""
wordlist_pathAbsolute path to a wordlist on the runner. Use for a file in the caller repository after actions/checkout (for example pass the workflow expression that resolves to github.workspace plus a relative path). Takes precedence over wordlist. Leave both empty for the script default (bundled eff_large_wordlist.txt).no""
word_countNumber of words per passphrase.no4
delimiterCharacter(s) joining words in the passphrase.no-
inventory_id_batch_sizeMax Jamf computer IDs per v3 inventory request when resolving Smart group membership (RSQL id=in=(…)).no80
namedescription
rotated_countNumber of devices for which SET_RECOVERY_LOCK was issued (or simulated in dry run).
failed_countNumber of devices skipped or that failed during rotation.