Skip to content

Jamf Pro: add support for ECS entity fields - #18503

Merged
chemamartinez merged 13 commits into
elastic:mainfrom
chemamartinez:18293-jamf_pro-entity-fields
Jun 3, 2026
Merged

chemamartinez merged 13 commits into
elastic:mainfrom
chemamartinez:18293-jamf_pro-entity-fields

Conversation

@chemamartinez

@chemamartinez chemamartinez commented Apr 17, 2026 •

Copy link
Copy Markdown
Contributor

Proposed commit message

Adds ECS entity field support to the Jamf Pro integration for both
the inventory and events data streams.

Maps managed status, OS version, last activity timestamp, group
memberships, and local admin accounts to host.entity.* and
user.entity.* fields:

- host.entity.attributes.managed from general.remote_management.managed
- host.os.* (name, version, full, platform) moved from standalone
  os.* to the host.os.* namespace in both pipelines
- host.entity.lifecycle.last_activity from general.last_contact_time
  (inventory) and webhook.event_timestamp (events)
- user.group.id and user.group.name from group_memberships[*].
  It requires the GROUP_MEMBERSHIPS section to be enabled.
- user.entity.attributes.administered_by from local_user_accounts[*]
  where admin == true, collecting {user_id, username, email} per entry.
  It requires the LOCAL_USER_ACCOUNTS section to be enabled.

Test sample are AI-generated logs with random data.

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have verified that all data streams collect metrics or logs.
  • I have added an entry to my package's changelog.yml file.
  • I have verified that Kibana version constraints are current according to guidelines.
  • I have verified that any added dashboard complies with Kibana's Dashboard good practices

Related issues

@chemamartinez chemamartinez self-assigned this Apr 17, 2026
@chemamartinez chemamartinez added enhancement New feature or request Team:Security-Service Integrations Security Service Integrations team [elastic/security-service-integrations] Integration:jamf_pro Jamf Pro labels Apr 17, 2026
@github-actions

github-actions Bot commented Apr 17, 2026 •

Copy link
Copy Markdown
Contributor

Vale Linting Results

Summary: 6 warnings found

⚠️ Warnings (6)
File Line Rule Message
packages/jamf_pro/docs/README.md 204 Elastic.QuotesPunctuation Place punctuation inside closing quotation marks.
packages/jamf_pro/docs/README.md 205 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/jamf_pro/docs/README.md 206 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/jamf_pro/docs/README.md 511 Elastic.QuotesPunctuation Place punctuation inside closing quotation marks.
packages/jamf_pro/docs/README.md 512 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/jamf_pro/docs/README.md 513 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.

The Vale linter checks documentation changes against the Elastic Docs style guide.

To use Vale locally or report issues, refer to Elastic style guide for Vale.

Comment thread packages/jamf_pro/changelog.yml Resolved
@andrewkroh andrewkroh added the documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. label Apr 17, 2026
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

🚀 Benchmarks report

To see the full report comment with /test benchmark fullreport

@chemamartinez
chemamartinez marked this pull request as ready for review April 23, 2026 16:03
@elasticmachine

Copy link
Copy Markdown

Pinging @elastic/security-service-integrations (Team:Security-Service Integrations)

@chemamartinez
chemamartinez requested a review from a team as a code owner April 23, 2026 16:03

@efd6 efd6 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.

Add the provenance of the test inputs to the commit message.

Comment on lines 210 to 212
if (ctx.host == null) {
ctx.host = [:];
}

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.

Suggested change
if (ctx.host == null) {
ctx.host = [:];
}
ctx.host = ctx.host ?: [:];

(similar below)

source: |-
List admins = new ArrayList();
for (def acct : ctx.jamf_pro.inventory.local_user_accounts) {
if (acct.admin == true) {

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.

Prefer to invert the condition and continue in that case. This moves the code left.

@chemamartinez
chemamartinez requested a review from efd6 April 30, 2026 17:08
@chemamartinez
chemamartinez requested a review from a team as a code owner May 28, 2026 18:47
@elasticmachine

Copy link
Copy Markdown

💚 Build Succeeded

History

cc @chemamartinez

@alexreal1314

alexreal1314 commented May 31, 2026 •

Copy link
Copy Markdown
Contributor

@chemamartinez is adding *.relationships should be part of this PR? is it something that could be added or is there another PR that should address it?

@chemamartinez

Copy link
Copy Markdown
Contributor Author

@alexreal1314 for the administers field, it happens the same as for the other integrations, we decided to revert the change after it switched the direction (see 3616e5d), as from the source we only can get the administrator for each entity.

It happens the same with the owns field. The API only retrieved the owners of each entity, so adding the field would require a owner ECS field.

That data is still available in dedicated custom fields in events, so these fields can be correlated and populated in later steps with transforms or ESQL.

@chemamartinez
chemamartinez merged commit bedd161 into elastic:main Jun 3, 2026
10 checks passed
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package jamf_pro - 1.2.0 containing this change is available at https://epr.elastic.co/package/jamf_pro/1.2.0/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. enhancement New feature or request Integration:jamf_pro Jamf Pro Team:Security-Service Integrations Security Service Integrations team [elastic/security-service-integrations]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Jamf Pro: add support for entity fields

5 participants