Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
114d8a2
Add 'lookup' as valid index mode for ES|QL lookup joins
JohannesMahne Jul 25, 2025
f663a28
Add 'lookup' as valid index mode for ES|QL lookup joins - changelog e…
JohannesMahne Jul 25, 2025
f5cc518
Add 'lookup' as valid index mode for ES|QL lookup joins - changelog e…
JohannesMahne Jul 25, 2025
f46e0a9
Adding test data with a transform that will try to create a lookup in…
JohannesMahne Jul 25, 2025
d5557d1
Update spec/integration/data_stream/manifest.spec.yml
JohannesMahne Jul 26, 2025
b477b79
Adding compliance_test.go case for lookup index. Adding esql.feature.
JohannesMahne Jul 26, 2025
48c97d1
Adding good_lookup_index test case to TestValidateFile
JohannesMahne Jul 26, 2025
e73b966
Updated test files, compliance files and spec files.
JohannesMahne Jul 26, 2025
4a71284
Chose a very specific source index
JohannesMahne Jul 26, 2025
89fc4a4
Moved 3.4.2-next below 3.5.0-next
JohannesMahne Jul 28, 2025
b7a1ca6
Updating the version for the compliance testing
JohannesMahne Jul 28, 2025
3c63320
Updating feature to use correct template name so that test can pass. …
JohannesMahne Jul 29, 2025
1bdfbda
Update spec/integration/data_stream/manifest.spec.yml
JohannesMahne Jul 30, 2025
8273fa9
Update spec/integration/elasticsearch/transform/manifest.spec.yml
JohannesMahne Jul 30, 2025
52f6ae2
Allow to use underscores in benchmark file names (#945)
jsoriano Aug 1, 2025
07659ff
Bump github.com/elastic/go-elasticsearch/v8 in /compliance (#944)
dependabot[bot] Aug 1, 2025
97b949e
[CI] Update junit buildkite plugin (#941)
mrodm Aug 1, 2025
7aaeeea
Update Elasticsearch SDK to v9 in compliance tests (#947)
jsoriano Aug 1, 2025
5ad154c
Add asset_inventory category (#938)
animehart Aug 1, 2025
d605375
Added to test mode standard. Updated version (again).
JohannesMahne Aug 20, 2025
0a27f3a
feat: add semantic validator for duration var type (#949)
andrewkroh Aug 8, 2025
57d42ce
Bump github.com/elastic/elastic-package in /compliance (#954)
dependabot[bot] Aug 11, 2025
02f0aa8
Use the OS separator for paths built by fspath (#953)
jsoriano Aug 11, 2025
844b21b
Add docs_structure_enforced to validation.yml (#924)
haetamoudi Aug 12, 2025
051ed90
Bump github.com/boumenot/gocover-cobertura from 1.3.0 to 1.4.0 (#958)
dependabot[bot] Aug 18, 2025
1fe762f
Adding test data with a transform that will try to create a lookup in…
JohannesMahne Jul 25, 2025
cb5fcfe
Add lookup index mode to manifests. Data streams: properties.elastics…
JohannesMahne Aug 19, 2025
388f0b5
Updated lookup to only be applicable for transforms.
JohannesMahne Aug 20, 2025
3d86c41
Fixed test
JohannesMahne Aug 20, 2025
ccb22e2
Merge branch 'main' into add-lookup-index-mode
JohannesMahne Aug 20, 2025
426a3f6
Update README.md
JohannesMahne Aug 20, 2025
7a9e96d
Update manifest.yml
JohannesMahne Aug 20, 2025
31b1125
Delete test/packages/good_lookup_index/img/elastic-logo.svg
JohannesMahne Aug 20, 2025
4f0895d
Update manifest.yml
JohannesMahne Aug 20, 2025
773a8ad
Delete test/packages/good_lookup_index/elasticsearch/transform/billin…
JohannesMahne Aug 20, 2025
9eca2d8
Delete test/packages/good_lookup_index/elasticsearch/transform/billin…
JohannesMahne Aug 20, 2025
c0de225
Delete test/packages/good_lookup_index/elasticsearch/transform/billin…
JohannesMahne Aug 20, 2025
91e8bd2
Fixed remove enum syntax
JohannesMahne Aug 20, 2025
6142fee
Remove patch
JohannesMahne Aug 20, 2025
4df4208
Update spec/integration/elasticsearch/transform/manifest.spec.yml
JohannesMahne Aug 22, 2025
272f364
Removed from transform manifest. Tested, it is working.
JohannesMahne Aug 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .buildkite/pipeline.trigger.compliance.tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ steps:
EOF

# Generate each test we want to do.
compliance_test 9.1.0-SNAPSHOT 3.4.1
compliance_test 8.19.0-SNAPSHOT 3.4.1
compliance_test 9.1.0-SNAPSHOT 3.4.3
compliance_test 8.19.0-SNAPSHOT 3.4.3
compliance_test 9.0.1 3.3.5
compliance_test 8.14.0 3.1.5
compliance_test 8.9.0 2.7.0
Expand Down
1 change: 1 addition & 0 deletions code/go/pkg/validator/validator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func TestValidateFile(t *testing.T) {
"good_v3": {},
"good_input": {},
"good_content": {},
"good_lookup_index": {},
"deploy_custom_agent": {},
"deploy_custom_agent_multi_services": {},
"deploy_docker": {},
Expand Down
6 changes: 6 additions & 0 deletions compliance/compliance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,12 @@ func indexTemplateIsConfiguredFor(indexTemplateName, option string) error {
return nil
}
return errors.New("synthetic source mode is not enabled")

case "lookup index mode":
if indexTemplate.Settings.Index.Mode == "lookup" {
return nil
}
return errors.New("lookup mode is not enabled")
}

return godog.ErrPending
Expand Down
8 changes: 8 additions & 0 deletions compliance/features/esql.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Feature: ES|QL
Features related to ES|QL

@3.4.3
Scenario: Installer leverages lookup index mode
Given the "good_lookup_index" package is installed
And a policy is created with "good_lookup_index" package and "0.1.4" version
Then index template "logs-good_lookup_index.foo-template" is configured for "lookup index mode"
1 change: 1 addition & 0 deletions compliance/indextemplate.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ type IndexTemplate struct {
type SimulatedIndexTemplate struct {
Settings struct {
Index struct {
Mode string `json:"mode"`
Mapping struct {
Source struct {
Mode string `json:"mode"`
Expand Down
7 changes: 6 additions & 1 deletion spec/changelog.yml
Comment thread
JohannesMahne marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,12 @@
- description: Add `duration` variable data type with `min_duration` and `max_duration` validation properties.
type: enhancement
link: https://github.com/elastic/package-spec/pull/948
- version: 3.4.2-next
- version: 3.4.3-next
changes:
- description: Add support for lookup indices.
Comment thread
JohannesMahne marked this conversation as resolved.
type: enhancement
link: https://github.com/elastic/package-spec/pull/936
- version: 3.4.2
changes:
- description: Add optional docs_structure_enforced parameter to validation.yml.
type: enhancement
Expand Down
63 changes: 45 additions & 18 deletions spec/integration/elasticsearch/transform/manifest.spec.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,45 @@
##
## Describes the specification for a transform's manifest.yml file
##
spec:

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.

We have removed the spec level from this file, so we are effectively removing validation from here. Attempting to fix this in #964.

type: object
additionalProperties: false
definitions:
index_template:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template"
properties:
destination_index_template:
description: Elasticsearch index template for the transform's destination index
$ref: "#/definitions/index_template"
required: false
start:
description: Determines if the transform will be started upon installation
type: boolean
default: true
type: object
additionalProperties: false
definitions:
index_template:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template"
properties:
destination_index_template:
description: Elasticsearch index template for the transform's destination index
type: object
additionalProperties: false
properties:
settings:
type: object
additionalProperties: false
properties:
index:
type: object
additionalProperties: false
properties:
mode:

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.

We should probably add a patch so this is not used on packages with a format version older than 3.4. I will do this in a follow up.

description: Index mode for lookup indices.
type: string
enum:
- lookup
codec:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template/properties/settings/properties/index/properties/codec"
mapping:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template/properties/settings/properties/index/properties/mapping"
sort:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template/properties/settings/properties/index/properties/sort"
number_of_shards:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template/properties/settings/properties/number_of_shards"
analysis:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template/properties/settings/properties/analysis"
mappings:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template/properties/mappings"
ingest_pipeline:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template/properties/ingest_pipeline"
data_stream:
$ref: "../../data_stream/manifest.spec.yml#/properties/elasticsearch/properties/index_template/properties/data_stream"
required: false
start:
description: Determines if the transform will be started upon installation
type: boolean
default: true
3 changes: 3 additions & 0 deletions test/packages/good_lookup_index/_dev/build/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies:
ecs:
reference: git@v8.17.0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Good Lookup Index
6 changes: 6 additions & 0 deletions test/packages/good_lookup_index/changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# newer versions go on top
- version: 0.1.4
changes:
- description: "initital"
type: bugfix
link: https://github.com/elastic/integrations/pull/14883
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
description: "Default empty ingest pipeline for test dataset."
processors: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
- name: data_stream.type
type: constant_keyword
description: Data stream type.
- name: data_stream.dataset
type: constant_keyword
description: Data stream dataset.
- name: data_stream.namespace
type: constant_keyword
description: Data stream namespace.
- name: '@timestamp'
type: date
description: Event timestamp.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: "Foo"
type: metrics
1 change: 1 addition & 0 deletions test/packages/good_lookup_index/docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# README
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- name: "@timestamp"
type: date
description: The timestamp.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
start: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
description: "Test transform that always runs and creates an index."
source:
index:
- ".ds-.logs-elasticsearch.deprecation-default-*"
dest:
index: test-bar-dest-index
frequency: 1m
sync:
time:
field: "@timestamp"
delay: 0s
pivot:
group_by:
"@timestamp":
date_histogram:
field: "@timestamp"
calendar_interval: 1d
aggregations:
doc_count:
value_count:
field: "_id"
settings:
deduce_mappings: false
unattended: true
_meta:
managed: true
run_as_kibana_system: false
fleet_transform_version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- name: "@timestamp"
type: date
description: The timestamp.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
start: true
destination_index_template:
settings:
index:
mode: lookup
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
description: "Test transform that always runs and creates an index."
source:
index:
- ".ds-.logs-elasticsearch.deprecation-default-*"
dest:
index: test-foo-dest-index
frequency: 1m
sync:
time:
field: "@timestamp"
delay: 0s
pivot:
group_by:
"@timestamp":
date_histogram:
field: "@timestamp"
calendar_interval: 1d
aggregations:
doc_count:
value_count:
field: "_id"
settings:
deduce_mappings: false
unattended: true
_meta:
managed: true
run_as_kibana_system: false
fleet_transform_version: 0.1.0
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions test/packages/good_lookup_index/manifest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

format_version: 3.4.3
name: good_lookup_index
title: "good_lookup_index"
version: 0.1.4
description: "This package tests good_lookup_index"
type: integration
categories:
- cloud
- custom
conditions:
kibana:
version: "8.18.0"
elastic:
subscription: "basic"
owner:
github: elastic/customer-architects
type: elastic
3 changes: 3 additions & 0 deletions test/packages/good_lookup_index/validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
errors:
exclude_checks:
- SVR00002