Building BlocksΒΆ

Stable surface for extending Patcher. HTTP transport, analysis transforms, configuration and data persistence, PDF rendering.


Analyze

Compose filters and trend criteria over a list of PatchTitle objects. The transform layer behind patcherctl analyze; reach for it when you want to slice patch data your own way.

Analyze
ConfigManager

Owns Jamf credentials. Keychain-backed by default; pass in_memory_credentials for CI or non-macOS environments where the keychain isn’t writable.

Config Manager
DataManager

Patch report persistence. Reads and writes the pickle cache under ~/Library/Caches/Patcher/ that powers analyze and trend comparisons across snapshots.

Data Manager
HttpClient

Async httpx base every outbound client inherits from. Provides the per-instance semaphore and the httpx.RequestError β†’ APIResponseError translation subclasses route through.

HTTPClient
PdfReport

fpdf2-backed renderer for branded patch reports. Handles font loading, logo placement, and per-page header/footer styling driven by UIConfig.

PDF Report
TokenManager

OAuth token lifecycle for the Jamf Pro API. Acquires, caches, and refreshes bearer tokens; JamfClient drives it for you in normal use.

Token Manager
PropertyListManager

Read/write helper for com.liquidzoo.patcher.plist. Wraps PlistBuddy and plutil so nested-dict edits round-trip cleanly through the binary plist format.

Property List Manager