@cccsaurora/howler-ui 2.18.0-dev.667 → 2.18.0-dev.674
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/index.d.ts +2 -0
- package/api/index.js +4 -2
- package/api/search/case.d.ts +4 -0
- package/api/search/case.js +8 -0
- package/api/search/index.d.ts +2 -1
- package/api/search/index.js +2 -1
- package/api/v2/case/index.d.ts +6 -0
- package/api/v2/case/index.js +18 -0
- package/api/v2/index.d.ts +4 -0
- package/api/v2/index.js +6 -0
- package/api/v2/search/facet.d.ts +3 -0
- package/api/v2/search/facet.js +12 -0
- package/api/v2/search/index.d.ts +5 -0
- package/api/v2/search/index.js +24 -0
- package/commons/components/leftnav/LeftNavDrawer.js +1 -1
- package/components/app/App.js +34 -7
- package/components/app/hooks/useMatchers.js +2 -2
- package/components/app/hooks/useMatchers.test.js +22 -22
- package/components/app/hooks/useTitle.js +3 -3
- package/components/app/providers/FavouritesProvider.js +2 -2
- package/components/app/providers/ParameterProvider.d.ts +9 -2
- package/components/app/providers/ParameterProvider.js +165 -240
- package/components/app/providers/ParameterProvider.test.js +307 -14
- package/components/app/providers/RecordProvider.d.ts +23 -0
- package/components/app/providers/{HitProvider.js → RecordProvider.js} +41 -41
- package/components/app/providers/{HitSearchProvider.d.ts → RecordSearchProvider.d.ts} +6 -6
- package/components/app/providers/{HitSearchProvider.js → RecordSearchProvider.js} +12 -17
- package/components/app/providers/{HitSearchProvider.test.js → RecordSearchProvider.test.js} +51 -70
- package/components/elements/ContextMenu.d.ts +56 -0
- package/components/elements/ContextMenu.js +109 -0
- package/components/elements/ContextMenu.test.js +215 -0
- package/components/{routes/overviews/OverviewEditor.js → elements/MarkdownEditor.js} +3 -3
- package/components/elements/ObjectDetails.d.ts +6 -0
- package/components/elements/{hit/HitDetails.js → ObjectDetails.js} +17 -17
- package/components/elements/PluginTypography.d.ts +2 -1
- package/components/elements/PluginTypography.js +3 -2
- package/components/elements/UserList.d.ts +5 -2
- package/components/elements/UserList.js +14 -5
- package/components/elements/addons/search/phrase/Phrase.js +1 -1
- package/components/elements/case/CaseCard.d.ts +8 -0
- package/components/elements/case/CaseCard.js +39 -0
- package/components/elements/case/CasePreview.d.ts +6 -0
- package/components/elements/case/CasePreview.js +17 -0
- package/components/elements/case/StatusIcon.d.ts +5 -0
- package/components/elements/case/StatusIcon.js +13 -0
- package/components/elements/display/ChipPopper.d.ts +1 -1
- package/components/elements/display/HowlerCard.js +1 -1
- package/components/elements/display/Modal.js +1 -0
- package/components/elements/hit/HitActions.js +4 -4
- package/components/elements/hit/HitBanner.js +28 -48
- package/components/elements/hit/HitCard.js +5 -5
- package/components/elements/hit/HitLabels.js +2 -2
- package/components/elements/hit/{HitQuickSearch.d.ts → HitPreview.d.ts} +3 -3
- package/components/elements/hit/{HitQuickSearch.js → HitPreview.js} +10 -4
- package/components/elements/hit/HitSummary.d.ts +2 -1
- package/components/elements/hit/HitSummary.js +6 -5
- package/components/elements/hit/aggregate/HitGraph.js +8 -8
- package/components/elements/hit/elements/AnalyticLink.d.ts +8 -0
- package/components/elements/hit/elements/AnalyticLink.js +22 -0
- package/components/elements/hit/outlines/DefaultOutline.js +1 -1
- package/components/elements/hit/related/RelatedRecords.js +63 -0
- package/components/elements/observable/ObservableCard.d.ts +6 -0
- package/components/elements/observable/ObservableCard.js +23 -0
- package/components/elements/observable/ObservablePreview.d.ts +6 -0
- package/components/elements/observable/ObservablePreview.js +12 -0
- package/components/elements/{hit/HitComments.d.ts → record/RecordComments.d.ts} +5 -4
- package/components/elements/{hit/HitComments.js → record/RecordComments.js} +29 -28
- package/components/{routes/hits/search/HitContextMenu.d.ts → elements/record/RecordContextMenu.d.ts} +3 -3
- package/components/elements/record/RecordContextMenu.js +235 -0
- package/components/elements/record/RecordContextMenu.test.d.ts +1 -0
- package/components/{routes/hits/search/HitContextMenu.test.js → elements/record/RecordContextMenu.test.js} +39 -39
- package/components/elements/record/RecordRelated.d.ts +7 -0
- package/components/elements/record/RecordRelated.js +34 -0
- package/components/elements/{hit/HitWorklog.d.ts → record/RecordWorklog.d.ts} +4 -3
- package/components/elements/{hit/HitWorklog.js → record/RecordWorklog.js} +15 -13
- package/components/elements/view/ViewTitle.js +1 -1
- package/components/hooks/useHitActions.d.ts +1 -1
- package/components/hooks/useHitActions.js +4 -4
- package/components/hooks/useMyPreferences.js +10 -1
- package/components/hooks/useMySearch.js +2 -2
- package/components/hooks/useMySitemap.js +4 -1
- package/components/hooks/useMyTheme.js +9 -2
- package/components/hooks/useParamState.test.js +3 -4
- package/components/hooks/{useHitSelection.d.ts → useRecordSelection.d.ts} +2 -2
- package/components/hooks/{useHitSelection.js → useRecordSelection.js} +12 -33
- package/components/hooks/useRelatedRecords.d.ts +13 -0
- package/components/hooks/useRelatedRecords.js +32 -0
- package/components/routes/action/edit/ActionEditor.js +2 -2
- package/components/routes/action/view/ActionSearch.js +1 -1
- package/components/routes/advanced/QueryBuilder.js +1 -1
- package/components/routes/advanced/QueryEditor.js +3 -3
- package/components/routes/advanced/historyCompletionProvider.js +3 -3
- package/components/routes/analytics/AnalyticDetails.js +2 -2
- package/components/routes/analytics/AnalyticSearch.js +1 -1
- package/components/routes/cases/CaseViewer.d.ts +2 -0
- package/components/routes/cases/CaseViewer.js +22 -0
- package/components/routes/cases/Cases.d.ts +2 -0
- package/components/routes/cases/Cases.js +101 -0
- package/components/routes/cases/constants.d.ts +5 -0
- package/components/routes/cases/constants.js +5 -0
- package/components/routes/cases/detail/AlertPanel.d.ts +6 -0
- package/components/routes/cases/detail/AlertPanel.js +33 -0
- package/components/routes/cases/detail/CaseAssets.d.ts +12 -0
- package/components/routes/cases/detail/CaseAssets.js +101 -0
- package/components/routes/cases/detail/CaseAssets.test.d.ts +1 -0
- package/components/routes/cases/detail/CaseAssets.test.js +163 -0
- package/components/routes/cases/detail/CaseDashboard.d.ts +7 -0
- package/components/routes/cases/detail/CaseDashboard.js +51 -0
- package/components/routes/cases/detail/CaseDetails.d.ts +6 -0
- package/components/routes/cases/detail/CaseDetails.js +61 -0
- package/components/routes/cases/detail/CaseOverview.d.ts +7 -0
- package/components/routes/cases/detail/CaseOverview.js +43 -0
- package/components/routes/cases/detail/CaseSidebar.d.ts +6 -0
- package/components/routes/cases/detail/CaseSidebar.js +61 -0
- package/components/routes/cases/detail/CaseTask.d.ts +11 -0
- package/components/routes/cases/detail/CaseTask.js +57 -0
- package/components/routes/cases/detail/ItemPage.d.ts +6 -0
- package/components/routes/cases/detail/ItemPage.js +99 -0
- package/components/routes/cases/detail/RelatedCasePanel.d.ts +6 -0
- package/components/routes/cases/detail/RelatedCasePanel.js +31 -0
- package/components/routes/cases/detail/TaskPanel.d.ts +7 -0
- package/components/routes/cases/detail/TaskPanel.js +52 -0
- package/components/routes/cases/detail/aggregates/CaseAggregate.d.ts +12 -0
- package/components/routes/cases/detail/aggregates/CaseAggregate.js +19 -0
- package/components/routes/cases/detail/aggregates/SourceAggregate.d.ts +6 -0
- package/components/routes/cases/detail/aggregates/SourceAggregate.js +27 -0
- package/components/routes/cases/detail/assets/Asset.d.ts +14 -0
- package/components/routes/cases/detail/assets/Asset.js +12 -0
- package/components/routes/cases/detail/assets/Asset.test.d.ts +1 -0
- package/components/routes/cases/detail/assets/Asset.test.js +72 -0
- package/components/routes/cases/detail/sidebar/CaseFolder.d.ts +13 -0
- package/components/routes/cases/detail/sidebar/CaseFolder.js +131 -0
- package/components/routes/cases/detail/sidebar/types.d.ts +3 -0
- package/components/routes/cases/detail/sidebar/utils.d.ts +3 -0
- package/components/routes/cases/detail/sidebar/utils.js +25 -0
- package/components/routes/cases/hooks/useCase.d.ts +13 -0
- package/components/routes/cases/hooks/useCase.js +38 -0
- package/components/routes/cases/modals/ResolveModal.d.ts +7 -0
- package/components/routes/cases/modals/ResolveModal.js +59 -0
- package/components/routes/dossiers/DossierEditor.js +2 -2
- package/components/routes/dossiers/DossierEditor.test.js +1 -1
- package/components/routes/help/ApiDocumentation.js +1 -1
- package/components/routes/help/HitBannerDocumentation.js +1 -0
- package/components/routes/help/HitDocumentation.js +1 -3
- package/components/routes/hits/search/InformationPane.d.ts +1 -0
- package/components/routes/hits/search/InformationPane.js +47 -60
- package/components/routes/hits/search/LayoutSettings.js +3 -3
- package/components/routes/hits/search/QuerySettings.js +2 -1
- package/components/routes/hits/search/QuerySettings.test.js +14 -9
- package/components/routes/hits/search/{HitBrowser.js → RecordBrowser.js} +9 -9
- package/components/routes/hits/search/{HitQuery.d.ts → RecordQuery.d.ts} +2 -2
- package/components/routes/hits/search/{HitQuery.js → RecordQuery.js} +6 -6
- package/components/routes/hits/search/SearchPane.js +26 -49
- package/components/routes/hits/search/ViewLink.js +3 -3
- package/components/routes/hits/search/ViewLink.test.js +8 -8
- package/components/routes/hits/search/grid/AddColumnModal.js +5 -4
- package/components/routes/hits/search/grid/EnhancedCell.d.ts +2 -1
- package/components/routes/hits/search/grid/EnhancedCell.js +2 -2
- package/components/routes/hits/search/grid/HitGrid.js +20 -18
- package/components/routes/hits/search/grid/{HitRow.d.ts → RecordRow.d.ts} +3 -2
- package/components/routes/hits/search/grid/{HitRow.js → RecordRow.js} +10 -8
- package/components/routes/hits/search/shared/IndexPicker.d.ts +2 -0
- package/components/routes/hits/search/shared/IndexPicker.js +20 -0
- package/components/routes/hits/view/HitViewer.js +12 -13
- package/components/routes/home/ViewCard.js +4 -4
- package/components/routes/observables/ObservableViewer.d.ts +7 -0
- package/components/routes/observables/ObservableViewer.js +27 -0
- package/components/routes/overviews/OverviewViewer.js +2 -2
- package/components/routes/views/ViewComposer.js +4 -4
- package/locales/en/translation.json +65 -3
- package/locales/fr/translation.json +63 -3
- package/models/WithMetadata.d.ts +2 -1
- package/models/entities/generated/AttachmentsFile.d.ts +12 -0
- package/models/entities/generated/Case.d.ts +28 -0
- package/models/entities/generated/DestinationOriginal.d.ts +19 -0
- package/models/entities/generated/EmailAttachment.d.ts +8 -0
- package/models/entities/generated/EmailParent.d.ts +19 -0
- package/models/entities/generated/Enrichments.d.ts +7 -0
- package/models/entities/generated/EnrichmentsIndicator.d.ts +21 -0
- package/models/entities/generated/Hit.d.ts +1 -0
- package/models/entities/generated/Howler.d.ts +0 -4
- package/models/entities/generated/HttpResponse.d.ts +11 -0
- package/models/entities/generated/Item.d.ts +9 -0
- package/models/entities/generated/Observable.d.ts +85 -0
- package/models/entities/generated/ObservableCloud.d.ts +20 -0
- package/models/entities/generated/ObservableDestination.d.ts +23 -0
- package/models/entities/generated/ObservableEmail.d.ts +30 -0
- package/models/entities/generated/ObservableFile.d.ts +36 -0
- package/models/entities/generated/ObservableHowler.d.ts +43 -0
- package/models/entities/generated/ObservableHttp.d.ts +11 -0
- package/models/entities/generated/ObservableObserver.d.ts +21 -0
- package/models/entities/generated/ObservableOrganization.d.ts +7 -0
- package/models/entities/generated/ObservableProcess.d.ts +34 -0
- package/models/entities/generated/ObservableSource.d.ts +23 -0
- package/models/entities/generated/ObservableThreat.d.ts +21 -0
- package/models/entities/generated/ObservableTls.d.ts +12 -0
- package/models/entities/generated/ObserverIngress.d.ts +9 -0
- package/models/entities/generated/Rule.d.ts +2 -10
- package/models/entities/generated/Task.d.ts +10 -0
- package/models/entities/generated/Threat.d.ts +2 -2
- package/models/entities/generated/{Enrichment.d.ts → ThreatEnrichment.d.ts} +1 -1
- package/package.json +18 -1
- package/plugins/clue/components/ClueTypography.js +2 -2
- package/plugins/clue/utils.d.ts +2 -1
- package/tests/utils.d.ts +2 -0
- package/tests/utils.js +8 -0
- package/utils/constants.d.ts +3 -3
- package/utils/hitFunctions.d.ts +2 -1
- package/utils/hitFunctions.js +4 -4
- package/utils/typeUtils.d.ts +7 -0
- package/utils/typeUtils.js +27 -0
- package/components/app/providers/HitProvider.d.ts +0 -22
- package/components/elements/display/icons/BundleButton.d.ts +0 -6
- package/components/elements/display/icons/BundleButton.js +0 -32
- package/components/elements/hit/HitRelated.d.ts +0 -6
- package/components/elements/hit/HitRelated.js +0 -7
- package/components/routes/help/BundleDocumentation.d.ts +0 -3
- package/components/routes/help/BundleDocumentation.js +0 -12
- package/components/routes/help/markdown/en/bundles.md.js +0 -1
- package/components/routes/help/markdown/fr/bundles.md.js +0 -1
- package/components/routes/hits/search/BundleParentMenu.d.ts +0 -6
- package/components/routes/hits/search/BundleParentMenu.js +0 -32
- package/components/routes/hits/search/BundleScroller.d.ts +0 -2
- package/components/routes/hits/search/BundleScroller.js +0 -6
- package/components/routes/hits/search/HitContextMenu.js +0 -227
- /package/components/app/providers/{HitSearchProvider.test.d.ts → RecordSearchProvider.test.d.ts} +0 -0
- /package/components/{routes/hits/search/HitContextMenu.test.d.ts → elements/ContextMenu.test.d.ts} +0 -0
- /package/components/{routes/overviews/OverviewEditor.d.ts → elements/MarkdownEditor.d.ts} +0 -0
- /package/components/elements/hit/{HitDetails.d.ts → related/RelatedRecords.d.ts} +0 -0
- /package/components/routes/hits/search/{HitBrowser.d.ts → RecordBrowser.d.ts} +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { Agent } from './Agent';
|
|
2
|
+
import type { Assemblyline } from './Assemblyline';
|
|
3
|
+
import type { Aws } from './Aws';
|
|
4
|
+
import type { Azure } from './Azure';
|
|
5
|
+
import type { Cbs } from './Cbs';
|
|
6
|
+
import type { Clue } from './Clue';
|
|
7
|
+
import type { Container } from './Container';
|
|
8
|
+
import type { Dns } from './Dns';
|
|
9
|
+
import type { Ecs } from './Ecs';
|
|
10
|
+
import type { Error } from './Error';
|
|
11
|
+
import type { Event } from './Event';
|
|
12
|
+
import type { Faas } from './Faas';
|
|
13
|
+
import type { Gcp } from './Gcp';
|
|
14
|
+
import type { Group } from './Group';
|
|
15
|
+
import type { Host } from './Host';
|
|
16
|
+
import type { Interface } from './Interface';
|
|
17
|
+
import type { Network } from './Network';
|
|
18
|
+
import type { ObservableCloud } from './ObservableCloud';
|
|
19
|
+
import type { ObservableDestination } from './ObservableDestination';
|
|
20
|
+
import type { ObservableEmail } from './ObservableEmail';
|
|
21
|
+
import type { ObservableFile } from './ObservableFile';
|
|
22
|
+
import type { ObservableHowler } from './ObservableHowler';
|
|
23
|
+
import type { ObservableHttp } from './ObservableHttp';
|
|
24
|
+
import type { ObservableObserver } from './ObservableObserver';
|
|
25
|
+
import type { ObservableOrganization } from './ObservableOrganization';
|
|
26
|
+
import type { ObservableProcess } from './ObservableProcess';
|
|
27
|
+
import type { ObservableSource } from './ObservableSource';
|
|
28
|
+
import type { ObservableThreat } from './ObservableThreat';
|
|
29
|
+
import type { ObservableTls } from './ObservableTls';
|
|
30
|
+
import type { Registry } from './Registry';
|
|
31
|
+
import type { Related } from './Related';
|
|
32
|
+
import type { Rule } from './Rule';
|
|
33
|
+
import type { Server } from './Server';
|
|
34
|
+
import type { Url } from './Url';
|
|
35
|
+
import type { User } from './User';
|
|
36
|
+
import type { UserAgent } from './UserAgent';
|
|
37
|
+
import type { Vulnerability } from './Vulnerability';
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
41
|
+
*/
|
|
42
|
+
export interface Observable {
|
|
43
|
+
__index: 'observable';
|
|
44
|
+
agent?: Agent;
|
|
45
|
+
assemblyline?: Assemblyline;
|
|
46
|
+
aws?: Aws;
|
|
47
|
+
azure?: Azure;
|
|
48
|
+
cbs?: Cbs;
|
|
49
|
+
cloud?: ObservableCloud;
|
|
50
|
+
clue?: Clue;
|
|
51
|
+
container?: Container;
|
|
52
|
+
destination?: ObservableDestination;
|
|
53
|
+
dns?: Dns;
|
|
54
|
+
ecs?: Ecs;
|
|
55
|
+
email?: ObservableEmail;
|
|
56
|
+
error?: Error;
|
|
57
|
+
event?: Event;
|
|
58
|
+
faas?: Faas;
|
|
59
|
+
file?: ObservableFile;
|
|
60
|
+
gcp?: Gcp;
|
|
61
|
+
group?: Group;
|
|
62
|
+
host?: Host;
|
|
63
|
+
howler: ObservableHowler;
|
|
64
|
+
http?: ObservableHttp;
|
|
65
|
+
interface?: Interface;
|
|
66
|
+
labels?: { [index: string]: string };
|
|
67
|
+
message?: string;
|
|
68
|
+
network?: Network;
|
|
69
|
+
observer?: ObservableObserver;
|
|
70
|
+
organization?: ObservableOrganization;
|
|
71
|
+
process?: ObservableProcess;
|
|
72
|
+
registry?: Registry;
|
|
73
|
+
related?: Related;
|
|
74
|
+
rule?: Rule;
|
|
75
|
+
server?: Server;
|
|
76
|
+
source?: ObservableSource;
|
|
77
|
+
tags?: string[];
|
|
78
|
+
threat?: ObservableThreat;
|
|
79
|
+
timestamp: string;
|
|
80
|
+
tls?: ObservableTls;
|
|
81
|
+
url?: Url;
|
|
82
|
+
user?: User;
|
|
83
|
+
user_agent?: UserAgent;
|
|
84
|
+
vulnerability?: Vulnerability;
|
|
85
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CloudAccount } from './CloudAccount';
|
|
2
|
+
import type { Instance } from './Instance';
|
|
3
|
+
import type { Machine } from './Machine';
|
|
4
|
+
import type { Project } from './Project';
|
|
5
|
+
import type { Service } from './Service';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
9
|
+
*/
|
|
10
|
+
export interface ObservableCloud {
|
|
11
|
+
account?: CloudAccount;
|
|
12
|
+
availability_zone?: string;
|
|
13
|
+
instance?: Instance;
|
|
14
|
+
machine?: Machine;
|
|
15
|
+
project?: Project;
|
|
16
|
+
provider?: string;
|
|
17
|
+
region?: string;
|
|
18
|
+
service?: Service;
|
|
19
|
+
tenant_id?: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AutonomousSystems } from './AutonomousSystems';
|
|
2
|
+
import type { DestinationOriginal } from './DestinationOriginal';
|
|
3
|
+
import type { Geo } from './Geo';
|
|
4
|
+
import type { Nat } from './Nat';
|
|
5
|
+
import type { User } from './User';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
9
|
+
*/
|
|
10
|
+
export interface ObservableDestination {
|
|
11
|
+
address?: string;
|
|
12
|
+
autonomous_systems?: AutonomousSystems;
|
|
13
|
+
bytes?: number;
|
|
14
|
+
domain?: string;
|
|
15
|
+
geo?: Geo;
|
|
16
|
+
ip?: string;
|
|
17
|
+
mac?: string;
|
|
18
|
+
nat?: Nat;
|
|
19
|
+
original?: DestinationOriginal;
|
|
20
|
+
packets?: number;
|
|
21
|
+
port?: number;
|
|
22
|
+
user?: User;
|
|
23
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Bcc } from './Bcc';
|
|
2
|
+
import type { Cc } from './Cc';
|
|
3
|
+
import type { EmailAttachment } from './EmailAttachment';
|
|
4
|
+
import type { EmailParent } from './EmailParent';
|
|
5
|
+
import type { From } from './From';
|
|
6
|
+
import type { ReplyTo } from './ReplyTo';
|
|
7
|
+
import type { Sender } from './Sender';
|
|
8
|
+
import type { To } from './To';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
12
|
+
*/
|
|
13
|
+
export interface ObservableEmail {
|
|
14
|
+
attachments?: EmailAttachment[];
|
|
15
|
+
bcc?: Bcc;
|
|
16
|
+
cc?: Cc;
|
|
17
|
+
content_type?: string;
|
|
18
|
+
delivery_timestamp?: string;
|
|
19
|
+
direction?: string;
|
|
20
|
+
from?: From;
|
|
21
|
+
local_id?: string;
|
|
22
|
+
message_id?: string;
|
|
23
|
+
origination_timestamp?: string;
|
|
24
|
+
parent?: EmailParent;
|
|
25
|
+
reply_to?: ReplyTo;
|
|
26
|
+
sender?: Sender;
|
|
27
|
+
subject?: string;
|
|
28
|
+
to?: To;
|
|
29
|
+
x_mailer?: string;
|
|
30
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { CodeSignature } from './CodeSignature';
|
|
2
|
+
import type { Elf } from './Elf';
|
|
3
|
+
import type { FileHash } from './FileHash';
|
|
4
|
+
import type { Pe } from './Pe';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
8
|
+
*/
|
|
9
|
+
export interface ObservableFile {
|
|
10
|
+
accessed?: string;
|
|
11
|
+
attributes?: string[];
|
|
12
|
+
code_signature?: CodeSignature;
|
|
13
|
+
created?: string;
|
|
14
|
+
ctime?: string;
|
|
15
|
+
device?: string;
|
|
16
|
+
directory?: string;
|
|
17
|
+
drive_letter?: string;
|
|
18
|
+
elf?: Elf;
|
|
19
|
+
extension?: string;
|
|
20
|
+
fork_name?: string;
|
|
21
|
+
gid?: string;
|
|
22
|
+
group?: string;
|
|
23
|
+
hash?: FileHash;
|
|
24
|
+
inode?: string;
|
|
25
|
+
mime_type?: string;
|
|
26
|
+
mode?: string;
|
|
27
|
+
mtime?: string;
|
|
28
|
+
name?: string;
|
|
29
|
+
owner?: string;
|
|
30
|
+
path?: string;
|
|
31
|
+
pe?: Pe;
|
|
32
|
+
size?: number;
|
|
33
|
+
target_path?: string;
|
|
34
|
+
type?: string;
|
|
35
|
+
uid?: string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { HowlerComment } from './HowlerComment';
|
|
2
|
+
import type { HowlerDossier } from './HowlerDossier';
|
|
3
|
+
import type { Incident } from './Incident';
|
|
4
|
+
import type { Labels } from './Labels';
|
|
5
|
+
import type { Link } from './Link';
|
|
6
|
+
import type { Log } from './Log';
|
|
7
|
+
import type { Outline } from './Outline';
|
|
8
|
+
import type { Votes } from './Votes';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
12
|
+
*/
|
|
13
|
+
export interface ObservableHowler {
|
|
14
|
+
analytic: string;
|
|
15
|
+
assessment?: string;
|
|
16
|
+
comment?: HowlerComment[];
|
|
17
|
+
confidence?: number;
|
|
18
|
+
data?: string[];
|
|
19
|
+
detection?: string;
|
|
20
|
+
dossier?: HowlerDossier[];
|
|
21
|
+
escalation?: string;
|
|
22
|
+
expiry?: string;
|
|
23
|
+
hash: string;
|
|
24
|
+
id: string;
|
|
25
|
+
incidents?: Incident[];
|
|
26
|
+
labels?: Labels;
|
|
27
|
+
links?: Link[];
|
|
28
|
+
log?: Log[];
|
|
29
|
+
mitigated?: string;
|
|
30
|
+
monitored?: string;
|
|
31
|
+
outline?: Outline;
|
|
32
|
+
rationale?: string;
|
|
33
|
+
related?: string[];
|
|
34
|
+
reliability?: number;
|
|
35
|
+
reported?: string;
|
|
36
|
+
score?: number;
|
|
37
|
+
scrutiny?: string;
|
|
38
|
+
severity?: number;
|
|
39
|
+
status?: string;
|
|
40
|
+
viewers?: string[];
|
|
41
|
+
volume?: number;
|
|
42
|
+
votes?: Votes;
|
|
43
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HttpResponse } from './HttpResponse';
|
|
2
|
+
import type { Request } from './Request';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
6
|
+
*/
|
|
7
|
+
export interface ObservableHttp {
|
|
8
|
+
request?: Request;
|
|
9
|
+
response?: HttpResponse;
|
|
10
|
+
version?: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Egress } from './Egress';
|
|
2
|
+
import type { Interface } from './Interface';
|
|
3
|
+
import type { ObserverIngress } from './ObserverIngress';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
7
|
+
*/
|
|
8
|
+
export interface ObservableObserver {
|
|
9
|
+
egress?: Egress;
|
|
10
|
+
hostname?: string;
|
|
11
|
+
ingress?: ObserverIngress;
|
|
12
|
+
interface?: Interface;
|
|
13
|
+
ip?: string[];
|
|
14
|
+
mac?: string[];
|
|
15
|
+
name?: string;
|
|
16
|
+
product?: string;
|
|
17
|
+
serial_number?: string;
|
|
18
|
+
type?: string;
|
|
19
|
+
vendor?: string;
|
|
20
|
+
version?: string;
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CodeSignature } from './CodeSignature';
|
|
2
|
+
import type { EntryMeta } from './EntryMeta';
|
|
3
|
+
import type { Pe } from './Pe';
|
|
4
|
+
import type { ProcessHash } from './ProcessHash';
|
|
5
|
+
import type { ProcessParent } from './ProcessParent';
|
|
6
|
+
import type { ProcessUser } from './ProcessUser';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
10
|
+
*/
|
|
11
|
+
export interface ObservableProcess {
|
|
12
|
+
args?: string[];
|
|
13
|
+
args_count?: number;
|
|
14
|
+
code_signature?: CodeSignature;
|
|
15
|
+
command_line?: string;
|
|
16
|
+
end?: string;
|
|
17
|
+
entity_id?: string;
|
|
18
|
+
entry_meta?: EntryMeta;
|
|
19
|
+
env_vars?: { [index: string]: string };
|
|
20
|
+
executable?: string;
|
|
21
|
+
exit_code?: number;
|
|
22
|
+
hash?: ProcessHash;
|
|
23
|
+
interactive?: boolean;
|
|
24
|
+
name?: string;
|
|
25
|
+
parent?: ProcessParent;
|
|
26
|
+
pe?: Pe;
|
|
27
|
+
pid?: number;
|
|
28
|
+
same_as_process?: boolean;
|
|
29
|
+
start?: string;
|
|
30
|
+
title?: string;
|
|
31
|
+
uptime?: number;
|
|
32
|
+
user?: ProcessUser;
|
|
33
|
+
working_directory?: string;
|
|
34
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AutonomousSystems } from './AutonomousSystems';
|
|
2
|
+
import type { Geo } from './Geo';
|
|
3
|
+
import type { Nat } from './Nat';
|
|
4
|
+
import type { SourceOriginal } from './SourceOriginal';
|
|
5
|
+
import type { User } from './User';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
9
|
+
*/
|
|
10
|
+
export interface ObservableSource {
|
|
11
|
+
address?: string;
|
|
12
|
+
autonomous_systems?: AutonomousSystems;
|
|
13
|
+
bytes?: number;
|
|
14
|
+
domain?: string;
|
|
15
|
+
geo?: Geo;
|
|
16
|
+
ip?: string;
|
|
17
|
+
mac?: string;
|
|
18
|
+
nat?: Nat;
|
|
19
|
+
original?: SourceOriginal;
|
|
20
|
+
packets?: number;
|
|
21
|
+
port?: number;
|
|
22
|
+
user?: User;
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Feed } from './Feed';
|
|
2
|
+
import type { Software } from './Software';
|
|
3
|
+
import type { ThreatEnrichment } from './ThreatEnrichment';
|
|
4
|
+
import type { ThreatGroup } from './ThreatGroup';
|
|
5
|
+
import type { ThreatIndicator } from './ThreatIndicator';
|
|
6
|
+
import type { ThreatTactic } from './ThreatTactic';
|
|
7
|
+
import type { ThreatTechnique } from './ThreatTechnique';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
11
|
+
*/
|
|
12
|
+
export interface ObservableThreat {
|
|
13
|
+
enrichments?: ThreatEnrichment[];
|
|
14
|
+
feed?: Feed;
|
|
15
|
+
framework?: string;
|
|
16
|
+
group?: ThreatGroup;
|
|
17
|
+
indicator?: ThreatIndicator;
|
|
18
|
+
software?: Software;
|
|
19
|
+
tactic?: ThreatTactic;
|
|
20
|
+
technique?: ThreatTechnique;
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Client } from './Client';
|
|
2
|
+
import type { TlsServer } from './TlsServer';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
6
|
+
*/
|
|
7
|
+
export interface ObservableTls {
|
|
8
|
+
client?: Client;
|
|
9
|
+
server?: TlsServer;
|
|
10
|
+
version?: string;
|
|
11
|
+
version_protocol?: string;
|
|
12
|
+
}
|
|
@@ -2,14 +2,6 @@
|
|
|
2
2
|
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
3
3
|
*/
|
|
4
4
|
export interface Rule {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
description?: string;
|
|
8
|
-
id?: string;
|
|
9
|
-
license?: string;
|
|
10
|
-
name?: string;
|
|
11
|
-
reference?: string;
|
|
12
|
-
ruleset?: string;
|
|
13
|
-
uuid?: string;
|
|
14
|
-
version?: string;
|
|
5
|
+
destination?: string;
|
|
6
|
+
query?: string;
|
|
15
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Enrichment } from './Enrichment';
|
|
2
1
|
import type { Feed } from './Feed';
|
|
3
2
|
import type { Software } from './Software';
|
|
3
|
+
import type { ThreatEnrichment } from './ThreatEnrichment';
|
|
4
4
|
import type { ThreatGroup } from './ThreatGroup';
|
|
5
5
|
import type { ThreatIndicator } from './ThreatIndicator';
|
|
6
6
|
import type { ThreatTactic } from './ThreatTactic';
|
|
@@ -10,7 +10,7 @@ import type { ThreatTechnique } from './ThreatTechnique';
|
|
|
10
10
|
* NOTE: This is an auto-generated file. Don't edit this manually.
|
|
11
11
|
*/
|
|
12
12
|
export interface Threat {
|
|
13
|
-
enrichments?:
|
|
13
|
+
enrichments?: ThreatEnrichment[];
|
|
14
14
|
feed?: Feed;
|
|
15
15
|
framework?: string;
|
|
16
16
|
group?: ThreatGroup;
|
package/package.json
CHANGED
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"internal-slot": "1.0.7"
|
|
102
102
|
},
|
|
103
103
|
"type": "module",
|
|
104
|
-
"version": "2.18.0-dev.
|
|
104
|
+
"version": "2.18.0-dev.674",
|
|
105
105
|
"exports": {
|
|
106
106
|
"./i18n": "./i18n.js",
|
|
107
107
|
"./index.css": "./index.css",
|
|
@@ -129,8 +129,11 @@
|
|
|
129
129
|
"./components/app/providers/*": "./components/app/providers/*.js",
|
|
130
130
|
"./components/app/hooks/*": "./components/app/hooks/*.js",
|
|
131
131
|
"./components/elements/display/*": "./components/elements/display/*.js",
|
|
132
|
+
"./components/elements/observable/*": "./components/elements/observable/*.js",
|
|
132
133
|
"./components/elements/hit/*": "./components/elements/hit/*.js",
|
|
134
|
+
"./components/elements/record/*": "./components/elements/record/*.js",
|
|
133
135
|
"./components/elements/view/*": "./components/elements/view/*.js",
|
|
136
|
+
"./components/elements/case/*": "./components/elements/case/*.js",
|
|
134
137
|
"./components/elements/addons/*": "./components/elements/addons/*.js",
|
|
135
138
|
"./components/elements/display/handlebars/*": "./components/elements/display/handlebars/*.js",
|
|
136
139
|
"./components/elements/display/modals/*": "./components/elements/display/modals/*.js",
|
|
@@ -172,6 +175,8 @@
|
|
|
172
175
|
"./components/routes/help/*": "./components/routes/help/*.js",
|
|
173
176
|
"./components/routes/admin/*": "./components/routes/admin/*.js",
|
|
174
177
|
"./components/routes/settings/*": "./components/routes/settings/*.js",
|
|
178
|
+
"./components/routes/observables/*": "./components/routes/observables/*.js",
|
|
179
|
+
"./components/routes/cases/*": "./components/routes/cases/*.js",
|
|
175
180
|
"./components/routes/action/edit/*": "./components/routes/action/edit/*.js",
|
|
176
181
|
"./components/routes/action/view/*": "./components/routes/action/view/*.js",
|
|
177
182
|
"./components/routes/action/shared/*": "./components/routes/action/shared/*.js",
|
|
@@ -187,6 +192,12 @@
|
|
|
187
192
|
"./components/routes/help/markdown/fr/*.md": "./components/routes/help/markdown/fr/*.md.js",
|
|
188
193
|
"./components/routes/help/markdown/en/*.md": "./components/routes/help/markdown/en/*.md.js",
|
|
189
194
|
"./components/routes/admin/users/*": "./components/routes/admin/users/*.js",
|
|
195
|
+
"./components/routes/cases/modals/*": "./components/routes/cases/modals/*.js",
|
|
196
|
+
"./components/routes/cases/hooks/*": "./components/routes/cases/hooks/*.js",
|
|
197
|
+
"./components/routes/cases/detail/*": "./components/routes/cases/detail/*.js",
|
|
198
|
+
"./components/routes/cases/detail/sidebar/*": "./components/routes/cases/detail/sidebar/*.js",
|
|
199
|
+
"./components/routes/cases/detail/assets/*": "./components/routes/cases/detail/assets/*.js",
|
|
200
|
+
"./components/routes/cases/detail/aggregates/*": "./components/routes/cases/detail/aggregates/*.js",
|
|
190
201
|
"./commons/components/*": "./commons/components/*.js",
|
|
191
202
|
"./commons/components/breadcrumbs/*": "./commons/components/breadcrumbs/*.js",
|
|
192
203
|
"./commons/components/app/*": "./commons/components/app/*.js",
|
|
@@ -212,6 +223,8 @@
|
|
|
212
223
|
"./locales/en/help/*.json": "./locales/en/help/*.json",
|
|
213
224
|
"./api/overview/*": "./api/overview/*.js",
|
|
214
225
|
"./api/overview": "./api/overview/index.js",
|
|
226
|
+
"./api/v2/*": "./api/v2/*.js",
|
|
227
|
+
"./api/v2": "./api/v2/index.js",
|
|
215
228
|
"./api/action/*": "./api/action/*.js",
|
|
216
229
|
"./api/action": "./api/action/index.js",
|
|
217
230
|
"./api/auth/*": "./api/auth/*.js",
|
|
@@ -234,6 +247,10 @@
|
|
|
234
247
|
"./api/hit": "./api/hit/index.js",
|
|
235
248
|
"./api/view/*": "./api/view/*.js",
|
|
236
249
|
"./api/view": "./api/view/index.js",
|
|
250
|
+
"./api/v2/search/*": "./api/v2/search/*.js",
|
|
251
|
+
"./api/v2/search": "./api/v2/search/index.js",
|
|
252
|
+
"./api/v2/case/*": "./api/v2/case/*.js",
|
|
253
|
+
"./api/v2/case": "./api/v2/case/index.js",
|
|
237
254
|
"./api/analytic/comments/*": "./api/analytic/comments/*.js",
|
|
238
255
|
"./api/analytic/comments": "./api/analytic/comments/index.js",
|
|
239
256
|
"./api/analytic/notebooks/*": "./api/analytic/notebooks/*.js",
|
|
@@ -3,8 +3,8 @@ import EnrichedTypography from '@cccsaurora/clue-ui/components/EnrichedTypograph
|
|
|
3
3
|
import { Typography } from '@mui/material';
|
|
4
4
|
import { memo } from 'react';
|
|
5
5
|
import { useType } from '../utils';
|
|
6
|
-
const ClueTypography = ({ children, value, context, field,
|
|
7
|
-
const type = useType(
|
|
6
|
+
const ClueTypography = ({ children, value, context, field, obj, ...props }) => {
|
|
7
|
+
const type = useType(obj, field, value);
|
|
8
8
|
if (!type) {
|
|
9
9
|
return _jsx(Typography, { ...props, children: children ?? value });
|
|
10
10
|
}
|
package/plugins/clue/utils.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
|
|
2
|
-
|
|
2
|
+
import type { Observable } from '@cccsaurora/howler-ui/models/entities/generated/Observable';
|
|
3
|
+
export declare const useType: (hit?: Hit | Observable, field?: string, value?: string) => any;
|
package/tests/utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Action } from '@cccsaurora/howler-ui/models/entities/generated/Action';
|
|
2
2
|
import type { Analytic } from '@cccsaurora/howler-ui/models/entities/generated/Analytic';
|
|
3
|
+
import type { Case } from '@cccsaurora/howler-ui/models/entities/generated/Case';
|
|
3
4
|
import type { Dossier } from '@cccsaurora/howler-ui/models/entities/generated/Dossier';
|
|
4
5
|
import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
|
|
5
6
|
import type { Template } from '@cccsaurora/howler-ui/models/entities/generated/Template';
|
|
@@ -12,5 +13,6 @@ export declare const createMockAnalytic: (overrides?: Partial<Analytic>) => Anal
|
|
|
12
13
|
export declare const createMockTemplate: (overrides?: Partial<Template>) => Template;
|
|
13
14
|
export declare const createMockAction: (overrides?: Partial<Action>) => Action;
|
|
14
15
|
export declare const createMockView: (overrides?: Partial<View>) => View;
|
|
16
|
+
export declare const createMockCase: (overrides?: Partial<Case>) => Case;
|
|
15
17
|
export declare const createMockDossier: (overrides?: Partial<Dossier>) => Dossier;
|
|
16
18
|
export {};
|
package/tests/utils.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Mock data factories
|
|
2
2
|
export const createMockHit = (overrides) => ({
|
|
3
|
+
__index: 'hit',
|
|
3
4
|
howler: {
|
|
4
5
|
id: 'test-hit-1',
|
|
5
6
|
analytic: 'test-analytic',
|
|
@@ -52,6 +53,13 @@ export const createMockView = (overrides) => ({
|
|
|
52
53
|
},
|
|
53
54
|
...overrides
|
|
54
55
|
});
|
|
56
|
+
export const createMockCase = (overrides) => ({
|
|
57
|
+
case_id: 'test-case-id',
|
|
58
|
+
title: 'Test Case',
|
|
59
|
+
summary: 'Test case summary',
|
|
60
|
+
items: [],
|
|
61
|
+
...overrides
|
|
62
|
+
});
|
|
55
63
|
// Helper function to create mock dossiers
|
|
56
64
|
export const createMockDossier = (overrides) => ({
|
|
57
65
|
dossier_id: 'test-dossier-id',
|
package/utils/constants.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ export declare const VERSION: any;
|
|
|
5
5
|
export declare const MY_LOCAL_STORAGE_PREFIX = "howler.ui";
|
|
6
6
|
export declare const MY_SESSION_STORAGE_PREFIX = "howler.ui.cache";
|
|
7
7
|
export declare const ESCALATION_COLORS: {
|
|
8
|
-
alert:
|
|
9
|
-
evidence:
|
|
10
|
-
hit:
|
|
8
|
+
alert: "warning";
|
|
9
|
+
evidence: "error";
|
|
10
|
+
hit: "primary";
|
|
11
11
|
};
|
|
12
12
|
export declare const STATUS_COLORS: {
|
|
13
13
|
open: string;
|
package/utils/hitFunctions.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
|
|
2
|
-
|
|
2
|
+
import type { Observable } from '@cccsaurora/howler-ui/models/entities/generated/Observable';
|
|
3
|
+
export declare const getUserList: (record: Hit | Observable) => Set<string>;
|
package/utils/hitFunctions.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export const getUserList = (
|
|
1
|
+
export const getUserList = (record) => {
|
|
2
2
|
const ids = new Set();
|
|
3
|
-
if (
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
if (record) {
|
|
4
|
+
record.howler?.log?.forEach(l => ids.add(l.user));
|
|
5
|
+
record.howler?.comment?.forEach(c => ids.add(c.user), ids);
|
|
6
6
|
}
|
|
7
7
|
return ids;
|
|
8
8
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Case } from '@cccsaurora/howler-ui/models/entities/generated/Case';
|
|
2
|
+
import type { Hit } from '@cccsaurora/howler-ui/models/entities/generated/Hit';
|
|
3
|
+
import type { Observable } from '@cccsaurora/howler-ui/models/entities/generated/Observable';
|
|
4
|
+
import type { WithMetadata } from '@cccsaurora/howler-ui/models/WithMetadata';
|
|
5
|
+
export declare const isHit: (obj: WithMetadata<any>) => obj is Hit;
|
|
6
|
+
export declare const isCase: (obj: WithMetadata<any>) => obj is Case;
|
|
7
|
+
export declare const isObservable: (obj: WithMetadata<any>) => obj is Observable;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const isHit = (obj) => {
|
|
2
|
+
if (!obj) {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
if (obj.__index === 'hit') {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
return false;
|
|
9
|
+
};
|
|
10
|
+
export const isCase = (obj) => {
|
|
11
|
+
if (!obj) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
if (obj.__index === 'case') {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
};
|
|
19
|
+
export const isObservable = (obj) => {
|
|
20
|
+
if (!obj) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if (obj.__index === 'observable') {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
};
|