Skip to content

Commit ca2cb5f

Browse files
YardenYarden
authored andcommitted
starting work on rule integrations data
1 parent fc69b5e commit ca2cb5f

File tree

6 files changed

+130
-78
lines changed

6 files changed

+130
-78
lines changed

x-pack/solutions/security/packages/siem-readiness/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export interface IndexInfo {
2121
}
2222

2323
export interface CategoryGroup {
24-
category: string;
24+
category: 'Endpoint' | 'Identity' | 'Network' | 'Cloud' | 'Application/SaaS';
2525
indices: IndexInfo[];
2626
}
2727

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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 { useCallback } from 'react';
9+
import { useKibana } from '../../common/lib/kibana';
10+
11+
interface CaseFlyoutParams {
12+
title: string;
13+
description: string;
14+
}
15+
16+
export const useSiemReadinessCases = () => {
17+
const { services } = useKibana();
18+
19+
const createNewSiemReadinessCaseFlyout = useCallback(
20+
({ title, description }: CaseFlyoutParams) => {
21+
const caseFlyout = services.cases.hooks.useCasesAddToNewCaseFlyout({
22+
initialValue: {
23+
title,
24+
description,
25+
},
26+
});
27+
28+
caseFlyout.open();
29+
},
30+
[services.cases]
31+
);
32+
33+
return {
34+
createNewSiemReadinessCaseFlyout,
35+
};
36+
};
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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 React from 'react';
9+
import { EuiText, EuiSpacer } from '@elastic/eui';
10+
import { i18n } from '@kbn/i18n';
11+
12+
export const ContinuityTab: React.FC = () => {
13+
return (
14+
<>
15+
<EuiSpacer size="m" />
16+
<EuiText>
17+
<p>
18+
{i18n.translate(
19+
'xpack.securitySolution.siemReadiness.visibility.continuity.tab.placeholder',
20+
{
21+
defaultMessage: 'Continuity tab content will be implemented here.',
22+
}
23+
)}
24+
</p>
25+
</EuiText>
26+
</>
27+
);
28+
};
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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 React from 'react';
9+
import { EuiText, EuiSpacer } from '@elastic/eui';
10+
import { i18n } from '@kbn/i18n';
11+
12+
export const QualityTab: React.FC = () => {
13+
return (
14+
<>
15+
<EuiSpacer size="m" />
16+
<EuiText>
17+
<p>
18+
{i18n.translate(
19+
'xpack.securitySolution.siemReadiness.visibility.quality.tab.placeholder',
20+
{
21+
defaultMessage: 'Quality tab content will be implemented here.',
22+
}
23+
)}
24+
</p>
25+
</EuiText>
26+
</>
27+
);
28+
};
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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 React from 'react';
9+
import { EuiText, EuiSpacer } from '@elastic/eui';
10+
import { i18n } from '@kbn/i18n';
11+
12+
export const RetentionTab: React.FC = () => {
13+
return (
14+
<>
15+
<EuiSpacer size="m" />
16+
<EuiText>
17+
<p>
18+
{i18n.translate(
19+
'xpack.securitySolution.siemReadiness.visibility.retention.tab.placeholder',
20+
{
21+
defaultMessage: 'Retention tab content will be implemented here.',
22+
}
23+
)}
24+
</p>
25+
</EuiText>
26+
</>
27+
);
28+
};

x-pack/solutions/security/plugins/security_solution/public/siem_readiness/pages/visibility_section_tabs.tsx

Lines changed: 9 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -6,87 +6,19 @@
66
*/
77

88
import React from 'react';
9-
import { EuiTabbedContent, EuiText, EuiSpacer, type EuiTabbedContentTab } from '@elastic/eui';
9+
import { EuiTabbedContent, type EuiTabbedContentTab } from '@elastic/eui';
1010
import { i18n } from '@kbn/i18n';
1111
import type { VisibilityTabId } from './visibility_section_boxes';
12+
import { CoverageTab } from './tabs/coverage/coverage_tab';
13+
import { QualityTab } from './tabs/quality/quality_tab';
14+
import { ContinuityTab } from './tabs/continuity/continuity_tab';
15+
import { RetentionTab } from './tabs/retention/retention_tab';
1216

1317
interface VisibilitySectionTabsProps {
1418
selectedTabId: VisibilityTabId;
1519
onTabSelect: (tabId: VisibilityTabId) => void;
1620
}
1721

18-
const CoverageTabContent: React.FC = () => {
19-
return (
20-
<>
21-
<EuiSpacer size="m" />
22-
<EuiText>
23-
<p>
24-
{i18n.translate(
25-
'xpack.securitySolution.siemReadiness.visibility.coverage.tab.placeholder',
26-
{
27-
defaultMessage: 'Coverage tab content will be implemented here.',
28-
}
29-
)}
30-
</p>
31-
</EuiText>
32-
</>
33-
);
34-
};
35-
36-
const QualityTabContent: React.FC = () => {
37-
return (
38-
<>
39-
<EuiSpacer size="m" />
40-
<EuiText>
41-
<p>
42-
{i18n.translate(
43-
'xpack.securitySolution.siemReadiness.visibility.quality.tab.placeholder',
44-
{
45-
defaultMessage: 'Quality tab content will be implemented here.',
46-
}
47-
)}
48-
</p>
49-
</EuiText>
50-
</>
51-
);
52-
};
53-
54-
const ContinuityTabContent: React.FC = () => {
55-
return (
56-
<>
57-
<EuiSpacer size="m" />
58-
<EuiText>
59-
<p>
60-
{i18n.translate(
61-
'xpack.securitySolution.siemReadiness.visibility.continuity.tab.placeholder',
62-
{
63-
defaultMessage: 'Continuity tab content will be implemented here.',
64-
}
65-
)}
66-
</p>
67-
</EuiText>
68-
</>
69-
);
70-
};
71-
72-
const RetentionTabContent: React.FC = () => {
73-
return (
74-
<>
75-
<EuiSpacer size="m" />
76-
<EuiText>
77-
<p>
78-
{i18n.translate(
79-
'xpack.securitySolution.siemReadiness.visibility.retention.tab.placeholder',
80-
{
81-
defaultMessage: 'Retention tab content will be implemented here.',
82-
}
83-
)}
84-
</p>
85-
</EuiText>
86-
</>
87-
);
88-
};
89-
9022
export const VisibilitySectionTabs: React.FC<VisibilitySectionTabsProps> = ({
9123
selectedTabId,
9224
onTabSelect,
@@ -97,28 +29,28 @@ export const VisibilitySectionTabs: React.FC<VisibilitySectionTabsProps> = ({
9729
name: i18n.translate('xpack.securitySolution.siemReadiness.visibility.coverage.tab.title', {
9830
defaultMessage: 'Coverage',
9931
}),
100-
content: <CoverageTabContent />,
32+
content: <CoverageTab />,
10133
},
10234
{
10335
id: 'quality',
10436
name: i18n.translate('xpack.securitySolution.siemReadiness.visibility.quality.tab.title', {
10537
defaultMessage: 'Quality',
10638
}),
107-
content: <QualityTabContent />,
39+
content: <QualityTab />,
10840
},
10941
{
11042
id: 'continuity',
11143
name: i18n.translate('xpack.securitySolution.siemReadiness.visibility.continuity.tab.title', {
11244
defaultMessage: 'Continuity',
11345
}),
114-
content: <ContinuityTabContent />,
46+
content: <ContinuityTab />,
11547
},
11648
{
11749
id: 'retention',
11850
name: i18n.translate('xpack.securitySolution.siemReadiness.visibility.retention.tab.title', {
11951
defaultMessage: 'Retention',
12052
}),
121-
content: <RetentionTabContent />,
53+
content: <RetentionTab />,
12254
},
12355
];
12456

0 commit comments

Comments
 (0)