Repository navigation
Add support for the Jamf Platform API gateway - #138
Open
Jordy Thery (JordyThery) wants to merge 2 commits into
Open
Jordy Thery (JordyThery) wants to merge 2 commits into
Jordy Thery (JordyThery) wants to merge 2 commits into
Conversation
Adds "App Installers" as a selectable object type on the macOS tab and in selective migration, using the Jamf Pro API v1/app-installers/deployments endpoints. Deployment records are copied between servers with the category, site, smart computer group, and Self Service category ids remapped by name on the destination server. Deployments whose smart group cannot be found on the destination are created without a scope and disabled. Supports bulk and selective replication, export to and import from files, and removal. Resolves jamf#105 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Connections can now be made through the Jamf Platform API gateway by using the gateway region URL with the platform environment id appended as the server address, e.g. https://us.api.jamfcloud.com/<environmentId>, together with the client ID and secret of an integration created in Jamf Account. Tokens are requested from the gateway token endpoint, Classic and Jamf Pro API calls are routed through the gateway /proclassic and /pro namespaces, and the X-Environment-Id header is sent with every request. The gateway can be used for the source and destination server independently, from both the UI and the command line. To support routing through the gateway, URL and request header construction, previously repeated across the files making API calls, is centralized in the new ApiRequest class. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Jordy Thery (JordyThery)
marked this pull request as ready for review
October 3, 2026 18:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
Depends on #137 (App Installers support). That PR's commit is included in this branch as its base — please review and merge #137 first; this PR will then contain only the single "Add support for the Jamf Platform API gateway" commit (rebase on request).
Summary
Adds the ability to connect to servers through the Jamf Platform API gateway using an integration created in Jamf Account, as an alternative to connecting to a Jamf Pro instance directly.
No new UI: the gateway region URL with the platform environment id appended is entered as the server address, together with the existing Use API Client option:
The gateway can be used for the source and destination independently (including mixed gateway/direct migrations), from the UI and the command line (help text updated).
How it works
ApiRequest(new) centralizes endpoint URL and request header construction, previously repeated across the files making API calls. Call sites keep their exact URLs, auth styles, and content types — no functional change for direct connections.*.api.jamfcloud.com),ApiRequestroutes Classic API calls through/proclassic/...and Jamf Pro API calls through/pro/..., and sends theX-Environment-Idheader with every request (including multipart icon uploads)./auth/token, client credentials, 900 second lifetime); the existing renewal logic handles the shorter lifetime unchanged.baseUrl()and kept per server, so stored credentials, the server list, and the last-user record all key off the gateway + environment combination.Testing
Against a Jamf Pro 11.32 via both EU and US gateway (platform environment scope integration):
-source https://us.api.jamfcloud.com/<environmentId> -sourceUseClientId true ...)/pro/v1/icon), JCDS listingNotes / limitations
iconservleticon URLs are not reachable through the gateway; Jamf Cloud instances serve icons from the public icon CDN, which works unchanged.🤖 Generated with Claude Code