[8.12] [SecuritySolutions] Code review improvements for PR 8038 (#172650) (#172817)

# Backport

This will backport the following commits from `main` to `8.12`:
- [[SecuritySolutions] Code review improvements for PR 8038
(#172650)](https://github.com/elastic/kibana/pull/172650)

<!--- Backport version: 8.9.7 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Pablo
Machado","email":"pablo.nevesmachado@elastic.co"},"sourceCommit":{"committedDate":"2023-12-07T13:36:03Z","message":"[SecuritySolutions]
Code review improvements for PR 8038 (#172650)\n\n## Summary\r\n\r\n*
Code review typescript improvements\r\n* Remove the tooltip that
increased bundle size by
2MB","sha":"356a5b4d436fd5819eecd652870345b19f852578","branchLabelMapping":{"^v8.13.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Threat
Hunting","backport:prev-minor","v8.12.0","Team:Entity
Analytics","v8.13.0"],"number":172650,"url":"https://github.com/elastic/kibana/pull/172650","mergeCommit":{"message":"[SecuritySolutions]
Code review improvements for PR 8038 (#172650)\n\n## Summary\r\n\r\n*
Code review typescript improvements\r\n* Remove the tooltip that
increased bundle size by
2MB","sha":"356a5b4d436fd5819eecd652870345b19f852578"}},"sourceBranch":"main","suggestedTargetBranches":["8.12"],"targetPullRequestStates":[{"branch":"8.12","label":"v8.12.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.13.0","labelRegex":"^v8.13.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/172650","number":172650,"mergeCommit":{"message":"[SecuritySolutions]
Code review improvements for PR 8038 (#172650)\n\n## Summary\r\n\r\n*
Code review typescript improvements\r\n* Remove the tooltip that
increased bundle size by
2MB","sha":"356a5b4d436fd5819eecd652870345b19f852578"}}]}] BACKPORT-->

Co-authored-by: Pablo Machado <pablo.nevesmachado@elastic.co>
This commit is contained in:
Kibana Machine 2023-12-07 09:55:05 -05:00 committed by GitHub
parent 857b1adbfb
commit 567187afa3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 18 additions and 47 deletions

View file

@ -25,6 +25,6 @@ export interface ManagedUserHit {
fields?: ManagedUserFields;
}
export type ManagedUserHits = Record<ManagedUserDatasetKey, ManagedUserHit | undefined>;
export type ManagedUserHits = Partial<Record<ManagedUserDatasetKey, ManagedUserHit>>;
export type ManagedUserFields = Record<string, SearchTypes[]>;

View file

@ -75,7 +75,6 @@ describe('UserDetailsContent', () => {
'@timestamp': [futureDay],
},
},
[ManagedUserDatasetKey.OKTA]: undefined,
},
},
}}
@ -126,10 +125,7 @@ describe('UserDetailsContent', () => {
...mockProps,
managedUser: {
...mockManagedUserData,
data: {
[ManagedUserDatasetKey.ENTRA]: undefined,
[ManagedUserDatasetKey.OKTA]: undefined,
},
data: {},
},
}}
/>

View file

@ -113,7 +113,6 @@ export const managedUserDetails: ManagedUserHits = {
_index: 'test-index',
_id: '123-test',
},
[ManagedUserDatasetKey.OKTA]: undefined,
};
export const mockManagedUserData: ManagedUserData = {

View file

@ -10,9 +10,7 @@ import React, { useCallback } from 'react';
import { head } from 'lodash/fp';
import { euiLightVars } from '@kbn/ui-theme';
import type { EuiBasicTableColumn } from '@elastic/eui';
import { EuiToolTip } from '@elastic/eui';
import { useDispatch } from 'react-redux';
import { EcsFlat } from '@kbn/ecs';
import { SourcererScopeName } from '../../../../common/store/sourcerer/model';
import { DefaultFieldRenderer } from '../../field_renderers/field_renderers';
import type {
@ -36,16 +34,14 @@ const fieldColumn: EuiBasicTableColumn<ObservedUserTable | ManagedUserTable> = {
name: i18n.FIELD_COLUMN_TITLE,
field: 'label',
render: (label: string, { field }) => (
<EuiToolTip content={EcsFlat[field as keyof typeof EcsFlat]?.short ?? field}>
<span
css={css`
font-weight: ${euiLightVars.euiFontWeightMedium};
color: ${euiLightVars.euiTitleColor};
`}
>
{label ?? field}
</span>
</EuiToolTip>
<span
css={css`
font-weight: ${euiLightVars.euiFontWeightMedium};
color: ${euiLightVars.euiTitleColor};
`}
>
{label ?? field}
</span>
),
};

View file

@ -7,7 +7,6 @@
import { useEffect, useMemo } from 'react';
import { useInstalledIntegrations } from '../../../../../detections/components/rules/related_integrations/use_installed_integrations';
import { ManagedUserDatasetKey } from '../../../../../../common/search_strategy/security_solution/users/managed_details';
import { UsersQueries } from '../../../../../../common/search_strategy';
import { useSpaceId } from '../../../../../common/hooks/use_space_id';
import { useSearchStrategy } from '../../../../../common/containers/use_search_strategy';
@ -37,10 +36,7 @@ export const useManagedUser = (userName: string, observedUser: ObserverUser) =>
} = useSearchStrategy<UsersQueries.managedDetails>({
factoryQueryType: UsersQueries.managedDetails,
initialResult: {
users: {
[ManagedUserDatasetKey.ENTRA]: undefined,
[ManagedUserDatasetKey.OKTA]: undefined,
},
users: {},
},
errorMessage: i18n.FAIL_MANAGED_USER,
});

View file

@ -108,7 +108,6 @@ describe('ManagedUser', () => {
managedUser: {
...mockManagedUserData,
data: {
[ManagedUserDatasetKey.ENTRA]: undefined,
[ManagedUserDatasetKey.OKTA]: {
fields: mockOktaUserFields,
_index: '123',

View file

@ -136,7 +136,7 @@ export const ManagedUser = ({
managedUser={oktaManagedUser.fields}
indexName={oktaManagedUser._index}
eventId={oktaManagedUser._id}
tableType={UserAssetTableType.assetEntra}
tableType={UserAssetTableType.assetOkta}
>
<ManagedUserTable
isDraggable={isDraggable}

View file

@ -16,15 +16,14 @@ import { buildManagedUserDetailsQuery } from './query.managed_user_details.dsl';
import type { UsersQueries } from '../../../../../../common/search_strategy/security_solution/users';
import type {
ManagedUserHits,
ManagedUserHit,
ManagedUserDetailsStrategyResponse,
ManagedUserFields,
ManagedUserDatasetKey,
} from '../../../../../../common/search_strategy/security_solution/users/managed_details';
import { ManagedUserDatasetKey } from '../../../../../../common/search_strategy/security_solution/users/managed_details';
interface ManagedUserBucket {
key: ManagedUserDatasetKey;
latest_hit: SearchResponse<ManagedUserFields | ManagedUserFields>;
latest_hit: SearchResponse<ManagedUserFields>;
}
export const managedUserDetails: SecuritySolutionFactory<UsersQueries.managedDetails> = {
@ -43,24 +42,10 @@ export const managedUserDetails: SecuritySolutionFactory<UsersQueries.managedDet
response.rawResponse
);
const managedUsers: ManagedUserHits = buckets.reduce(
(acc: ManagedUserHits, bucket: ManagedUserBucket) => {
acc[bucket.key] = bucket.latest_hit.hits.hits[0] as unknown as ManagedUserHit;
return acc;
},
{} as ManagedUserHits
);
if (buckets.length === 0) {
return {
...response,
inspect,
users: {
[ManagedUserDatasetKey.ENTRA]: undefined,
[ManagedUserDatasetKey.OKTA]: undefined,
},
};
}
const managedUsers = buckets.reduce<ManagedUserHits>((acc, bucket) => {
acc[bucket.key] = bucket.latest_hit.hits.hits[0];
return acc;
}, {});
return {
...response,