Skip to content

Commit 0ca7758

Browse files
[9.2] [Cases] Add total events to mappings (#236539) (#239867)
# Backport This will backport the following commits from `main` to `9.2`: - [[Cases] Add total events to mappings (#236539)](#236539) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"lgestc","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-10-07T08:46:38Z","message":"[Cases] Add total events to mappings (#236539)\n\n## Summary\n\nThis PR adds total_events mapping to cases SO to enable filtering and\nsorting in the future.","sha":"1937eed65f14cb1974cd5ee69250844982e41f43","branchLabelMapping":{"^v9.3.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:version","v9.2.0","v9.3.0"],"title":"[Cases] Add total events to mappings","number":236539,"url":"https://github.com/elastic/kibana/pull/236539","mergeCommit":{"message":"[Cases] Add total events to mappings (#236539)\n\n## Summary\n\nThis PR adds total_events mapping to cases SO to enable filtering and\nsorting in the future.","sha":"1937eed65f14cb1974cd5ee69250844982e41f43"}},"sourceBranch":"main","suggestedTargetBranches":["9.2"],"targetPullRequestStates":[{"branch":"9.2","label":"v9.2.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.3.0","branchLabelMappingKey":"^v9.3.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/236539","number":236539,"mergeCommit":{"message":"[Cases] Add total events to mappings (#236539)\n\n## Summary\n\nThis PR adds total_events mapping to cases SO to enable filtering and\nsorting in the future.","sha":"1937eed65f14cb1974cd5ee69250844982e41f43"}}]}] BACKPORT--> Co-authored-by: lgestc <[email protected]>
1 parent 848f9ec commit 0ca7758

File tree

20 files changed

+108
-15
lines changed

20 files changed

+108
-15
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@
193193
"title",
194194
"total_alerts",
195195
"total_comments",
196+
"total_events",
196197
"updated_at",
197198
"updated_by",
198199
"updated_by.email",

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,6 +678,9 @@
678678
"total_comments": {
679679
"type": "integer"
680680
},
681+
"total_events": {
682+
"type": "integer"
683+
},
681684
"updated_at": {
682685
"type": "date"
683686
},

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ describe('checking migration metadata changes on all registered SO types', () =>
7979
"canvas-element": "288fd8d216eb49cbeb5e8f7491f207ef074b80dd",
8080
"canvas-workpad": "5cd605383a100a27941cca6cbf2d954aa96a16e2",
8181
"canvas-workpad-template": "f9a6ffab76ddfcd8fa3823002aa576c8f1d0e686",
82-
"cases": "cd5fa06dcdbe902d3647666a10e16b233810d0e4",
82+
"cases": "c34745b9dd413fd9b76a23e0ceacd70269a4573b",
8383
"cases-comments": "235311d14fbba84faf8ce1f32c31ddb3a435bacb",
8484
"cases-configure": "66d4c64d83b464f5166005b8ffa03b721fcaaf8b",
8585
"cases-connector-mappings": "877bb4d52e9821e330622bd75fba799490ec6952",
@@ -406,13 +406,14 @@ describe('checking migration metadata changes on all registered SO types', () =>
406406
"canvas-workpad-template|warning: The SO type owner should ensure these transform functions DO NOT mutate after they are defined.",
407407
"================================================================================================================================",
408408
"cases|global: 58923536ede82aed6c22799b52c4f51f4bf66aba",
409-
"cases|mappings: 8531977e6b164e1d0072a24c84e390beedb5756f",
409+
"cases|mappings: 81a027f6cdf8ba835338e5cdf9db0bc6b137f2d0",
410410
"cases|schemas: da39a3ee5e6b4b0d3255bfef95601890afd80709",
411-
"cases|10.5.0: 566d7b907e87be36f8cac8152d2f721bf91bcead",
412-
"cases|10.4.0: 3b1d7eee41677f6b5e78b5d3b6108e6c12ae0222",
413-
"cases|10.3.0: e75b333589e368f47fb160e6dd01200590e3c313",
414-
"cases|10.2.0: bf34bde323a6d193f85d11a9ca87d52263beace6",
415-
"cases|10.1.0: 2084c62dbe41da4fa3560ff80fe37af3bc0cc15c",
411+
"cases|10.6.0: 5837259ab25e4059141fce980a861f0ba977d8a2",
412+
"cases|10.5.0: 3c7812d675d4223c11969bb1b49a4cc626c1bd1f",
413+
"cases|10.4.0: b228632dfb5a8cae50f82c4b0fe78305fa6d1fdd",
414+
"cases|10.3.0: 6bf633e6147007b80adfe8da94b3e57d6004a803",
415+
"cases|10.2.0: 9b3de0b9947e9d6bfb5d63ea9d5e9df9afca2601",
416+
"cases|10.1.0: 932fb3a37b3346e4c6bb6ad78dc3c0fd323b858f",
416417
"cases|8.7.0: 54c152a2584673672445346cf69d72bda587cc52",
417418
"cases|8.5.0: a2c0c0dcdbac64d71ddb583dc02e83aa760eb784",
418419
"cases|8.3.0: 09aaac909eff1a6a2d944aa6c1dd297dda05b5ce",
@@ -1262,7 +1263,7 @@ describe('checking migration metadata changes on all registered SO types', () =>
12621263
"canvas-element": "10.0.0",
12631264
"canvas-workpad": "10.0.0",
12641265
"canvas-workpad-template": "10.0.0",
1265-
"cases": "10.5.0",
1266+
"cases": "10.6.0",
12661267
"cases-comments": "10.1.0",
12671268
"cases-configure": "10.0.0",
12681269
"cases-connector-mappings": "10.0.0",
@@ -1409,7 +1410,7 @@ describe('checking migration metadata changes on all registered SO types', () =>
14091410
"canvas-element": "8.9.0",
14101411
"canvas-workpad": "8.9.0",
14111412
"canvas-workpad-template": "8.9.0",
1412-
"cases": "10.5.0",
1413+
"cases": "10.6.0",
14131414
"cases-comments": "10.1.0",
14141415
"cases-configure": "7.15.0",
14151416
"cases-connector-mappings": "7.14.0",

x-pack/platform/plugins/shared/cases/common/types/domain/case/v1.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ export const CaseRt = rt.intersection([
151151
id: rt.string,
152152
totalComment: rt.number,
153153
totalAlerts: rt.number,
154-
totalEvents: rt.number,
154+
totalEvents: rt.union([rt.number, rt.undefined]),
155155
version: rt.string,
156156
}),
157157
rt.exact(

x-pack/platform/plugins/shared/cases/server/common/types/case.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export interface CasePersistedAttributes {
4646
title: string;
4747
total_alerts: number;
4848
total_comments: number;
49+
total_events?: number;
4950
updated_at: string | null;
5051
updated_by: User | null;
5152
category?: string | null;

x-pack/platform/plugins/shared/cases/server/saved_object_types/cases/cases.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
modelVersion3,
2424
modelVersion4,
2525
modelVersion5,
26+
modelVersion6,
2627
} from './model_versions';
2728
import { handleImport } from '../import_export/import';
2829

@@ -199,6 +200,9 @@ export const createCaseSavedObjectType = (
199200
total_comments: {
200201
type: 'integer',
201202
},
203+
total_events: {
204+
type: 'integer',
205+
},
202206
category: {
203207
type: 'keyword',
204208
},
@@ -268,6 +272,7 @@ export const createCaseSavedObjectType = (
268272
3: modelVersion3,
269273
4: modelVersion4,
270274
5: modelVersion5,
275+
6: modelVersion6,
271276
},
272277
management: {
273278
importableAndExportable: true,

x-pack/platform/plugins/shared/cases/server/saved_object_types/cases/model_versions/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ export { modelVersion2 } from './model_version_2';
1010
export { modelVersion3 } from './model_version_3';
1111
export { modelVersion4 } from './model_version_4';
1212
export { modelVersion5 } from './model_version_5';
13+
export { modelVersion6 } from './model_version_6';
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License
4+
* 2.0; you may not use this file except in compliance with the Elastic License
5+
* 2.0.
6+
*/
7+
8+
import type { SavedObjectsModelVersion } from '@kbn/core-saved-objects-server';
9+
import { casesSchemaV6 } from '../schemas';
10+
11+
/**
12+
* Adds the total_events field to the cases SO.
13+
*/
14+
export const modelVersion6: SavedObjectsModelVersion = {
15+
changes: [
16+
{
17+
type: 'mappings_addition',
18+
addedMappings: {
19+
total_events: {
20+
type: 'integer',
21+
},
22+
},
23+
},
24+
{
25+
type: 'data_backfill',
26+
backfillFn: (_doc) => {
27+
return { attributes: { total_events: 0 } };
28+
},
29+
},
30+
],
31+
schemas: {
32+
forwardCompatibility: casesSchemaV6.extends({}, { unknowns: 'ignore' }),
33+
},
34+
};

x-pack/platform/plugins/shared/cases/server/saved_object_types/cases/model_versions/model_versions.test.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@
55
* 2.0.
66
*/
77

8-
import { modelVersion1, modelVersion2, modelVersion3, modelVersion4, modelVersion5 } from '.';
8+
import {
9+
modelVersion1,
10+
modelVersion2,
11+
modelVersion3,
12+
modelVersion4,
13+
modelVersion5,
14+
modelVersion6,
15+
} from '.';
916

1017
describe('Model versions', () => {
1118
describe('version 1', () => {
@@ -156,4 +163,25 @@ describe('Model versions', () => {
156163
`);
157164
});
158165
});
166+
167+
describe('version 6', () => {
168+
it('returns version 6 changes correctly', () => {
169+
expect(modelVersion6.changes).toMatchInlineSnapshot(`
170+
Array [
171+
Object {
172+
"addedMappings": Object {
173+
"total_events": Object {
174+
"type": "integer",
175+
},
176+
},
177+
"type": "mappings_addition",
178+
},
179+
Object {
180+
"backfillFn": [Function],
181+
"type": "data_backfill",
182+
},
183+
]
184+
`);
185+
});
186+
});
159187
});

x-pack/platform/plugins/shared/cases/server/saved_object_types/cases/schemas/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ export { casesSchema as casesSchemaV2 } from './v2';
1212
export { casesSchema as casesSchemaV3 } from './v3';
1313
export { casesSchema as casesSchemaV4 } from './v4';
1414
export { casesSchema as casesSchemaV5 } from './v5';
15+
export { casesSchema as casesSchemaV6 } from './v6';

0 commit comments

Comments
 (0)