Skip to content

Commit a99ed98

Browse files
Merge branch 'main' into synthetics-embeddable-schema-registration
2 parents 8f1bb77 + 6636fb6 commit a99ed98

128 files changed

Lines changed: 4364 additions & 1141 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/copilot-request-review.yml

Lines changed: 0 additions & 54 deletions
This file was deleted.

packages/kbn-check-saved-objects-cli/current_fields.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,8 +356,15 @@
356356
"error",
357357
"filter",
358358
"integrationName",
359+
"integrations",
360+
"integrations.syncData",
361+
"integrations.syncData.lastFullSync",
362+
"integrations.syncData.lastUpdateProcessed",
363+
"integrations.syncMarkerIndex",
359364
"managed",
365+
"managedVersion",
360366
"matchers",
367+
"matchersModifiedByUser",
361368
"name",
362369
"type"
363370
],

packages/kbn-check-saved-objects-cli/current_mappings.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,13 +1218,40 @@
12181218
"integrationName": {
12191219
"type": "keyword"
12201220
},
1221+
"integrations": {
1222+
"dynamic": false,
1223+
"properties": {
1224+
"syncData": {
1225+
"dynamic": false,
1226+
"properties": {
1227+
"lastFullSync": {
1228+
"type": "date"
1229+
},
1230+
"lastUpdateProcessed": {
1231+
"type": "date"
1232+
}
1233+
},
1234+
"type": "object"
1235+
},
1236+
"syncMarkerIndex": {
1237+
"type": "keyword"
1238+
}
1239+
},
1240+
"type": "object"
1241+
},
12211242
"managed": {
12221243
"type": "boolean"
12231244
},
1245+
"managedVersion": {
1246+
"type": "integer"
1247+
},
12241248
"matchers": {
12251249
"dynamic": false,
12261250
"type": "object"
12271251
},
1252+
"matchersModifiedByUser": {
1253+
"type": "boolean"
1254+
},
12281255
"name": {
12291256
"type": "keyword"
12301257
},
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{
2+
"10.1.0": [
3+
{
4+
"type": "entity-analytics-integration",
5+
"name": ".entity_analytics.monitoring.sources.entityanalytics_okta-default",
6+
"managed": true,
7+
"enabled": true,
8+
"integrationName": "entityanalytics_okta",
9+
"matchers": [
10+
{
11+
"fields": [
12+
"user.roles"
13+
],
14+
"values": [
15+
"Super Administrator",
16+
"Organization Administrator",
17+
"Group Administrator",
18+
"Application Administrator",
19+
"Mobile Administrator",
20+
"Help Desk Administrator",
21+
"Report Administrator",
22+
"API Access Management Administrator",
23+
"Group Membership Administrator",
24+
"Read-only Administrator"
25+
]
26+
}
27+
]
28+
}
29+
],
30+
"10.2.0": [
31+
{
32+
"type": "entity-analytics-integration",
33+
"name": ".entity_analytics.monitoring.sources.entityanalytics_okta-default",
34+
"managed": true,
35+
"enabled": true,
36+
"integrationName": "entityanalytics_okta",
37+
"matchers": [
38+
{
39+
"fields": ["user.roles"],
40+
"values": [
41+
"Super Administrator",
42+
"Organization Administrator",
43+
"Group Administrator",
44+
"Application Administrator",
45+
"Mobile Administrator",
46+
"Help Desk Administrator",
47+
"Report Administrator",
48+
"API Access Management Administrator",
49+
"Group Membership Administrator",
50+
"Read-only Administrator"
51+
]
52+
}
53+
],
54+
"matchersModifiedByUser": false,
55+
"managedVersion": 1
56+
}
57+
]
58+
}

src/core/packages/elasticsearch/server-internal/src/elasticsearch_config.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ test.skip('set correct defaults', () => {
7373
`);
7474
});
7575

76-
// FLAKY: https://github.com/elastic/kibana/issues/253373
77-
test.skip('set correct defaults (serverless)', () => {
76+
test('set correct defaults (serverless)', () => {
7877
const configValue = new ElasticsearchConfig(config.schema.validate({}, { serverless: true }));
7978
expect(configValue).toMatchInlineSnapshot(`
8079
ElasticsearchConfig {
@@ -84,6 +83,7 @@ test.skip('set correct defaults (serverless)', () => {
8483
"customHeaders": Object {},
8584
"dnsCacheTtl": "P0D",
8685
"healthCheckDelay": "PT2.5S",
86+
"healthCheckFailureInterval": undefined,
8787
"healthCheckRetry": 3,
8888
"healthCheckStartupDelay": "PT0.5S",
8989
"hosts": Array [

src/core/server/integration_tests/ci_checks/saved_objects/check_registered_types.test.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ describe('checking migration metadata changes on all registered SO types', () =>
9898
"endpoint:unified-user-artifact-manifest": "43de99c3d008e0b84173f63ee09936ba398c93ed3e18eabbd5792073a26b69b8",
9999
"endpoint:user-artifact-manifest": "eb81c7e7f4a32496d259521a9b5754a202fec4b139ef64c90ae3d777a3f217ee",
100100
"enterprise_search_telemetry": "14b8cb1ede45a76f5d7799867629de672a5c329b7af8165f0a5b3e88011a5d68",
101-
"entity-analytics-monitoring-entity-source": "9f4972290a0448ea33a699e257247a56288793b3ff604104252e6672f0cd6c63",
101+
"entity-analytics-monitoring-entity-source": "a7307895e5c38accc21ebea852bd46ef98ebb73f7a73d116c8dfcd3932f57899",
102102
"entity-definition": "28cde811da5815b6fdebb0112419b593253fb5053d60c2cf29b50af3be058c67",
103103
"entity-discovery-api-key": "2350e2ce1b6e913f55aef2cd04971b15604b03e049370ef10949c3eeec38c46f",
104104
"entity-engine-descriptor-v2": "9dd0f716e0726e3b04c5e8eb9d0c91c3217063fa458573b66bec3668b00e5f3f",
@@ -597,8 +597,9 @@ describe('checking migration metadata changes on all registered SO types', () =>
597597
"enterprise_search_telemetry|schemas: da39a3ee5e6b4b0d3255bfef95601890afd80709",
598598
"=============================================================================",
599599
"entity-analytics-monitoring-entity-source|global: 490d8737877bba3f6bad8e9a56977d402e5377fd",
600-
"entity-analytics-monitoring-entity-source|mappings: 4a0f773e6ee3a84d8a91d925adfc4426c6fe2202",
600+
"entity-analytics-monitoring-entity-source|mappings: 477d75d5cba5dedf5f392f794fb90dbc4d2ce5e0",
601601
"entity-analytics-monitoring-entity-source|schemas: da39a3ee5e6b4b0d3255bfef95601890afd80709",
602+
"entity-analytics-monitoring-entity-source|10.2.0: 4a17daaf7689a26d3a3383211fea3ed44e2766f7b9ef757a541f4cf161fc025f",
602603
"entity-analytics-monitoring-entity-source|10.1.0: 0bf95a609d2587fb1dea9c41fb320e50a58f46bc487ae7f4277f3cc34bd72e46",
603604
"==================================================================================================================",
604605
"entity-definition|global: 083b167687b1aaef9f6510a7601be70f1b1cbde0",
@@ -1359,7 +1360,7 @@ describe('checking migration metadata changes on all registered SO types', () =>
13591360
"endpoint:unified-user-artifact-manifest": "10.0.0",
13601361
"endpoint:user-artifact-manifest": "10.0.0",
13611362
"enterprise_search_telemetry": "10.0.0",
1362-
"entity-analytics-monitoring-entity-source": "10.1.0",
1363+
"entity-analytics-monitoring-entity-source": "10.2.0",
13631364
"entity-definition": "10.4.0",
13641365
"entity-discovery-api-key": "10.0.0",
13651366
"entity-engine-descriptor-v2": "10.1.0",
@@ -1514,7 +1515,7 @@ describe('checking migration metadata changes on all registered SO types', () =>
15141515
"endpoint:unified-user-artifact-manifest": "0.0.0",
15151516
"endpoint:user-artifact-manifest": "7.12.0",
15161517
"enterprise_search_telemetry": "0.0.0",
1517-
"entity-analytics-monitoring-entity-source": "10.1.0",
1518+
"entity-analytics-monitoring-entity-source": "10.2.0",
15181519
"entity-definition": "10.4.0",
15191520
"entity-discovery-api-key": "0.0.0",
15201521
"entity-engine-descriptor-v2": "10.1.0",

src/platform/packages/private/kbn-esql-editor/src/resource_browser/use_resource_browser_badge.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,19 @@ export const useSourcesBadge = ({
4949
color: ${euiTheme.colors.primary} !important;
5050
background-color: ${euiTheme.colors.backgroundBasePrimary} !important;
5151
box-sizing: border-box;
52+
transition: background-color ${euiTheme.animation.fast} ease-in-out,
53+
box-shadow ${euiTheme.animation.fast} ease-in-out;
54+
}
55+
56+
.${sourcesBadgeClassName}:hover {
57+
background-color: ${euiTheme.colors.backgroundLightPrimary} !important;
58+
}
59+
60+
/* Monaco decorations aren't keyboard-focusable DOM nodes, so we use the editor's
61+
* focus state to provide a "focus" treatment for the badge.
62+
*/
63+
.monaco-editor:focus-within .${sourcesBadgeClassName} {
64+
background-color: ${euiTheme.colors.backgroundLightPrimary} !important;
5265
}
5366
`;
5467

src/platform/packages/shared/kbn-esql-language/src/commands/definitions/utils/promql.ts

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { withAutoSuggest } from './autocomplete/helpers';
2424
import { isIdentifier, isList, isSource } from '../../../ast/is';
2525
import { SuggestionCategory } from '../../../language/autocomplete/utils/sorting';
2626
import { techPreviewLabel } from './shared';
27+
import { arithmeticOperators } from '../all_operators';
2728

2829
const INDEX_PARAM_REGEX = /\bindex\s*=\s*(\S+)/i;
2930

@@ -65,22 +66,22 @@ const getPromqlFunctionSuggestion = (fn: PromQLFunctionDefinition): ISuggestionI
6566
};
6667

6768
/* Returns all PROMQL function suggestions suitable for autocomplete. */
68-
export const getPromqlFunctionSuggestions = (): ISuggestionItem[] => {
69+
const buildPromqlFunctionSuggestions = (): ISuggestionItem[] => {
6970
return promqlFunctionDefinitions
7071
.filter((fn) => !fn.ignoreAsSuggestion)
7172
.map((fn) => withAutoSuggest(getPromqlFunctionSuggestion(fn)));
7273
};
7374

74-
export const getPromqlFunctionSuggestionsForReturnTypes = (
75-
returnTypes: PromQLFunctionParamType[]
75+
export const getPromqlFunctionSuggestions = (
76+
returnTypes: PromQLFunctionParamType[] = []
7677
): ISuggestionItem[] => {
7778
if (!returnTypes.length) {
78-
return getPromqlFunctionSuggestions();
79+
return buildPromqlFunctionSuggestions();
7980
}
8081

8182
const allowed = new Set(returnTypes);
8283

83-
return getPromqlFunctionSuggestions().filter((suggestion) => {
84+
return buildPromqlFunctionSuggestions().filter((suggestion) => {
8485
const definition = getPromqlFunctionDefinition(suggestion.label);
8586
if (!definition?.signatures.length) {
8687
return false;
@@ -102,6 +103,22 @@ export const getPromqlFunctionDefinition = (
102103
return promqlFunctionDefinitions.find((fn) => fn.name.toLowerCase() === normalized);
103104
};
104105

106+
/* Returns the PromQL operator definition matching the provided operator symbol. */
107+
export const getPromqlOperatorDefinition = (
108+
operator: string | undefined
109+
): PromQLFunctionDefinition | undefined => {
110+
if (!operator) {
111+
return undefined;
112+
}
113+
114+
const normalized = operator.toLowerCase();
115+
return promqlOperatorDefinitions.find(
116+
({ operator: symbol, name, signatures }) =>
117+
(symbol ?? name)?.toLowerCase() === normalized &&
118+
signatures.some(({ params }) => params.length >= 2)
119+
);
120+
};
121+
105122
/* Extracts param types for a specific PromQL function parameter index. */
106123
export function getPromqlParamTypesForFunction(
107124
name: string | undefined,
@@ -146,13 +163,37 @@ const buildPromqlSymbolSuggestion = (definition: PromQLFunctionDefinition): ISug
146163
};
147164
};
148165

149-
/* Returns all PromQL operator suggestions suitable for autocomplete. */
166+
// TODO: Temporarily limited to arithmetic operators. Remove filter when comparison and logical operators are fully supported.
150167
export const getPromqlOperatorSuggestions = (): ISuggestionItem[] => {
151168
return promqlOperatorDefinitions
152-
.filter((op) => !op.ignoreAsSuggestion)
169+
.filter((op) => {
170+
const symbol = op.operator ?? op.name;
171+
172+
return (
173+
!op.ignoreAsSuggestion &&
174+
op.signatures.some((sig) => sig.params.length >= 2) &&
175+
(arithmeticOperators.some(({ name }) => name === symbol) || symbol === '^')
176+
);
177+
})
153178
.map((op) => buildPromqlSymbolSuggestion(op));
154179
};
155180

181+
/* Extracts rhs param types for a PromQL binary operator from operator signatures. */
182+
export const getBinaryOperatorParamTypes = (
183+
operator: string,
184+
paramIndex: number
185+
): PromQLFunctionParamType[] => {
186+
const definition = getPromqlOperatorDefinition(operator);
187+
188+
if (!definition) {
189+
return [];
190+
}
191+
192+
return definition.signatures
193+
.map((signature) => signature.params[paramIndex]?.type)
194+
.filter((paramType): paramType is PromQLFunctionParamType => Boolean(paramType));
195+
};
196+
156197
/* Returns all PromQL label matcher suggestions suitable for autocomplete. */
157198
export const getPromqlLabelMatcherSuggestions = (): ISuggestionItem[] => {
158199
return promqlLabelMatcherDefinitions

src/platform/packages/shared/kbn-esql-language/src/commands/registry/complete_items.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,11 @@ export const promqlLabelSelectorItem: ISuggestionItem = withAutoSuggest({
211211
}),
212212
text: '{$0}',
213213
asSnippet: true,
214-
kind: 'Operator',
214+
kind: 'Reference',
215215
detail: i18n.translate('kbn-esql-language.esql.autocomplete.promql.labelSelectorDoc', {
216216
defaultMessage: 'Filter by labels',
217217
}),
218+
category: SuggestionCategory.PROMQL_METRIC_QUALIFIER,
218219
});
219220

220221
export const promqlRangeSelectorItem: ISuggestionItem = withAutoSuggest({
@@ -223,10 +224,11 @@ export const promqlRangeSelectorItem: ISuggestionItem = withAutoSuggest({
223224
}),
224225
text: '[${0:5m}]',
225226
asSnippet: true,
226-
kind: 'Operator',
227+
kind: 'Reference',
227228
detail: i18n.translate('kbn-esql-language.esql.autocomplete.promql.rangeSelectorDoc', {
228229
defaultMessage: 'Range selector (duration)',
229230
}),
231+
category: SuggestionCategory.PROMQL_METRIC_QUALIFIER,
230232
});
231233

232234
export const byCompleteItem: ISuggestionItem = withAutoSuggest({

0 commit comments

Comments
 (0)