Skip to content

Commit 202dec7

Browse files
Enable send to background in TSVB (#82835)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
1 parent fdc1839 commit 202dec7

File tree

5 files changed

+22
-7
lines changed

5 files changed

+22
-7
lines changed

src/plugins/vis_type_timeseries/common/types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@
1818
*/
1919

2020
import { TypeOf } from '@kbn/config-schema';
21-
import { metricsItems, panel, seriesItems } from './vis_schema';
21+
import { metricsItems, panel, seriesItems, visPayloadSchema } from './vis_schema';
2222

2323
export type SeriesItemsSchema = TypeOf<typeof seriesItems>;
2424
export type MetricsItemsSchema = TypeOf<typeof metricsItems>;
2525
export type PanelSchema = TypeOf<typeof panel>;
26+
export type VisPayload = TypeOf<typeof visPayloadSchema>;

src/plugins/vis_type_timeseries/common/vis_schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,4 +273,5 @@ export const visPayloadSchema = schema.object({
273273
min: stringRequired,
274274
max: stringRequired,
275275
}),
276+
sessionId: schema.maybe(schema.string()),
276277
});

src/plugins/vis_type_timeseries/public/request_handler.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ export const metricsRequestHandler = async ({
3232
const config = getUISettings();
3333
const timezone = getTimezone(config);
3434
const uiStateObj = uiState.get(visParams.type, {});
35-
const parsedTimeRange = getDataStart().query.timefilter.timefilter.calculateBounds(timeRange);
35+
const dataSearch = getDataStart();
36+
const parsedTimeRange = dataSearch.query.timefilter.timefilter.calculateBounds(timeRange);
3637
const scaledDataFormat = config.get('dateFormat:scaled');
3738
const dateFormat = config.get('dateFormat');
3839

@@ -53,6 +54,7 @@ export const metricsRequestHandler = async ({
5354
panels: [visParams],
5455
state: uiStateObj,
5556
savedObjectId: savedObjectId || 'unsaved',
57+
sessionId: dataSearch.search.session.getSessionId(),
5658
}),
5759
});
5860

src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.test.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ describe('AbstractSearchStrategy', () => {
2828
beforeEach(() => {
2929
mockedFields = {};
3030
req = {
31+
payload: {},
3132
pre: {
3233
indexPatternsService: {
3334
getFieldsForWildcard: jest.fn().mockReturnValue(mockedFields),
@@ -60,6 +61,9 @@ describe('AbstractSearchStrategy', () => {
6061

6162
const responses = await abstractSearchStrategy.search(
6263
{
64+
payload: {
65+
sessionId: 1,
66+
},
6367
requestContext: {
6468
search: { search: searchFn },
6569
},
@@ -76,7 +80,9 @@ describe('AbstractSearchStrategy', () => {
7680
},
7781
indexType: undefined,
7882
},
79-
{}
83+
{
84+
sessionId: 1,
85+
}
8086
);
8187
});
8288
});

src/plugins/vis_type_timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,28 @@ import {
2323
IUiSettingsClient,
2424
SavedObjectsClientContract,
2525
} from 'kibana/server';
26+
2627
import { Framework } from '../../../plugin';
2728
import { IndexPatternsFetcher } from '../../../../../data/server';
29+
import { VisPayload } from '../../../../common/types';
2830

2931
/**
3032
* ReqFacade is a regular KibanaRequest object extended with additional service
3133
* references to ensure backwards compatibility for existing integrations.
3234
*
3335
* This will be replaced by standard KibanaRequest and RequestContext objects in a later version.
3436
*/
35-
export type ReqFacade = FakeRequest & {
37+
export interface ReqFacade<T = unknown> extends FakeRequest {
3638
requestContext: RequestHandlerContext;
3739
framework: Framework;
38-
payload: unknown;
40+
payload: T;
3941
pre: {
4042
indexPatternsService?: IndexPatternsFetcher;
4143
};
4244
getUiSettingsService: () => IUiSettingsClient;
4345
getSavedObjectsClient: () => SavedObjectsClientContract;
4446
getEsShardTimeout: () => Promise<number>;
45-
};
47+
}
4648

4749
export class AbstractSearchStrategy {
4850
public indexType?: string;
@@ -53,8 +55,10 @@ export class AbstractSearchStrategy {
5355
this.additionalParams = additionalParams;
5456
}
5557

56-
async search(req: ReqFacade, bodies: any[], options = {}) {
58+
async search(req: ReqFacade<VisPayload>, bodies: any[], options = {}) {
5759
const requests: any[] = [];
60+
const { sessionId } = req.payload;
61+
5862
bodies.forEach((body) => {
5963
requests.push(
6064
req.requestContext
@@ -67,6 +71,7 @@ export class AbstractSearchStrategy {
6771
indexType: this.indexType,
6872
},
6973
{
74+
sessionId,
7075
...options,
7176
}
7277
)

0 commit comments

Comments
 (0)