Skip to content

BED-8516: Added API client auth for Jamf collector#307

Merged
jeff-matthews merged 13 commits into
mainfrom
openhound-jamf-auth
Jun 18, 2026
Merged

BED-8516: Added API client auth for Jamf collector#307
jeff-matthews merged 13 commits into
mainfrom
openhound-jamf-auth

Conversation

@jeff-matthews

@jeff-matthews jeff-matthews commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

This pull request (PR) adds the API client auth methods to the Jamf collector docs for OpenHound.

I'll add release notes for this breaking change in a separate PR.

Related to SpecterOps/openhound-jamf#7

Staging

Summary by CodeRabbit

Summary

  • Documentation
    • Updated Jamf OpenHound collector docs to clearly present two authentication options: OAuth-based API client credentials (recommended) and username/password with appropriate Jamf role guidance.
    • Reworked configuration instructions to use a dedicated credentials location ([sources.source.jamf.credentials]), including TOML examples for both methods.
    • Added explicit migration guidance to move existing username, password, and host settings from the prior location.

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e31c6271-d8ca-40bd-9e03-00496f58d882

📥 Commits

Reviewing files that changed from the base of the PR and between 780a644 and 5a5e7f1.

📒 Files selected for processing (1)
  • docs/openhound/collectors/jamf/collect-data.mdx

Walkthrough

This PR updates the OpenHound Jamf collector documentation to introduce OAuth API client authentication as the recommended method alongside username/password authentication, and to reflect a new credentials configuration structure under [sources.source.jamf.credentials] with migration guidance from legacy settings.

Changes

Jamf Collector Authentication and Configuration Documentation

Layer / File(s) Summary
Jamf collector overview and authentication prerequisites
docs/openhound/collectors/jamf/overview.mdx, docs/openhound/collectors/jamf/collect-data.mdx
Overview documentation now emphasizes OAuth API client authentication as the recommended method and lists both OAuth and username/password options with role guidance. Prerequisites explicitly call out the need for Jamf Pro API credentials.
Authentication method selection and setup
docs/openhound/collectors/jamf/collect-data.mdx
Detailed steps for choosing and implementing each authentication method: OAuth-based API client flow (including API role creation with required privileges and client secret generation) as recommended, with username/password fallback limited to Full Access accounts.
Configuration structure, migration guidance, and parameter documentation
docs/openhound/collectors/jamf/collect-data.mdx
Configuration section specifies the new credentials location under [sources.source.jamf.credentials], provides upgrade guidance for migrating from legacy [sources.source.jamf] entries, includes parameter tables and TOML examples for both OAuth client and username/password authentication methods, and updates section heading wording.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested labels

documentation

Poem

🐰 With whiskers twitching and nose held high,
New Jamf authentication methods fly!
OAuth credentials, now recommended true,
Configuration paths made shiny new.
From legacy settings, we smoothly glide,
Authentication options far and wide!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly addresses the main change: adding API client authentication as a new method for the Jamf collector, which is documented throughout both modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch openhound-jamf-auth

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Comment thread docs/openhound/collectors/jamf/collect-data.mdx Outdated
@jeff-matthews

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@jeff-matthews jeff-matthews self-assigned this Jun 8, 2026
@jeff-matthews jeff-matthews added the data-collection Docs related to nodes, edges, and general data collection label Jun 8, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/openhound/collectors/jamf/collect-data.mdx`:
- Around line 44-48: The environment-variable prefix in the Jamf collector docs
is incorrect; replace instances of SOURCES__SOURCE__JAMF__CREDENTIALS with the
correct convention SOURCES__JAMF__CREDENTIALS to match the
[sources.source.<collector>.credentials] mapping used elsewhere, and update the
warning and surrounding text so examples and instructions consistently reference
SOURCES__JAMF__CREDENTIALS.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e6cd28c8-e5ac-4e75-988b-c3164ba017a1

📥 Commits

Reviewing files that changed from the base of the PR and between 408122e and 780a644.

📒 Files selected for processing (2)
  • docs/openhound/collectors/jamf/collect-data.mdx
  • docs/openhound/collectors/jamf/overview.mdx

Comment on lines +44 to +48
Credentials for the Jamf collector are configured under the `[sources.source.jamf.credentials]` section of the secrets file, or via environment variables that use the `SOURCES__SOURCE__JAMF__CREDENTIALS` prefix.

| Parameter Name | Environment Variable | Description |
|----------------|---------------------------------|------------------------------------------------------------------------------------|
| `username` | \{PREFIX\}__USERNAME | The username of the account used to authenticate to the Jamf Pro API. |
| `password` | \{PREFIX\}__PASSWORD | The password of the account used to authenticate to the Jamf Pro API. |
| `host` | \{PREFIX\}__HOST | The full host/url of the Jamf Pro tenant. For example: `https://jamf.example.com`. |
<Warning>
The credentials configuration structure changed in a recent release of the OpenHound Jamf collector. If you are upgrading from an earlier version, move existing `username`, `password`, and `host` values from `[sources.source.jamf]` into `[sources.source.jamf.credentials]` and update any matching environment variables to use the new `SOURCES__SOURCE__JAMF__CREDENTIALS` prefix.
</Warning>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix the Jamf environment-variable prefix to match the documented OpenHound credentials convention.

SOURCES__SOURCE__JAMF__CREDENTIALS appears inconsistent with the established [sources.source.<collector>.credentials] mapping pattern shown elsewhere (SOURCES__<COLLECTOR>__CREDENTIALS). As written, users may set the wrong env vars and fail auth/config loading.

Suggested doc fix
-Credentials for the Jamf collector are configured under the `[sources.source.jamf.credentials]` section of the secrets file, or via environment variables that use the `SOURCES__SOURCE__JAMF__CREDENTIALS` prefix.
+Credentials for the Jamf collector are configured under the `[sources.source.jamf.credentials]` section of the secrets file, or via environment variables that use the `SOURCES__JAMF__CREDENTIALS` prefix.
...
-  The credentials configuration structure changed in a recent release of the OpenHound Jamf collector. If you are upgrading from an earlier version, move existing `username`, `password`, and `host` values from `[sources.source.jamf]` into `[sources.source.jamf.credentials]` and update any matching environment variables to use the new `SOURCES__SOURCE__JAMF__CREDENTIALS` prefix.
+  The credentials configuration structure changed in a recent release of the OpenHound Jamf collector. If you are upgrading from an earlier version, move existing `username`, `password`, and `host` values from `[sources.source.jamf]` into `[sources.source.jamf.credentials]` and update any matching environment variables to use the new `SOURCES__JAMF__CREDENTIALS` prefix.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Credentials for the Jamf collector are configured under the `[sources.source.jamf.credentials]` section of the secrets file, or via environment variables that use the `SOURCES__SOURCE__JAMF__CREDENTIALS` prefix.
| Parameter Name | Environment Variable | Description |
|----------------|---------------------------------|------------------------------------------------------------------------------------|
| `username` | \{PREFIX\}__USERNAME | The username of the account used to authenticate to the Jamf Pro API. |
| `password` | \{PREFIX\}__PASSWORD | The password of the account used to authenticate to the Jamf Pro API. |
| `host` | \{PREFIX\}__HOST | The full host/url of the Jamf Pro tenant. For example: `https://jamf.example.com`. |
<Warning>
The credentials configuration structure changed in a recent release of the OpenHound Jamf collector. If you are upgrading from an earlier version, move existing `username`, `password`, and `host` values from `[sources.source.jamf]` into `[sources.source.jamf.credentials]` and update any matching environment variables to use the new `SOURCES__SOURCE__JAMF__CREDENTIALS` prefix.
</Warning>
Credentials for the Jamf collector are configured under the `[sources.source.jamf.credentials]` section of the secrets file, or via environment variables that use the `SOURCES__JAMF__CREDENTIALS` prefix.
<Warning>
The credentials configuration structure changed in a recent release of the OpenHound Jamf collector. If you are upgrading from an earlier version, move existing `username`, `password`, and `host` values from `[sources.source.jamf]` into `[sources.source.jamf.credentials]` and update any matching environment variables to use the new `SOURCES__JAMF__CREDENTIALS` prefix.
</Warning>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/openhound/collectors/jamf/collect-data.mdx` around lines 44 - 48, The
environment-variable prefix in the Jamf collector docs is incorrect; replace
instances of SOURCES__SOURCE__JAMF__CREDENTIALS with the correct convention
SOURCES__JAMF__CREDENTIALS to match the [sources.source.<collector>.credentials]
mapping used elsewhere, and update the warning and surrounding text so examples
and instructions consistently reference SOURCES__JAMF__CREDENTIALS.

* chore: align certification status with v9.3.0 enhancement

* chore: restore notes

* fix: table with column descriptions
* wip: initial draft of built-in extensions

* style: normalize built-in extension terminology

* wip: make update conditions easier to understand

* chore: apply suggestions from CR review

* docs: apply suggestions from PM review

* docs: added top-level section for ext mgmt models
* docs: added full path highlighting

* chore: add full path highlighting example screenshot

* wip: cross reference entity panel

* style: wrap images in frames

* style: replace badges with enterprise svg

* docs: added layout behavior enhancements

* docs: apply suggestions from PM review

* docs: add lable clipping behavior and option to disable

* chore: removed hacky console workaround for disabling path highlighting and label clipping
* wip: initial draft of v9.3.0 release notes

* wip: removed old, mis-tagged issue for PZM

* wip: removed old AzureHound fixed issue

* wip: add no-op stub for AzureHound

* wip: copyedit jamf api client feature

* chore: moved AzureHound fixed issue to latest release

* wip: copyedit fixed issue descriptions

* wip: copyedit administration enhancements

* wip: add TODOs for enhancements that require supporting doc updates

* chore: removed mis-tagged issues

* wip: copyedit full-path highlighting

* wip: copyedit layout defaults

* wip: copyedit layout defaults

* wip: minor copyediting

* wip: copyedit attack path type names

* chore: removed previously shipped cypher result layouts enhancement

* wip: copyedit certification statuses

* wip: copyedited built-in extensions

* wip: added post-processing performance enhancements

* wip: initial draft of v9.3.0 summary

* chore: align summary and v9.3.0 release notes

* fix: broken links

* chore: normalized pre-installed extension terminology

* style: use title case

* chore: bump openhound version

* style: refine headings

* docs: clarify editionavailability for supported extensions

* chore: change enterprise designation
Base automatically changed from release/v9.3.0 to main June 17, 2026 21:12
@jeff-matthews jeff-matthews merged commit b09df2c into main Jun 18, 2026
3 checks passed
@jeff-matthews jeff-matthews deleted the openhound-jamf-auth branch June 18, 2026 17:06
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

data-collection Docs related to nodes, edges, and general data collection

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants