-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Description
We have a user experience ingestion errors because the ingest pipeline of the Microsoft O365 integration because agentless agents include a global processor to add the organization field as a string, which collides with the ECS organization field the integration expects.
An example pipeline failure is:
Processor 'rename' with tag '' failed with message 'cannot set [id] with parent object of type [java.lang.String] as part of path [organization.id]'
Where the field causing the failure is organization below:
"division": "engineering",
"organization": "security",
"team": "security-service-integrations",The agent policy includes these fields with add_field processors:
inputs:
- data_stream:
namespace: default
id: cel-o365-abcdefgh
meta:
package:
name: o365
version: 2.15.1
processors:
- add_fields:
fields:
division: engineering
organization: security
team: security-service-integrations
Agentless policies add the division, organization, and team as global data tags:
Lines 195 to 196 in 12b7429
| name: agentlessPolicyName, | |
| global_data_tags: getGlobaDataTags(packageInfo), |
Global data tags get injected via add_fields processors when the policy is created:
Lines 181 to 191 in 12b7429
| const globalDataTagsToAddFields = (tags: GlobalDataTag[]): FullAgentPolicyAddFields => { | |
| const fields: { [key: string]: string | number } = {}; | |
| tags.forEach((tag) => { | |
| fields[tag.name] = tag.value; | |
| }); | |
| return { | |
| add_fields: { | |
| target: '', | |
| fields, |
These fields need to be in a namespace that will not collide with actual integration data or simply removed from the events. It is possible there was no intention to inject these fields into every event.