Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[data.search] Add user information to background session service #84975

Merged
merged 31 commits into from
Feb 13, 2021
Merged
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
4886819
[data.search] Move search method inside session service and add tests
lukasolson Dec 1, 2020
0de7730
Move background session service to data_enhanced plugin
lukasolson Dec 2, 2020
ec54b8b
Merge branch 'master' into search-session-search
lukasolson Dec 3, 2020
4ff6eaf
Merge branch 'search-session-search' into search-session-enhanced
lukasolson Dec 3, 2020
ea14d29
Fix types
lukasolson Dec 3, 2020
4ce9fef
Merge branch 'master' into search-session-enhanced
lukasolson Dec 3, 2020
d5a4bd0
[data.search] Add user information to background session service
lukasolson Dec 3, 2020
c0994fc
Update trackId & getId to accept user
lukasolson Dec 4, 2020
8fecf2b
Merge branch 'master' into search-session-user
lukasolson Dec 7, 2020
cc665d9
Fix remaining merge conflicts
lukasolson Dec 7, 2020
8de804b
Merge branch 'master' into search-session-user
lukasolson Jan 28, 2021
51fc5ca
Merge branch 'master' into search-session-user
lukasolson Jan 29, 2021
c3165ff
Fix test
lukasolson Jan 29, 2021
88f6d63
Merge branch 'master' into search-session-user
lukasolson Feb 1, 2021
9fefbea
Remove todos
lukasolson Feb 1, 2021
ca7956f
Merge branch 'master' into search-session-user
lukasolson Feb 1, 2021
18462ec
Merge branch 'master' into search-session-user
lukasolson Feb 2, 2021
530f41a
Merge branch 'master' into search-session-user
lukasolson Feb 3, 2021
83b640d
Merge branch 'master' into search-session-user
lukasolson Feb 4, 2021
00c564c
Merge branch 'master' into search-session-user
lukasolson Feb 5, 2021
f3abb42
Merge branch 'master' into search-session-user
lukasolson Feb 8, 2021
bc82023
Fix session service to use user
lukasolson Feb 9, 2021
879db30
Merge branch 'master' into search-session-user
lukasolson Feb 9, 2021
502b8e7
Remove user conflicts and update SO filter
lukasolson Feb 9, 2021
33d2784
Allow filter as string or KQL node
lukasolson Feb 10, 2021
993216a
Add back user checks
lukasolson Feb 11, 2021
f4d2eda
Merge branch 'master' into search-session-uset s:r
lukasolson Feb 11, 2021
0320c6e
Add API integration tests
lukasolson Feb 11, 2021
1396ff7
Merge branch 'master' into search-session-user
lukasolson Feb 11, 2021
faaeff6
Remove unnecessary get calls
lukasolson Feb 11, 2021
1905196
Merge branch 'master' into search-session-user
lukasolson Feb 12, 2021
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
Prev Previous commit
Next Next commit
Merge branch 'master' into search-session-user
lukasolson committed Feb 11, 2021
commit 1396ff7037a741d5e6c114469d754770191f7b28
Original file line number Diff line number Diff line change
@@ -845,15 +845,15 @@ describe('SearchSessionService', () => {
savedObjectsClient.update.mockResolvedValue(mockUpdateSavedObject);

await Promise.all([
service.trackId({ savedObjectsClient }, searchRequest1, searchId1, {
service.trackId({ savedObjectsClient }, mockUser1, searchRequest1, searchId1, {
sessionId: sessionId1,
strategy: MOCK_STRATEGY,
}),
service.trackId({ savedObjectsClient }, searchRequest2, searchId2, {
service.trackId({ savedObjectsClient }, mockUser1, searchRequest2, searchId2, {
sessionId: sessionId1,
strategy: MOCK_STRATEGY,
}),
service.trackId({ savedObjectsClient }, searchRequest3, searchId3, {
service.trackId({ savedObjectsClient }, mockUser1, searchRequest3, searchId3, {
sessionId: sessionId2,
strategy: MOCK_STRATEGY,
}),
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
*/

import { notFound } from '@hapi/boom';
import { debounce } from 'lodash';
import {
CoreSetup,
CoreStart,
@@ -54,6 +55,7 @@ const DEBOUNCE_UPDATE_OR_CREATE_MAX_WAIT = 5000;

interface UpdateOrCreateQueueEntry {
deps: SearchSessionDependencies;
user: AuthenticatedUser | null;
sessionId: string;
attributes: Partial<SearchSessionSavedObjectAttributes>;
resolve: () => void;
@@ -123,7 +125,12 @@ export class SearchSessionService

Object.keys(batchedSessionAttributes).forEach((sessionId) => {
const thisSession = queue.filter((s) => s.sessionId === sessionId);
this.updateOrCreate(thisSession[0].deps, sessionId, batchedSessionAttributes[sessionId])
this.updateOrCreate(
thisSession[0].deps,
thisSession[0].user,
sessionId,
batchedSessionAttributes[sessionId]
)
.then(() => {
thisSession.forEach((s) => s.resolve());
})
@@ -137,11 +144,12 @@ export class SearchSessionService
);
private scheduleUpdateOrCreate = (
deps: SearchSessionDependencies,
user: AuthenticatedUser | null,
sessionId: string,
attributes: Partial<SearchSessionSavedObjectAttributes>
): Promise<void> => {
return new Promise((resolve, reject) => {
this.updateOrCreateBatchQueue.push({ deps, sessionId, attributes, resolve, reject });
this.updateOrCreateBatchQueue.push({ deps, user, sessionId, attributes, resolve, reject });
// TODO: this would be better if we'd debounce per sessionId
this.processUpdateOrCreateBatchQueue();
});
@@ -378,7 +386,7 @@ export class SearchSessionService
idMapping = { [requestHash]: searchInfo };
}

await this.updateOrCreate(deps, user, sessionId, { idMapping });
await this.scheduleUpdateOrCreate(deps, user, sessionId, { idMapping });
};

public async getSearchIdMapping(
1 change: 1 addition & 0 deletions x-pack/test/api_integration/apis/search/session.ts
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@ export default function ({ getService }: FtrProviderContext) {
const supertest = getService('supertest');
const supertestWithoutAuth = getService('supertestWithoutAuth');
const security = getService('security');
const retry = getService('retry');

describe('search session', () => {
describe('session management', () => {
You are viewing a condensed version of this merge commit. You can view the full changes here.