[RFC 0056] Propose host.group as a free-form keyword field#2670
[RFC 0056] Propose host.group as a free-form keyword field#2670adrianchen-es wants to merge 3 commits into
Conversation
🤖 GitHub commentsJust comment with:
|
ECS PR Triage (automated)PR Triage ReportPR: #2670 — [RFC 0056] Propose host.group as a free-form keyword field SummaryThis PR adds a new RFC (Proposal stage) for a single new field, Files changed
Routing decisionDirect PR is appropriate. This is an RFC Proposal PR, which is itself the correct contribution path for proposing new fields. The contributor is not bypassing the RFC process — they are following it. The key routing question is whether the underlying change (a new
However, since the PR is the RFC itself, the correct routing for this PR is Direct PR (an RFC PR is the expected vehicle). The RFC content is complete and ready for maintainer review. Risk notes
Completeness checklist
RFC quality assessmentThe RFC document is well-crafted and covers all required template sections:
Minor issues in the RFC:
Recommended next actions
Posted by PR Triage workflow |
|
|
||
| **What about the other entities in that same list, e.g. a `service.group`?** Checked, and none of them need one. Most already have an equivalent concept: `service.environment` exists today and its description already covers this exact use case ("can also group services and applications from the same environment"); `orchestrator.namespace` gives Kubernetes workloads a native grouping construct; `cloud.account.*` and `cloud.project.*` give cloud resources one; `container.labels` gives containers an arbitrary key/value equivalent. `host` is the one entity in that list with no grouping field at all, which is exactly the gap this proposal fills. If a real need for something more structured than `service.environment` surfaces later, that would be its own RFC, not an extension of this one. | ||
|
|
||
| **Does `group` collide with the existing reusable `group` field set?** Not in the schema, but the name overlaps in a confusing way. ECS already has a reusable `group` field set (`schemas/group.yml`) for OS/directory-level groups: an object with `id`, `name`, and `domain`, reused today as `user.group.*`, `process.group.*`, `process.real_group.*`, and others. `host.group` is a different concept: a flat, user-assigned deployment label, not OS group membership. `host` isn't in that field set's `expected` list, so the paths never collide and there's no mapping conflict. What's left is a naming question: someone searching for "group" fields might expect the `id`/`name`/`domain` shape instead of a plain string. `group` matches the term used in the originating issue, and the two concepts sit on separate paths, but a more specific name like `host.deployment_group` may be worth weighing against that familiarity. |
There was a problem hiding this comment.
this is something where we should come with another solution. Group is an existing namespace so it will be indistinguishable from the look and despite ES currently supports both scalar and object with the same name, we can’t mix them in the standard. If we would even accept it - we would never be able to reuse group as a namespace anymore.
Have you weighted if we can reuse existing group namespace? From the examples it looks likes it just a string, do we have options where it might be an object with id?
actually scratch that, I don’t think group namespace would be a good solution
There was a problem hiding this comment.
What if we made it more specific - e.g. in the quoted section from my RFC?
Where the new field is host.deployment_group? host.group was shorter.
There was a problem hiding this comment.
is it really a delpoyment_group? Based on description it feels like it could be some generic group, not specifically related to deployment
There was a problem hiding this comment.
Pull request overview
Adds RFC 0056 proposing a new ECS field host.group (alpha) as a free-form keyword for user-configurable host grouping, intended for consistent querying, alert scoping, and access control across Security and Observability use cases.
Changes:
- Introduces an RFC document describing motivation, usage examples, scope/impact, and rationale for choosing
host.groupoveragent.group. - Adds the proposed field definition YAML for
host.group(keyword, extended, alpha).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| rfcs/text/0056/host.yml | Defines proposed host.group field as a keyword with alpha maturity. |
| rfcs/text/0056-host-group.md | RFC narrative: motivation, examples, impact analysis, and concerns/rationale. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1. What does this PR do?
Adds a new Proposal RFC (0056) for
host.group, a free-form keyword field for grouping hosts under a user-configurable label, used for search, alerting, and access control.Addresses #2340.
2. Which ECS fields are affected/introduced?
host.group(new): user-configurable label for grouping a set of hosts. Level: extended. Target maturity: alpha.The originating issue also proposed
agent.group. This proposal drops it. The RFC found no case where an agent needs its own grouping separate from the host it reports on, and existing ECS precedent (the reusableriskandentityfield sets) scopes asset-level classification tohost/user/cloud/service/orchestrator, never toagent. Details in the RFC's Concerns section.3. Why is this change necessary?
Teams have no standardized field today for grouping hosts by application, environment, or business unit, and fall back to ad hoc custom fields with inconsistent naming across integrations.
host.groupgives Security and Observability a single, consistent field to filter, alert, and grant access on by group, the same roledata_stream.namespaceplays for data streams.4. Have you added/updated documentation?
N/A. Documentation is within the RFC itself and the schema YAML (
rfcs/text/0056/host.yml).5. Have you built ECS and committed any newly generated files?
NO. This PR adds only an RFC and proposed schema YAML, no changes to
schemas/orgenerated/.6. Have you run the ECS validation tests locally?
NO. RFC-only change, no schema or code modifications.
7. Anything else for the reviewers?
host.groupfor Defend-originated data needs separate confirmation with the Endpoint team. Flagged in Scope of impact.host.groupcould read as overlapping with the existing reusablegroupfield set (user.group.*,process.group.*), even though the paths never actually collide.Commit Message