Open
Description
We have different sources of ECS fields, and different places where ecs.version
can be set. This proposal attempts to define some explicit rules about the expectations of the ecs.version
field.
The different sources of ECS fields definitions are, at least:
- Fields imported from ecs using
export
, where the version used is determined in_dev/build/build.yml
. - Fields imported using
import_mappings
, with no explicit versioning, but can be combined withexport
and also uses the definition in_dev/build/build.yml
. - Fields included by Fleet with
ecs@mappings
component template, since 8.13.
The proposal would be focused on making the final documents to have the greater known ECS version affecting the package, with two main tasks:
- [elastic-package] If a version is set in
_dev/build/build.yml
,elastic-package
system tests must check thatecs.version
is set to this version or greater. Package developers may need to add pipeline processors to satisfy this check. - [Fleet UI] If Fleet includes the
ecs@mappings
component template, it must also add a processor that setsecs.version
. The value used must be the max version between the latest version of ECS supported by the the stack and the version found in the document, if any. Notice that the versions of ECS and the stack are not fully aligned.
cc @ishleenk17 @zmoog @elastic/ecosystem @kpollich