From 5f6669089b31ca2575fa88103c12d326788bc435 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Wed, 15 Jan 2025 09:08:13 +0100 Subject: [PATCH 01/81] [backend] add capabilities (#5551) --- ...736924874958-capabilities-dissemination.js | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 opencti-platform/opencti-graphql/src/migrations/1736924874958-capabilities-dissemination.js diff --git a/opencti-platform/opencti-graphql/src/migrations/1736924874958-capabilities-dissemination.js b/opencti-platform/opencti-graphql/src/migrations/1736924874958-capabilities-dissemination.js new file mode 100644 index 000000000000..53cdad8417d1 --- /dev/null +++ b/opencti-platform/opencti-graphql/src/migrations/1736924874958-capabilities-dissemination.js @@ -0,0 +1,31 @@ +import { logApp } from '../config/conf'; +import { executionContext, SYSTEM_USER } from '../utils/access'; +import { addCapability } from '../domain/grant'; + +const message = '[MIGRATION] add the new dissemination capabilities'; + +export const up = async (next) => { + logApp.info(`${message} > started`); + const context = executionContext('migration'); + + // ------ Create 'Manage disseminationlists' + await addCapability(context, SYSTEM_USER, { + name: 'SETTINGS_SETDISSEMINATION', + description: 'Manage dissemination lists', + attribute_order: 3320 + }); + + // ------ Create 'Disseminate files' + await addCapability(context, SYSTEM_USER, { + name: 'KNOWLEDGE_KNDISSEMINATION', + description: 'Disseminate files by email', + attribute_order: 900 + }); + + logApp.info(`${message} > done`); + next(); +}; + +export const down = async (next) => { + next(); +}; From 60536c0658013433e1453e1940cbfdc4577ff668 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Mon, 20 Jan 2025 14:48:52 +0100 Subject: [PATCH 02/81] [frontend] Dissemination email template (#5551) --- .../utils/emailTemplates/disseminationList.ts | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts diff --git a/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts b/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts new file mode 100644 index 000000000000..80fc33f9cb48 --- /dev/null +++ b/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts @@ -0,0 +1,113 @@ +import { HEADER_TEMPLATE } from './header'; +import { FOOTER_TEMPLATE } from './footer'; +import { LOGO_TEMPLATE } from './logo'; + +export const DISSEMINATION_EMAIL_TEMPLATE = ` +${HEADER_TEMPLATE} + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + +
 
+ + + + + + +
+
+ + + + + + +
  +
+ + + + + + +
+ + + + + + +
  +
+

<%=settings.platform_title%>

+ + + + + + +
  +
+ + + + + + +
  +
+
+ + + + + + +
  +
+
+
+ <%= body %> +
+ + + + + + +
  +
+
+
+ ${FOOTER_TEMPLATE} +
+
+ + +`; From 4dd6c066d674aafc936d13ca0c57791aecf34bd8 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Mon, 20 Jan 2025 15:50:04 +0100 Subject: [PATCH 03/81] [frontend/backend] refacto (#5551) --- .../src/utils/emailTemplates/disseminationList.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts b/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts index 80fc33f9cb48..68d3dd232887 100644 --- a/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts +++ b/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts @@ -81,7 +81,7 @@ ${HEADER_TEMPLATE}
- <%= body %> + <%- body %>
From d4d1c8bc1b44393bc77af24f8c20deea13ebec16 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Mon, 20 Jan 2025 17:14:59 +0100 Subject: [PATCH 04/81] [frontend/backend] translation + update from to email (#5551) --- .../utils/emailTemplates/disseminationList.ts | 113 ------------------ 1 file changed, 113 deletions(-) delete mode 100644 opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts diff --git a/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts b/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts deleted file mode 100644 index 68d3dd232887..000000000000 --- a/opencti-platform/opencti-graphql/src/utils/emailTemplates/disseminationList.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { HEADER_TEMPLATE } from './header'; -import { FOOTER_TEMPLATE } from './footer'; -import { LOGO_TEMPLATE } from './logo'; - -export const DISSEMINATION_EMAIL_TEMPLATE = ` -${HEADER_TEMPLATE} - -
- - - - - -
- - - - - - - - - -
- - - - - - - - - -
 
- - - - - - -
-
- - - - - - -
  -
- - - - - - -
- - - - - - -
  -
-

<%=settings.platform_title%>

- - - - - - -
  -
- - - - - - -
  -
-
- - - - - - -
  -
-
-
- <%- body %> -
- - - - - - -
  -
-
-
- ${FOOTER_TEMPLATE} -
-
- - -`; From e4802220311df82daaad0e825eb1570d12b47944 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Wed, 22 Jan 2025 10:28:41 +0100 Subject: [PATCH 05/81] [backend] timestamp migration (#5551) --- ...736924874958-capabilities-dissemination.js | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 opencti-platform/opencti-graphql/src/migrations/1736924874958-capabilities-dissemination.js diff --git a/opencti-platform/opencti-graphql/src/migrations/1736924874958-capabilities-dissemination.js b/opencti-platform/opencti-graphql/src/migrations/1736924874958-capabilities-dissemination.js deleted file mode 100644 index 53cdad8417d1..000000000000 --- a/opencti-platform/opencti-graphql/src/migrations/1736924874958-capabilities-dissemination.js +++ /dev/null @@ -1,31 +0,0 @@ -import { logApp } from '../config/conf'; -import { executionContext, SYSTEM_USER } from '../utils/access'; -import { addCapability } from '../domain/grant'; - -const message = '[MIGRATION] add the new dissemination capabilities'; - -export const up = async (next) => { - logApp.info(`${message} > started`); - const context = executionContext('migration'); - - // ------ Create 'Manage disseminationlists' - await addCapability(context, SYSTEM_USER, { - name: 'SETTINGS_SETDISSEMINATION', - description: 'Manage dissemination lists', - attribute_order: 3320 - }); - - // ------ Create 'Disseminate files' - await addCapability(context, SYSTEM_USER, { - name: 'KNOWLEDGE_KNDISSEMINATION', - description: 'Disseminate files by email', - attribute_order: 900 - }); - - logApp.info(`${message} > done`); - next(); -}; - -export const down = async (next) => { - next(); -}; From 10723ef3015368e06c2885d16578a9f291f304cd Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Wed, 22 Jan 2025 11:50:46 +0100 Subject: [PATCH 06/81] [frontend/backend] Dissemination lists view (#5551) --- .../opencti-front/src/components/ItemIcon.jsx | 4 +- .../components/settings/AccessesMenu.tsx | 28 ++- .../src/private/components/settings/Root.jsx | 13 ++ .../DisseminationLists.tsx | 163 ++++++++++++++++++ .../src/schema/relay.schema.graphql | 3 + .../opencti-graphql/src/generated/graphql.ts | 22 +++ 6 files changed, 230 insertions(+), 3 deletions(-) create mode 100644 opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx diff --git a/opencti-platform/opencti-front/src/components/ItemIcon.jsx b/opencti-platform/opencti-front/src/components/ItemIcon.jsx index ca09ab744cf1..2703198bf6c6 100644 --- a/opencti-platform/opencti-front/src/components/ItemIcon.jsx +++ b/opencti-platform/opencti-front/src/components/ItemIcon.jsx @@ -67,7 +67,7 @@ import { BackupTableOutlined, PlayCircleOutlined, ArchitectureOutlined, - PlaylistRemoveOutlined, + PlaylistRemoveOutlined, AttachEmailOutlined, } from '@mui/icons-material'; import { AutoFix, @@ -546,6 +546,8 @@ const iconSelector = (type, variant, fontSize, color, isReversed) => { return ; case 'exclusion-list': return ; + case 'dissemination-list': + return ; case 'autofix': return ; case 'default': diff --git a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx index 14212dc6110f..ba6fc9b962fa 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx @@ -1,8 +1,21 @@ import React, { FunctionComponent } from 'react'; -import { CenterFocusStrongOutlined, PermIdentityOutlined, ReceiptOutlined, LocalPoliceOutlined, SecurityOutlined, AccountBalanceOutlined } from '@mui/icons-material'; +import { + CenterFocusStrongOutlined, + PermIdentityOutlined, + ReceiptOutlined, + LocalPoliceOutlined, + SecurityOutlined, + AccountBalanceOutlined, + AttachEmailOutlined +} from '@mui/icons-material'; import { AccountGroupOutline } from 'mdi-material-ui'; import NavToolbarMenu, { MenuEntry } from '../common/menus/NavToolbarMenu'; -import useGranted, { VIRTUAL_ORGANIZATION_ADMIN, SETTINGS_SETACCESSES, SETTINGS_SETMARKINGS } from '../../../utils/hooks/useGranted'; +import useGranted, { + VIRTUAL_ORGANIZATION_ADMIN, + SETTINGS_SETACCESSES, + SETTINGS_SETMARKINGS, + SETTINGS, SETTINGS_SETDISSEMINATION +} from '../../../utils/hooks/useGranted'; const AccessesMenu: FunctionComponent = () => { const entries: MenuEntry[] = [ @@ -44,9 +57,17 @@ const AccessesMenu: FunctionComponent = () => { icon: , }, ]; + const disseminationEntries: MenuEntry[] = [ + { + path: '/dashboard/settings/accesses/dissemination_list', + label: 'Dissemination lists', + icon: , + }, + ]; const setAccess = useGranted([SETTINGS_SETACCESSES]); const setMarkings = useGranted([SETTINGS_SETMARKINGS]); const isOrgaAdmin = useGranted([VIRTUAL_ORGANIZATION_ADMIN]); + const setDissemination = useGranted([SETTINGS_SETDISSEMINATION]); const menuEntries = []; if (setAccess) { menuEntries.push(...entries); @@ -54,6 +75,9 @@ const AccessesMenu: FunctionComponent = () => { if (setMarkings) { menuEntries.push(...markingEntries); } + if (setDissemination) { + menuEntries.push(...disseminationEntries); + } if (!setAccess && isOrgaAdmin) { menuEntries.push( ...[ diff --git a/opencti-platform/opencti-front/src/private/components/settings/Root.jsx b/opencti-platform/opencti-front/src/private/components/settings/Root.jsx index da27611734bd..6ad7cceffc41 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/Root.jsx +++ b/opencti-platform/opencti-front/src/private/components/settings/Root.jsx @@ -11,6 +11,7 @@ import useGranted, { SETTINGS_FILEINDEXING, SETTINGS_SUPPORT, SETTINGS_SETPARAMETERS, + SETTINGS_SETDISSEMINATION, } from '../../../utils/hooks/useGranted'; import Loader from '../../../components/Loader'; @@ -47,6 +48,7 @@ const DecayRules = lazy(() => import('./decay/DecayRules')); const DecayRule = lazy(() => import('./decay/DecayRule')); const SupportPackage = lazy(() => import('./support/SupportPackages')); const ExclusionLists = lazy(() => import('./exclusion_lists/ExclusionLists')); +const DisseminationLists = lazy(() => import('./dissemination_lists/DisseminationLists')); const Root = () => { const adminOrga = isOnlyOrganizationAdmin(); @@ -225,6 +227,17 @@ const Root = () => { } /> + } + > + + + } + /> { + const { t_i18n } = useFormatter(); + + const initialValues = { + searchTerm: '', + sortBy: 'name', + orderAsc: true, + openExports: false, + filters: emptyFilterGroup, + }; + + const { + viewStorage, + paginationOptions, + helpers: storageHelpers, + } = usePaginationLocalStorage( + LOCAL_STORAGE_KEY, + initialValues, + ); + + const { filters } = viewStorage; + const contextFilters = useBuildEntityTypeBasedFilterContext('DisseminationList', filters); + + const queryPaginationOptions = { + ...paginationOptions, + filters: contextFilters, + } as unknown as DisseminationListsLinesPaginationQuery$variables; + + const queryRef = useQueryLoading( + disseminationListsQuery, + queryPaginationOptions, + ); + + const dataColumns: DataTableProps['dataColumns'] = { + icon: { + id: 'icon', + label: ' ', + isSortable: false, + percentWidth: 5, + render: () => , + }, + name: { + id: 'name', + label: t_i18n('Name'), + isSortable: true, + percentWidth: 15, + }, + }; + + const preloadedPaginationProps = { + linesQuery: disseminationListsQuery, + linesFragment: disseminationListsFragment, + queryRef, + nodePath: ['disseminationLists', 'pageInfo', 'globalCount'], + setNumberOfElements: storageHelpers.handleSetNumberOfElements, + } as UsePreloadedPaginationFragment; + + return ( +
+ + + {queryRef && ( + data.disseminationLists?.edges?.map(({ node }: { node: DisseminationListsLine_node$data }) => node)} + storageKey={LOCAL_STORAGE_KEY} + initialValues={initialValues} + toolbarFilters={contextFilters} + lineFragment={disseminationListsLineFragment} + disableLineSelection + disableNavigation + preloadedPaginationProps={preloadedPaginationProps} + // actions={(row) => } + message={t_i18n('// TODO')} + /> + )} + {/* */} +
+ ); +}; + +export default DisseminationLists; diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 6779002cb294..3d8031cc7374 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -9029,6 +9029,9 @@ type Mutation { fintelTemplateDelete(id: ID!): ID fintelTemplateFieldPatch(id: ID!, input: [EditInput!]!): FintelTemplate fintelTemplateConfigurationImport(file: Upload!): FintelTemplate + disseminationListAdd(input: DisseminationListAddInput!): DisseminationList + disseminationListDelete(id: ID!): ID + disseminationListFieldPatch(id: ID!, input: [EditInput!]!): DisseminationList disseminationListSend(input: DisseminationListSendInput!): Boolean } diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index bb305f1eb926..a9653bb030f7 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -13692,6 +13692,9 @@ export type Mutation = { deleteImport?: Maybe; deleteOperationConfirm?: Maybe; deleteOperationRestore?: Maybe; + disseminationListAdd?: Maybe; + disseminationListDelete?: Maybe; + disseminationListFieldPatch?: Maybe; disseminationListSend?: Maybe; draftWorkspaceAdd?: Maybe; draftWorkspaceDelete?: Maybe; @@ -14470,6 +14473,22 @@ export type MutationDeleteOperationRestoreArgs = { }; +export type MutationDisseminationListAddArgs = { + input: DisseminationListAddInput; +}; + + +export type MutationDisseminationListDeleteArgs = { + id: Scalars['ID']['input']; +}; + + +export type MutationDisseminationListFieldPatchArgs = { + id: Scalars['ID']['input']; + input: Array; +}; + + export type MutationDisseminationListSendArgs = { input: DisseminationListSendInput; }; @@ -37509,6 +37528,9 @@ export type MutationResolvers, ParentType, ContextType, Partial>; deleteOperationConfirm?: Resolver, ParentType, ContextType, RequireFields>; deleteOperationRestore?: Resolver, ParentType, ContextType, RequireFields>; + disseminationListAdd?: Resolver, ParentType, ContextType, RequireFields>; + disseminationListDelete?: Resolver, ParentType, ContextType, RequireFields>; + disseminationListFieldPatch?: Resolver, ParentType, ContextType, RequireFields>; disseminationListSend?: Resolver, ParentType, ContextType, RequireFields>; draftWorkspaceAdd?: Resolver, ParentType, ContextType, RequireFields>; draftWorkspaceDelete?: Resolver, ParentType, ContextType, RequireFields>; From f7354341a967be857f76b93b5d83ee2c92170686 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Wed, 22 Jan 2025 11:51:23 +0100 Subject: [PATCH 07/81] [frontend/backend] Dissemination list view (#5551) --- .../disseminationList-domain.ts | 31 ++++++++++++------- .../disseminationList-resolver.ts | 6 ++-- .../disseminationList.graphql | 6 ++-- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index ee56672a89c6..87b2153dc0f1 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -15,8 +15,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. import ejs from 'ejs'; import type { AuthContext, AuthUser } from '../../types/user'; -import { internalLoadById } from '../../database/middleware-loader'; -import type { DisseminationListSendInput } from '../../generated/graphql'; +import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../database/middleware-loader'; +import type { + DisseminationListAddInput, + DisseminationListSendInput, EditInput, + QueryDisseminationListsArgs +} from '../../generated/graphql'; +import { type BasicStoreEntityDisseminationList, ENTITY_TYPE_DISSEMINATION_LIST } from './disseminationList-types'; import { sendMail } from '../../database/smtp'; import { getEntityFromCache } from '../../database/cache'; import type { BasicStoreSettings } from '../../types/settings'; @@ -27,13 +32,13 @@ import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; import type { BasicStoreObject } from '../../types/store'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; -// export const findById = (context: AuthContext, user: AuthUser, id: string) => { -// return storeLoadById(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); -// }; +export const findById = (context: AuthContext, user: AuthUser, id: string) => { + return storeLoadById(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); +}; -// export const findAll = (context: AuthContext, user: AuthUser, args: QueryDisseminationListsArgs) => { -// return listEntitiesPaginated(context, user, [ENTITY_TYPE_DISSEMINATION_LIST], args); -// }; +export const findAll = (context: AuthContext, user: AuthUser, args: QueryDisseminationListsArgs) => { + return listEntitiesPaginated(context, user, [ENTITY_TYPE_DISSEMINATION_LIST], args); +}; interface SendMailArgs { from: string; @@ -51,7 +56,9 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs const file = await loadFile(context, user, filePath); if (file && file.metaData.mimetype === 'application/pdf' && file.metaData.entity_id) { const stream = await downloadFile(file.id); - const generatedEmail = ejs.render(EMAIL_TEMPLATE, { settings, body: input.email_body }); + const emailBodyFormatted = input.email_body.replaceAll('\n', '
'); + const generatedEmail = ejs.render(EMAIL_TEMPLATE, { settings, body: emailBodyFormatted }); + const fromEmail = conf.get('smtp:from_email'); const sendMailArgs: SendMailArgs = { from: settings.platform_email, to: settings.platform_email, @@ -80,6 +87,6 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs return false; }; -// export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => {}; -// export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => {}; -// export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => {}; +export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => {}; +export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => {}; +export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => {}; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts index b8891ecfd884..63c99be22c7b 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts @@ -14,12 +14,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ import type { Resolvers } from '../../generated/graphql'; -import { sendToDisseminationList } from './disseminationList-domain'; +import { findAll, findById, sendToDisseminationList } from './disseminationList-domain'; const disseminationListResolvers: Resolvers = { Query: { - // disseminationList: (_, { id }, context) => findById(context, context.user, id), - // disseminationLists: (_, args, context) => findAll(context, context.user, args), + disseminationList: (_, { id }, context) => findById(context, context.user, id), + disseminationLists: (_, args, context) => findAll(context, context.user, args), }, DisseminationList: {}, Mutation: { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 4b67f62c2104..2c867ec53ae4 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -52,8 +52,8 @@ input DisseminationListSendInput { } type Mutation { - # disseminationListAdd(input: DisseminationListAddInput!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) - # disseminationListDelete(id: ID!): ID @auth(for: [SETTINGS_SETDISSEMINATION]) - # disseminationListFieldPatch(id: ID!, input: [EditInput!]!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) + disseminationListAdd(input: DisseminationListAddInput!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) + disseminationListDelete(id: ID!): ID @auth(for: [SETTINGS_SETDISSEMINATION]) + disseminationListFieldPatch(id: ID!, input: [EditInput!]!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) disseminationListSend(input: DisseminationListSendInput!): Boolean @auth(for: [KNOWLEDGE_KNDISSEMINATION]) } From d3446e6e4de7e0c00497cae0dac19b81c6731473 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Wed, 22 Jan 2025 15:22:51 +0100 Subject: [PATCH 08/81] [frontend/backend] Dissemination lists creation (#5551) --- .../DisseminationListCreation.tsx | 165 ++++++++++++++++++ .../DisseminationListUtils.ts | 14 ++ .../DisseminationLists.tsx | 3 +- .../disseminationList-domain.ts | 32 +++- .../disseminationList-resolver.ts | 8 +- 5 files changed, 210 insertions(+), 12 deletions(-) create mode 100644 opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx create mode 100644 opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx new file mode 100644 index 000000000000..69f665586548 --- /dev/null +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -0,0 +1,165 @@ +import React, { FunctionComponent } from 'react'; +import { Field, Form, Formik, FormikConfig } from 'formik'; +import Button from '@mui/material/Button'; +import { RecordSourceSelectorProxy } from 'relay-runtime'; +import Drawer, { DrawerVariant } from '@components/common/drawer/Drawer'; +import { disseminationListCreationValidator } from '@components/settings/dissemination_lists/DisseminationListUtils'; +import { graphql } from 'react-relay'; +import { DisseminationListsLinesPaginationQuery$variables } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLinesPaginationQuery.graphql'; +import { useFormatter } from '../../../../components/i18n'; +import TextField from '../../../../components/TextField'; +import { insertNode } from '../../../../utils/store'; +import { handleErrorInForm } from '../../../../relay/environment'; +import useApiMutation from '../../../../utils/hooks/useApiMutation'; + +const disseminationListCreationMutation = graphql` + mutation DisseminationListCreationAddMutation($input: DisseminationListAddInput!) { + disseminationListAdd(input: $input) { + ...DisseminationListsLine_node + } + } +`; + +interface DisseminationListCreationFormData { + name: string; + emails: string; +} + +interface DisseminationListCreationFormProps { + updater: (store: RecordSourceSelectorProxy, rootField: string) => void; + onReset?: () => void; + onCompleted?: () => void; +} + +const DisseminationListCreationForm: FunctionComponent = ({ + updater, + onReset, + onCompleted, +}) => { + const { t_i18n } = useFormatter(); + const [commit] = useApiMutation(disseminationListCreationMutation); + + const onSubmit: FormikConfig['onSubmit'] = ( + values, + { setSubmitting, resetForm, setErrors }, + ) => { + const input = { + name: values.name, + emails: values.emails, + }; + commit({ + variables: { + input, + }, + updater: (store) => { + if (updater) { + updater(store, 'disseminationListAdd'); + } + }, + onCompleted: () => { + setSubmitting(false); + resetForm(); + if (onCompleted) { + onCompleted(); + } + }, + onError: (error: Error) => { + handleErrorInForm(error, setErrors); + setSubmitting(false); + }, + }); + }; + + const initialValues: DisseminationListCreationFormData = { + name: '', + emails: '', + }; + + return ( + + initialValues={initialValues} + validateOnBlur={false} + validateOnChange={false} + validationSchema={disseminationListCreationValidator(t_i18n)} + onSubmit={onSubmit} + onReset={onReset} + > + {({ submitForm, handleReset, isSubmitting }) => ( +
+ + +
+ + +
+ + )} + + ); +}; + +interface DisseminationListCreationProps { + paginationOptions: DisseminationListsLinesPaginationQuery$variables; +} + +const DisseminationListCreation: FunctionComponent = ({ + paginationOptions, +}) => { + const { t_i18n } = useFormatter(); + const updater = (store: RecordSourceSelectorProxy, rootField: string) => { + insertNode( + store, + 'Pagination_disseminationLists', + paginationOptions, + rootField, + ); + }; + + return ( + + {({ onClose }) => ( + <> + + + )} + + ); +}; + +export default DisseminationListCreation; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts new file mode 100644 index 000000000000..1fb64d9cbb47 --- /dev/null +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -0,0 +1,14 @@ +import * as Yup from 'yup'; + +export const disseminationListUpdateValidator = (t: (n: string) => string) => { + return Yup.object().shape({ + name: Yup.string().trim().min(2).required(t('This field is required')), + emails: Yup.string().required(t('This field is required')), + }); +}; +export const disseminationListCreationValidator = (t: (value: string) => string) => { + return Yup.object().shape({ + name: Yup.string().trim().min(2).required(t('This field is required')), + emails: Yup.string().required(t('This field is required')), + }); +}; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index 04fc446581df..a000eb9b826b 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -6,6 +6,7 @@ import { DisseminationListsLinesPaginationQuery$variables, } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLinesPaginationQuery.graphql'; import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; +import DisseminationListCreation from '@components/settings/dissemination_lists/DisseminationListCreation'; import DataTable from '../../../../components/dataGrid/DataTable'; import Breadcrumbs from '../../../../components/Breadcrumbs'; import { useFormatter } from '../../../../components/i18n'; @@ -155,7 +156,7 @@ const DisseminationLists = () => { message={t_i18n('// TODO')} /> )} - {/* */} + ); }; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 87b2153dc0f1..1e299cb28bd4 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -16,12 +16,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. import ejs from 'ejs'; import type { AuthContext, AuthUser } from '../../types/user'; import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../database/middleware-loader'; -import type { - DisseminationListAddInput, - DisseminationListSendInput, EditInput, - QueryDisseminationListsArgs -} from '../../generated/graphql'; -import { type BasicStoreEntityDisseminationList, ENTITY_TYPE_DISSEMINATION_LIST } from './disseminationList-types'; +import type { DisseminationListAddInput, DisseminationListSendInput, EditInput, QueryDisseminationListsArgs } from '../../generated/graphql'; +import { type BasicStoreEntityDisseminationList, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; import { sendMail } from '../../database/smtp'; import { getEntityFromCache } from '../../database/cache'; import type { BasicStoreSettings } from '../../types/settings'; @@ -29,8 +25,14 @@ import { ENTITY_TYPE_SETTINGS } from '../../schema/internalObject'; import { downloadFile, loadFile } from '../../database/file-storage'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; +import { isFeatureEnabled } from '../../config/conf'; import type { BasicStoreObject } from '../../types/store'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; +import { UnsupportedError } from '../../config/errors'; +import { generateInternalId } from '../../schema/identifier'; +import { createInternalObject } from '../../domain/internalObject'; + +const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); export const findById = (context: AuthContext, user: AuthUser, id: string) => { return storeLoadById(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); @@ -87,6 +89,22 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs return false; }; -export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => {}; +const storeAndCreateDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { + const disseminationListInternalId = generateInternalId(); + const disseminationListToCreate = { + name: input.name, + emails: input.emails, + internal_id: disseminationListInternalId, + }; + return createInternalObject(context, user, disseminationListToCreate, ENTITY_TYPE_DISSEMINATION_LIST); +}; + +export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } + return storeAndCreateDisseminationList(context, user, input); +}; + export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => {}; export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => {}; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts index 63c99be22c7b..d1cb1b5408f3 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts @@ -14,7 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ import type { Resolvers } from '../../generated/graphql'; -import { findAll, findById, sendToDisseminationList } from './disseminationList-domain'; +import { addDisseminationList, findAll, findById, sendToDisseminationList } from './disseminationList-domain'; const disseminationListResolvers: Resolvers = { Query: { @@ -23,9 +23,9 @@ const disseminationListResolvers: Resolvers = { }, DisseminationList: {}, Mutation: { - // disseminationListAdd: (_, { input }, context) => { - // return addDisseminationList(context, context.user, input); - // }, + disseminationListAdd: (_, { input }, context) => { + return addDisseminationList(context, context.user, input); + }, // disseminationListDelete: (_, { id }, context) => { // return deleteDisseminationList(context, context.user, id); // }, From 75ec1fc2df3690cae6c2e0c4c926f94cb2390512 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Wed, 22 Jan 2025 15:51:06 +0100 Subject: [PATCH 09/81] [frontend/backend] Dissemination lists creation form (#5551) --- .../DisseminationListCreation.tsx | 4 ++-- .../DisseminationListUtils.ts | 21 ++++++++++++------- .../DisseminationLists.tsx | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index 69f665586548..b6bfd434427f 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -3,7 +3,7 @@ import { Field, Form, Formik, FormikConfig } from 'formik'; import Button from '@mui/material/Button'; import { RecordSourceSelectorProxy } from 'relay-runtime'; import Drawer, { DrawerVariant } from '@components/common/drawer/Drawer'; -import { disseminationListCreationValidator } from '@components/settings/dissemination_lists/DisseminationListUtils'; +import disseminationListValidator from '@components/settings/dissemination_lists/DisseminationListUtils'; import { graphql } from 'react-relay'; import { DisseminationListsLinesPaginationQuery$variables } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLinesPaginationQuery.graphql'; import { useFormatter } from '../../../../components/i18n'; @@ -80,7 +80,7 @@ const DisseminationListCreationForm: FunctionComponent diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts index 1fb64d9cbb47..b5c463b3ddc2 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -1,14 +1,19 @@ import * as Yup from 'yup'; -export const disseminationListUpdateValidator = (t: (n: string) => string) => { +const disseminationListValidator = (t: (value: string) => string) => { return Yup.object().shape({ name: Yup.string().trim().min(2).required(t('This field is required')), - emails: Yup.string().required(t('This field is required')), - }); -}; -export const disseminationListCreationValidator = (t: (value: string) => string) => { - return Yup.object().shape({ - name: Yup.string().trim().min(2).required(t('This field is required')), - emails: Yup.string().required(t('This field is required')), + emails: Yup.string() + .required(t('This field is required')) + .test( + 'emails', + t('Each line must contain a valid email address'), + (value) => { + const emails = value.split('\n').map((email) => email.trim()); + return emails.every((email) => email !== '' && Yup.string().email().isValidSync(email)); + }, + ), }); }; + +export default disseminationListValidator; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index a000eb9b826b..cea5932ff58d 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -125,7 +125,7 @@ const DisseminationLists = () => { id: 'name', label: t_i18n('Name'), isSortable: true, - percentWidth: 15, + percentWidth: 95, }, }; From 564429cd3c147b4f4e36847cb2ee35a26c4f040a Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Wed, 22 Jan 2025 16:19:30 +0100 Subject: [PATCH 10/81] [frontend/backend] Dissemination lists edition (#5551) --- .../DisseminationListCreation.tsx | 3 +- .../DisseminationListEdition.tsx | 142 ++++++++++++++++++ .../disseminationList-types.ts | 6 +- 3 files changed, 147 insertions(+), 4 deletions(-) create mode 100644 opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index b6bfd434427f..446d27c43cd5 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -99,8 +99,9 @@ const DisseminationListCreationForm: FunctionComponent
+ +
+ + )} + + ) + : + } + + ); +}; + +export default DisseminationListEdition; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts index f8f20bab9b13..77b6de6dde4f 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts @@ -21,17 +21,17 @@ export const ENTITY_TYPE_DISSEMINATION_LIST = 'DisseminationList'; export interface BasicStoreEntityDisseminationList extends BasicStoreEntity { name: string; - emails: string[]; + emails: string; } export interface StoreEntityDisseminationList extends StoreEntity { name: string; - emails: string[]; + emails: string; } export interface StixDisseminationList extends StixObject { name: string; - emails: string[]; + emails: string; extensions: { [STIX_EXT_OCTI]: StixOpenctiExtensionSDO }; From baefeb8ba8bf8275d68abb8a9ad5da82e330913c Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 23 Jan 2025 08:50:27 +0100 Subject: [PATCH 11/81] [backend/frontend] popover + delete (#5551) --- .../DisseminationListPopover.tsx | 104 ++++++++++++++++++ .../DisseminationLists.tsx | 3 +- .../disseminationList-domain.ts | 10 +- .../disseminationList-resolver.ts | 8 +- 4 files changed, 118 insertions(+), 7 deletions(-) create mode 100644 opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListPopover.tsx diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListPopover.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListPopover.tsx new file mode 100644 index 000000000000..b2c03d07efb7 --- /dev/null +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListPopover.tsx @@ -0,0 +1,104 @@ +import React, { FunctionComponent, useState } from 'react'; +import IconButton from '@mui/material/IconButton'; +import MoreVert from '@mui/icons-material/MoreVert'; +import Menu from '@mui/material/Menu'; +import MenuItem from '@mui/material/MenuItem'; +import { graphql } from 'react-relay'; +import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; +import { DisseminationListsLinesPaginationQuery$variables } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLinesPaginationQuery.graphql'; +import DisseminationListEdition from '@components/settings/dissemination_lists/DisseminationListEdition'; +import { handleError } from 'src/relay/environment'; +import DeleteDialog from '../../../../components/DeleteDialog'; +import { useFormatter } from '../../../../components/i18n'; +import useApiMutation from '../../../../utils/hooks/useApiMutation'; +import useDeletion from '../../../../utils/hooks/useDeletion'; +import { deleteNode } from '../../../../utils/store'; + +export const disseminationListPopoverDeletionMutation = graphql` + mutation DisseminationListPopoverDeletionMutation($id: ID!) { + disseminationListDelete(id: $id) + } +`; + +interface DisseminationListPopoverProps { + data: DisseminationListsLine_node$data; + paginationOptions?: DisseminationListsLinesPaginationQuery$variables; +} + +const DisseminationListPopover: FunctionComponent = ({ + data, + paginationOptions, +}) => { + const { t_i18n } = useFormatter(); + + const [anchorEl, setAnchorEl] = useState(null); + const [isEditionFormOpen, setIsEditionFormOpen] = useState(false); + + const [commit] = useApiMutation(disseminationListPopoverDeletionMutation); + + // popover + const handleOpen = (event: React.MouseEvent) => { + setAnchorEl(event.currentTarget); + }; + const handleClose = () => setAnchorEl(null); + + // delete + const deletion = useDeletion({ handleClose }); + const { setDeleting, handleCloseDelete, handleOpenDelete } = deletion; + const submitDelete = () => { + commit({ + variables: { + id: data.id, + }, + updater: (store) => { + deleteNode(store, 'Pagination_disseminationLists', paginationOptions, data.id); + }, + onCompleted: () => { + setDeleting(false); + handleCloseDelete(); + }, + onError: (error: Error) => { + handleError(error); + handleCloseDelete(); + }, + }); + }; + + // edition + const handleDisplayEdit = () => { + setIsEditionFormOpen(true); + handleClose(); + }; + + const handleCloseEditionForm = () => setIsEditionFormOpen(false); + + return ( + <> + + + + + {t_i18n('Update')} + {t_i18n('Delete')} + + + {isEditionFormOpen && ( + + )} + + ); +}; + +export default DisseminationListPopover; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index cea5932ff58d..1ba3be4fdcfe 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -16,6 +16,7 @@ import { usePaginationLocalStorage } from '../../../../utils/hooks/useLocalStora import { DataTableProps } from '../../../../components/dataGrid/dataTableTypes'; import ItemIcon from '../../../../components/ItemIcon'; import { UsePreloadedPaginationFragment } from '../../../../utils/hooks/usePreloadedPaginationFragment'; +import DisseminationListPopover from '@components/settings/dissemination_lists/DisseminationListPopover'; export const disseminationListsQuery = graphql` query DisseminationListsLinesPaginationQuery( @@ -152,7 +153,7 @@ const DisseminationLists = () => { disableLineSelection disableNavigation preloadedPaginationProps={preloadedPaginationProps} - // actions={(row) => } + actions={(row) => } message={t_i18n('// TODO')} /> )} diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 1e299cb28bd4..b57effad8001 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -30,7 +30,7 @@ import type { BasicStoreObject } from '../../types/store'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; import { UnsupportedError } from '../../config/errors'; import { generateInternalId } from '../../schema/identifier'; -import { createInternalObject } from '../../domain/internalObject'; +import { createInternalObject, deleteInternalObject } from '../../domain/internalObject'; const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); @@ -107,4 +107,10 @@ export const addDisseminationList = async (context: AuthContext, user: AuthUser, }; export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => {}; -export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => {}; + +export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => { + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } + return deleteInternalObject(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); +}; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts index d1cb1b5408f3..f014e3b275df 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts @@ -14,7 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ import type { Resolvers } from '../../generated/graphql'; -import { addDisseminationList, findAll, findById, sendToDisseminationList } from './disseminationList-domain'; +import { addDisseminationList, deleteDisseminationList, findAll, findById, sendToDisseminationList } from './disseminationList-domain'; const disseminationListResolvers: Resolvers = { Query: { @@ -26,9 +26,9 @@ const disseminationListResolvers: Resolvers = { disseminationListAdd: (_, { input }, context) => { return addDisseminationList(context, context.user, input); }, - // disseminationListDelete: (_, { id }, context) => { - // return deleteDisseminationList(context, context.user, id); - // }, + disseminationListDelete: (_, { id }, context) => { + return deleteDisseminationList(context, context.user, id); + }, // disseminationListFieldPatch: (_, { id, input }, context) => { // return fieldPatchDisseminationList(context, context.user, id, input); // }, From 23ae0dbc69b9ba7615acc42dfa2fac81f1e08b40 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 23 Jan 2025 09:08:42 +0100 Subject: [PATCH 12/81] [frontend/backend] emails type string not array (#5551) --- .../opencti-front/src/schema/relay.schema.graphql | 2 +- opencti-platform/opencti-graphql/src/generated/graphql.ts | 4 ++-- .../src/modules/disseminationList/disseminationList.graphql | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 3d8031cc7374..8603ff3ff75f 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -12594,7 +12594,7 @@ type DisseminationList implements InternalObject & BasicObject { created_at: DateTime! updated_at: DateTime! name: String! - emails: [String]! + emails: String! } enum DisseminationListOrdering { diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index a9653bb030f7..75cb696415dc 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -6295,7 +6295,7 @@ export type DisplayStep = { export type DisseminationList = BasicObject & InternalObject & { __typename?: 'DisseminationList'; created_at: Scalars['DateTime']['output']; - emails: Array>; + emails: Scalars['String']['output']; entity_type: Scalars['String']['output']; id: Scalars['ID']['output']; name: Scalars['String']['output']; @@ -34888,7 +34888,7 @@ export type DisplayStepResolvers = ResolversObject<{ created_at?: Resolver; - emails?: Resolver>, ParentType, ContextType>; + emails?: Resolver; entity_type?: Resolver; id?: Resolver; name?: Resolver; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 2c867ec53ae4..995f9411d0f5 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -7,7 +7,7 @@ type DisseminationList implements InternalObject & BasicObject { updated_at: DateTime! # DisseminationList name: String! - emails: [String]! + emails: String! } # Ordering From 2028e79223c785f1c57a2d1aaea8920d191fe7b2 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 23 Jan 2025 10:35:46 +0100 Subject: [PATCH 13/81] [frontend/backend] Dissemination lists edition form (#5551) --- .../DisseminationListEdition.tsx | 2 +- .../src/schema/relay.schema.graphql | 2 +- .../opencti-graphql/src/config/conf.js | 6 +++++ .../opencti-graphql/src/generated/graphql.ts | 2 +- .../disseminationList-domain.ts | 23 +++++++++++++++++-- .../disseminationList-resolver.ts | 8 +++---- .../disseminationList.graphql | 2 +- .../disseminationList/disseminationList.ts | 2 +- 8 files changed, 36 insertions(+), 11 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index 067d785a755d..6d0c950515a5 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -76,7 +76,7 @@ const DisseminationListEdition: FunctionComponent diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 8603ff3ff75f..4e93534680e4 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -12614,7 +12614,7 @@ type DisseminationListEdge { input DisseminationListAddInput { name: String! - emails: [String!]! + emails: String! } input DisseminationListSendInput { diff --git a/opencti-platform/opencti-graphql/src/config/conf.js b/opencti-platform/opencti-graphql/src/config/conf.js index b626d8c67831..fab4b8e76080 100644 --- a/opencti-platform/opencti-graphql/src/config/conf.js +++ b/opencti-platform/opencti-graphql/src/config/conf.js @@ -36,6 +36,7 @@ import { AI_BUS } from '../modules/ai/ai-types'; import { SUPPORT_BUS } from '../modules/support/support-types'; import { ENTITY_TYPE_EXCLUSION_LIST } from '../modules/exclusionList/exclusionList-types'; import { ENTITY_TYPE_FINTEL_TEMPLATE } from '../modules/fintelTemplate/fintelTemplate-types'; +import {ENTITY_TYPE_DISSEMINATION_LIST} from "../modules/disseminationList/disseminationList-types"; // https://golang.org/src/crypto/x509/root_linux.go const LINUX_CERTFILES = [ @@ -646,6 +647,11 @@ export const BUS_TOPICS = { DELETE_TOPIC: `${TOPIC_PREFIX}ENTITY_TYPE_EXCLUSION_LIST_DELETE_TOPIC`, ADDED_TOPIC: `${TOPIC_PREFIX}ENTITY_TYPE_EXCLUSION_LIST_ADDED_TOPIC`, }, + [ENTITY_TYPE_DISSEMINATION_LIST]: { + EDIT_TOPIC: `${TOPIC_PREFIX}ENTITY_TYPE_DISSEMINATION_LIST_EDIT_TOPIC`, + DELETE_TOPIC: `${TOPIC_PREFIX}ENTITY_TYPE_DISSEMINATION_LIST_DELETE_TOPIC`, + ADDED_TOPIC: `${TOPIC_PREFIX}ENTITY_TYPE_DISSEMINATION_LIST_ADDED_TOPIC`, + }, [ENTITY_TYPE_MANAGER_CONFIGURATION]: { EDIT_TOPIC: `${TOPIC_PREFIX}ENTITY_TYPE_MANAGER_CONFIGURATION_EDIT_TOPIC`, ADDED_TOPIC: `${TOPIC_PREFIX}ENTITY_TYPE_MANAGER_CONFIGURATION_ADDED_TOPIC`, diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index 75cb696415dc..5e3a808ce7a9 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -6305,7 +6305,7 @@ export type DisseminationList = BasicObject & InternalObject & { }; export type DisseminationListAddInput = { - emails: Array; + emails: Scalars['String']['input']; name: Scalars['String']['input']; }; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index b57effad8001..132c16a2b19f 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -25,12 +25,16 @@ import { ENTITY_TYPE_SETTINGS } from '../../schema/internalObject'; import { downloadFile, loadFile } from '../../database/file-storage'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; -import { isFeatureEnabled } from '../../config/conf'; +import conf, { BUS_TOPICS, isFeatureEnabled } from '../../config/conf'; +import { READ_DATA_INDICES, READ_INDEX_DELETED_OBJECTS } from '../../database/utils'; import type { BasicStoreObject } from '../../types/store'; +import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; import { UnsupportedError } from '../../config/errors'; import { generateInternalId } from '../../schema/identifier'; import { createInternalObject, deleteInternalObject } from '../../domain/internalObject'; +import { updateAttribute } from '../../database/middleware'; +import { notify } from '../../database/redis'; const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); @@ -106,7 +110,22 @@ export const addDisseminationList = async (context: AuthContext, user: AuthUser, return storeAndCreateDisseminationList(context, user, input); }; -export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => {}; +export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => { + const disseminationList = await findById(context, user, id); + if (!disseminationList) { + throw FunctionalError(`Dissemination list ${id} cannot be found`); + } + const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, input); + await publishUserAction({ + user, + event_type: 'mutation', + event_scope: 'update', + event_access: 'administration', + message: `updates \`${input?.map((i) => i.key).join(', ')}\` for dissemination list \`${element.name}\``, + context_data: { id, entity_type: ENTITY_TYPE_DISSEMINATION_LIST, input } + }); + return notify(BUS_TOPICS[ENTITY_TYPE_DISSEMINATION_LIST].EDIT_TOPIC, element, user); +}; export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => { if (!isDisseminationListEnabled) { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts index f014e3b275df..e200caa102c7 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts @@ -14,7 +14,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ import type { Resolvers } from '../../generated/graphql'; -import { addDisseminationList, deleteDisseminationList, findAll, findById, sendToDisseminationList } from './disseminationList-domain'; +import { addDisseminationList, deleteDisseminationList, fieldPatchDisseminationList, findAll, findById, sendToDisseminationList } from './disseminationList-domain'; const disseminationListResolvers: Resolvers = { Query: { @@ -29,9 +29,9 @@ const disseminationListResolvers: Resolvers = { disseminationListDelete: (_, { id }, context) => { return deleteDisseminationList(context, context.user, id); }, - // disseminationListFieldPatch: (_, { id, input }, context) => { - // return fieldPatchDisseminationList(context, context.user, id, input); - // }, + disseminationListFieldPatch: (_, { id, input }, context) => { + return fieldPatchDisseminationList(context, context.user, id, input); + }, disseminationListSend: (_, { input }, context) => { return sendToDisseminationList(context, context.user, input); } diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 995f9411d0f5..33dc16ead17f 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -41,7 +41,7 @@ type DisseminationListEdge { input DisseminationListAddInput { name: String! @constraint(minLength: 2, format: "not-blank") - emails: [String!]! + emails: String! } input DisseminationListSendInput { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts index 00197add820c..8e86c50afe5d 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts @@ -33,7 +33,7 @@ const DISSEMINATION_LIST_DEFINITION: ModuleDefinition { From 9dc6ab8082687a96015275a122015cca40d88834 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 23 Jan 2025 15:27:08 +0100 Subject: [PATCH 14/81] [backend] Allow event-scope filtering on "disseminate" (#5551) --- .../opencti-graphql/src/manager/activityListener.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencti-platform/opencti-graphql/src/manager/activityListener.ts b/opencti-platform/opencti-graphql/src/manager/activityListener.ts index 24e822be9564..0169bef57fb7 100644 --- a/opencti-platform/opencti-graphql/src/manager/activityListener.ts +++ b/opencti-platform/opencti-graphql/src/manager/activityListener.ts @@ -28,7 +28,7 @@ import { isStixCoreObject } from '../schema/stixCoreObject'; const INTERNAL_READ_ENTITIES = [ENTITY_TYPE_WORKSPACE]; const LOGS_SENSITIVE_FIELDS = conf.get('app:app_logs:logs_redacted_inputs') ?? []; -export const EVENT_SCOPE_VALUES = ['create', 'update', 'delete', 'read', 'search', 'enrich', 'download', 'import', 'export', 'login', 'logout', 'unauthorized']; +export const EVENT_SCOPE_VALUES = ['create', 'update', 'delete', 'read', 'search', 'enrich', 'download', 'import', 'export', 'login', 'logout', 'unauthorized', 'disseminate']; export const EVENT_TYPE_VALUES = ['authentication', 'read', 'mutation', 'file', 'command']; export const EVENT_ACCESS_VALUES = ['extended', 'administration']; export const EVENT_STATUS_VALUES = ['error', 'success']; From 9f1b20c8c4b095ebeeebbcd8de0faecfdeae1d94 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 23 Jan 2025 16:23:45 +0100 Subject: [PATCH 15/81] [backend] add to_email in default config (#5551) --- opencti-platform/opencti-graphql/config/default.json | 5 ++++- .../modules/disseminationList/disseminationList-domain.ts | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/opencti-platform/opencti-graphql/config/default.json b/opencti-platform/opencti-graphql/config/default.json index 2927df7f7bea..a793a6fceb07 100644 --- a/opencti-platform/opencti-graphql/config/default.json +++ b/opencti-platform/opencti-graphql/config/default.json @@ -125,7 +125,10 @@ "csv_ingestion": { "max_bundle_size": 1000 }, - "validation_mode" : "workbench" + "validation_mode": "workbench", + "dissemination_list": { + "to_email": "no-reply@filigran.io" + } }, "demo_mode": false, "http_proxy": "", diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 132c16a2b19f..0630976bb252 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -64,10 +64,10 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs const stream = await downloadFile(file.id); const emailBodyFormatted = input.email_body.replaceAll('\n', '
'); const generatedEmail = ejs.render(EMAIL_TEMPLATE, { settings, body: emailBodyFormatted }); - const fromEmail = conf.get('smtp:from_email'); + const toEmail = conf.get('app:dissemination_list:to_email'); const sendMailArgs: SendMailArgs = { from: settings.platform_email, - to: settings.platform_email, + to: toEmail, bcc: [input.email_address, user.user_email], subject: input.email_object, html: generatedEmail, From aeb069c19848c57c8d6f583bba66c756633f5552 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 23 Jan 2025 18:29:49 +0100 Subject: [PATCH 16/81] [frontend/backend] add description and counter (#5551) --- .../DisseminationListCreation.tsx | 17 ++++++++++++++++- .../DisseminationListEdition.tsx | 18 +++++++++++++++++- .../dissemination_lists/DisseminationLists.tsx | 18 +++++++++++++++++- .../src/schema/relay.schema.graphql | 4 ++++ .../opencti-graphql/src/generated/graphql.ts | 6 ++++++ .../disseminationList-domain.ts | 2 ++ .../disseminationList-types.ts | 6 ++++++ .../disseminationList.graphql | 4 ++++ .../disseminationList/disseminationList.ts | 2 ++ 9 files changed, 74 insertions(+), 3 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index 446d27c43cd5..4dd07e104cd2 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -11,6 +11,7 @@ import TextField from '../../../../components/TextField'; import { insertNode } from '../../../../utils/store'; import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; +import MarkdownField from '../../../../components/fields/MarkdownField'; const disseminationListCreationMutation = graphql` mutation DisseminationListCreationAddMutation($input: DisseminationListAddInput!) { @@ -23,6 +24,7 @@ const disseminationListCreationMutation = graphql` interface DisseminationListCreationFormData { name: string; emails: string; + description: string; } interface DisseminationListCreationFormProps { @@ -43,9 +45,12 @@ const DisseminationListCreationForm: FunctionComponent { + const count = values.emails.split('\n').length; const input = { name: values.name, emails: values.emails, + description: values.description, + dissemination_list_values_count: count, }; commit({ variables: { @@ -73,6 +78,7 @@ const DisseminationListCreationForm: FunctionComponent + diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index 6d0c950515a5..5d12d2ef1dc8 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -10,6 +10,7 @@ import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import TextField from '../../../../components/TextField'; import { useFormatter } from '../../../../components/i18n'; +import MarkdownField from '../../../../components/fields/MarkdownField'; export const disseminationListMutationFieldPatch = graphql` mutation DisseminationListEditionFieldPatchMutation($id: ID!, $input: [EditInput!]!) { @@ -28,6 +29,8 @@ interface DisseminationListEditionComponentProps { interface DisseminationListEditionFormData { name: string; emails: string; + description: string; + dissemination_list_values_count?: number; } const DisseminationListEdition: FunctionComponent = ({ @@ -44,6 +47,9 @@ const DisseminationListEdition: FunctionComponent { setSubmitting(true); + if (values.emails) { + values.dissemination_list_values_count = values.emails.split('\n').length; + } const input = Object.entries(values) .map(([key, value]) => { @@ -72,6 +78,7 @@ const DisseminationListEdition: FunctionComponent + diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index 1ba3be4fdcfe..24323b8d37b1 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -17,6 +17,7 @@ import { DataTableProps } from '../../../../components/dataGrid/dataTableTypes'; import ItemIcon from '../../../../components/ItemIcon'; import { UsePreloadedPaginationFragment } from '../../../../utils/hooks/usePreloadedPaginationFragment'; import DisseminationListPopover from '@components/settings/dissemination_lists/DisseminationListPopover'; +import { ExclusionListsLine_node$data } from '@components/settings/exclusion_lists/__generated__/ExclusionListsLine_node.graphql'; export const disseminationListsQuery = graphql` query DisseminationListsLinesPaginationQuery( @@ -76,6 +77,8 @@ const disseminationListsLineFragment = graphql` id name emails + description + dissemination_list_values_count } `; @@ -126,7 +129,20 @@ const DisseminationLists = () => { id: 'name', label: t_i18n('Name'), isSortable: true, - percentWidth: 95, + percentWidth: 20, + }, + description: { + id: 'description', + label: t_i18n('Description'), + percentWidth: 60, + isSortable: false, + }, + lineNumber: { + id: 'NumberOfElements', + label: t_i18n('Number of elements'), + percentWidth: 15, + isSortable: true, + render: (node: DisseminationListsLine_node$data) => node.dissemination_list_values_count || '-', }, }; diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 4e93534680e4..a8742ea69804 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -12595,6 +12595,8 @@ type DisseminationList implements InternalObject & BasicObject { updated_at: DateTime! name: String! emails: String! + description: String + dissemination_list_values_count: Int! } enum DisseminationListOrdering { @@ -12615,6 +12617,8 @@ type DisseminationListEdge { input DisseminationListAddInput { name: String! emails: String! + description: String + dissemination_list_values_count: Int! } input DisseminationListSendInput { diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index 5e3a808ce7a9..2f2f1d9be99e 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -6295,6 +6295,8 @@ export type DisplayStep = { export type DisseminationList = BasicObject & InternalObject & { __typename?: 'DisseminationList'; created_at: Scalars['DateTime']['output']; + description?: Maybe; + dissemination_list_values_count: Scalars['Int']['output']; emails: Scalars['String']['output']; entity_type: Scalars['String']['output']; id: Scalars['ID']['output']; @@ -6305,6 +6307,8 @@ export type DisseminationList = BasicObject & InternalObject & { }; export type DisseminationListAddInput = { + description?: InputMaybe; + dissemination_list_values_count: Scalars['Int']['input']; emails: Scalars['String']['input']; name: Scalars['String']['input']; }; @@ -34888,6 +34892,8 @@ export type DisplayStepResolvers = ResolversObject<{ created_at?: Resolver; + description?: Resolver, ParentType, ContextType>; + dissemination_list_values_count?: Resolver; emails?: Resolver; entity_type?: Resolver; id?: Resolver; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 0630976bb252..3bde5cddd325 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -98,6 +98,8 @@ const storeAndCreateDisseminationList = async (context: AuthContext, user: AuthU const disseminationListToCreate = { name: input.name, emails: input.emails, + description: input.description, + dissemination_list_values_count: input.dissemination_list_values_count, internal_id: disseminationListInternalId, }; return createInternalObject(context, user, disseminationListToCreate, ENTITY_TYPE_DISSEMINATION_LIST); diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts index 77b6de6dde4f..41c3caa60dc3 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts @@ -22,16 +22,22 @@ export const ENTITY_TYPE_DISSEMINATION_LIST = 'DisseminationList'; export interface BasicStoreEntityDisseminationList extends BasicStoreEntity { name: string; emails: string; + description: string; + dissemination_list_values_count: number; } export interface StoreEntityDisseminationList extends StoreEntity { name: string; emails: string; + description: string; + dissemination_list_values_count: number; } export interface StixDisseminationList extends StixObject { name: string; emails: string; + description: string; + dissemination_list_values_count: number; extensions: { [STIX_EXT_OCTI]: StixOpenctiExtensionSDO }; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 33dc16ead17f..eceead053a38 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -8,6 +8,8 @@ type DisseminationList implements InternalObject & BasicObject { # DisseminationList name: String! emails: String! + description: String + dissemination_list_values_count: Int! } # Ordering @@ -42,6 +44,8 @@ type DisseminationListEdge { input DisseminationListAddInput { name: String! @constraint(minLength: 2, format: "not-blank") emails: String! + description: String + dissemination_list_values_count: Int! } input DisseminationListSendInput { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts index 8e86c50afe5d..f3c0efde57e1 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts @@ -34,6 +34,8 @@ const DISSEMINATION_LIST_DEFINITION: ModuleDefinition { From 9da297ae1fd0f4280dc099cd3c76a20b0b04a21f Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Fri, 24 Jan 2025 09:49:05 +0100 Subject: [PATCH 17/81] [frontend] Add a message (#5551) --- .../settings/dissemination_lists/DisseminationLists.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index 24323b8d37b1..97d926599514 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -7,6 +7,7 @@ import { } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLinesPaginationQuery.graphql'; import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; import DisseminationListCreation from '@components/settings/dissemination_lists/DisseminationListCreation'; +import DisseminationListPopover from '@components/settings/dissemination_lists/DisseminationListPopover'; import DataTable from '../../../../components/dataGrid/DataTable'; import Breadcrumbs from '../../../../components/Breadcrumbs'; import { useFormatter } from '../../../../components/i18n'; @@ -16,8 +17,7 @@ import { usePaginationLocalStorage } from '../../../../utils/hooks/useLocalStora import { DataTableProps } from '../../../../components/dataGrid/dataTableTypes'; import ItemIcon from '../../../../components/ItemIcon'; import { UsePreloadedPaginationFragment } from '../../../../utils/hooks/usePreloadedPaginationFragment'; -import DisseminationListPopover from '@components/settings/dissemination_lists/DisseminationListPopover'; -import { ExclusionListsLine_node$data } from '@components/settings/exclusion_lists/__generated__/ExclusionListsLine_node.graphql'; +import AlertInfo from '../../../../components/AlertInfo'; export const disseminationListsQuery = graphql` query DisseminationListsLinesPaginationQuery( @@ -158,6 +158,9 @@ const DisseminationLists = () => {
+ {queryRef && ( { disableNavigation preloadedPaginationProps={preloadedPaginationProps} actions={(row) => } - message={t_i18n('// TODO')} /> )} From a118d79ec7433ef1756e4e420bde60c1e98e0f40 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Fri, 24 Jan 2025 09:50:29 +0100 Subject: [PATCH 18/81] [frontend] Add translations (#5551) --- opencti-platform/opencti-front/lang/back/de.json | 1 + opencti-platform/opencti-front/lang/back/en.json | 1 + opencti-platform/opencti-front/lang/back/es.json | 1 + opencti-platform/opencti-front/lang/back/fr.json | 1 + opencti-platform/opencti-front/lang/back/ja.json | 1 + opencti-platform/opencti-front/lang/back/ko.json | 1 + opencti-platform/opencti-front/lang/back/zh.json | 1 + opencti-platform/opencti-front/lang/front/de.json | 5 +++++ opencti-platform/opencti-front/lang/front/en.json | 5 +++++ opencti-platform/opencti-front/lang/front/es.json | 5 +++++ opencti-platform/opencti-front/lang/front/fr.json | 5 +++++ opencti-platform/opencti-front/lang/front/ja.json | 5 +++++ opencti-platform/opencti-front/lang/front/ko.json | 5 +++++ opencti-platform/opencti-front/lang/front/zh.json | 5 +++++ 14 files changed, 42 insertions(+) diff --git a/opencti-platform/opencti-front/lang/back/de.json b/opencti-platform/opencti-front/lang/back/de.json index 7ff5c6a07c7f..c2aa8a7e4348 100644 --- a/opencti-platform/opencti-front/lang/back/de.json +++ b/opencti-platform/opencti-front/lang/back/de.json @@ -209,6 +209,7 @@ "Disabled": "Deaktiviert", "Dismissible": "Unzulässig", "Display name": "Name anzeigen", + "Dissemination list values count": "Verbreitungsliste Werte zählen", "DLL service": "DLL-Dienst", "Do you want to delete this support package?": "Möchten Sie dieses Support-Paket löschen?", "Draft change": "Entwurfsänderung", diff --git a/opencti-platform/opencti-front/lang/back/en.json b/opencti-platform/opencti-front/lang/back/en.json index 8e477e72b128..c5cf90c4d298 100644 --- a/opencti-platform/opencti-front/lang/back/en.json +++ b/opencti-platform/opencti-front/lang/back/en.json @@ -209,6 +209,7 @@ "Disabled": "Disabled", "Dismissible": "Dismissible", "Display name": "Display name", + "Dissemination list values count": "Dissemination list values count", "DLL service": "DLL service", "Do you want to delete this support package?": "Do you want to delete this support package?", "Draft change": "Draft change", diff --git a/opencti-platform/opencti-front/lang/back/es.json b/opencti-platform/opencti-front/lang/back/es.json index be377716f2f7..5a23935d1b67 100644 --- a/opencti-platform/opencti-front/lang/back/es.json +++ b/opencti-platform/opencti-front/lang/back/es.json @@ -209,6 +209,7 @@ "Disabled": "Desactivado", "Dismissible": "Despedir", "Display name": "Mostrar nombre", + "Dissemination list values count": "Recuento de valores de la lista de difusión", "DLL service": "Servicio DLL", "Do you want to delete this support package?": "¿Desea eliminar este paquete de soporte?", "Draft change": "Proyecto de cambio", diff --git a/opencti-platform/opencti-front/lang/back/fr.json b/opencti-platform/opencti-front/lang/back/fr.json index d488ab4e74e0..16ecf521c31f 100644 --- a/opencti-platform/opencti-front/lang/back/fr.json +++ b/opencti-platform/opencti-front/lang/back/fr.json @@ -209,6 +209,7 @@ "Disabled": "Désactivé", "Dismissible": "Rejetable", "Display name": "Nom d'affichage", + "Dissemination list values count": "Liste de diffusion - comptage des valeurs", "DLL service": "Service DLL", "Do you want to delete this support package?": "Voulez-vous supprimer ce paquet de support ?", "Draft change": "Changement en brouillon", diff --git a/opencti-platform/opencti-front/lang/back/ja.json b/opencti-platform/opencti-front/lang/back/ja.json index ecff0be7ee54..090d0c0efe64 100644 --- a/opencti-platform/opencti-front/lang/back/ja.json +++ b/opencti-platform/opencti-front/lang/back/ja.json @@ -209,6 +209,7 @@ "Disabled": "無効", "Dismissible": "無視可能", "Display name": "表示名", + "Dissemination list values count": "普及リストの数値カウント", "DLL service": "DLLサービス", "Do you want to delete this support package?": "このサポートパッケージを削除しますか?", "Draft change": "ドラフト変更", diff --git a/opencti-platform/opencti-front/lang/back/ko.json b/opencti-platform/opencti-front/lang/back/ko.json index 04435addc8c5..77580d45e153 100644 --- a/opencti-platform/opencti-front/lang/back/ko.json +++ b/opencti-platform/opencti-front/lang/back/ko.json @@ -209,6 +209,7 @@ "Disabled": "비활성화됨", "Dismissible": "해제 가능", "Display name": "표시 이름", + "Dissemination list values count": "배포 목록 값 수", "DLL service": "DLL 서비스", "Do you want to delete this support package?": "이 지원 패키지를 삭제하시겠습니까?", "Draft change": "초안 변경", diff --git a/opencti-platform/opencti-front/lang/back/zh.json b/opencti-platform/opencti-front/lang/back/zh.json index 3bc51493032b..f802c8603dcb 100644 --- a/opencti-platform/opencti-front/lang/back/zh.json +++ b/opencti-platform/opencti-front/lang/back/zh.json @@ -209,6 +209,7 @@ "Disabled": "禁用", "Dismissible": "可忽略", "Display name": "显示名称", + "Dissemination list values count": "传播清单数值计数", "DLL service": "DLL 服务", "Do you want to delete this support package?": "您想删除此支持包吗?", "Draft change": "修改草案", diff --git a/opencti-platform/opencti-front/lang/front/de.json b/opencti-platform/opencti-front/lang/front/de.json index 97e056a131f2..d887e328d6a1 100644 --- a/opencti-platform/opencti-front/lang/front/de.json +++ b/opencti-platform/opencti-front/lang/front/de.json @@ -575,6 +575,7 @@ "Create an artifact": "Erstellen eines Artefakts", "Create an attack pattern": "Erstellen eines Angriffsmusters", "Create an attribute": "Ein Attribut erstellen", + "Create an dissemination list": "Erstellen Sie eine Verbreitungsliste", "Create an entity": "Erstellen Sie eine Entität", "Create an event": "Ein Ereignis erstellen", "Create an exclusion list": "Erstellen Sie eine Ausschlussliste", @@ -803,6 +804,8 @@ "Display time range selector": "Zeitbereichselektor anzeigen", "Disseminate a file": "Verbreiten Sie eine Datei", "Disseminate files by email": "Verbreitung von Dateien per E-Mail", + "Dissemination Lists": "Verbreitungslisten", + "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Verbreitungslisten können verwendet werden, um Dateien an eine Liste von Empfängern zu senden, die nicht unbedingt ein OpenCTI-Konto haben.", "Distributed": "Verteilt", "Distribution": "Verteilung", "Distribution of entities": "Verteilung der Entitäten", @@ -840,6 +843,7 @@ "Do you want to delete this CSV mapper?": "Möchten Sie diesen CSV-Mapper löschen?", "Do you want to delete this data component?": "Möchten Sie diese Datenkomponente löschen?", "Do you want to delete this data source?": "Möchten Sie diese Datenquelle löschen?", + "Do you want to delete this dissemination list?": "Möchten Sie diese Verbreitungsliste löschen?", "Do you want to delete this draft?": "Möchten Sie diesen Entwurf löschen?", "Do you want to delete this entity?": "Möchten Sie diese Entität löschen?", "Do you want to delete this event?": "Möchten Sie dieses Ereignis löschen?", @@ -3147,6 +3151,7 @@ "Update a data source": "Aktualisieren einer Datenquelle", "Update a date source": "Aktualisieren einer Datumsquelle", "Update a decay rule": "Aktualisieren einer Zerfallsregel", + "Update a dissemination list": "Aktualisieren einer Verbreitungsliste", "Update a feed": "Aktualisieren eines Feeds", "Update a feedback": "Eine Bewertung aktualisieren", "Update a group": "Aktualisieren einer Gruppe", diff --git a/opencti-platform/opencti-front/lang/front/en.json b/opencti-platform/opencti-front/lang/front/en.json index 1d266ae11f54..adbe8119d303 100644 --- a/opencti-platform/opencti-front/lang/front/en.json +++ b/opencti-platform/opencti-front/lang/front/en.json @@ -575,6 +575,7 @@ "Create an artifact": "Create an artifact", "Create an attack pattern": "Create an attack pattern", "Create an attribute": "Create an attribute", + "Create an dissemination list": "Create an dissemination list", "Create an entity": "Create an entity", "Create an event": "Create an event", "Create an exclusion list": "Create an exclusion list", @@ -803,6 +804,8 @@ "Display time range selector": "Display time range selector", "Disseminate a file": "Disseminate a file", "Disseminate files by email": "Disseminate files by email", + "Dissemination Lists": "Dissemination Lists", + "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.", "Distributed": "Distributed", "Distribution": "Distribution", "Distribution of entities": "Distribution of entities", @@ -840,6 +843,7 @@ "Do you want to delete this CSV mapper?": "Do you want to delete this CSV mapper?", "Do you want to delete this data component?": "Do you want to delete this data component?", "Do you want to delete this data source?": "Do you want to delete this data source?", + "Do you want to delete this dissemination list?": "Do you want to delete this dissemination list?", "Do you want to delete this draft?": "Do you want to delete this draft?", "Do you want to delete this entity?": "Do you want to delete this entity?", "Do you want to delete this event?": "Do you want to delete this event?", @@ -3147,6 +3151,7 @@ "Update a data source": "Update a data source", "Update a date source": "Update a date source", "Update a decay rule": "Update a decay rule", + "Update a dissemination list": "Update a dissemination list", "Update a feed": "Update a feed", "Update a feedback": "Update a feedback", "Update a group": "Update a group", diff --git a/opencti-platform/opencti-front/lang/front/es.json b/opencti-platform/opencti-front/lang/front/es.json index 3049803a397c..b1d54fdd1b8a 100644 --- a/opencti-platform/opencti-front/lang/front/es.json +++ b/opencti-platform/opencti-front/lang/front/es.json @@ -575,6 +575,7 @@ "Create an artifact": "Crear un artefacto", "Create an attack pattern": "Crear un patrón de ataque", "Create an attribute": "Crear un atributo", + "Create an dissemination list": "Crear una lista de difusión", "Create an entity": "Crear una entidad", "Create an event": "Crear un evento", "Create an exclusion list": "Crear una lista de exclusión", @@ -803,6 +804,8 @@ "Display time range selector": "Mostrar el selector de rango temporal", "Disseminate a file": "Difundir un fichero", "Disseminate files by email": "Difundir archivos por correo electrónico", + "Dissemination Lists": "Listas de difusión", + "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Las listas de difusión se pueden utilizar para enviar archivos a una lista de destinatarios que no necesariamente tienen una cuenta OpenCTI.", "Distributed": "Distribuido", "Distribution": "Distribución", "Distribution of entities": "Distribución de entidades", @@ -840,6 +843,7 @@ "Do you want to delete this CSV mapper?": "¿Desea eliminar este mapeador CSV?", "Do you want to delete this data component?": "¿Quieres borrar este componente de datos?", "Do you want to delete this data source?": "¿Quieres eliminar esta fuente de datos?", + "Do you want to delete this dissemination list?": "¿Desea eliminar esta lista de difusión?", "Do you want to delete this draft?": "¿Desea eliminar este borrador?", "Do you want to delete this entity?": "¿Quieres borrar esta entidad?", "Do you want to delete this event?": "¿Desea eliminar este evento?", @@ -3147,6 +3151,7 @@ "Update a data source": "Actualizar una fuente de datos", "Update a date source": "Actualizar una fuente de datos", "Update a decay rule": "Actualizar una regla de decaimiento", + "Update a dissemination list": "Actualizar una lista de difusión", "Update a feed": "Actualizar una fuente de datos", "Update a feedback": "Actualizar un comentario", "Update a group": "Actualizar un grupo", diff --git a/opencti-platform/opencti-front/lang/front/fr.json b/opencti-platform/opencti-front/lang/front/fr.json index f04a6c46e011..0f9b28fec5e0 100644 --- a/opencti-platform/opencti-front/lang/front/fr.json +++ b/opencti-platform/opencti-front/lang/front/fr.json @@ -575,6 +575,7 @@ "Create an artifact": "Créer un artefact", "Create an attack pattern": "Créer un motif d'attaque", "Create an attribute": "Créer un attribut", + "Create an dissemination list": "Créer une liste de diffusion", "Create an entity": "Créer une entité", "Create an event": "Créer un événement", "Create an exclusion list": "Créer une liste d'exclusion", @@ -803,6 +804,8 @@ "Display time range selector": "Afficher le sélecteur d'intervalle de temps", "Disseminate a file": "Diffuser un fichier", "Disseminate files by email": "Diffusion des fichiers par courrier électronique", + "Dissemination Lists": "Listes de diffusion", + "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Les listes de diffusion peuvent être utilisées pour envoyer des fichiers à une liste de destinataires qui n'ont pas nécessairement un compte OpenCTI.", "Distributed": "Distribué", "Distribution": "Répartition", "Distribution of entities": "Distribution des entités", @@ -840,6 +843,7 @@ "Do you want to delete this CSV mapper?": "Voulez-vous supprimer ce mappage CSV ?", "Do you want to delete this data component?": "Souhaitez-vous supprimer ce composant de données ?", "Do you want to delete this data source?": "Souhaitez-vous supprimer cette source de données ?", + "Do you want to delete this dissemination list?": "Voulez-vous supprimer cette liste de diffusion ?", "Do you want to delete this draft?": "Voulez-vous supprimer ce brouillon ?", "Do you want to delete this entity?": "Souhaitez-vous supprimer cette entité ?", "Do you want to delete this event?": "Voulez-vous supprimer cet événement ?", @@ -3147,6 +3151,7 @@ "Update a data source": "Modifier une source de données", "Update a date source": "Mise à jour d'une date source", "Update a decay rule": "Mettre à jour une règle de déclin", + "Update a dissemination list": "Mise à jour d'une liste de diffusion", "Update a feed": "Modifier un flux", "Update a feedback": "Mettre à jour un commentaire", "Update a group": "Modifier un groupe", diff --git a/opencti-platform/opencti-front/lang/front/ja.json b/opencti-platform/opencti-front/lang/front/ja.json index b296aa8c5c73..500e701e9c5b 100644 --- a/opencti-platform/opencti-front/lang/front/ja.json +++ b/opencti-platform/opencti-front/lang/front/ja.json @@ -575,6 +575,7 @@ "Create an artifact": "アーティファクトを作成", "Create an attack pattern": "攻撃パターンを作成", "Create an attribute": "属性を作成", + "Create an dissemination list": "普及リストの作成", "Create an entity": "エンティティを作成", "Create an event": "イベントを作成", "Create an exclusion list": "除外リストの作成", @@ -803,6 +804,8 @@ "Display time range selector": "時間範囲選択ツールを表示", "Disseminate a file": "ファイルを配布する", "Disseminate files by email": "電子メールによるファイルの配布", + "Dissemination Lists": "配信リスト", + "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "配信リストは、必ずしも OpenCTI アカウントを持っていない受信者のリストにファイルを送信するために使用できます。", "Distributed": "分散", "Distribution": "分布", "Distribution of entities": "エンティティの分布", @@ -840,6 +843,7 @@ "Do you want to delete this CSV mapper?": "このCSVマッパーを削除しますか?", "Do you want to delete this data component?": "このデータコンポーネントを削除しますか?", "Do you want to delete this data source?": "このデータ ソースを削除しますか?", + "Do you want to delete this dissemination list?": "この配信リストを削除しますか?", "Do you want to delete this draft?": "この下書きを削除しますか?", "Do you want to delete this entity?": "このエンティティを削除しますか?", "Do you want to delete this event?": "このイベントを削除しますか?", @@ -3147,6 +3151,7 @@ "Update a data source": "データ ソースを更新する", "Update a date source": "日付ソースの更新", "Update a decay rule": "崩壊ルールの更新", + "Update a dissemination list": "配信リストを更新する", "Update a feed": "フィードを更新", "Update a feedback": "フィードバックを更新する", "Update a group": "グループを更新", diff --git a/opencti-platform/opencti-front/lang/front/ko.json b/opencti-platform/opencti-front/lang/front/ko.json index 1b2a236b1ee1..0bf3f62fc821 100644 --- a/opencti-platform/opencti-front/lang/front/ko.json +++ b/opencti-platform/opencti-front/lang/front/ko.json @@ -575,6 +575,7 @@ "Create an artifact": "아티팩트 생성", "Create an attack pattern": "공격 패턴 생성", "Create an attribute": "속성 생성", + "Create an dissemination list": "배포 목록 만들기", "Create an entity": "엔터티 생성", "Create an event": "이벤트 생성", "Create an exclusion list": "제외 목록 만들기", @@ -803,6 +804,8 @@ "Display time range selector": "시간 범위 선택기 표시", "Disseminate a file": "파일 배포", "Disseminate files by email": "이메일로 파일 배포", + "Dissemination Lists": "배포 목록", + "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "배포 목록은 OpenCTI 계정이 없는 수신자 목록에 파일을 보내는 데 사용할 수 있습니다.", "Distributed": "분산됨", "Distribution": "분포", "Distribution of entities": "엔터티의 분포", @@ -840,6 +843,7 @@ "Do you want to delete this CSV mapper?": "이 CSV 매퍼를 삭제하시겠습니까?", "Do you want to delete this data component?": "이 데이터 구성 요소를 삭제하시겠습니까?", "Do you want to delete this data source?": "이 데이터 소스를 삭제하시겠습니까?", + "Do you want to delete this dissemination list?": "이 배포 목록을 삭제하시겠습니까?", "Do you want to delete this draft?": "이 초안을 삭제하시겠습니까?", "Do you want to delete this entity?": "이 엔터티를 삭제하시겠습니까?", "Do you want to delete this event?": "이 이벤트를 삭제하시겠습니까?", @@ -3147,6 +3151,7 @@ "Update a data source": "데이터 소스 업데이트", "Update a date source": "날짜 소스 업데이트", "Update a decay rule": "감쇠 규칙 업데이트", + "Update a dissemination list": "배포 목록 업데이트하기", "Update a feed": "피드 업데이트", "Update a feedback": "피드백 업데이트", "Update a group": "그룹 업데이트", diff --git a/opencti-platform/opencti-front/lang/front/zh.json b/opencti-platform/opencti-front/lang/front/zh.json index f904cc788229..44b32e8aaa07 100644 --- a/opencti-platform/opencti-front/lang/front/zh.json +++ b/opencti-platform/opencti-front/lang/front/zh.json @@ -575,6 +575,7 @@ "Create an artifact": "创建工件", "Create an attack pattern": "创建攻击模式", "Create an attribute": "创建属性", + "Create an dissemination list": "创建传播清单", "Create an entity": "创建实体", "Create an event": "创建活动", "Create an exclusion list": "创建排除名单", @@ -803,6 +804,8 @@ "Display time range selector": "显示时间范围选择器", "Disseminate a file": "传播文件", "Disseminate files by email": "通过电子邮件传播文件", + "Dissemination Lists": "传播列表", + "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "传播列表可用于向不一定拥有 OpenCTI 账户的收件人列表发送文件。", "Distributed": "分布式", "Distribution": "分布:", "Distribution of entities": "实体分布", @@ -840,6 +843,7 @@ "Do you want to delete this CSV mapper?": "您要删除此CSV映射吗?", "Do you want to delete this data component?": "是否要删除此数据组件?", "Do you want to delete this data source?": "你想删除这个数据源吗?", + "Do you want to delete this dissemination list?": "你想删除这个传播列表吗?", "Do you want to delete this draft?": "要删除此草稿吗?", "Do you want to delete this entity?": "是否要删除此实体?", "Do you want to delete this event?": "您想删除此事件吗?", @@ -3147,6 +3151,7 @@ "Update a data source": "更新数据源", "Update a date source": "更新日期来源", "Update a decay rule": "更新衰变规则", + "Update a dissemination list": "更新传播列表", "Update a feed": "更新订阅源", "Update a feedback": "更新一个反馈", "Update a group": "更新组", From e9cdd445e69c7da96e3fc71773c91f1404cf3955 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Fri, 24 Jan 2025 10:09:37 +0100 Subject: [PATCH 19/81] [frontend] Use onBlur on edition form (#5551) --- .../DisseminationListEdition.tsx | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index 5d12d2ef1dc8..57a0d3fd2bb9 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -66,7 +66,6 @@ const DisseminationListEdition: FunctionComponent { setSubmitting(false); - onClose(); }, onError: (error: Error) => { handleErrorInForm(error, setErrors); @@ -91,8 +90,8 @@ const DisseminationListEdition: FunctionComponent enableReinitialize={true} - validateOnBlur={false} - validateOnChange={false} + validateOnBlur={true} + validateOnChange={true} initialValues={initialValues} validationSchema={disseminationListValidator(t_i18n)} onSubmit={onSubmit} @@ -103,6 +102,7 @@ const DisseminationListEdition: FunctionComponent @@ -110,6 +110,7 @@ const DisseminationListEdition: FunctionComponent {t_i18n('Cancel')} -
)} From a7b61cdd3bfe2e3809d2aa450fa50635f5b3af63 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Fri, 24 Jan 2025 10:49:01 +0100 Subject: [PATCH 20/81] [backend/frontend] Fix Deepscan (#5551) --- .../components/settings/AccessesMenu.tsx | 13 +- .../DisseminationListEdition.tsx | 111 +++++++++--------- .../src/schema/relay.schema.graphql | 2 + .../opencti-graphql/src/generated/graphql.ts | 19 +++ .../disseminationList-domain.ts | 2 - .../disseminationList.graphql | 22 ++-- 6 files changed, 89 insertions(+), 80 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx index ba6fc9b962fa..6c61273c3397 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx @@ -1,21 +1,16 @@ import React, { FunctionComponent } from 'react'; import { + AccountBalanceOutlined, + AttachEmailOutlined, CenterFocusStrongOutlined, + LocalPoliceOutlined, PermIdentityOutlined, ReceiptOutlined, - LocalPoliceOutlined, SecurityOutlined, - AccountBalanceOutlined, - AttachEmailOutlined } from '@mui/icons-material'; import { AccountGroupOutline } from 'mdi-material-ui'; import NavToolbarMenu, { MenuEntry } from '../common/menus/NavToolbarMenu'; -import useGranted, { - VIRTUAL_ORGANIZATION_ADMIN, - SETTINGS_SETACCESSES, - SETTINGS_SETMARKINGS, - SETTINGS, SETTINGS_SETDISSEMINATION -} from '../../../utils/hooks/useGranted'; +import useGranted, { SETTINGS_SETACCESSES, SETTINGS_SETDISSEMINATION, SETTINGS_SETMARKINGS, VIRTUAL_ORGANIZATION_ADMIN } from '../../../utils/hooks/useGranted'; const AccessesMenu: FunctionComponent = () => { const entries: MenuEntry[] = [ diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index 57a0d3fd2bb9..48177382efc9 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -86,64 +86,59 @@ const DisseminationListEdition: FunctionComponent - {initialValues - ? ( - - enableReinitialize={true} - validateOnBlur={true} - validateOnChange={true} - initialValues={initialValues} - validationSchema={disseminationListValidator(t_i18n)} - onSubmit={onSubmit} - > - {({ submitForm, isSubmitting }) => ( -
- - - -
- -
- - )} - - ) - : - } + + enableReinitialize={true} + validateOnBlur={true} + validateOnChange={true} + initialValues={initialValues} + validationSchema={disseminationListValidator(t_i18n)} + onSubmit={onSubmit} + > + {({ submitForm, isSubmitting }) => ( +
+ + + +
+ +
+ + )} + ); }; diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index a8742ea69804..8c7cfca0e133 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -8195,6 +8195,8 @@ type Query { draftWorkspaceRelationships(draftId: String!, types: [String], first: Int, after: ID, orderBy: StixRelationshipsOrdering, orderMode: OrderingMode, filters: FilterGroup, search: String): StixRelationshipConnection draftWorkspaceSightingRelationships(draftId: String!, types: [String], first: Int, after: ID, orderBy: StixSightingRelationshipsOrdering, orderMode: OrderingMode, filters: FilterGroup, search: String): StixSightingRelationshipConnection fintelTemplate(id: ID!): FintelTemplate + disseminationList(id: String!): DisseminationList + disseminationLists(first: Int, after: ID, orderBy: DisseminationListOrdering, orderMode: OrderingMode, filters: FilterGroup, search: String): DisseminationListConnection } type Subscription { diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index 2f2f1d9be99e..65860af054f7 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -19621,6 +19621,8 @@ export type Query = { decayRules?: Maybe; deleteOperation?: Maybe; deleteOperations?: Maybe; + disseminationList?: Maybe; + disseminationLists?: Maybe; draftWorkspace?: Maybe; draftWorkspaceEntities?: Maybe; draftWorkspaceRelationships?: Maybe; @@ -20357,6 +20359,21 @@ export type QueryDeleteOperationsArgs = { }; +export type QueryDisseminationListArgs = { + id: Scalars['String']['input']; +}; + + +export type QueryDisseminationListsArgs = { + after?: InputMaybe; + filters?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderMode?: InputMaybe; + search?: InputMaybe; +}; + + export type QueryDraftWorkspaceArgs = { id: Scalars['String']['input']; }; @@ -39038,6 +39055,8 @@ export type QueryResolvers, ParentType, ContextType, Partial>; deleteOperation?: Resolver, ParentType, ContextType, RequireFields>; deleteOperations?: Resolver, ParentType, ContextType, Partial>; + disseminationList?: Resolver, ParentType, ContextType, RequireFields>; + disseminationLists?: Resolver, ParentType, ContextType, Partial>; draftWorkspace?: Resolver, ParentType, ContextType, RequireFields>; draftWorkspaceEntities?: Resolver, ParentType, ContextType, RequireFields>; draftWorkspaceRelationships?: Resolver, ParentType, ContextType, RequireFields>; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 3bde5cddd325..1447972a6806 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -26,11 +26,9 @@ import { downloadFile, loadFile } from '../../database/file-storage'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; import conf, { BUS_TOPICS, isFeatureEnabled } from '../../config/conf'; -import { READ_DATA_INDICES, READ_INDEX_DELETED_OBJECTS } from '../../database/utils'; import type { BasicStoreObject } from '../../types/store'; import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; -import { UnsupportedError } from '../../config/errors'; import { generateInternalId } from '../../schema/identifier'; import { createInternalObject, deleteInternalObject } from '../../domain/internalObject'; import { updateAttribute } from '../../database/middleware'; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index eceead053a38..7b289b150b52 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -29,17 +29,17 @@ type DisseminationListEdge { } # Queries -#type Query { -# disseminationList(id: String!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) -# disseminationLists( -# first: Int -# after: ID -# orderBy: DisseminationListOrdering -# orderMode: OrderingMode -# filters: FilterGroup -# search: String -# ): DisseminationListConnection @auth(for: [KNOWLEDGE_KNDISSEMINATION, SETTINGS_SETDISSEMINATION]) -#} +type Query { + disseminationList(id: String!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) + disseminationLists( + first: Int + after: ID + orderBy: DisseminationListOrdering + orderMode: OrderingMode + filters: FilterGroup + search: String + ): DisseminationListConnection @auth(for: [KNOWLEDGE_KNDISSEMINATION, SETTINGS_SETDISSEMINATION]) +} input DisseminationListAddInput { name: String! @constraint(minLength: 2, format: "not-blank") From de8b236298274585456b1867016e9242cc8b46b0 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Fri, 24 Jan 2025 10:55:02 +0100 Subject: [PATCH 21/81] [backend/frontend] Fix Deepscan (#5551) --- .../settings/dissemination_lists/DisseminationListEdition.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index 48177382efc9..76aa2a18d0e9 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -2,7 +2,6 @@ import React, { FunctionComponent } from 'react'; import { graphql } from 'react-relay'; import Drawer from '@components/common/drawer/Drawer'; import { Field, Form, Formik, FormikConfig } from 'formik'; -import Loader from 'src/components/Loader'; import Button from '@mui/material/Button'; import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; import disseminationListValidator from '@components/settings/dissemination_lists/DisseminationListUtils'; From 717aa28069e32e8c03281b7d44d528ff2e13606d Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Fri, 24 Jan 2025 11:03:40 +0100 Subject: [PATCH 22/81] [backend] api names (#5551) --- .../opencti-front/src/components/ItemIcon.jsx | 3 +- .../components/settings/AccessesMenu.tsx | 2 +- .../src/schema/relay.schema.graphql | 21 +++++ .../opencti-graphql/src/generated/graphql.ts | 80 ++++++++++++++----- .../disseminationList-domain.ts | 15 +++- .../disseminationList-resolver.ts | 3 +- .../disseminationList-types.ts | 6 ++ .../disseminationList.graphql | 42 ++++++++-- 8 files changed, 140 insertions(+), 32 deletions(-) diff --git a/opencti-platform/opencti-front/src/components/ItemIcon.jsx b/opencti-platform/opencti-front/src/components/ItemIcon.jsx index 2703198bf6c6..2d6b1048f47a 100644 --- a/opencti-platform/opencti-front/src/components/ItemIcon.jsx +++ b/opencti-platform/opencti-front/src/components/ItemIcon.jsx @@ -67,7 +67,8 @@ import { BackupTableOutlined, PlayCircleOutlined, ArchitectureOutlined, - PlaylistRemoveOutlined, AttachEmailOutlined, + PlaylistRemoveOutlined, + AttachEmailOutlined, } from '@mui/icons-material'; import { AutoFix, diff --git a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx index 6c61273c3397..9055433f5a78 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx @@ -10,7 +10,7 @@ import { } from '@mui/icons-material'; import { AccountGroupOutline } from 'mdi-material-ui'; import NavToolbarMenu, { MenuEntry } from '../common/menus/NavToolbarMenu'; -import useGranted, { SETTINGS_SETACCESSES, SETTINGS_SETDISSEMINATION, SETTINGS_SETMARKINGS, VIRTUAL_ORGANIZATION_ADMIN } from '../../../utils/hooks/useGranted'; +import useGranted, { SETTINGS_SETACCESSES, SETTINGS_SETDISSEMINATION , SETTINGS_SETMARKINGS, VIRTUAL_ORGANIZATION_ADMIN } from '../../../utils/hooks/useGranted'; const AccessesMenu: FunctionComponent = () => { const entries: MenuEntry[] = [ diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 8c7cfca0e133..0e0ae9fab880 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -8197,6 +8197,7 @@ type Query { fintelTemplate(id: ID!): FintelTemplate disseminationList(id: String!): DisseminationList disseminationLists(first: Int, after: ID, orderBy: DisseminationListOrdering, orderMode: OrderingMode, filters: FilterGroup, search: String): DisseminationListConnection + disseminationListsNames(first: Int, after: ID, orderBy: DisseminationListOrdering, orderMode: OrderingMode, filters: FilterGroup, search: String): DisseminationListNamesConnection } type Subscription { @@ -12601,6 +12602,16 @@ type DisseminationList implements InternalObject & BasicObject { dissemination_list_values_count: Int! } +type DisseminationListName implements InternalObject & BasicObject { + id: ID! + standard_id: String! + entity_type: String! + parent_types: [String]! + created_at: DateTime! + updated_at: DateTime! + name: String! +} + enum DisseminationListOrdering { name _score @@ -12616,6 +12627,16 @@ type DisseminationListEdge { node: DisseminationList! } +type DisseminationListNamesConnection { + pageInfo: PageInfo! + edges: [DisseminationListNamesEdge!]! +} + +type DisseminationListNamesEdge { + cursor: String! + node: DisseminationListName! +} + input DisseminationListAddInput { name: String! emails: String! diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index 65860af054f7..9d3f6d1a2dc5 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -6325,6 +6325,29 @@ export type DisseminationListEdge = { node: DisseminationList; }; +export type DisseminationListName = BasicObject & InternalObject & { + __typename?: 'DisseminationListName'; + created_at: Scalars['DateTime']['output']; + entity_type: Scalars['String']['output']; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + parent_types: Array>; + standard_id: Scalars['String']['output']; + updated_at: Scalars['DateTime']['output']; +}; + +export type DisseminationListNamesConnection = { + __typename?: 'DisseminationListNamesConnection'; + edges: Array; + pageInfo: PageInfo; +}; + +export type DisseminationListNamesEdge = { + __typename?: 'DisseminationListNamesEdge'; + cursor: Scalars['String']['output']; + node: DisseminationListName; +}; + export enum DisseminationListOrdering { Score = '_score', Name = 'name' @@ -19623,6 +19646,7 @@ export type Query = { deleteOperations?: Maybe; disseminationList?: Maybe; disseminationLists?: Maybe; + disseminationListsNames?: Maybe; draftWorkspace?: Maybe; draftWorkspaceEntities?: Maybe; draftWorkspaceRelationships?: Maybe; @@ -20359,21 +20383,6 @@ export type QueryDeleteOperationsArgs = { }; -export type QueryDisseminationListArgs = { - id: Scalars['String']['input']; -}; - - -export type QueryDisseminationListsArgs = { - after?: InputMaybe; - filters?: InputMaybe; - first?: InputMaybe; - orderBy?: InputMaybe; - orderMode?: InputMaybe; - search?: InputMaybe; -}; - - export type QueryDraftWorkspaceArgs = { id: Scalars['String']['input']; }; @@ -31143,13 +31152,13 @@ export type ResolversUnionTypes<_RefType extends Record> = Reso /** Mapping of interface types */ export type ResolversInterfaceTypes<_RefType extends Record> = ResolversObject<{ BackgroundTask: ( Omit & { authorized_members?: Maybe> } ) | ( Omit & { authorized_members?: Maybe> } ) | ( RuleTask ); - BasicObject: ( BasicStoreEntityAdministrativeArea ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, coursesOfAction?: Maybe<_RefType['CourseOfActionConnection']>, createdBy?: Maybe<_RefType['Identity']>, dataComponents?: Maybe<_RefType['DataComponentConnection']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Capability ) | ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityCaseTemplate ) | ( BasicStoreEntityChannel ) | ( Omit & { administrativeArea?: Maybe<_RefType['AdministrativeArea']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, country?: Maybe<_RefType['Country']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { configurations?: Maybe>, connector_user?: Maybe<_RefType['User']>, works?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, region?: Maybe<_RefType['Region']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { attackPatterns?: Maybe<_RefType['AttackPatternConnection']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityCsvMapper ) | ( BasicStoreEntityDataComponent ) | ( BasicStoreEntityDataSource ) | ( BasicStoreEntityDecayRule ) | ( BasicStoreEntityDeleteOperation ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( DisseminationList ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityDraftWorkspace ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityEntitySetting ) | ( BasicStoreEntityEvent ) | ( BasicStoreEntityExclusionList ) | ( Omit & { connectors?: Maybe>>, exportFiles?: Maybe<_RefType['FileConnection']>, importFiles: _RefType['FileConnection'], jobs?: Maybe>>, pendingFiles: _RefType['FileConnection'], references?: Maybe<_RefType['StixObjectOrStixRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityFeedback ) | ( BasicStoreEntityFintelTemplate ) | ( Omit & { allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_marking?: Maybe>, max_shareable_marking: Array<_RefType['MarkingDefinition']>, members?: Maybe<_RefType['UserConnection']> } ) | ( BasicStoreEntityGrouping ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIndicator ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIngestionCsv ) | ( BasicStoreEntityIngestionRss ) | ( BasicStoreEntityIngestionTaxii ) | ( BasicStoreEntityIngestionTaxiiCollection ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityLanguage ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, samples?: Maybe>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityMalwareAnalysis ) | ( BasicStoreEntityManagerConfiguration ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_dashboards: Array<_RefType['Workspace']>, default_marking?: Maybe>, draftContext?: Maybe<_RefType['DraftWorkspace']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, max_shareable_marking?: Maybe>, personal_notifiers?: Maybe> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNarrative ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNotification ) | ( BasicStoreEntityNotifier ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityOrganization ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityPlaybook ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, city?: Maybe<_RefType['City']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, serviceDlls?: Maybe<_RefType['StixFileConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityPublicDashboard ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentRegions?: Maybe<_RefType['RegionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subRegions?: Maybe<_RefType['RegionConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Role ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentSectors?: Maybe<_RefType['SectorConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subSectors?: Maybe<_RefType['SectorConnection']>, targetedOrganizations?: Maybe<_RefType['StixCoreRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { activity_listeners?: Maybe>, messages_administration?: Maybe>, platform_critical_alerts: Array<_RefType['PlatformCriticalAlert']>, platform_messages?: Maybe>, platform_organization?: Maybe<_RefType['Organization']> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, vulnerabilities?: Maybe<_RefType['VulnerabilityConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntitySupportPackage ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTask ) | ( TaskTemplate ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityThreatActorIndividual ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTrigger ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, objectAssignedOrganization?: Maybe<_RefType['OrganizationConnection']>, objectOrganization?: Maybe<_RefType['OrganizationConnection']>, personal_notifiers?: Maybe> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityVocabulary ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, softwares?: Maybe<_RefType['StixCyberObservableConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityWorkspace ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); + BasicObject: ( BasicStoreEntityAdministrativeArea ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, coursesOfAction?: Maybe<_RefType['CourseOfActionConnection']>, createdBy?: Maybe<_RefType['Identity']>, dataComponents?: Maybe<_RefType['DataComponentConnection']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Capability ) | ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityCaseTemplate ) | ( BasicStoreEntityChannel ) | ( Omit & { administrativeArea?: Maybe<_RefType['AdministrativeArea']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, country?: Maybe<_RefType['Country']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { configurations?: Maybe>, connector_user?: Maybe<_RefType['User']>, works?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, region?: Maybe<_RefType['Region']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { attackPatterns?: Maybe<_RefType['AttackPatternConnection']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityCsvMapper ) | ( BasicStoreEntityDataComponent ) | ( BasicStoreEntityDataSource ) | ( BasicStoreEntityDecayRule ) | ( BasicStoreEntityDeleteOperation ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( DisseminationList ) | ( DisseminationListName ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityDraftWorkspace ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityEntitySetting ) | ( BasicStoreEntityEvent ) | ( BasicStoreEntityExclusionList ) | ( Omit & { connectors?: Maybe>>, exportFiles?: Maybe<_RefType['FileConnection']>, importFiles: _RefType['FileConnection'], jobs?: Maybe>>, pendingFiles: _RefType['FileConnection'], references?: Maybe<_RefType['StixObjectOrStixRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityFeedback ) | ( BasicStoreEntityFintelTemplate ) | ( Omit & { allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_marking?: Maybe>, max_shareable_marking: Array<_RefType['MarkingDefinition']>, members?: Maybe<_RefType['UserConnection']> } ) | ( BasicStoreEntityGrouping ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIndicator ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIngestionCsv ) | ( BasicStoreEntityIngestionRss ) | ( BasicStoreEntityIngestionTaxii ) | ( BasicStoreEntityIngestionTaxiiCollection ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityLanguage ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, samples?: Maybe>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityMalwareAnalysis ) | ( BasicStoreEntityManagerConfiguration ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_dashboards: Array<_RefType['Workspace']>, default_marking?: Maybe>, draftContext?: Maybe<_RefType['DraftWorkspace']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, max_shareable_marking?: Maybe>, personal_notifiers?: Maybe> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNarrative ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNotification ) | ( BasicStoreEntityNotifier ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityOrganization ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityPlaybook ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, city?: Maybe<_RefType['City']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, serviceDlls?: Maybe<_RefType['StixFileConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityPublicDashboard ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentRegions?: Maybe<_RefType['RegionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subRegions?: Maybe<_RefType['RegionConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Role ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentSectors?: Maybe<_RefType['SectorConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subSectors?: Maybe<_RefType['SectorConnection']>, targetedOrganizations?: Maybe<_RefType['StixCoreRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { activity_listeners?: Maybe>, messages_administration?: Maybe>, platform_critical_alerts: Array<_RefType['PlatformCriticalAlert']>, platform_messages?: Maybe>, platform_organization?: Maybe<_RefType['Organization']> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, vulnerabilities?: Maybe<_RefType['VulnerabilityConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntitySupportPackage ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTask ) | ( TaskTemplate ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityThreatActorIndividual ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTrigger ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, objectAssignedOrganization?: Maybe<_RefType['OrganizationConnection']>, objectOrganization?: Maybe<_RefType['OrganizationConnection']>, personal_notifiers?: Maybe> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityVocabulary ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, softwares?: Maybe<_RefType['StixCyberObservableConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityWorkspace ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); BasicRelationship: ( Omit & { from?: Maybe<_RefType['InternalObject']>, to?: Maybe<_RefType['InternalObject']> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, from?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, groupings?: Maybe<_RefType['GroupingConnection']>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, opinions?: Maybe<_RefType['OpinionConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, to?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, from?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, groupings?: Maybe<_RefType['GroupingConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectMarking?: Maybe>, opinions?: Maybe<_RefType['OpinionConnection']>, reports?: Maybe<_RefType['ReportConnection']>, to?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, from?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, groupings?: Maybe<_RefType['GroupingConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, opinions?: Maybe<_RefType['OpinionConnection']>, reports?: Maybe<_RefType['ReportConnection']>, to?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, x_opencti_inferences?: Maybe>> } ); Case: ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityFeedback ); Container: ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityFeedback ) | ( BasicStoreEntityGrouping ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTask ); HashedObservable: ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); Identity: ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityOrganization ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentSectors?: Maybe<_RefType['SectorConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subSectors?: Maybe<_RefType['SectorConnection']>, targetedOrganizations?: Maybe<_RefType['StixCoreRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); - InternalObject: ( Capability ) | ( BasicStoreEntityCaseTemplate ) | ( Omit & { configurations?: Maybe>, connector_user?: Maybe<_RefType['User']>, works?: Maybe>> } ) | ( BasicStoreEntityCsvMapper ) | ( BasicStoreEntityDecayRule ) | ( BasicStoreEntityDeleteOperation ) | ( DisseminationList ) | ( BasicStoreEntityDraftWorkspace ) | ( BasicStoreEntityEntitySetting ) | ( BasicStoreEntityExclusionList ) | ( BasicStoreEntityFintelTemplate ) | ( Omit & { allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_marking?: Maybe>, max_shareable_marking: Array<_RefType['MarkingDefinition']>, members?: Maybe<_RefType['UserConnection']> } ) | ( BasicStoreEntityIngestionCsv ) | ( BasicStoreEntityIngestionRss ) | ( BasicStoreEntityIngestionTaxii ) | ( BasicStoreEntityIngestionTaxiiCollection ) | ( BasicStoreEntityManagerConfiguration ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_dashboards: Array<_RefType['Workspace']>, default_marking?: Maybe>, draftContext?: Maybe<_RefType['DraftWorkspace']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, max_shareable_marking?: Maybe>, personal_notifiers?: Maybe> } ) | ( BasicStoreEntityNotification ) | ( BasicStoreEntityNotifier ) | ( BasicStoreEntityPlaybook ) | ( BasicStoreEntityPublicDashboard ) | ( Role ) | ( Omit & { activity_listeners?: Maybe>, messages_administration?: Maybe>, platform_critical_alerts: Array<_RefType['PlatformCriticalAlert']>, platform_messages?: Maybe>, platform_organization?: Maybe<_RefType['Organization']> } ) | ( BasicStoreEntitySupportPackage ) | ( TaskTemplate ) | ( BasicStoreEntityTrigger ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, objectAssignedOrganization?: Maybe<_RefType['OrganizationConnection']>, objectOrganization?: Maybe<_RefType['OrganizationConnection']>, personal_notifiers?: Maybe> } ) | ( BasicStoreEntityWorkspace ); + InternalObject: ( Capability ) | ( BasicStoreEntityCaseTemplate ) | ( Omit & { configurations?: Maybe>, connector_user?: Maybe<_RefType['User']>, works?: Maybe>> } ) | ( BasicStoreEntityCsvMapper ) | ( BasicStoreEntityDecayRule ) | ( BasicStoreEntityDeleteOperation ) | ( DisseminationList ) | ( DisseminationListName ) | ( BasicStoreEntityDraftWorkspace ) | ( BasicStoreEntityEntitySetting ) | ( BasicStoreEntityExclusionList ) | ( BasicStoreEntityFintelTemplate ) | ( Omit & { allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_marking?: Maybe>, max_shareable_marking: Array<_RefType['MarkingDefinition']>, members?: Maybe<_RefType['UserConnection']> } ) | ( BasicStoreEntityIngestionCsv ) | ( BasicStoreEntityIngestionRss ) | ( BasicStoreEntityIngestionTaxii ) | ( BasicStoreEntityIngestionTaxiiCollection ) | ( BasicStoreEntityManagerConfiguration ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_dashboards: Array<_RefType['Workspace']>, default_marking?: Maybe>, draftContext?: Maybe<_RefType['DraftWorkspace']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, max_shareable_marking?: Maybe>, personal_notifiers?: Maybe> } ) | ( BasicStoreEntityNotification ) | ( BasicStoreEntityNotifier ) | ( BasicStoreEntityPlaybook ) | ( BasicStoreEntityPublicDashboard ) | ( Role ) | ( Omit & { activity_listeners?: Maybe>, messages_administration?: Maybe>, platform_critical_alerts: Array<_RefType['PlatformCriticalAlert']>, platform_messages?: Maybe>, platform_organization?: Maybe<_RefType['Organization']> } ) | ( BasicStoreEntitySupportPackage ) | ( TaskTemplate ) | ( BasicStoreEntityTrigger ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, objectAssignedOrganization?: Maybe<_RefType['OrganizationConnection']>, objectOrganization?: Maybe<_RefType['OrganizationConnection']>, personal_notifiers?: Maybe> } ) | ( BasicStoreEntityWorkspace ); Location: ( BasicStoreEntityAdministrativeArea ) | ( Omit & { administrativeArea?: Maybe<_RefType['AdministrativeArea']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, country?: Maybe<_RefType['Country']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, region?: Maybe<_RefType['Region']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, city?: Maybe<_RefType['City']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentRegions?: Maybe<_RefType['RegionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subRegions?: Maybe<_RefType['RegionConnection']>, x_opencti_inferences?: Maybe>> } ); StixCoreObject: ( BasicStoreEntityAdministrativeArea ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, coursesOfAction?: Maybe<_RefType['CourseOfActionConnection']>, createdBy?: Maybe<_RefType['Identity']>, dataComponents?: Maybe<_RefType['DataComponentConnection']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityChannel ) | ( Omit & { administrativeArea?: Maybe<_RefType['AdministrativeArea']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, country?: Maybe<_RefType['Country']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, region?: Maybe<_RefType['Region']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { attackPatterns?: Maybe<_RefType['AttackPatternConnection']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityDataComponent ) | ( BasicStoreEntityDataSource ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityEvent ) | ( BasicStoreEntityFeedback ) | ( BasicStoreEntityGrouping ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIndicator ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityLanguage ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, samples?: Maybe>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityMalwareAnalysis ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNarrative ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityOrganization ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, city?: Maybe<_RefType['City']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, serviceDlls?: Maybe<_RefType['StixFileConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentRegions?: Maybe<_RefType['RegionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subRegions?: Maybe<_RefType['RegionConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentSectors?: Maybe<_RefType['SectorConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subSectors?: Maybe<_RefType['SectorConnection']>, targetedOrganizations?: Maybe<_RefType['StixCoreRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, vulnerabilities?: Maybe<_RefType['VulnerabilityConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTask ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityThreatActorIndividual ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, softwares?: Maybe<_RefType['StixCyberObservableConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); StixCyberObservable: ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, serviceDlls?: Maybe<_RefType['StixFileConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, vulnerabilities?: Maybe<_RefType['VulnerabilityConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); @@ -31377,6 +31386,9 @@ export type ResolversTypes = ResolversObject<{ DisseminationListAddInput: DisseminationListAddInput; DisseminationListConnection: ResolverTypeWrapper; DisseminationListEdge: ResolverTypeWrapper; + DisseminationListName: ResolverTypeWrapper; + DisseminationListNamesConnection: ResolverTypeWrapper; + DisseminationListNamesEdge: ResolverTypeWrapper; DisseminationListOrdering: DisseminationListOrdering; DisseminationListSendInput: DisseminationListSendInput; Distribution: ResolverTypeWrapper & { entity?: Maybe }>; @@ -32227,6 +32239,9 @@ export type ResolversParentTypes = ResolversObject<{ DisseminationListAddInput: DisseminationListAddInput; DisseminationListConnection: DisseminationListConnection; DisseminationListEdge: DisseminationListEdge; + DisseminationListName: DisseminationListName; + DisseminationListNamesConnection: DisseminationListNamesConnection; + DisseminationListNamesEdge: DisseminationListNamesEdge; DisseminationListSendInput: DisseminationListSendInput; Distribution: Omit & { entity?: Maybe }; DocsMetrics: DocsMetrics; @@ -33352,7 +33367,7 @@ export type BankAccountResolvers; export type BasicObjectResolvers = ResolversObject<{ - __resolveType: TypeResolveFn<'AdministrativeArea' | 'Artifact' | 'AttackPattern' | 'AutonomousSystem' | 'BankAccount' | 'Campaign' | 'Capability' | 'CaseIncident' | 'CaseRfi' | 'CaseRft' | 'CaseTemplate' | 'Channel' | 'City' | 'Connector' | 'Country' | 'CourseOfAction' | 'Credential' | 'CryptocurrencyWallet' | 'CryptographicKey' | 'CsvMapper' | 'DataComponent' | 'DataSource' | 'DecayRule' | 'DeleteOperation' | 'Directory' | 'DisseminationList' | 'DomainName' | 'DraftWorkspace' | 'EmailAddr' | 'EmailMessage' | 'EmailMimePartType' | 'EntitySetting' | 'Event' | 'ExclusionList' | 'ExternalReference' | 'Feedback' | 'FintelTemplate' | 'Group' | 'Grouping' | 'Hostname' | 'IPv4Addr' | 'IPv6Addr' | 'Incident' | 'Indicator' | 'Individual' | 'Infrastructure' | 'IngestionCsv' | 'IngestionRss' | 'IngestionTaxii' | 'IngestionTaxiiCollection' | 'IntrusionSet' | 'KillChainPhase' | 'Label' | 'Language' | 'MacAddr' | 'Malware' | 'MalwareAnalysis' | 'ManagerConfiguration' | 'MarkingDefinition' | 'MeUser' | 'MediaContent' | 'Mutex' | 'Narrative' | 'NetworkTraffic' | 'Note' | 'Notification' | 'Notifier' | 'ObservedData' | 'Opinion' | 'Organization' | 'PaymentCard' | 'Persona' | 'PhoneNumber' | 'Playbook' | 'Position' | 'Process' | 'PublicDashboard' | 'Region' | 'Report' | 'Role' | 'Sector' | 'Settings' | 'Software' | 'StixFile' | 'SupportPackage' | 'System' | 'Task' | 'TaskTemplate' | 'Text' | 'ThreatActorGroup' | 'ThreatActorIndividual' | 'Tool' | 'TrackingNumber' | 'Trigger' | 'Url' | 'User' | 'UserAccount' | 'UserAgent' | 'Vocabulary' | 'Vulnerability' | 'WindowsRegistryKey' | 'WindowsRegistryValueType' | 'Workspace' | 'X509Certificate', ParentType, ContextType>; + __resolveType: TypeResolveFn<'AdministrativeArea' | 'Artifact' | 'AttackPattern' | 'AutonomousSystem' | 'BankAccount' | 'Campaign' | 'Capability' | 'CaseIncident' | 'CaseRfi' | 'CaseRft' | 'CaseTemplate' | 'Channel' | 'City' | 'Connector' | 'Country' | 'CourseOfAction' | 'Credential' | 'CryptocurrencyWallet' | 'CryptographicKey' | 'CsvMapper' | 'DataComponent' | 'DataSource' | 'DecayRule' | 'DeleteOperation' | 'Directory' | 'DisseminationList' | 'DisseminationListName' | 'DomainName' | 'DraftWorkspace' | 'EmailAddr' | 'EmailMessage' | 'EmailMimePartType' | 'EntitySetting' | 'Event' | 'ExclusionList' | 'ExternalReference' | 'Feedback' | 'FintelTemplate' | 'Group' | 'Grouping' | 'Hostname' | 'IPv4Addr' | 'IPv6Addr' | 'Incident' | 'Indicator' | 'Individual' | 'Infrastructure' | 'IngestionCsv' | 'IngestionRss' | 'IngestionTaxii' | 'IngestionTaxiiCollection' | 'IntrusionSet' | 'KillChainPhase' | 'Label' | 'Language' | 'MacAddr' | 'Malware' | 'MalwareAnalysis' | 'ManagerConfiguration' | 'MarkingDefinition' | 'MeUser' | 'MediaContent' | 'Mutex' | 'Narrative' | 'NetworkTraffic' | 'Note' | 'Notification' | 'Notifier' | 'ObservedData' | 'Opinion' | 'Organization' | 'PaymentCard' | 'Persona' | 'PhoneNumber' | 'Playbook' | 'Position' | 'Process' | 'PublicDashboard' | 'Region' | 'Report' | 'Role' | 'Sector' | 'Settings' | 'Software' | 'StixFile' | 'SupportPackage' | 'System' | 'Task' | 'TaskTemplate' | 'Text' | 'ThreatActorGroup' | 'ThreatActorIndividual' | 'Tool' | 'TrackingNumber' | 'Trigger' | 'Url' | 'User' | 'UserAccount' | 'UserAgent' | 'Vocabulary' | 'Vulnerability' | 'WindowsRegistryKey' | 'WindowsRegistryValueType' | 'Workspace' | 'X509Certificate', ParentType, ContextType>; entity_type?: Resolver; id?: Resolver; parent_types?: Resolver>, ParentType, ContextType>; @@ -34933,6 +34948,29 @@ export type DisseminationListEdgeResolvers; }>; +export type DisseminationListNameResolvers = ResolversObject<{ + created_at?: Resolver; + entity_type?: Resolver; + id?: Resolver; + name?: Resolver; + parent_types?: Resolver>, ParentType, ContextType>; + standard_id?: Resolver; + updated_at?: Resolver; + __isTypeOf?: IsTypeOfResolverFn; +}>; + +export type DisseminationListNamesConnectionResolvers = ResolversObject<{ + edges?: Resolver, ParentType, ContextType>; + pageInfo?: Resolver; + __isTypeOf?: IsTypeOfResolverFn; +}>; + +export type DisseminationListNamesEdgeResolvers = ResolversObject<{ + cursor?: Resolver; + node?: Resolver; + __isTypeOf?: IsTypeOfResolverFn; +}>; + export type DistributionResolvers = ResolversObject<{ entity?: Resolver, ParentType, ContextType>; label?: Resolver; @@ -36585,7 +36623,7 @@ export type IngestionTaxiiEdgeResolvers; export type InternalObjectResolvers = ResolversObject<{ - __resolveType: TypeResolveFn<'Capability' | 'CaseTemplate' | 'Connector' | 'CsvMapper' | 'DecayRule' | 'DeleteOperation' | 'DisseminationList' | 'DraftWorkspace' | 'EntitySetting' | 'ExclusionList' | 'FintelTemplate' | 'Group' | 'IngestionCsv' | 'IngestionRss' | 'IngestionTaxii' | 'IngestionTaxiiCollection' | 'ManagerConfiguration' | 'MeUser' | 'Notification' | 'Notifier' | 'Playbook' | 'PublicDashboard' | 'Role' | 'Settings' | 'SupportPackage' | 'TaskTemplate' | 'Trigger' | 'User' | 'Workspace', ParentType, ContextType>; + __resolveType: TypeResolveFn<'Capability' | 'CaseTemplate' | 'Connector' | 'CsvMapper' | 'DecayRule' | 'DeleteOperation' | 'DisseminationList' | 'DisseminationListName' | 'DraftWorkspace' | 'EntitySetting' | 'ExclusionList' | 'FintelTemplate' | 'Group' | 'IngestionCsv' | 'IngestionRss' | 'IngestionTaxii' | 'IngestionTaxiiCollection' | 'ManagerConfiguration' | 'MeUser' | 'Notification' | 'Notifier' | 'Playbook' | 'PublicDashboard' | 'Role' | 'Settings' | 'SupportPackage' | 'TaskTemplate' | 'Trigger' | 'User' | 'Workspace', ParentType, ContextType>; entity_type?: Resolver; id?: Resolver; }>; @@ -39057,6 +39095,7 @@ export type QueryResolvers, ParentType, ContextType, Partial>; disseminationList?: Resolver, ParentType, ContextType, RequireFields>; disseminationLists?: Resolver, ParentType, ContextType, Partial>; + disseminationListsNames?: Resolver, ParentType, ContextType, Partial>; draftWorkspace?: Resolver, ParentType, ContextType, RequireFields>; draftWorkspaceEntities?: Resolver, ParentType, ContextType, RequireFields>; draftWorkspaceRelationships?: Resolver, ParentType, ContextType, RequireFields>; @@ -42395,6 +42434,9 @@ export type Resolvers = ResolversObject<{ DisseminationList?: DisseminationListResolvers; DisseminationListConnection?: DisseminationListConnectionResolvers; DisseminationListEdge?: DisseminationListEdgeResolvers; + DisseminationListName?: DisseminationListNameResolvers; + DisseminationListNamesConnection?: DisseminationListNamesConnectionResolvers; + DisseminationListNamesEdge?: DisseminationListNamesEdgeResolvers; Distribution?: DistributionResolvers; DocsMetrics?: DocsMetricsResolvers; DomainName?: DomainNameResolvers; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 1447972a6806..c8ace697dccc 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -17,7 +17,7 @@ import ejs from 'ejs'; import type { AuthContext, AuthUser } from '../../types/user'; import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../database/middleware-loader'; import type { DisseminationListAddInput, DisseminationListSendInput, EditInput, QueryDisseminationListsArgs } from '../../generated/graphql'; -import { type BasicStoreEntityDisseminationList, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; +import { type BasicStoreEntityDisseminationList, type BasicStoreEntityDisseminationListName, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; import { sendMail } from '../../database/smtp'; import { getEntityFromCache } from '../../database/cache'; import type { BasicStoreSettings } from '../../types/settings'; @@ -26,7 +26,7 @@ import { downloadFile, loadFile } from '../../database/file-storage'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; import conf, { BUS_TOPICS, isFeatureEnabled } from '../../config/conf'; -import type { BasicStoreObject } from '../../types/store'; +import type { BasicStoreObject, StoreEntityConnection } from '../../types/store'; import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; import { generateInternalId } from '../../schema/identifier'; @@ -44,6 +44,17 @@ export const findAll = (context: AuthContext, user: AuthUser, args: QueryDissemi return listEntitiesPaginated(context, user, [ENTITY_TYPE_DISSEMINATION_LIST], args); }; +export const findAllNames = async (context: AuthContext, user: AuthUser, args: QueryDisseminationListsArgs) => { + const allLists: StoreEntityConnection = await listEntitiesPaginated(context, user, [ENTITY_TYPE_DISSEMINATION_LIST], args); + const newLists: StoreEntityConnection = { edges: [], pageInfo: allLists.pageInfo }; + allLists.edges.map((edge) => { + const { node, ...edgeRest } = edge; + const { emails, ...nodeRest } = node; + newLists.edges.push({ node: nodeRest, ...edgeRest }); + }); + return newLists; +}; + interface SendMailArgs { from: string; to: string; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts index e200caa102c7..ebbcbca5842a 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts @@ -14,12 +14,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ import type { Resolvers } from '../../generated/graphql'; -import { addDisseminationList, deleteDisseminationList, fieldPatchDisseminationList, findAll, findById, sendToDisseminationList } from './disseminationList-domain'; +import { addDisseminationList, deleteDisseminationList, fieldPatchDisseminationList, findAll, findAllNames, findById, sendToDisseminationList } from './disseminationList-domain'; const disseminationListResolvers: Resolvers = { Query: { disseminationList: (_, { id }, context) => findById(context, context.user, id), disseminationLists: (_, args, context) => findAll(context, context.user, args), + disseminationListsNames: (_, args, context) => findAllNames(context, context.user, args), }, DisseminationList: {}, Mutation: { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts index 41c3caa60dc3..934767ba9a35 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts @@ -26,6 +26,12 @@ export interface BasicStoreEntityDisseminationList extends BasicStoreEntity { dissemination_list_values_count: number; } +export interface BasicStoreEntityDisseminationListName extends BasicStoreEntity { + name: string; + description: string; + dissemination_list_values_count: number; +} + export interface StoreEntityDisseminationList extends StoreEntity { name: string; emails: string; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 7b289b150b52..fe033ec64a96 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -11,6 +11,16 @@ type DisseminationList implements InternalObject & BasicObject { description: String dissemination_list_values_count: Int! } +type DisseminationListName implements InternalObject & BasicObject { + id: ID! + standard_id: String! + entity_type: String! + parent_types: [String]! + created_at: DateTime! + updated_at: DateTime! + # DisseminationList + name: String! +} # Ordering enum DisseminationListOrdering { @@ -27,18 +37,34 @@ type DisseminationListEdge { cursor: String! node: DisseminationList! } +type DisseminationListNamesConnection { + pageInfo: PageInfo! + edges: [DisseminationListNamesEdge!]! +} +type DisseminationListNamesEdge { + cursor: String! + node: DisseminationListName! +} # Queries type Query { disseminationList(id: String!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) - disseminationLists( - first: Int - after: ID - orderBy: DisseminationListOrdering - orderMode: OrderingMode - filters: FilterGroup - search: String - ): DisseminationListConnection @auth(for: [KNOWLEDGE_KNDISSEMINATION, SETTINGS_SETDISSEMINATION]) + disseminationLists( + first: Int + after: ID + orderBy: DisseminationListOrdering + orderMode: OrderingMode + filters: FilterGroup + search: String + ): DisseminationListConnection @auth(for: [SETTINGS_SETDISSEMINATION]) + disseminationListsNames( + first: Int + after: ID + orderBy: DisseminationListOrdering + orderMode: OrderingMode + filters: FilterGroup + search: String + ): DisseminationListNamesConnection @auth(for: [KNOWLEDGE_KNDISSEMINATION, SETTINGS_SETDISSEMINATION]) } input DisseminationListAddInput { From e71498ce581f386671ad37c4f90c1afb4b9a9c77 Mon Sep 17 00:00:00 2001 From: Laurent Bonnet Date: Fri, 24 Jan 2025 10:29:05 +0100 Subject: [PATCH 23/81] [frontend] extract email from pasted content (#5551) --- .../opencti-front/lang/front/en.json | 1 + .../src/components/TextField.jsx | 29 ++++++++++++++- .../DisseminationListCreation.tsx | 12 ++++++- .../DisseminationListEdition.tsx | 13 +++++-- .../opencti-front/src/utils/email.test.ts | 35 +++++++++++++++++++ .../opencti-front/src/utils/email.ts | 4 +++ 6 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 opencti-platform/opencti-front/src/utils/email.test.ts create mode 100644 opencti-platform/opencti-front/src/utils/email.ts diff --git a/opencti-platform/opencti-front/lang/front/en.json b/opencti-platform/opencti-front/lang/front/en.json index adbe8119d303..8cc17ed31be5 100644 --- a/opencti-platform/opencti-front/lang/front/en.json +++ b/opencti-platform/opencti-front/lang/front/en.json @@ -4,6 +4,7 @@ " Please contact Filigran to get your license at ": " Please contact Filigran to get your license at ", "... successfully deleted": "{entity_type} successfully deleted", "{count} days": "{count} days", + "{count} email address(es) extracted from pasted text": "{count} email address(es) extracted from pasted text", "+ N override(s)": "+ {count} override(s)", "0 equals no maximum": "0 equals no maximum", "24 hours": "24 hours", diff --git a/opencti-platform/opencti-front/src/components/TextField.jsx b/opencti-platform/opencti-front/src/components/TextField.jsx index 08aba3a4541c..509995368d3d 100644 --- a/opencti-platform/opencti-front/src/components/TextField.jsx +++ b/opencti-platform/opencti-front/src/components/TextField.jsx @@ -7,7 +7,7 @@ import TextFieldAskAI from '../private/components/common/form/TextFieldAskAI'; import StixDomainObjectDetectDuplicate from '../private/components/common/stix_domain_objects/StixDomainObjectDetectDuplicate'; const TextField = (props) => { - const { detectDuplicate, startAdornment, ...htmlProps } = props; + const { detectDuplicate, onBeforePaste, startAdornment, ...htmlProps } = props; const { form: { setFieldValue, setFieldTouched }, field: { name }, @@ -41,6 +41,32 @@ const TextField = (props) => { }, [onSubmit, setFieldTouched, name], ); + const internalOnPaste = React.useCallback( + (event) => { + // onBeforePaste can be used to alter the pasted content + if (typeof onBeforePaste === 'function') { + event.preventDefault(); // prevent default paste + // alter the pasted content according to onBeforePaste result + const pastedText = event.clipboardData.getData('text/plain'); + // remove \r character to only work with strings using \n (for cursor computation) + const sanitizedPastedText = pastedText.replace(/\r/g, ''); + const newPastedText = onBeforePaste(sanitizedPastedText); + // Insert the modified text at the current cursor position + const textArea = event.target; + const start = textArea.selectionStart; + const end = textArea.selectionEnd; + const before = textArea.value.slice(0, start); + const after = textArea.value.slice(end); + textArea.value = before + newPastedText + after; + // Set the cursor position after the inserted text + const cursorPosition = start + newPastedText.length; + textArea.setSelectionRange(cursorPosition, cursorPosition); + + setFieldValue(name, textArea.value); + } + }, + [onBeforePaste, setFieldValue, name], + ); const [, meta] = useField(name); const { value, ...otherProps } = fieldToTextField(htmlProps); return ( @@ -64,6 +90,7 @@ const TextField = (props) => { onChange={internalOnChange} onFocus={internalOnFocus} onBlur={internalOnBlur} + onPaste={internalOnPaste} InputProps={{ startAdornment, endAdornment: askAi && ( diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index 4dd07e104cd2..3710c86e8930 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -9,9 +9,10 @@ import { DisseminationListsLinesPaginationQuery$variables } from '@components/se import { useFormatter } from '../../../../components/i18n'; import TextField from '../../../../components/TextField'; import { insertNode } from '../../../../utils/store'; -import { handleErrorInForm } from '../../../../relay/environment'; +import { handleErrorInForm, MESSAGING$ } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import MarkdownField from '../../../../components/fields/MarkdownField'; +import { parseEmailList } from '../../../../utils/email'; const disseminationListCreationMutation = graphql` mutation DisseminationListCreationAddMutation($input: DisseminationListAddInput!) { @@ -117,6 +118,15 @@ const DisseminationListCreationForm: FunctionComponent { + // on pasting data, we try to extract emails + const extractedEmails = parseEmailList(pastedText); + if (extractedEmails.length > 0) { + MESSAGING$.notifySuccess(t_i18n('', { id: '{count} email address(es) extracted from pasted text', values: { count: extractedEmails.length } })); + return extractedEmails.join('\n'); // alter the pasted content + } + return pastedText; // do not alter pasted content; it's probably invalid anyway + }} />
-
)} From 06dbd762212143dcfcdf9d1455a9cd37fe39da92 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Fri, 24 Jan 2025 13:35:27 +0100 Subject: [PATCH 26/81] [frontend] Fix import (#5551) --- .../settings/dissemination_lists/DisseminationListEdition.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index 87195d08532b..e7815e8cd1f7 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -2,7 +2,6 @@ import React, { FunctionComponent } from 'react'; import { graphql } from 'react-relay'; import Drawer from '@components/common/drawer/Drawer'; import { Field, Form, Formik, FormikConfig } from 'formik'; -import Button from '@mui/material/Button'; import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; import disseminationListValidator from '@components/settings/dissemination_lists/DisseminationListUtils'; import { handleErrorInForm, MESSAGING$ } from '../../../../relay/environment'; From ed3861270bee2e5c4b10e46dabe3b1fcb0fbec5a Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Fri, 24 Jan 2025 13:41:44 +0100 Subject: [PATCH 27/81] [backend] Add description and dissemination_list_values_count in converter (#5551) --- .../modules/disseminationList/disseminationList-converter.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-converter.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-converter.ts index 470345710e27..cf2c8c78ad48 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-converter.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-converter.ts @@ -23,6 +23,8 @@ const convertDisseminationListToStix = (instance: StoreEntityDisseminationList): ...stixObject, name: instance.name, emails: instance.emails, + description: instance.description, + dissemination_list_values_count: instance.dissemination_list_values_count, extensions: { [STIX_EXT_OCTI]: cleanObject({ ...stixObject.extensions[STIX_EXT_OCTI], From ce3be3f9c8c2c6ed7606a1cf4f70327c7ca67abe Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Fri, 24 Jan 2025 13:51:18 +0100 Subject: [PATCH 28/81] [backend] Fix error (#5551) --- .../private/components/settings/AccessesMenu.tsx | 2 +- .../disseminationList/disseminationList-domain.ts | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx index 9055433f5a78..6c61273c3397 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx @@ -10,7 +10,7 @@ import { } from '@mui/icons-material'; import { AccountGroupOutline } from 'mdi-material-ui'; import NavToolbarMenu, { MenuEntry } from '../common/menus/NavToolbarMenu'; -import useGranted, { SETTINGS_SETACCESSES, SETTINGS_SETDISSEMINATION , SETTINGS_SETMARKINGS, VIRTUAL_ORGANIZATION_ADMIN } from '../../../utils/hooks/useGranted'; +import useGranted, { SETTINGS_SETACCESSES, SETTINGS_SETDISSEMINATION, SETTINGS_SETMARKINGS, VIRTUAL_ORGANIZATION_ADMIN } from '../../../utils/hooks/useGranted'; const AccessesMenu: FunctionComponent = () => { const entries: MenuEntry[] = [ diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index c8ace697dccc..7018668358cb 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -17,7 +17,12 @@ import ejs from 'ejs'; import type { AuthContext, AuthUser } from '../../types/user'; import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../database/middleware-loader'; import type { DisseminationListAddInput, DisseminationListSendInput, EditInput, QueryDisseminationListsArgs } from '../../generated/graphql'; -import { type BasicStoreEntityDisseminationList, type BasicStoreEntityDisseminationListName, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; +import { + type BasicStoreEntityDisseminationList, + type BasicStoreEntityDisseminationListName, + ENTITY_TYPE_DISSEMINATION_LIST, + type StoreEntityDisseminationList +} from './disseminationList-types'; import { sendMail } from '../../database/smtp'; import { getEntityFromCache } from '../../database/cache'; import type { BasicStoreSettings } from '../../types/settings'; @@ -45,7 +50,12 @@ export const findAll = (context: AuthContext, user: AuthUser, args: QueryDissemi }; export const findAllNames = async (context: AuthContext, user: AuthUser, args: QueryDisseminationListsArgs) => { - const allLists: StoreEntityConnection = await listEntitiesPaginated(context, user, [ENTITY_TYPE_DISSEMINATION_LIST], args); + const allLists: StoreEntityConnection = await listEntitiesPaginated( + context, + user, + [ENTITY_TYPE_DISSEMINATION_LIST], + args + ); const newLists: StoreEntityConnection = { edges: [], pageInfo: allLists.pageInfo }; allLists.edges.map((edge) => { const { node, ...edgeRest } = edge; From 7df21eb9306f3851dcda78b463dbd65eed3cb10d Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Fri, 24 Jan 2025 14:18:15 +0100 Subject: [PATCH 29/81] [frontend/backend] replace counter calcul in backend (#5551) --- .../dissemination_lists/DisseminationListCreation.tsx | 2 -- .../dissemination_lists/DisseminationListEdition.tsx | 4 ---- .../opencti-front/src/schema/relay.schema.graphql | 1 - .../opencti-graphql/src/generated/graphql.ts | 1 - .../disseminationList/disseminationList-domain.ts | 9 +++++++-- .../modules/disseminationList/disseminationList.graphql | 3 +-- 6 files changed, 8 insertions(+), 12 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index 3710c86e8930..379374c5f164 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -46,12 +46,10 @@ const DisseminationListCreationForm: FunctionComponent { - const count = values.emails.split('\n').length; const input = { name: values.name, emails: values.emails, description: values.description, - dissemination_list_values_count: count, }; commit({ variables: { diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index e7815e8cd1f7..5da59a84a396 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -29,7 +29,6 @@ interface DisseminationListEditionFormData { name: string; emails: string; description: string; - dissemination_list_values_count?: number; } const DisseminationListEdition: FunctionComponent = ({ @@ -46,9 +45,6 @@ const DisseminationListEdition: FunctionComponent { setSubmitting(true); - if (values.emails) { - values.dissemination_list_values_count = values.emails.split('\n').length; - } const input = Object.entries(values) .map(([key, value]) => { diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 07435eb636e8..048c029ae862 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -12642,7 +12642,6 @@ input DisseminationListAddInput { name: String! emails: String! description: String - dissemination_list_values_count: Int! } input DisseminationListSendInput { diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index a921d9277163..0c89fca76569 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -6308,7 +6308,6 @@ export type DisseminationList = BasicObject & InternalObject & { export type DisseminationListAddInput = { description?: InputMaybe; - dissemination_list_values_count: Scalars['Int']['input']; emails: Scalars['String']['input']; name: Scalars['String']['input']; }; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 7018668358cb..cda85c3b9397 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -118,7 +118,7 @@ const storeAndCreateDisseminationList = async (context: AuthContext, user: AuthU name: input.name, emails: input.emails, description: input.description, - dissemination_list_values_count: input.dissemination_list_values_count, + dissemination_list_values_count: input.emails.split('\n').length, internal_id: disseminationListInternalId, }; return createInternalObject(context, user, disseminationListToCreate, ENTITY_TYPE_DISSEMINATION_LIST); @@ -136,7 +136,12 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au if (!disseminationList) { throw FunctionalError(`Dissemination list ${id} cannot be found`); } - const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, input); + const finalInput = [...input]; + const emailsInput = finalInput.find((editInput) => editInput.key === 'emails'); + if (emailsInput) { + await fieldPatchDisseminationList(context, user, id, [{ key: 'dissemination_list_values_count', value: [emailsInput.value[0].split('\n').length] }]); + } + const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, finalInput); await publishUserAction({ user, event_type: 'mutation', diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 36447cb69cea..57f643ab2707 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -49,7 +49,7 @@ type DisseminationListNamesEdge { # Queries type Query { - disseminationList(id: String!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) + disseminationList(id: String!): DisseminationList @auth(for: [SETTINGS_SETDISSEMINATION]) disseminationLists( first: Int after: ID @@ -72,7 +72,6 @@ input DisseminationListAddInput { name: String! @constraint(minLength: 2, format: "not-blank") emails: String! description: String - dissemination_list_values_count: Int! } input DisseminationListSendInput { From 82fe785e4fd0ef088f656fa04d1cd8233dd0b8ce Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Fri, 24 Jan 2025 14:46:33 +0100 Subject: [PATCH 30/81] [backend] remove fieldpatch and alter input (#5551) --- .../src/modules/disseminationList/disseminationList-domain.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index cda85c3b9397..f59ce30fa702 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -139,7 +139,7 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au const finalInput = [...input]; const emailsInput = finalInput.find((editInput) => editInput.key === 'emails'); if (emailsInput) { - await fieldPatchDisseminationList(context, user, id, [{ key: 'dissemination_list_values_count', value: [emailsInput.value[0].split('\n').length] }]); + finalInput.push({ key: 'dissemination_list_values_count', value: [emailsInput.value[0].split('\n').length] }); } const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, finalInput); await publishUserAction({ From 2a6e6c3ec21698b431ffb2edb28fe1686dc8cf8c Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Fri, 24 Jan 2025 15:55:48 +0100 Subject: [PATCH 31/81] [backend] fix lint (#5551) --- opencti-platform/opencti-graphql/src/config/conf.js | 2 +- .../src/modules/disseminationList/disseminationList-domain.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/config/conf.js b/opencti-platform/opencti-graphql/src/config/conf.js index fab4b8e76080..105223d9746b 100644 --- a/opencti-platform/opencti-graphql/src/config/conf.js +++ b/opencti-platform/opencti-graphql/src/config/conf.js @@ -36,7 +36,7 @@ import { AI_BUS } from '../modules/ai/ai-types'; import { SUPPORT_BUS } from '../modules/support/support-types'; import { ENTITY_TYPE_EXCLUSION_LIST } from '../modules/exclusionList/exclusionList-types'; import { ENTITY_TYPE_FINTEL_TEMPLATE } from '../modules/fintelTemplate/fintelTemplate-types'; -import {ENTITY_TYPE_DISSEMINATION_LIST} from "../modules/disseminationList/disseminationList-types"; +import { ENTITY_TYPE_DISSEMINATION_LIST } from '../modules/disseminationList/disseminationList-types'; // https://golang.org/src/crypto/x509/root_linux.go const LINUX_CERTFILES = [ diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index f59ce30fa702..5287118b53e2 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -57,9 +57,9 @@ export const findAllNames = async (context: AuthContext, user: AuthUser, args: Q args ); const newLists: StoreEntityConnection = { edges: [], pageInfo: allLists.pageInfo }; - allLists.edges.map((edge) => { + allLists.edges.forEach((edge) => { const { node, ...edgeRest } = edge; - const { emails, ...nodeRest } = node; + const { emails: _, ...nodeRest } = node; newLists.edges.push({ node: nodeRest, ...edgeRest }); }); return newLists; From d76398a4108f84bf7da79406dc69e19ae784c477 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Fri, 24 Jan 2025 16:00:30 +0100 Subject: [PATCH 32/81] [backend] remove null check (#5551) --- .../src/modules/disseminationList/disseminationList-domain.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 5287118b53e2..87e9e3b2b47c 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -147,7 +147,7 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au event_type: 'mutation', event_scope: 'update', event_access: 'administration', - message: `updates \`${input?.map((i) => i.key).join(', ')}\` for dissemination list \`${element.name}\``, + message: `updates \`${input.map((i) => i.key).join(', ')}\` for dissemination list \`${element.name}\``, context_data: { id, entity_type: ENTITY_TYPE_DISSEMINATION_LIST, input } }); return notify(BUS_TOPICS[ENTITY_TYPE_DISSEMINATION_LIST].EDIT_TOPIC, element, user); From 27d53b58a0b32d850a87f891d8e262fa6d37b08b Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Mon, 27 Jan 2025 09:40:21 +0100 Subject: [PATCH 33/81] [backend/frontend] separate emails by comma (#5551) --- opencti-platform/opencti-front/lang/front/de.json | 2 ++ opencti-platform/opencti-front/lang/front/en.json | 1 + opencti-platform/opencti-front/lang/front/es.json | 2 ++ opencti-platform/opencti-front/lang/front/fr.json | 2 ++ opencti-platform/opencti-front/lang/front/ja.json | 2 ++ opencti-platform/opencti-front/lang/front/ko.json | 2 ++ opencti-platform/opencti-front/lang/front/zh.json | 2 ++ .../dissemination_lists/DisseminationListCreation.tsx | 6 +++--- .../dissemination_lists/DisseminationListEdition.tsx | 9 ++++++--- .../dissemination_lists/DisseminationListUtils.ts | 10 ++++++++-- .../disseminationList/disseminationList-domain.ts | 4 ++-- 11 files changed, 32 insertions(+), 10 deletions(-) diff --git a/opencti-platform/opencti-front/lang/front/de.json b/opencti-platform/opencti-front/lang/front/de.json index d887e328d6a1..cdabde2a3001 100644 --- a/opencti-platform/opencti-front/lang/front/de.json +++ b/opencti-platform/opencti-front/lang/front/de.json @@ -4,6 +4,7 @@ " Please contact Filigran to get your license at ": "Bitte kontaktieren Sie Filigran, um Ihre Lizenz zu erhalten unter", "... successfully deleted": "{entity_type} erfolgreich gelöscht", "{count} days": "{count} Tage", + "{count} email address(es) extracted from pasted text": "{count} E-Mail Adresse(n) aus eingefügtem Text extrahiert", "+ N override(s)": "+ {count} Überschreibung(en)", "0 equals no maximum": "0 entspricht keinem Maximum", "24 hours": "24 Stunden", @@ -1005,6 +1006,7 @@ "Email sent": "E-Mail gesendet", "Email subject": "E-Mail-Betreff", "Emails": "Emails", + "Emails (1 / line)": "Emails (1 / Zeile)", "Empty": "Leer", "Enable": "Aktivieren Sie", "Enable 3D mode": "3D-Modus einschalten", diff --git a/opencti-platform/opencti-front/lang/front/en.json b/opencti-platform/opencti-front/lang/front/en.json index 8cc17ed31be5..a717d3068d77 100644 --- a/opencti-platform/opencti-front/lang/front/en.json +++ b/opencti-platform/opencti-front/lang/front/en.json @@ -1006,6 +1006,7 @@ "Email sent": "Email sent", "Email subject": "Email subject", "Emails": "Emails", + "Emails (1 / line)": "Emails (1 / line)", "Empty": "Empty", "Enable": "Enable", "Enable 3D mode": "Enable 3D mode", diff --git a/opencti-platform/opencti-front/lang/front/es.json b/opencti-platform/opencti-front/lang/front/es.json index b1d54fdd1b8a..1cba3024f98b 100644 --- a/opencti-platform/opencti-front/lang/front/es.json +++ b/opencti-platform/opencti-front/lang/front/es.json @@ -4,6 +4,7 @@ " Please contact Filigran to get your license at ": "Póngase en contacto con Filigran para obtener su licencia en", "... successfully deleted": "{entity_type} eliminado exitosamente", "{count} days": "{count} días", + "{count} email address(es) extracted from pasted text": "{count} dirección(es) de correo electrónico extraída(s) del texto pegado", "+ N override(s)": "+ {count} anulación(es)", "0 equals no maximum": "0 es igual a ningún máximo", "24 hours": "24 horas", @@ -1005,6 +1006,7 @@ "Email sent": "Email enviado", "Email subject": "Asunto del correo electŕonico", "Emails": "Correos electrónicos", + "Emails (1 / line)": "Correos electrónicos (1 / línea)", "Empty": "Vacío", "Enable": "Activar", "Enable 3D mode": "Activar el modo 3D", diff --git a/opencti-platform/opencti-front/lang/front/fr.json b/opencti-platform/opencti-front/lang/front/fr.json index 0f9b28fec5e0..5c1dc2f452ab 100644 --- a/opencti-platform/opencti-front/lang/front/fr.json +++ b/opencti-platform/opencti-front/lang/front/fr.json @@ -4,6 +4,7 @@ " Please contact Filigran to get your license at ": "Veuillez contacter Filigran pour obtenir votre licence à l'adresse suivante", "... successfully deleted": "{entity_type} supprimé(e) avec succès", "{count} days": "{count} jours", + "{count} email address(es) extracted from pasted text": "{count} adresse(s) électronique(s) extraite(s) du texte collé", "+ N override(s)": "+ {count} surcharge(s)", "0 equals no maximum": "0 pour aucun maximum", "24 hours": "24 heures", @@ -1005,6 +1006,7 @@ "Email sent": "Email envoyé", "Email subject": "Sujet de mail", "Emails": "Emails", + "Emails (1 / line)": "Emails (1 / ligne)", "Empty": "Vide", "Enable": "Activer", "Enable 3D mode": "Activer le mode 3D", diff --git a/opencti-platform/opencti-front/lang/front/ja.json b/opencti-platform/opencti-front/lang/front/ja.json index 500e701e9c5b..cb34033ef666 100644 --- a/opencti-platform/opencti-front/lang/front/ja.json +++ b/opencti-platform/opencti-front/lang/front/ja.json @@ -4,6 +4,7 @@ " Please contact Filigran to get your license at ": "ライセンスの取得はFiligranまでご連絡ください。", "... successfully deleted": "{entity_type} 正常に削除されました", "{count} days": "{count}}日", + "{count} email address(es) extracted from pasted text": "貼り付けられたテキストから抽出された{count}メールアドレス", "+ N override(s)": "+ {count} オーバーライド(複数可)", "0 equals no maximum": "0 は最大値なし", "24 hours": "24時間", @@ -1005,6 +1006,7 @@ "Email sent": "送信メール", "Email subject": "Eメールの件名", "Emails": "Eメール", + "Emails (1 / line)": "電子メール (1 / 行)", "Empty": "空", "Enable": "有効化", "Enable 3D mode": "3D表示にする", diff --git a/opencti-platform/opencti-front/lang/front/ko.json b/opencti-platform/opencti-front/lang/front/ko.json index 0bf3f62fc821..2f0c852a769a 100644 --- a/opencti-platform/opencti-front/lang/front/ko.json +++ b/opencti-platform/opencti-front/lang/front/ko.json @@ -4,6 +4,7 @@ " Please contact Filigran to get your license at ": "라이선스를 받으려면 Filigran에 문의하세요", "... successfully deleted": "{entity_type} 성공적으로 삭제되었습니다", "{count} days": "{count} 일", + "{count} email address(es) extracted from pasted text": "붙여넣은 텍스트에서 추출한 {count} 이메일 주소", "+ N override(s)": "+ {count} 재정의", "0 equals no maximum": "0은 최대치 없음", "24 hours": "24시간", @@ -1005,6 +1006,7 @@ "Email sent": "이메일 전송", "Email subject": "이메일 제목", "Emails": "이메일", + "Emails (1 / line)": "이메일 (1 / 줄)", "Empty": "비어 있음", "Enable": "활성화", "Enable 3D mode": "3D 모드 활성화", diff --git a/opencti-platform/opencti-front/lang/front/zh.json b/opencti-platform/opencti-front/lang/front/zh.json index 44b32e8aaa07..e432ef559bd9 100644 --- a/opencti-platform/opencti-front/lang/front/zh.json +++ b/opencti-platform/opencti-front/lang/front/zh.json @@ -4,6 +4,7 @@ " Please contact Filigran to get your license at ": "请通过以下方式联系 Filigran 获取许可证", "... successfully deleted": "{entity_type} 成功删除", "{count} days": "{count}天", + "{count} email address(es) extracted from pasted text": "{count} 从粘贴的文本中提取的电子邮件地址", "+ N override(s)": "+ {count} 覆盖", "0 equals no maximum": "0 等于没有最大值", "24 hours": "24小时", @@ -1005,6 +1006,7 @@ "Email sent": "发送的电子邮件", "Email subject": "电子邮件主题", "Emails": "电子邮件", + "Emails (1 / line)": "电子邮件(1 封/行)", "Empty": "空", "Enable": "启用", "Enable 3D mode": "启用3D模式", diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index 379374c5f164..de5117191844 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -3,7 +3,7 @@ import { Field, Form, Formik, FormikConfig } from 'formik'; import Button from '@mui/material/Button'; import { RecordSourceSelectorProxy } from 'relay-runtime'; import Drawer, { DrawerVariant } from '@components/common/drawer/Drawer'; -import disseminationListValidator from '@components/settings/dissemination_lists/DisseminationListUtils'; +import { disseminationListValidator, formatEmailsForApi } from '@components/settings/dissemination_lists/DisseminationListUtils'; import { graphql } from 'react-relay'; import { DisseminationListsLinesPaginationQuery$variables } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLinesPaginationQuery.graphql'; import { useFormatter } from '../../../../components/i18n'; @@ -48,7 +48,7 @@ const DisseminationListCreationForm: FunctionComponent { const input = { name: values.name, - emails: values.emails, + emails: formatEmailsForApi(values.emails), description: values.description, }; commit({ @@ -110,7 +110,7 @@ const DisseminationListCreationForm: FunctionComponent { + if (key === 'emails') { + return { key, value: formatEmailsForApi(value) }; + } return { key, value, @@ -71,7 +74,7 @@ const DisseminationListEdition: FunctionComponent string) => { +export const disseminationListValidator = (t: (value: string) => string) => { return Yup.object().shape({ name: Yup.string().trim().min(2).required(t('This field is required')), emails: Yup.string() @@ -16,4 +16,10 @@ const disseminationListValidator = (t: (value: string) => string) => { }); }; -export default disseminationListValidator; +export const formatEmailsForApi = (value: string) => { + return value.replaceAll('\n', ','); +}; + +export const formatEmailsForFront = (value: string) => { + return value.replaceAll(',', '\n'); +}; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 87e9e3b2b47c..d6d944ec8c20 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -118,7 +118,7 @@ const storeAndCreateDisseminationList = async (context: AuthContext, user: AuthU name: input.name, emails: input.emails, description: input.description, - dissemination_list_values_count: input.emails.split('\n').length, + dissemination_list_values_count: input.emails.split(',').length, internal_id: disseminationListInternalId, }; return createInternalObject(context, user, disseminationListToCreate, ENTITY_TYPE_DISSEMINATION_LIST); @@ -139,7 +139,7 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au const finalInput = [...input]; const emailsInput = finalInput.find((editInput) => editInput.key === 'emails'); if (emailsInput) { - finalInput.push({ key: 'dissemination_list_values_count', value: [emailsInput.value[0].split('\n').length] }); + finalInput.push({ key: 'dissemination_list_values_count', value: [emailsInput.value[0].split(',').length] }); } const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, finalInput); await publishUserAction({ From baa7f6fa7961dd102f7dc6fae632ad66007885a3 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Mon, 27 Jan 2025 11:42:43 +0100 Subject: [PATCH 34/81] [frontend] Retrieving dissemination lists (#5551) --- ...tixCoreObjectContentFilesDissemination.tsx | 77 +++++++++++++++---- 1 file changed, 63 insertions(+), 14 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index ec357194ff9e..84f7a2adac59 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -1,11 +1,16 @@ -import React, { FunctionComponent } from 'react'; +import React, { FunctionComponent, useState } from 'react'; import { Box, Button } from '@mui/material'; -import { graphql } from 'react-relay'; +import { graphql, useLazyLoadQuery } from 'react-relay'; import { Field, Formik } from 'formik'; import { FormikConfig } from 'formik/dist/types'; import * as Yup from 'yup'; import { marked } from 'marked'; import DOMPurify from 'dompurify'; +import FormControl from '@mui/material/FormControl'; +import InputLabel from '@mui/material/InputLabel'; +import Select from '@mui/material/Select'; +import { StixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; +import MenuItem from '@mui/material/MenuItem'; import { fieldSpacingContainerStyle } from '../../../../utils/field'; import TextField from '../../../../components/TextField'; import MarkdownField from '../../../../components/fields/MarkdownField'; @@ -20,11 +25,38 @@ interface StixCoreObjectContentFilesDisseminationProps { } interface DisseminationInput { - emailAddress: string; + disseminationListId: string; emailObject: string; emailBody: string; } +export const stixCoreObjectContentFilesDisseminationQuery = graphql` + query StixCoreObjectContentFilesDisseminationQuery( + $search: String + $count: Int! + $cursor: ID + $orderBy: DisseminationListOrdering + $orderMode: OrderingMode + $filters: FilterGroup + ) { + disseminationLists( + first: $count + after: $cursor + orderBy: $orderBy + orderMode: $orderMode + filters: $filters + search: $search + ) { + edges { + node { + id + name + } + } + } + } +`; + export const DisseminationListSendInputMutation = graphql` mutation StixCoreObjectContentFilesDisseminationMutation( $input: DisseminationListSendInput! @@ -39,8 +71,14 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent { const { t_i18n } = useFormatter(); + const [selectedListId, setSelectedListId] = useState(''); + const { disseminationLists } = useLazyLoadQuery( + stixCoreObjectContentFilesDisseminationQuery, + { search: '', count: 10 }, + ); + const basicShape = { - emailAddress: Yup.string().required(t_i18n('This field is required')), + disseminationList: Yup.string().required(t_i18n('This field is required')), emailObject: Yup.string().required(t_i18n('This field is required')), emailBody: Yup.string().required(t_i18n('This field is required')), }; @@ -62,7 +100,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent {({ isSubmitting, submitForm, handleReset }) => ( - + + + {t_i18n('Dissemination Lists')} + + + Date: Mon, 27 Jan 2025 14:51:50 +0100 Subject: [PATCH 35/81] [backend] add tests (#5551) --- .../01-unit/domain/disseminationList-test.ts | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts diff --git a/opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts b/opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts new file mode 100644 index 000000000000..eccaecdc2746 --- /dev/null +++ b/opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts @@ -0,0 +1,39 @@ +import { describe, it, expect } from 'vitest'; +import type { DisseminationListAddInput, EditInput } from '../../../src/generated/graphql'; +import { addDisseminationList, deleteDisseminationList, fieldPatchDisseminationList } from '../../../src/modules/disseminationList/disseminationList-domain'; +import { buildStandardUser, testContext } from '../../utils/testQuery'; +import type { StoreEntityDisseminationList } from '../../../src/modules/disseminationList/disseminationList-types'; + +const TEST_DISSEMINATION_USER_SET = buildStandardUser([], [], [{ name: 'SETTINGS_SETDISSEMINATE' }]); +const TEST_DISSEMINATION_LIST_CREATE_INPUT: DisseminationListAddInput = { + name: 'Dissemination list', + description: 'Description', + emails: 'example1@email.com,sample.account@email.com,firstname.lastname@email.com,user123@email.com,contact@domain.com,info@example.net,test.email@email.org,random.user@email.co,support@email.io,myaddress@email.biz' +}; +const TEST_DISSEMINATION_LIST_UPDATE_INPUT: EditInput[] = [ + { key: 'name', value: ['New Dissemination list'] }, + { key: 'description', value: ['New description'] }, + { key: 'emails', value: ['example1@email.com,sample.account@email.com'] } +]; + +describe('Create dissemination list', () => { + let data: StoreEntityDisseminationList; + it('should create a dissemination list for settings user', async () => { + data = await addDisseminationList(testContext, TEST_DISSEMINATION_USER_SET, TEST_DISSEMINATION_LIST_CREATE_INPUT); + expect(data.name, 'List created').toBe('Dissemination list'); + expect(data.description, 'List created').toBe('Description'); + expect(data.emails, 'List created').toBe('example1@email.com,sample.account@email.com,firstname.lastname@email.com,user123@email.com,contact@domain.com,info@example.net,test.email@email.org,random.user@email.co,support@email.io,myaddress@email.biz'); + expect(data.dissemination_list_values_count, 'Count of email addresses').toBe(10); + }); + it('should update a dissemination list for settings user', async () => { + data = await fieldPatchDisseminationList(testContext, TEST_DISSEMINATION_USER_SET, data.id, TEST_DISSEMINATION_LIST_UPDATE_INPUT); + expect(data.name, 'List updated').toBe('New Dissemination list'); + expect(data.description, 'List updated').toBe('New description'); + expect(data.emails, 'List updated').toBe('example1@email.com,sample.account@email.com'); + expect(data.dissemination_list_values_count, 'Count of email addresses').toBe(2); + }); + it('should delete a dissemination list for settings user', async () => { + const id = await deleteDisseminationList(testContext, TEST_DISSEMINATION_USER_SET, data.id); + expect(id, 'List deleted').toBe(data.id); + }); +}); \ No newline at end of file From 3ba480fcce442965159a248a00f7ab57d0820849 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Mon, 27 Jan 2025 15:17:59 +0100 Subject: [PATCH 36/81] [frontend] add tests (#5551) --- .../DisseminationList.test.ts | 22 +++++++++++++++++++ .../DisseminationListUtils.ts | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts new file mode 100644 index 000000000000..f03633ea0ba5 --- /dev/null +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts @@ -0,0 +1,22 @@ +import { describe, it, expect } from 'vitest'; +import { formatEmailsForApi, formatEmailsForFront } from '@components/settings/dissemination_lists/DisseminationListUtils'; + +const EXPECTED_RESULT_FOR_API: string = 'example1@email.com,sample.account@email.com'; +const EXPECTED_RESULT_FOR_FRONT: string = 'example1@email.com\nsample.account@email.com'; + +describe('Function: formatEmailsForApi', () => { + it('should parse line', () => { + const input = 'example1@email.com\nsample.account@email.com'; + expect(formatEmailsForApi(input)).toEqual(EXPECTED_RESULT_FOR_API); + }); + it('should parse white space', () => { + const input = 'example1@email.com \nsample.account@email.com'; + expect(formatEmailsForApi(input)).toEqual(EXPECTED_RESULT_FOR_API); + }); +}); + +describe('Function: formatEmailsForFront', () => { + it('should parse api result', () => { + expect(formatEmailsForFront(EXPECTED_RESULT_FOR_API)).toEqual(EXPECTED_RESULT_FOR_FRONT); + }); +}); \ No newline at end of file diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts index bcbd08ed88c0..75eb1bce2f4a 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -17,7 +17,7 @@ export const disseminationListValidator = (t: (value: string) => string) => { }; export const formatEmailsForApi = (value: string) => { - return value.replaceAll('\n', ','); + return value.replaceAll('\n', ',').replaceAll(/\s/g, ''); }; export const formatEmailsForFront = (value: string) => { From 14323ea8e77cced64bb7c0bb9621c472515ab363 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Mon, 27 Jan 2025 16:30:40 +0100 Subject: [PATCH 37/81] [backend/frontend] Send mail to dissemination list (#5551) --- ...tixCoreObjectContentFilesDissemination.tsx | 40 ++++++++----------- .../src/schema/relay.schema.graphql | 2 +- .../opencti-graphql/src/generated/graphql.ts | 2 +- .../disseminationList-domain.ts | 3 +- .../disseminationList.graphql | 2 +- 5 files changed, 22 insertions(+), 27 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index 84f7a2adac59..45bf4c660588 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -17,6 +17,7 @@ import MarkdownField from '../../../../components/fields/MarkdownField'; import { useFormatter } from '../../../../components/i18n'; import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; +import SelectField from "../../../../components/fields/SelectField"; interface StixCoreObjectContentFilesDisseminationProps { fileId: string; @@ -39,7 +40,7 @@ export const stixCoreObjectContentFilesDisseminationQuery = graphql` $orderMode: OrderingMode $filters: FilterGroup ) { - disseminationLists( + disseminationListsNames( first: $count after: $cursor orderBy: $orderBy @@ -72,7 +73,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent { const { t_i18n } = useFormatter(); const [selectedListId, setSelectedListId] = useState(''); - const { disseminationLists } = useLazyLoadQuery( + const { disseminationListsNames } = useLazyLoadQuery( stixCoreObjectContentFilesDisseminationQuery, { search: '', count: 10 }, ); @@ -100,7 +101,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent {({ isSubmitting, submitForm, handleReset }) => ( - - - {t_i18n('Dissemination Lists')} - - - + + {disseminationListsNames?.edges?.map((edge) => ( + + {edge.node.name} + + ))} + '); const generatedEmail = ejs.render(EMAIL_TEMPLATE, { settings, body: emailBodyFormatted }); const toEmail = conf.get('app:dissemination_list:to_email'); const sendMailArgs: SendMailArgs = { from: settings.platform_email, to: toEmail, - bcc: [input.email_address, user.user_email], + bcc: [disseminationList.emails, user.user_email], subject: input.email_object, html: generatedEmail, attachments: [ diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 57f643ab2707..c32bfab8a322 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -75,7 +75,7 @@ input DisseminationListAddInput { } input DisseminationListSendInput { - email_address: String! + dissemination_list_id: ID! email_object: String! email_body: String! email_attached_file_id: ID! From 95c0c0c80f8f1a2322f1d08360513b0ca2f4249e Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Mon, 27 Jan 2025 16:31:09 +0100 Subject: [PATCH 38/81] Changes by FrancoisGrunert --- .../StixCoreObjectContentFilesDissemination.tsx | 5 +---- .../opencti-graphql/src/manager/activityListener.ts | 2 +- .../modules/disseminationList/disseminationList-domain.ts | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index 45bf4c660588..cee93d0be3a8 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -6,9 +6,6 @@ import { FormikConfig } from 'formik/dist/types'; import * as Yup from 'yup'; import { marked } from 'marked'; import DOMPurify from 'dompurify'; -import FormControl from '@mui/material/FormControl'; -import InputLabel from '@mui/material/InputLabel'; -import Select from '@mui/material/Select'; import { StixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; import MenuItem from '@mui/material/MenuItem'; import { fieldSpacingContainerStyle } from '../../../../utils/field'; @@ -79,7 +76,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent { if (action.event_scope === 'disseminate') { const { file_name, entity_name, entity_type, input } = action.context_data; // @ts-expect-error input type unknown - const message = `disseminate \`${file_name}\` to \`${input.email_address}\` for \`${entity_name}\` (${entity_type})`; + const message = `disseminate \`${file_name}\` to \`${input.name}\` for \`${entity_name}\` (${entity_type})`; await activityLogger(action, message); } } diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 7c027a29efd7..dbcfaebf22d7 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -100,7 +100,7 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs }; await sendMail(sendMailArgs); const instance = await internalLoadById(context, user, file.metaData.entity_id); - const data = buildContextDataForFile(instance as BasicStoreObject, file.id, file.name, file.metaData.file_markings, input); + const data = buildContextDataForFile(instance as BasicStoreObject, file.id, file.name, file.metaData.file_markings, { ...input, ...disseminationList }); await publishUserAction({ event_access: 'administration', user, From b8fc34f50946c0eb412691ff8f65d4457dc3f776 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Mon, 27 Jan 2025 16:42:50 +0100 Subject: [PATCH 39/81] [frontend] Translation and Title (#5551) --- opencti-platform/opencti-front/lang/front/de.json | 2 ++ opencti-platform/opencti-front/lang/front/en.json | 2 ++ opencti-platform/opencti-front/lang/front/es.json | 2 ++ opencti-platform/opencti-front/lang/front/fr.json | 2 ++ opencti-platform/opencti-front/lang/front/ja.json | 2 ++ opencti-platform/opencti-front/lang/front/ko.json | 2 ++ opencti-platform/opencti-front/lang/front/zh.json | 2 ++ .../settings/dissemination_lists/DisseminationLists.tsx | 3 +++ 8 files changed, 17 insertions(+) diff --git a/opencti-platform/opencti-front/lang/front/de.json b/opencti-platform/opencti-front/lang/front/de.json index cdabde2a3001..2dbdece1f6f1 100644 --- a/opencti-platform/opencti-front/lang/front/de.json +++ b/opencti-platform/opencti-front/lang/front/de.json @@ -805,6 +805,7 @@ "Display time range selector": "Zeitbereichselektor anzeigen", "Disseminate a file": "Verbreiten Sie eine Datei", "Disseminate files by email": "Verbreitung von Dateien per E-Mail", + "Dissemination List": "Verbreitungsliste", "Dissemination Lists": "Verbreitungslisten", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Verbreitungslisten können verwendet werden, um Dateien an eine Liste von Empfängern zu senden, die nicht unbedingt ein OpenCTI-Konto haben.", "Distributed": "Verteilt", @@ -2637,6 +2638,7 @@ "Sectors | Entities": "Branchen | Entitäten", "Sectors and organizations": "Sektoren und Organisationen", "Security": "Sicherheit", + "Security: Dissemination lists | Settings": "Sicherheit: Verbreitungslisten | Einstellungen", "Security: Groups | Settings": "Sicherheit: Gruppen | Einstellungen", "Security: Marking Definitions | Settings": "Sicherheit: Markierungsdefinitionen | Einstellungen", "Security: Organizations | Settings": "Sicherheit: Organisationen | Einstellungen", diff --git a/opencti-platform/opencti-front/lang/front/en.json b/opencti-platform/opencti-front/lang/front/en.json index a717d3068d77..581c8ecf02c2 100644 --- a/opencti-platform/opencti-front/lang/front/en.json +++ b/opencti-platform/opencti-front/lang/front/en.json @@ -805,6 +805,7 @@ "Display time range selector": "Display time range selector", "Disseminate a file": "Disseminate a file", "Disseminate files by email": "Disseminate files by email", + "Dissemination List": "Dissemination List", "Dissemination Lists": "Dissemination Lists", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.", "Distributed": "Distributed", @@ -2637,6 +2638,7 @@ "Sectors | Entities": "Sectors | Entities", "Sectors and organizations": "Sectors and organizations", "Security": "Security", + "Security: Dissemination lists | Settings": "Security: Dissemination lists | Settings", "Security: Groups | Settings": "Security: Groups | Settings", "Security: Marking Definitions | Settings": "Security: Marking Definitions | Settings", "Security: Organizations | Settings": "Security: Organizations | Settings", diff --git a/opencti-platform/opencti-front/lang/front/es.json b/opencti-platform/opencti-front/lang/front/es.json index 1cba3024f98b..87b0e8a802eb 100644 --- a/opencti-platform/opencti-front/lang/front/es.json +++ b/opencti-platform/opencti-front/lang/front/es.json @@ -805,6 +805,7 @@ "Display time range selector": "Mostrar el selector de rango temporal", "Disseminate a file": "Difundir un fichero", "Disseminate files by email": "Difundir archivos por correo electrónico", + "Dissemination List": "Lista de difusión", "Dissemination Lists": "Listas de difusión", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Las listas de difusión se pueden utilizar para enviar archivos a una lista de destinatarios que no necesariamente tienen una cuenta OpenCTI.", "Distributed": "Distribuido", @@ -2637,6 +2638,7 @@ "Sectors | Entities": "Sectores | Entidades", "Sectors and organizations": "Sectores y organizaciones", "Security": "Seguridad", + "Security: Dissemination lists | Settings": "Seguridad: Listas de difusión | Configuración", "Security: Groups | Settings": "Seguridad: Grupos | Configuración", "Security: Marking Definitions | Settings": "Seguridad: Definiciones de marcado | Configuración", "Security: Organizations | Settings": "Seguridad: Organizaciones | Configuración", diff --git a/opencti-platform/opencti-front/lang/front/fr.json b/opencti-platform/opencti-front/lang/front/fr.json index 5c1dc2f452ab..054ce318fd61 100644 --- a/opencti-platform/opencti-front/lang/front/fr.json +++ b/opencti-platform/opencti-front/lang/front/fr.json @@ -805,6 +805,7 @@ "Display time range selector": "Afficher le sélecteur d'intervalle de temps", "Disseminate a file": "Diffuser un fichier", "Disseminate files by email": "Diffusion des fichiers par courrier électronique", + "Dissemination List": "Liste de diffusion", "Dissemination Lists": "Listes de diffusion", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Les listes de diffusion peuvent être utilisées pour envoyer des fichiers à une liste de destinataires qui n'ont pas nécessairement un compte OpenCTI.", "Distributed": "Distribué", @@ -2637,6 +2638,7 @@ "Sectors | Entities": "Secteurs | Entités", "Sectors and organizations": "Secteurs et organisations", "Security": "Sécurité", + "Security: Dissemination lists | Settings": "Sécurité : Listes de diffusion | Paramètres", "Security: Groups | Settings": "Sécurité : Groupes | Paramètres", "Security: Marking Definitions | Settings": "Sécurité : définitions de marquage | Paramètres", "Security: Organizations | Settings": "Sécurité : Organisations | Paramètres", diff --git a/opencti-platform/opencti-front/lang/front/ja.json b/opencti-platform/opencti-front/lang/front/ja.json index cb34033ef666..87c43b760414 100644 --- a/opencti-platform/opencti-front/lang/front/ja.json +++ b/opencti-platform/opencti-front/lang/front/ja.json @@ -805,6 +805,7 @@ "Display time range selector": "時間範囲選択ツールを表示", "Disseminate a file": "ファイルを配布する", "Disseminate files by email": "電子メールによるファイルの配布", + "Dissemination List": "配信リスト", "Dissemination Lists": "配信リスト", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "配信リストは、必ずしも OpenCTI アカウントを持っていない受信者のリストにファイルを送信するために使用できます。", "Distributed": "分散", @@ -2637,6 +2638,7 @@ "Sectors | Entities": "エンティティ", "Sectors and organizations": "セクターと組織", "Security": "安全", + "Security: Dissemination lists | Settings": "セキュリティ配信リスト|設定", "Security: Groups | Settings": "セキュリティ:グループ|設定", "Security: Marking Definitions | Settings": "セキュリティ:マーキング定義|設定", "Security: Organizations | Settings": "セキュリティ:組織|設定", diff --git a/opencti-platform/opencti-front/lang/front/ko.json b/opencti-platform/opencti-front/lang/front/ko.json index 2f0c852a769a..907c4a4a85ac 100644 --- a/opencti-platform/opencti-front/lang/front/ko.json +++ b/opencti-platform/opencti-front/lang/front/ko.json @@ -805,6 +805,7 @@ "Display time range selector": "시간 범위 선택기 표시", "Disseminate a file": "파일 배포", "Disseminate files by email": "이메일로 파일 배포", + "Dissemination List": "배포 목록", "Dissemination Lists": "배포 목록", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "배포 목록은 OpenCTI 계정이 없는 수신자 목록에 파일을 보내는 데 사용할 수 있습니다.", "Distributed": "분산됨", @@ -2637,6 +2638,7 @@ "Sectors | Entities": "분야 | 법인", "Sectors and organizations": "부문 및 조직", "Security": "보안", + "Security: Dissemination lists | Settings": "보안: 배포 목록 | 설정", "Security: Groups | Settings": "보안: 그룹 | 설정", "Security: Marking Definitions | Settings": "보안: 정의 표시 | 설정", "Security: Organizations | Settings": "보안: 조직 | 설정", diff --git a/opencti-platform/opencti-front/lang/front/zh.json b/opencti-platform/opencti-front/lang/front/zh.json index e432ef559bd9..ca1f3175efb2 100644 --- a/opencti-platform/opencti-front/lang/front/zh.json +++ b/opencti-platform/opencti-front/lang/front/zh.json @@ -805,6 +805,7 @@ "Display time range selector": "显示时间范围选择器", "Disseminate a file": "传播文件", "Disseminate files by email": "通过电子邮件传播文件", + "Dissemination List": "传播清单", "Dissemination Lists": "传播列表", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "传播列表可用于向不一定拥有 OpenCTI 账户的收件人列表发送文件。", "Distributed": "分布式", @@ -2637,6 +2638,7 @@ "Sectors | Entities": "部门|实体", "Sectors and organizations": "部门和组织", "Security": "安全", + "Security: Dissemination lists | Settings": "安全:传播列表 | 设置", "Security: Groups | Settings": "安全:组|设置", "Security: Marking Definitions | Settings": "安全性:标记定义|设置", "Security: Organizations | Settings": "安全:组织|设置", diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index 1724bc977b14..713679e183a8 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -18,6 +18,7 @@ import { DataTableProps } from '../../../../components/dataGrid/dataTableTypes'; import ItemIcon from '../../../../components/ItemIcon'; import { UsePreloadedPaginationFragment } from '../../../../utils/hooks/usePreloadedPaginationFragment'; import AlertInfo from '../../../../components/AlertInfo'; +import useConnectedDocumentModifier from '../../../../utils/hooks/useConnectedDocumentModifier'; export const disseminationListsQuery = graphql` query DisseminationListsLinesPaginationQuery( @@ -86,6 +87,8 @@ const LOCAL_STORAGE_KEY = 'view-dissemination-lists'; const DisseminationLists = () => { const { t_i18n } = useFormatter(); + const { setTitle } = useConnectedDocumentModifier(); + setTitle(t_i18n('Security: Dissemination lists | Settings')); const initialValues = { searchTerm: '', From 38e5276b3d016910925825f21b4cd8da3862da80 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Mon, 27 Jan 2025 16:55:55 +0100 Subject: [PATCH 40/81] [frontend] replace query to the parent (#5551) --- .../StixCoreObjectContentFilesDissemination.tsx | 17 +++++++---------- .../StixCoreObjectContentFilesList.tsx | 9 ++++++++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index cee93d0be3a8..9a505e87c9f5 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -1,12 +1,11 @@ -import React, { FunctionComponent, useState } from 'react'; +import React, { FunctionComponent } from 'react'; import { Box, Button } from '@mui/material'; -import { graphql, useLazyLoadQuery } from 'react-relay'; +import { graphql } from 'react-relay'; import { Field, Formik } from 'formik'; import { FormikConfig } from 'formik/dist/types'; import * as Yup from 'yup'; import { marked } from 'marked'; import DOMPurify from 'dompurify'; -import { StixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; import MenuItem from '@mui/material/MenuItem'; import { fieldSpacingContainerStyle } from '../../../../utils/field'; import TextField from '../../../../components/TextField'; @@ -15,11 +14,13 @@ import { useFormatter } from '../../../../components/i18n'; import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import SelectField from "../../../../components/fields/SelectField"; +import { StixCoreObjectContentFilesDisseminationQuery$data } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; interface StixCoreObjectContentFilesDisseminationProps { fileId: string; fileName: string; onClose: () => void; + lists: StixCoreObjectContentFilesDisseminationQuery$data['disseminationListsNames']; } interface DisseminationInput { @@ -67,13 +68,9 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent { const { t_i18n } = useFormatter(); - const [selectedListId, setSelectedListId] = useState(''); - const { disseminationListsNames } = useLazyLoadQuery( - stixCoreObjectContentFilesDisseminationQuery, - { search: '', count: 10 }, - ); const basicShape = { disseminationListId: Yup.string().required(t_i18n('This field is required')), @@ -122,7 +119,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent - {disseminationListsNames?.edges?.map((edge) => ( + {lists?.edges?.map((edge) => ( {edge.node.name} diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx index 3b8a7cde8999..9bb6280d02a5 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx @@ -16,7 +16,7 @@ import ListItem from '@mui/material/ListItem'; import { useTheme } from '@mui/styles'; import EmailIcon from '@mui/icons-material/Email'; import Drawer from '@components/common/drawer/Drawer'; -import StixCoreObjectContentFilesDissemination from '@components/common/stix_core_objects/StixCoreObjectContentFilesDissemination'; +import StixCoreObjectContentFilesDissemination, { stixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/StixCoreObjectContentFilesDissemination'; import EEChip from '@components/common/entreprise_edition/EEChip'; import { useFormatter } from '../../../../components/i18n'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; @@ -27,6 +27,8 @@ import { KNOWLEDGE_KNASKIMPORT, KNOWLEDGE_KNDISSEMINATION, KNOWLEDGE_KNGETEXPORT import Security from '../../../../utils/Security'; import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition'; import useHelper from '../../../../utils/hooks/useHelper'; +import { useLazyLoadQuery } from 'react-relay'; +import { StixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; const renderIcon = (mimeType: string) => { switch (mimeType) { @@ -125,6 +127,10 @@ const StixCoreObjectContentFilesList = ({ }; const canDownloadAsPdf = menuFile?.metaData?.mimetype === 'text/html' || menuFile?.metaData?.mimetype === 'text/markdown'; + const { disseminationListsNames } = useLazyLoadQuery( + stixCoreObjectContentFilesDisseminationQuery, + { search: '', count: 10 }, + ); return ( @@ -202,6 +208,7 @@ const StixCoreObjectContentFilesList = ({ fileId={file.id} fileName={file.name} onClose={() => setDrawerOpen(false)} + lists={disseminationListsNames} /> From 6e7f654c5185eb9733c9feb25bd5770719d95dd8 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Mon, 27 Jan 2025 17:03:31 +0100 Subject: [PATCH 41/81] [frontend/backend] remove feature flag (#5551) --- .../stix_core_objects/StixCoreObjectContentFilesList.tsx | 3 +-- .../components/settings/roles/RoleEditionCapabilities.tsx | 4 ---- .../src/modules/disseminationList/disseminationList.ts | 8 ++++---- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx index 9bb6280d02a5..e3bf878bd47e 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx @@ -83,7 +83,6 @@ const StixCoreObjectContentFilesList = ({ const deletion = useDeletion({}); const isEnterpriseEdition = useEnterpriseEdition(); const { isFeatureEnable } = useHelper(); - const isDisseminationFeatureEnabled = isFeatureEnable('DISSEMINATIONLISTS'); const [anchorEl, setAnchorEl] = useState(null); const [menuFile, setMenuFile] = useState(null); @@ -168,7 +167,7 @@ const StixCoreObjectContentFilesList = ({ )} /> - {file.metaData?.mimetype === 'application/pdf' && isDisseminationFeatureEnabled && ( + {file.metaData?.mimetype === 'application/pdf' && ( <> diff --git a/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx b/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx index 6bcf76971589..323e98398d95 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx @@ -86,7 +86,6 @@ const RoleEditionCapabilitiesComponent: FunctionComponent(); const { isFeatureEnable } = useHelper(); - const isDisseminationFeatureEnabled = isFeatureEnable('DISSEMINATIONLISTS'); const { capabilities } = usePreloadedQuery( roleEditionCapabilitiesLinesSearch, @@ -175,9 +174,6 @@ const RoleEditionCapabilitiesComponent: FunctionComponent { const capability = edge?.node; if (capability) { - if (!isDisseminationFeatureEnabled && (capability.name === KNOWLEDGE_KNDISSEMINATION || capability.name === SETTINGS_SETDISSEMINATION)) { - return
; - } const paddingLeft = capability.name.split('_').length * 20 - 20; const roleCapability = roleCapabilities.find( (r) => r.name === capability.name, diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts index f3c0efde57e1..9d0d76481393 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts @@ -32,10 +32,10 @@ const DISSEMINATION_LIST_DEFINITION: ModuleDefinition { From 6fd1e75a67c3ef99f4371a1674d444556d3eea66 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Mon, 27 Jan 2025 17:12:33 +0100 Subject: [PATCH 42/81] [frontend] Fix deepscan (#5551) --- .../StixCoreObjectContentFilesList.tsx | 10 +++++----- .../settings/roles/RoleEditionCapabilities.tsx | 4 +--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx index e3bf878bd47e..8bde817ed65d 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx @@ -16,8 +16,12 @@ import ListItem from '@mui/material/ListItem'; import { useTheme } from '@mui/styles'; import EmailIcon from '@mui/icons-material/Email'; import Drawer from '@components/common/drawer/Drawer'; -import StixCoreObjectContentFilesDissemination, { stixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/StixCoreObjectContentFilesDissemination'; +import StixCoreObjectContentFilesDissemination, { + stixCoreObjectContentFilesDisseminationQuery, +} from '@components/common/stix_core_objects/StixCoreObjectContentFilesDissemination'; import EEChip from '@components/common/entreprise_edition/EEChip'; +import { useLazyLoadQuery } from 'react-relay'; +import { StixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; import { useFormatter } from '../../../../components/i18n'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import { APP_BASE_PATH } from '../../../../relay/environment'; @@ -26,9 +30,6 @@ import type { Theme } from '../../../../components/Theme'; import { KNOWLEDGE_KNASKIMPORT, KNOWLEDGE_KNDISSEMINATION, KNOWLEDGE_KNGETEXPORT, KNOWLEDGE_KNUPLOAD } from '../../../../utils/hooks/useGranted'; import Security from '../../../../utils/Security'; import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition'; -import useHelper from '../../../../utils/hooks/useHelper'; -import { useLazyLoadQuery } from 'react-relay'; -import { StixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; const renderIcon = (mimeType: string) => { switch (mimeType) { @@ -82,7 +83,6 @@ const StixCoreObjectContentFilesList = ({ const { fld, t_i18n } = useFormatter(); const deletion = useDeletion({}); const isEnterpriseEdition = useEnterpriseEdition(); - const { isFeatureEnable } = useHelper(); const [anchorEl, setAnchorEl] = useState(null); const [menuFile, setMenuFile] = useState(null); diff --git a/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx b/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx index 323e98398d95..ce6bddaee03b 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx @@ -16,10 +16,9 @@ import { useFormatter } from '../../../../components/i18n'; import { RoleEditionCapabilitiesLinesSearchQuery } from './__generated__/RoleEditionCapabilitiesLinesSearchQuery.graphql'; import { RoleEditionCapabilities_role$data } from './__generated__/RoleEditionCapabilities_role.graphql'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; -import { KNOWLEDGE_KNDISSEMINATION, SETTINGS, SETTINGS_SETDISSEMINATION } from '../../../../utils/hooks/useGranted'; +import { SETTINGS } from '../../../../utils/hooks/useGranted'; import useSensitiveModifications from '../../../../utils/hooks/useSensitiveModifications'; import type { Theme } from '../../../../components/Theme'; -import useHelper from '../../../../utils/hooks/useHelper'; const roleEditionAddCapability = graphql` mutation RoleEditionCapabilitiesAddCapabilityMutation( @@ -85,7 +84,6 @@ interface RoleEditionCapabilitiesComponentProps { const RoleEditionCapabilitiesComponent: FunctionComponent = ({ role, queryRef }) => { const { t_i18n } = useFormatter(); const theme = useTheme(); - const { isFeatureEnable } = useHelper(); const { capabilities } = usePreloadedQuery( roleEditionCapabilitiesLinesSearch, From 52e408a09bafe6167cfee0df0c907a36ca4687dc Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Mon, 27 Jan 2025 17:33:01 +0100 Subject: [PATCH 43/81] [frontend] fix lint (#5551) --- .../StixCoreObjectContentFilesDissemination.tsx | 4 ++-- .../settings/dissemination_lists/DisseminationList.test.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index 9a505e87c9f5..4ac3837e2c97 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -7,14 +7,14 @@ import * as Yup from 'yup'; import { marked } from 'marked'; import DOMPurify from 'dompurify'; import MenuItem from '@mui/material/MenuItem'; +import { StixCoreObjectContentFilesDisseminationQuery$data } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; import { fieldSpacingContainerStyle } from '../../../../utils/field'; import TextField from '../../../../components/TextField'; import MarkdownField from '../../../../components/fields/MarkdownField'; import { useFormatter } from '../../../../components/i18n'; import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; -import SelectField from "../../../../components/fields/SelectField"; -import { StixCoreObjectContentFilesDisseminationQuery$data } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; +import SelectField from '../../../../components/fields/SelectField'; interface StixCoreObjectContentFilesDisseminationProps { fileId: string; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts index f03633ea0ba5..2b52657bc5cb 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect } from 'vitest'; import { formatEmailsForApi, formatEmailsForFront } from '@components/settings/dissemination_lists/DisseminationListUtils'; -const EXPECTED_RESULT_FOR_API: string = 'example1@email.com,sample.account@email.com'; -const EXPECTED_RESULT_FOR_FRONT: string = 'example1@email.com\nsample.account@email.com'; +const EXPECTED_RESULT_FOR_API = 'example1@email.com,sample.account@email.com'; +const EXPECTED_RESULT_FOR_FRONT = 'example1@email.com\nsample.account@email.com'; describe('Function: formatEmailsForApi', () => { it('should parse line', () => { @@ -19,4 +19,4 @@ describe('Function: formatEmailsForFront', () => { it('should parse api result', () => { expect(formatEmailsForFront(EXPECTED_RESULT_FOR_API)).toEqual(EXPECTED_RESULT_FOR_FRONT); }); -}); \ No newline at end of file +}); From d7e5959febb198760704c04ec99563154c3f44bb Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 09:24:42 +0100 Subject: [PATCH 44/81] [frontend] fix translations (#5551) --- .../opencti-front/lang/front/de.json | 5 ++- .../opencti-front/lang/front/en.json | 5 ++- .../opencti-front/lang/front/es.json | 5 ++- .../opencti-front/lang/front/fr.json | 5 ++- .../opencti-front/lang/front/ja.json | 5 ++- .../opencti-front/lang/front/ko.json | 5 ++- .../opencti-front/lang/front/zh.json | 5 ++- ...tixCoreObjectContentFilesDissemination.tsx | 2 +- .../StixCoreObjectContentFilesList.tsx | 2 +- .../DisseminationLists.tsx | 43 ++++++++++--------- 10 files changed, 46 insertions(+), 36 deletions(-) diff --git a/opencti-platform/opencti-front/lang/front/de.json b/opencti-platform/opencti-front/lang/front/de.json index 2dbdece1f6f1..6ffda2f543be 100644 --- a/opencti-platform/opencti-front/lang/front/de.json +++ b/opencti-platform/opencti-front/lang/front/de.json @@ -803,10 +803,11 @@ "Display the source": "Anzeige der Quelle", "Display the whole matrix": "Anzeige der gesamten Matrix", "Display time range selector": "Zeitbereichselektor anzeigen", + "Disseminate": "Verbreiten Sie", "Disseminate a file": "Verbreiten Sie eine Datei", "Disseminate files by email": "Verbreitung von Dateien per E-Mail", - "Dissemination List": "Verbreitungsliste", - "Dissemination Lists": "Verbreitungslisten", + "Dissemination list": "Verbreitungsliste", + "Dissemination lists": "Verbreitungslisten", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Verbreitungslisten können verwendet werden, um Dateien an eine Liste von Empfängern zu senden, die nicht unbedingt ein OpenCTI-Konto haben.", "Distributed": "Verteilt", "Distribution": "Verteilung", diff --git a/opencti-platform/opencti-front/lang/front/en.json b/opencti-platform/opencti-front/lang/front/en.json index 581c8ecf02c2..722ab73b084a 100644 --- a/opencti-platform/opencti-front/lang/front/en.json +++ b/opencti-platform/opencti-front/lang/front/en.json @@ -803,10 +803,11 @@ "Display the source": "Display the source", "Display the whole matrix": "Display the whole matrix", "Display time range selector": "Display time range selector", + "Disseminate": "Disseminate", "Disseminate a file": "Disseminate a file", "Disseminate files by email": "Disseminate files by email", - "Dissemination List": "Dissemination List", - "Dissemination Lists": "Dissemination Lists", + "Dissemination list": "Dissemination list", + "Dissemination lists": "Dissemination lists", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.", "Distributed": "Distributed", "Distribution": "Distribution", diff --git a/opencti-platform/opencti-front/lang/front/es.json b/opencti-platform/opencti-front/lang/front/es.json index 87b0e8a802eb..1dc9823ab197 100644 --- a/opencti-platform/opencti-front/lang/front/es.json +++ b/opencti-platform/opencti-front/lang/front/es.json @@ -803,10 +803,11 @@ "Display the source": "Visualización de la fuente", "Display the whole matrix": "Visualizar toda la matriz", "Display time range selector": "Mostrar el selector de rango temporal", + "Disseminate": "Difunda", "Disseminate a file": "Difundir un fichero", "Disseminate files by email": "Difundir archivos por correo electrónico", - "Dissemination List": "Lista de difusión", - "Dissemination Lists": "Listas de difusión", + "Dissemination list": "Lista de difusión", + "Dissemination lists": "Listas de difusión", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Las listas de difusión se pueden utilizar para enviar archivos a una lista de destinatarios que no necesariamente tienen una cuenta OpenCTI.", "Distributed": "Distribuido", "Distribution": "Distribución", diff --git a/opencti-platform/opencti-front/lang/front/fr.json b/opencti-platform/opencti-front/lang/front/fr.json index 054ce318fd61..108d2d275f60 100644 --- a/opencti-platform/opencti-front/lang/front/fr.json +++ b/opencti-platform/opencti-front/lang/front/fr.json @@ -803,10 +803,11 @@ "Display the source": "Afficher la source", "Display the whole matrix": "Afficher toute la matrice", "Display time range selector": "Afficher le sélecteur d'intervalle de temps", + "Disseminate": "Diffuser", "Disseminate a file": "Diffuser un fichier", "Disseminate files by email": "Diffusion des fichiers par courrier électronique", - "Dissemination List": "Liste de diffusion", - "Dissemination Lists": "Listes de diffusion", + "Dissemination list": "Liste de diffusion", + "Dissemination lists": "Listes de diffusion", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Les listes de diffusion peuvent être utilisées pour envoyer des fichiers à une liste de destinataires qui n'ont pas nécessairement un compte OpenCTI.", "Distributed": "Distribué", "Distribution": "Répartition", diff --git a/opencti-platform/opencti-front/lang/front/ja.json b/opencti-platform/opencti-front/lang/front/ja.json index 87c43b760414..6b53827b81c5 100644 --- a/opencti-platform/opencti-front/lang/front/ja.json +++ b/opencti-platform/opencti-front/lang/front/ja.json @@ -803,10 +803,11 @@ "Display the source": "ソースの表示", "Display the whole matrix": "マトリックス全体を表示する", "Display time range selector": "時間範囲選択ツールを表示", + "Disseminate": "広める", "Disseminate a file": "ファイルを配布する", "Disseminate files by email": "電子メールによるファイルの配布", - "Dissemination List": "配信リスト", - "Dissemination Lists": "配信リスト", + "Dissemination list": "配信リスト", + "Dissemination lists": "配信リスト", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "配信リストは、必ずしも OpenCTI アカウントを持っていない受信者のリストにファイルを送信するために使用できます。", "Distributed": "分散", "Distribution": "分布", diff --git a/opencti-platform/opencti-front/lang/front/ko.json b/opencti-platform/opencti-front/lang/front/ko.json index 907c4a4a85ac..2795a5bab8b9 100644 --- a/opencti-platform/opencti-front/lang/front/ko.json +++ b/opencti-platform/opencti-front/lang/front/ko.json @@ -803,10 +803,11 @@ "Display the source": "소스 표시", "Display the whole matrix": "전체 매트릭스 표시", "Display time range selector": "시간 범위 선택기 표시", + "Disseminate": "배포", "Disseminate a file": "파일 배포", "Disseminate files by email": "이메일로 파일 배포", - "Dissemination List": "배포 목록", - "Dissemination Lists": "배포 목록", + "Dissemination list": "배포 목록", + "Dissemination lists": "배포 목록", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "배포 목록은 OpenCTI 계정이 없는 수신자 목록에 파일을 보내는 데 사용할 수 있습니다.", "Distributed": "분산됨", "Distribution": "분포", diff --git a/opencti-platform/opencti-front/lang/front/zh.json b/opencti-platform/opencti-front/lang/front/zh.json index ca1f3175efb2..08579168e45c 100644 --- a/opencti-platform/opencti-front/lang/front/zh.json +++ b/opencti-platform/opencti-front/lang/front/zh.json @@ -803,10 +803,11 @@ "Display the source": "显示来源", "Display the whole matrix": "显示整个矩阵", "Display time range selector": "显示时间范围选择器", + "Disseminate": "传播", "Disseminate a file": "传播文件", "Disseminate files by email": "通过电子邮件传播文件", - "Dissemination List": "传播清单", - "Dissemination Lists": "传播列表", + "Dissemination list": "传播清单", + "Dissemination lists": "传播列表", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "传播列表可用于向不一定拥有 OpenCTI 账户的收件人列表发送文件。", "Distributed": "分布式", "Distribution": "分布:", diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index 4ac3837e2c97..6795f1b7420e 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -129,7 +129,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx index 8bde817ed65d..c3b282533c36 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx @@ -170,7 +170,7 @@ const StixCoreObjectContentFilesList = ({ {file.metaData?.mimetype === 'application/pdf' && ( <> - + handleDisseminate(e)} size="small" diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index 713679e183a8..2195f8d0f08b 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -19,6 +19,7 @@ import ItemIcon from '../../../../components/ItemIcon'; import { UsePreloadedPaginationFragment } from '../../../../utils/hooks/usePreloadedPaginationFragment'; import AlertInfo from '../../../../components/AlertInfo'; import useConnectedDocumentModifier from '../../../../utils/hooks/useConnectedDocumentModifier'; +import PageContainer from '../../../../components/PageContainer'; export const disseminationListsQuery = graphql` query DisseminationListsLinesPaginationQuery( @@ -158,28 +159,30 @@ const DisseminationLists = () => { } as UsePreloadedPaginationFragment; return ( -
+ <> - - - {queryRef && ( - data.disseminationLists?.edges?.map(({ node }: { node: DisseminationListsLine_node$data }) => node)} - storageKey={LOCAL_STORAGE_KEY} - initialValues={initialValues} - toolbarFilters={contextFilters} - lineFragment={disseminationListsLineFragment} - disableLineSelection - disableNavigation - preloadedPaginationProps={preloadedPaginationProps} - actions={(row) => } + + + - )} - -
+ {queryRef && ( + data.disseminationLists?.edges?.map(({ node }: { node: DisseminationListsLine_node$data }) => node)} + storageKey={LOCAL_STORAGE_KEY} + initialValues={initialValues} + toolbarFilters={contextFilters} + lineFragment={disseminationListsLineFragment} + disableLineSelection + disableNavigation + preloadedPaginationProps={preloadedPaginationProps} + actions={(row) => } + /> + )} + + + ); }; From b6ea098ce608c4ad15dbecc57144bebfe9bf189f Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 10:14:45 +0100 Subject: [PATCH 45/81] [frontend] fix capabilities (#5551) --- .../stix_core_objects/StixCoreObjectContentFilesList.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx index c3b282533c36..98613bdac7ff 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx @@ -27,7 +27,7 @@ import useApiMutation from '../../../../utils/hooks/useApiMutation'; import { APP_BASE_PATH } from '../../../../relay/environment'; import ItemMarkings from '../../../../components/ItemMarkings'; import type { Theme } from '../../../../components/Theme'; -import { KNOWLEDGE_KNASKIMPORT, KNOWLEDGE_KNDISSEMINATION, KNOWLEDGE_KNGETEXPORT, KNOWLEDGE_KNUPLOAD } from '../../../../utils/hooks/useGranted'; +import useGranted, { KNOWLEDGE_KNASKIMPORT, KNOWLEDGE_KNDISSEMINATION, KNOWLEDGE_KNGETEXPORT, KNOWLEDGE_KNUPLOAD } from '../../../../utils/hooks/useGranted'; import Security from '../../../../utils/Security'; import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition'; @@ -126,10 +126,11 @@ const StixCoreObjectContentFilesList = ({ }; const canDownloadAsPdf = menuFile?.metaData?.mimetype === 'text/html' || menuFile?.metaData?.mimetype === 'text/markdown'; - const { disseminationListsNames } = useLazyLoadQuery( + + const result = useGranted([KNOWLEDGE_KNDISSEMINATION]) ? useLazyLoadQuery( stixCoreObjectContentFilesDisseminationQuery, { search: '', count: 10 }, - ); + ) : null; return ( @@ -207,7 +208,7 @@ const StixCoreObjectContentFilesList = ({ fileId={file.id} fileName={file.name} onClose={() => setDrawerOpen(false)} - lists={disseminationListsNames} + lists={result ? result.disseminationListsNames : null} />
From 88705917577a561d3022b46fedd8cd40eaf78667 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 11:03:30 +0100 Subject: [PATCH 46/81] [frontend] protect setting page for EE (#5551) --- .../DisseminationLists.tsx | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index 2195f8d0f08b..0db4d5c525c8 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -8,6 +8,7 @@ import { import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; import DisseminationListCreation from '@components/settings/dissemination_lists/DisseminationListCreation'; import DisseminationListPopover from '@components/settings/dissemination_lists/DisseminationListPopover'; +import EnterpriseEdition from '@components/common/entreprise_edition/EnterpriseEdition'; import DataTable from '../../../../components/dataGrid/DataTable'; import Breadcrumbs from '../../../../components/Breadcrumbs'; import { useFormatter } from '../../../../components/i18n'; @@ -20,6 +21,7 @@ import { UsePreloadedPaginationFragment } from '../../../../utils/hooks/usePrelo import AlertInfo from '../../../../components/AlertInfo'; import useConnectedDocumentModifier from '../../../../utils/hooks/useConnectedDocumentModifier'; import PageContainer from '../../../../components/PageContainer'; +import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition'; export const disseminationListsQuery = graphql` query DisseminationListsLinesPaginationQuery( @@ -87,6 +89,7 @@ const disseminationListsLineFragment = graphql` const LOCAL_STORAGE_KEY = 'view-dissemination-lists'; const DisseminationLists = () => { + const isEnterpriseEdition = useEnterpriseEdition(); const { t_i18n } = useFormatter(); const { setTitle } = useConnectedDocumentModifier(); setTitle(t_i18n('Security: Dissemination lists | Settings')); @@ -163,24 +166,30 @@ const DisseminationLists = () => { - - {queryRef && ( - data.disseminationLists?.edges?.map(({ node }: { node: DisseminationListsLine_node$data }) => node)} - storageKey={LOCAL_STORAGE_KEY} - initialValues={initialValues} - toolbarFilters={contextFilters} - lineFragment={disseminationListsLineFragment} - disableLineSelection - disableNavigation - preloadedPaginationProps={preloadedPaginationProps} - actions={(row) => } - /> + {!isEnterpriseEdition ? ( + + ) : ( + <> + + {queryRef && ( + data.disseminationLists?.edges?.map(({ node }: { node: DisseminationListsLine_node$data }) => node)} + storageKey={LOCAL_STORAGE_KEY} + initialValues={initialValues} + toolbarFilters={contextFilters} + lineFragment={disseminationListsLineFragment} + disableLineSelection + disableNavigation + preloadedPaginationProps={preloadedPaginationProps} + actions={(row) => } + /> + )} + + )} - ); From 75dfaa4fc18dc2774e9d514d399a3f8561cce427 Mon Sep 17 00:00:00 2001 From: Cathia Archidoit Date: Tue, 28 Jan 2025 14:35:32 +0100 Subject: [PATCH 47/81] [backend] remove FF in domain --- .../disseminationList/disseminationList-domain.ts | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index dbcfaebf22d7..4048771ee7da 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -30,17 +30,15 @@ import { ENTITY_TYPE_SETTINGS } from '../../schema/internalObject'; import { downloadFile, loadFile } from '../../database/file-storage'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; -import conf, { BUS_TOPICS, isFeatureEnabled } from '../../config/conf'; +import conf, { BUS_TOPICS } from '../../config/conf'; import type { BasicStoreObject, StoreEntityConnection } from '../../types/store'; -import { FunctionalError, UnsupportedError } from '../../config/errors'; +import { FunctionalError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; import { generateInternalId } from '../../schema/identifier'; import { createInternalObject, deleteInternalObject } from '../../domain/internalObject'; import { updateAttribute } from '../../database/middleware'; import { notify } from '../../database/redis'; -const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); - export const findById = (context: AuthContext, user: AuthUser, id: string) => { return storeLoadById(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); }; @@ -126,9 +124,6 @@ const storeAndCreateDisseminationList = async (context: AuthContext, user: AuthU }; export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { - if (!isDisseminationListEnabled) { - throw UnsupportedError('Feature not yet available'); - } return storeAndCreateDisseminationList(context, user, input); }; @@ -155,8 +150,5 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au }; export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => { - if (!isDisseminationListEnabled) { - throw UnsupportedError('Feature not yet available'); - } return deleteInternalObject(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); }; From 837ceceaa5aad19899c2efd5225c42e14426d350 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 14:40:38 +0100 Subject: [PATCH 48/81] [frontend/backend] add limit to 500 emails in a list (#5551) --- .../DisseminationListUtils.ts | 9 +++++++++ .../disseminationList-domain.ts | 20 +++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts index 75eb1bce2f4a..d838583ffe64 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -3,6 +3,7 @@ import * as Yup from 'yup'; export const disseminationListValidator = (t: (value: string) => string) => { return Yup.object().shape({ name: Yup.string().trim().min(2).required(t('This field is required')), + description: Yup.string(), emails: Yup.string() .required(t('This field is required')) .test( @@ -12,6 +13,14 @@ export const disseminationListValidator = (t: (value: string) => string) => { const emails = value.split('\n').map((email) => email.trim()); return emails.every((email) => email !== '' && Yup.string().email().isValidSync(email)); }, + ) + .test( + 'max-emails', + t('You cannot add more than 500 e-mail addresses'), + (value) => { + const emails = value.split('\n').map((email) => email.trim()); + return emails.length <= 500; + }, ), }); }; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 4048771ee7da..a20f772bcb12 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -32,7 +32,7 @@ import { buildContextDataForFile, publishUserAction } from '../../listener/UserA import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; import conf, { BUS_TOPICS } from '../../config/conf'; import type { BasicStoreObject, StoreEntityConnection } from '../../types/store'; -import { FunctionalError } from '../../config/errors'; +import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; import { generateInternalId } from '../../schema/identifier'; import { createInternalObject, deleteInternalObject } from '../../domain/internalObject'; @@ -111,22 +111,22 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs return false; }; -const storeAndCreateDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { +export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { const disseminationListInternalId = generateInternalId(); + const count = input.emails.split(',').length; + if (count > 500) { + throw UnsupportedError('You cannot add more than 500 e-mail addresses'); + } const disseminationListToCreate = { name: input.name, emails: input.emails, description: input.description, - dissemination_list_values_count: input.emails.split(',').length, + dissemination_list_values_count: count, internal_id: disseminationListInternalId, }; return createInternalObject(context, user, disseminationListToCreate, ENTITY_TYPE_DISSEMINATION_LIST); }; -export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { - return storeAndCreateDisseminationList(context, user, input); -}; - export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => { const disseminationList = await findById(context, user, id); if (!disseminationList) { @@ -135,7 +135,11 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au const finalInput = [...input]; const emailsInput = finalInput.find((editInput) => editInput.key === 'emails'); if (emailsInput) { - finalInput.push({ key: 'dissemination_list_values_count', value: [emailsInput.value[0].split(',').length] }); + const count = emailsInput.value[0].split(',').length; + if (count > 500) { + throw UnsupportedError('You cannot add more than 500 e-mail addresses'); + } + finalInput.push({ key: 'dissemination_list_values_count', value: [count] }); } const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, finalInput); await publishUserAction({ From 1dab3752bf444c4cb3178225948e77522371410c Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 14:47:58 +0100 Subject: [PATCH 49/81] [frontend] fix translation (#5551) --- opencti-platform/opencti-front/lang/front/de.json | 2 +- opencti-platform/opencti-front/lang/front/en.json | 2 +- opencti-platform/opencti-front/lang/front/es.json | 2 +- opencti-platform/opencti-front/lang/front/fr.json | 2 +- opencti-platform/opencti-front/lang/front/ja.json | 2 +- opencti-platform/opencti-front/lang/front/ko.json | 2 +- opencti-platform/opencti-front/lang/front/zh.json | 2 +- .../settings/dissemination_lists/DisseminationListCreation.tsx | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/opencti-platform/opencti-front/lang/front/de.json b/opencti-platform/opencti-front/lang/front/de.json index 6ffda2f543be..ac32eec76650 100644 --- a/opencti-platform/opencti-front/lang/front/de.json +++ b/opencti-platform/opencti-front/lang/front/de.json @@ -513,6 +513,7 @@ "Create a data component": "Eine Datenkomponente erstellen", "Create a data source": "Erstellen einer Datenquelle", "Create a decay rule": "Erstellen einer Zerfallsregel", + "Create a dissemination list": "Erstellen Sie eine Verbreitungsliste", "Create a Draft": "Entwürfe erstellen", "Create a feed": "Erstellen eines Feeds", "Create a feedback": "Eine Rückmeldung erstellen", @@ -576,7 +577,6 @@ "Create an artifact": "Erstellen eines Artefakts", "Create an attack pattern": "Erstellen eines Angriffsmusters", "Create an attribute": "Ein Attribut erstellen", - "Create an dissemination list": "Erstellen Sie eine Verbreitungsliste", "Create an entity": "Erstellen Sie eine Entität", "Create an event": "Ein Ereignis erstellen", "Create an exclusion list": "Erstellen Sie eine Ausschlussliste", diff --git a/opencti-platform/opencti-front/lang/front/en.json b/opencti-platform/opencti-front/lang/front/en.json index 722ab73b084a..585651c566d5 100644 --- a/opencti-platform/opencti-front/lang/front/en.json +++ b/opencti-platform/opencti-front/lang/front/en.json @@ -513,6 +513,7 @@ "Create a data component": "Create a data component", "Create a data source": "Create a data source", "Create a decay rule": "Create a decay rule", + "Create a dissemination list": "Create a dissemination list", "Create a Draft": "Create a Draft", "Create a feed": "Create a feed", "Create a feedback": "Create a feedback", @@ -576,7 +577,6 @@ "Create an artifact": "Create an artifact", "Create an attack pattern": "Create an attack pattern", "Create an attribute": "Create an attribute", - "Create an dissemination list": "Create an dissemination list", "Create an entity": "Create an entity", "Create an event": "Create an event", "Create an exclusion list": "Create an exclusion list", diff --git a/opencti-platform/opencti-front/lang/front/es.json b/opencti-platform/opencti-front/lang/front/es.json index 1dc9823ab197..93ea9ee72001 100644 --- a/opencti-platform/opencti-front/lang/front/es.json +++ b/opencti-platform/opencti-front/lang/front/es.json @@ -513,6 +513,7 @@ "Create a data component": "Crear un componente de datos", "Create a data source": "Crear una fuente de datos", "Create a decay rule": "Crear una regla de decaimiento", + "Create a dissemination list": "Crear una lista de difusión", "Create a Draft": "Crear un borrador", "Create a feed": "Crear una fuente de datos", "Create a feedback": "Crear un comentario", @@ -576,7 +577,6 @@ "Create an artifact": "Crear un artefacto", "Create an attack pattern": "Crear un patrón de ataque", "Create an attribute": "Crear un atributo", - "Create an dissemination list": "Crear una lista de difusión", "Create an entity": "Crear una entidad", "Create an event": "Crear un evento", "Create an exclusion list": "Crear una lista de exclusión", diff --git a/opencti-platform/opencti-front/lang/front/fr.json b/opencti-platform/opencti-front/lang/front/fr.json index 108d2d275f60..f0f5d7ffaa4c 100644 --- a/opencti-platform/opencti-front/lang/front/fr.json +++ b/opencti-platform/opencti-front/lang/front/fr.json @@ -513,6 +513,7 @@ "Create a data component": "Créer un composant de données", "Create a data source": "Créer une source de données", "Create a decay rule": "Créer une règle de déclin", + "Create a dissemination list": "Créer une liste de diffusion", "Create a Draft": "Créer un brouillon", "Create a feed": "Créer un flux", "Create a feedback": "Créer un commentaire", @@ -576,7 +577,6 @@ "Create an artifact": "Créer un artefact", "Create an attack pattern": "Créer un motif d'attaque", "Create an attribute": "Créer un attribut", - "Create an dissemination list": "Créer une liste de diffusion", "Create an entity": "Créer une entité", "Create an event": "Créer un événement", "Create an exclusion list": "Créer une liste d'exclusion", diff --git a/opencti-platform/opencti-front/lang/front/ja.json b/opencti-platform/opencti-front/lang/front/ja.json index 6b53827b81c5..6e56fd40fb1a 100644 --- a/opencti-platform/opencti-front/lang/front/ja.json +++ b/opencti-platform/opencti-front/lang/front/ja.json @@ -513,6 +513,7 @@ "Create a data component": "データコンポーネントの作成", "Create a data source": "データ ソースを作成する", "Create a decay rule": "崩壊ルールの作成", + "Create a dissemination list": "普及リストの作成", "Create a Draft": "草稿の作成", "Create a feed": "フィードを作成", "Create a feedback": "フィードバックを作成する", @@ -576,7 +577,6 @@ "Create an artifact": "アーティファクトを作成", "Create an attack pattern": "攻撃パターンを作成", "Create an attribute": "属性を作成", - "Create an dissemination list": "普及リストの作成", "Create an entity": "エンティティを作成", "Create an event": "イベントを作成", "Create an exclusion list": "除外リストの作成", diff --git a/opencti-platform/opencti-front/lang/front/ko.json b/opencti-platform/opencti-front/lang/front/ko.json index 2795a5bab8b9..5eaf92c4d3eb 100644 --- a/opencti-platform/opencti-front/lang/front/ko.json +++ b/opencti-platform/opencti-front/lang/front/ko.json @@ -513,6 +513,7 @@ "Create a data component": "데이터 구성 요소 생성", "Create a data source": "데이터 소스 생성", "Create a decay rule": "감쇠 규칙 생성", + "Create a dissemination list": "배포 목록 만들기", "Create a Draft": "초안 만들기", "Create a feed": "피드 생성", "Create a feedback": "피드백 생성", @@ -576,7 +577,6 @@ "Create an artifact": "아티팩트 생성", "Create an attack pattern": "공격 패턴 생성", "Create an attribute": "속성 생성", - "Create an dissemination list": "배포 목록 만들기", "Create an entity": "엔터티 생성", "Create an event": "이벤트 생성", "Create an exclusion list": "제외 목록 만들기", diff --git a/opencti-platform/opencti-front/lang/front/zh.json b/opencti-platform/opencti-front/lang/front/zh.json index 08579168e45c..fa506a441b9e 100644 --- a/opencti-platform/opencti-front/lang/front/zh.json +++ b/opencti-platform/opencti-front/lang/front/zh.json @@ -513,6 +513,7 @@ "Create a data component": "创建数据组件", "Create a data source": "创建数据源", "Create a decay rule": "创建衰变规则", + "Create a dissemination list": "创建传播清单", "Create a Draft": "创建草稿", "Create a feed": "创建订阅源", "Create a feedback": "创建反馈", @@ -576,7 +577,6 @@ "Create an artifact": "创建工件", "Create an attack pattern": "创建攻击模式", "Create an attribute": "创建属性", - "Create an dissemination list": "创建传播清单", "Create an entity": "创建实体", "Create an event": "创建活动", "Create an exclusion list": "创建排除名单", diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index de5117191844..d234f86bc1bf 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -170,7 +170,7 @@ const DisseminationListCreation: FunctionComponent {({ onClose }) => ( From 63da9a45fb17202d5a770c4bd39cced0e58510ed Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 14:53:47 +0100 Subject: [PATCH 50/81] [frontend] remove translation of datacolumn names (#5551) --- .../settings/dissemination_lists/DisseminationLists.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index 0db4d5c525c8..da91fc926751 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -134,19 +134,19 @@ const DisseminationLists = () => { }, name: { id: 'name', - label: t_i18n('Name'), + label: 'Name', isSortable: true, percentWidth: 20, }, description: { id: 'description', - label: t_i18n('Description'), + label: 'Description', percentWidth: 60, isSortable: false, }, lineNumber: { id: 'dissemination_list_values_count', - label: t_i18n('Number of elements'), + label: 'Number of elements', percentWidth: 15, isSortable: true, render: (node: DisseminationListsLine_node$data) => node.dissemination_list_values_count || '-', From d039d32c635118ddc3889b2db33d9e51e51aea8f Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 15:02:39 +0100 Subject: [PATCH 51/81] [frontend] remove form margin (#5551) --- .../dissemination_lists/DisseminationListCreation.tsx | 4 ++-- .../settings/dissemination_lists/DisseminationListEdition.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index d234f86bc1bf..45e44153c45d 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -90,7 +90,7 @@ const DisseminationListCreationForm: FunctionComponent {({ submitForm, handleReset, isSubmitting }) => ( -
+ <>
- + )} ); diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index 85df4916b3a5..a8eae165c4ab 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -93,7 +93,7 @@ const DisseminationListEdition: FunctionComponent {({ submitForm }) => ( -
+ <> - + )} From 90b6a9fc1ea9d023e3b1e1af447bfd0c445cd73b Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 15:21:36 +0100 Subject: [PATCH 52/81] [frontend/backend] remove api names and add constraint to access to emails (#5551) --- .../StixCoreObjectContentFilesDissemination.tsx | 4 ++-- .../StixCoreObjectContentFilesList.tsx | 2 +- .../src/schema/relay.schema.graphql | 1 - .../opencti-graphql/src/generated/graphql.ts | 12 ------------ .../disseminationList-domain.ts | 17 ----------------- .../disseminationList-resolver.ts | 3 +-- .../disseminationList-types.ts | 6 ------ .../disseminationList/disseminationList.graphql | 12 ++---------- 8 files changed, 6 insertions(+), 51 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index 6795f1b7420e..18f949219489 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -20,7 +20,7 @@ interface StixCoreObjectContentFilesDisseminationProps { fileId: string; fileName: string; onClose: () => void; - lists: StixCoreObjectContentFilesDisseminationQuery$data['disseminationListsNames']; + lists: StixCoreObjectContentFilesDisseminationQuery$data['disseminationLists']; } interface DisseminationInput { @@ -38,7 +38,7 @@ export const stixCoreObjectContentFilesDisseminationQuery = graphql` $orderMode: OrderingMode $filters: FilterGroup ) { - disseminationListsNames( + disseminationLists( first: $count after: $cursor orderBy: $orderBy diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx index 98613bdac7ff..c129c05cf129 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx @@ -208,7 +208,7 @@ const StixCoreObjectContentFilesList = ({ fileId={file.id} fileName={file.name} onClose={() => setDrawerOpen(false)} - lists={result ? result.disseminationListsNames : null} + lists={result ? result.disseminationLists : null} />
diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 977726ecdbd9..ee0dbb24d558 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -8197,7 +8197,6 @@ type Query { fintelTemplate(id: ID!): FintelTemplate disseminationList(id: String!): DisseminationList disseminationLists(first: Int, after: ID, orderBy: DisseminationListOrdering, orderMode: OrderingMode, filters: FilterGroup, search: String): DisseminationListConnection - disseminationListsNames(first: Int, after: ID, orderBy: DisseminationListOrdering, orderMode: OrderingMode, filters: FilterGroup, search: String): DisseminationListNamesConnection } type Subscription { diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index b65e4706406d..5ac1b650d722 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -19646,7 +19646,6 @@ export type Query = { deleteOperations?: Maybe; disseminationList?: Maybe; disseminationLists?: Maybe; - disseminationListsNames?: Maybe; draftWorkspace?: Maybe; draftWorkspaceEntities?: Maybe; draftWorkspaceRelationships?: Maybe; @@ -20398,16 +20397,6 @@ export type QueryDisseminationListsArgs = { }; -export type QueryDisseminationListsNamesArgs = { - after?: InputMaybe; - filters?: InputMaybe; - first?: InputMaybe; - orderBy?: InputMaybe; - orderMode?: InputMaybe; - search?: InputMaybe; -}; - - export type QueryDraftWorkspaceArgs = { id: Scalars['String']['input']; }; @@ -39120,7 +39109,6 @@ export type QueryResolvers, ParentType, ContextType, Partial>; disseminationList?: Resolver, ParentType, ContextType, RequireFields>; disseminationLists?: Resolver, ParentType, ContextType, Partial>; - disseminationListsNames?: Resolver, ParentType, ContextType, Partial>; draftWorkspace?: Resolver, ParentType, ContextType, RequireFields>; draftWorkspaceEntities?: Resolver, ParentType, ContextType, RequireFields>; draftWorkspaceRelationships?: Resolver, ParentType, ContextType, RequireFields>; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index a20f772bcb12..e68338d91399 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -19,7 +19,6 @@ import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../da import type { DisseminationListAddInput, DisseminationListSendInput, EditInput, QueryDisseminationListsArgs } from '../../generated/graphql'; import { type BasicStoreEntityDisseminationList, - type BasicStoreEntityDisseminationListName, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; @@ -47,22 +46,6 @@ export const findAll = (context: AuthContext, user: AuthUser, args: QueryDissemi return listEntitiesPaginated(context, user, [ENTITY_TYPE_DISSEMINATION_LIST], args); }; -export const findAllNames = async (context: AuthContext, user: AuthUser, args: QueryDisseminationListsArgs) => { - const allLists: StoreEntityConnection = await listEntitiesPaginated( - context, - user, - [ENTITY_TYPE_DISSEMINATION_LIST], - args - ); - const newLists: StoreEntityConnection = { edges: [], pageInfo: allLists.pageInfo }; - allLists.edges.forEach((edge) => { - const { node, ...edgeRest } = edge; - const { emails: _, ...nodeRest } = node; - newLists.edges.push({ node: nodeRest, ...edgeRest }); - }); - return newLists; -}; - interface SendMailArgs { from: string; to: string; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts index ebbcbca5842a..e200caa102c7 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-resolver.ts @@ -14,13 +14,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ import type { Resolvers } from '../../generated/graphql'; -import { addDisseminationList, deleteDisseminationList, fieldPatchDisseminationList, findAll, findAllNames, findById, sendToDisseminationList } from './disseminationList-domain'; +import { addDisseminationList, deleteDisseminationList, fieldPatchDisseminationList, findAll, findById, sendToDisseminationList } from './disseminationList-domain'; const disseminationListResolvers: Resolvers = { Query: { disseminationList: (_, { id }, context) => findById(context, context.user, id), disseminationLists: (_, args, context) => findAll(context, context.user, args), - disseminationListsNames: (_, args, context) => findAllNames(context, context.user, args), }, DisseminationList: {}, Mutation: { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts index 934767ba9a35..41c3caa60dc3 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts @@ -26,12 +26,6 @@ export interface BasicStoreEntityDisseminationList extends BasicStoreEntity { dissemination_list_values_count: number; } -export interface BasicStoreEntityDisseminationListName extends BasicStoreEntity { - name: string; - description: string; - dissemination_list_values_count: number; -} - export interface StoreEntityDisseminationList extends StoreEntity { name: string; emails: string; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index c32bfab8a322..6ae6c29a3c4f 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -7,7 +7,7 @@ type DisseminationList implements InternalObject & BasicObject { updated_at: DateTime! # DisseminationList name: String! - emails: String! + emails: String! @auth(for: [SETTINGS_SETDISSEMINATION]) description: String dissemination_list_values_count: Int! } @@ -57,15 +57,7 @@ type Query { orderMode: OrderingMode filters: FilterGroup search: String - ): DisseminationListConnection @auth(for: [SETTINGS_SETDISSEMINATION]) - disseminationListsNames( - first: Int - after: ID - orderBy: DisseminationListOrdering - orderMode: OrderingMode - filters: FilterGroup - search: String - ): DisseminationListNamesConnection @auth(for: [KNOWLEDGE_KNDISSEMINATION, SETTINGS_SETDISSEMINATION]) + ): DisseminationListConnection @auth(for: [KNOWLEDGE_KNDISSEMINATION, SETTINGS_SETDISSEMINATION]) } input DisseminationListAddInput { From 53bf60330f2c6f6ddc8a9224c3ba09e2b5cb5509 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 15:32:12 +0100 Subject: [PATCH 53/81] [frontend/backend] lint (#5551) --- .../dissemination_lists/DisseminationListCreation.tsx | 2 +- .../dissemination_lists/DisseminationListEdition.tsx | 2 +- .../modules/disseminationList/disseminationList-domain.ts | 8 ++------ 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index 45e44153c45d..f062a9a5755e 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -1,5 +1,5 @@ import React, { FunctionComponent } from 'react'; -import { Field, Form, Formik, FormikConfig } from 'formik'; +import { Field, Formik, FormikConfig } from 'formik'; import Button from '@mui/material/Button'; import { RecordSourceSelectorProxy } from 'relay-runtime'; import Drawer, { DrawerVariant } from '@components/common/drawer/Drawer'; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index a8eae165c4ab..c46396911103 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -1,7 +1,7 @@ import React, { FunctionComponent } from 'react'; import { graphql } from 'react-relay'; import Drawer from '@components/common/drawer/Drawer'; -import { Field, Form, Formik, FormikConfig } from 'formik'; +import { Field, Formik, FormikConfig } from 'formik'; import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; import { disseminationListValidator, formatEmailsForApi, formatEmailsForFront } from '@components/settings/dissemination_lists/DisseminationListUtils'; import { handleErrorInForm, MESSAGING$ } from '../../../../relay/environment'; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index e68338d91399..2b4a6a820b78 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -17,11 +17,7 @@ import ejs from 'ejs'; import type { AuthContext, AuthUser } from '../../types/user'; import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../database/middleware-loader'; import type { DisseminationListAddInput, DisseminationListSendInput, EditInput, QueryDisseminationListsArgs } from '../../generated/graphql'; -import { - type BasicStoreEntityDisseminationList, - ENTITY_TYPE_DISSEMINATION_LIST, - type StoreEntityDisseminationList -} from './disseminationList-types'; +import { type BasicStoreEntityDisseminationList, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; import { sendMail } from '../../database/smtp'; import { getEntityFromCache } from '../../database/cache'; import type { BasicStoreSettings } from '../../types/settings'; @@ -30,7 +26,7 @@ import { downloadFile, loadFile } from '../../database/file-storage'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; import conf, { BUS_TOPICS } from '../../config/conf'; -import type { BasicStoreObject, StoreEntityConnection } from '../../types/store'; +import type { BasicStoreObject } from '../../types/store'; import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; import { generateInternalId } from '../../schema/identifier'; From 6a1db3003333a87c677e5c3a79beb39775fe505a Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Tue, 28 Jan 2025 16:22:14 +0100 Subject: [PATCH 54/81] [frontend] add EE chip in the menu (#5551) --- opencti-platform/opencti-front/lang/front/de.json | 1 + opencti-platform/opencti-front/lang/front/en.json | 1 + opencti-platform/opencti-front/lang/front/es.json | 1 + opencti-platform/opencti-front/lang/front/fr.json | 1 + opencti-platform/opencti-front/lang/front/ja.json | 1 + opencti-platform/opencti-front/lang/front/ko.json | 1 + opencti-platform/opencti-front/lang/front/zh.json | 1 + .../src/private/components/common/menus/NavToolbarMenu.tsx | 4 +++- .../src/private/components/settings/AccessesMenu.tsx | 3 ++- 9 files changed, 12 insertions(+), 2 deletions(-) diff --git a/opencti-platform/opencti-front/lang/front/de.json b/opencti-platform/opencti-front/lang/front/de.json index ac32eec76650..bb50507b8634 100644 --- a/opencti-platform/opencti-front/lang/front/de.json +++ b/opencti-platform/opencti-front/lang/front/de.json @@ -806,6 +806,7 @@ "Disseminate": "Verbreiten Sie", "Disseminate a file": "Verbreiten Sie eine Datei", "Disseminate files by email": "Verbreitung von Dateien per E-Mail", + "Dissemination": "Verbreitung", "Dissemination list": "Verbreitungsliste", "Dissemination lists": "Verbreitungslisten", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Verbreitungslisten können verwendet werden, um Dateien an eine Liste von Empfängern zu senden, die nicht unbedingt ein OpenCTI-Konto haben.", diff --git a/opencti-platform/opencti-front/lang/front/en.json b/opencti-platform/opencti-front/lang/front/en.json index 585651c566d5..673b73cc156d 100644 --- a/opencti-platform/opencti-front/lang/front/en.json +++ b/opencti-platform/opencti-front/lang/front/en.json @@ -806,6 +806,7 @@ "Disseminate": "Disseminate", "Disseminate a file": "Disseminate a file", "Disseminate files by email": "Disseminate files by email", + "Dissemination": "Dissemination", "Dissemination list": "Dissemination list", "Dissemination lists": "Dissemination lists", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.", diff --git a/opencti-platform/opencti-front/lang/front/es.json b/opencti-platform/opencti-front/lang/front/es.json index 93ea9ee72001..bbb4e8487fc3 100644 --- a/opencti-platform/opencti-front/lang/front/es.json +++ b/opencti-platform/opencti-front/lang/front/es.json @@ -806,6 +806,7 @@ "Disseminate": "Difunda", "Disseminate a file": "Difundir un fichero", "Disseminate files by email": "Difundir archivos por correo electrónico", + "Dissemination": "Difusión", "Dissemination list": "Lista de difusión", "Dissemination lists": "Listas de difusión", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Las listas de difusión se pueden utilizar para enviar archivos a una lista de destinatarios que no necesariamente tienen una cuenta OpenCTI.", diff --git a/opencti-platform/opencti-front/lang/front/fr.json b/opencti-platform/opencti-front/lang/front/fr.json index f0f5d7ffaa4c..ca2844502fe1 100644 --- a/opencti-platform/opencti-front/lang/front/fr.json +++ b/opencti-platform/opencti-front/lang/front/fr.json @@ -806,6 +806,7 @@ "Disseminate": "Diffuser", "Disseminate a file": "Diffuser un fichier", "Disseminate files by email": "Diffusion des fichiers par courrier électronique", + "Dissemination": "Diffusion", "Dissemination list": "Liste de diffusion", "Dissemination lists": "Listes de diffusion", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "Les listes de diffusion peuvent être utilisées pour envoyer des fichiers à une liste de destinataires qui n'ont pas nécessairement un compte OpenCTI.", diff --git a/opencti-platform/opencti-front/lang/front/ja.json b/opencti-platform/opencti-front/lang/front/ja.json index 6e56fd40fb1a..be32eae848d9 100644 --- a/opencti-platform/opencti-front/lang/front/ja.json +++ b/opencti-platform/opencti-front/lang/front/ja.json @@ -806,6 +806,7 @@ "Disseminate": "広める", "Disseminate a file": "ファイルを配布する", "Disseminate files by email": "電子メールによるファイルの配布", + "Dissemination": "普及", "Dissemination list": "配信リスト", "Dissemination lists": "配信リスト", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "配信リストは、必ずしも OpenCTI アカウントを持っていない受信者のリストにファイルを送信するために使用できます。", diff --git a/opencti-platform/opencti-front/lang/front/ko.json b/opencti-platform/opencti-front/lang/front/ko.json index 5eaf92c4d3eb..8087d3fe5009 100644 --- a/opencti-platform/opencti-front/lang/front/ko.json +++ b/opencti-platform/opencti-front/lang/front/ko.json @@ -806,6 +806,7 @@ "Disseminate": "배포", "Disseminate a file": "파일 배포", "Disseminate files by email": "이메일로 파일 배포", + "Dissemination": "배포", "Dissemination list": "배포 목록", "Dissemination lists": "배포 목록", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "배포 목록은 OpenCTI 계정이 없는 수신자 목록에 파일을 보내는 데 사용할 수 있습니다.", diff --git a/opencti-platform/opencti-front/lang/front/zh.json b/opencti-platform/opencti-front/lang/front/zh.json index fa506a441b9e..aec9030f2f11 100644 --- a/opencti-platform/opencti-front/lang/front/zh.json +++ b/opencti-platform/opencti-front/lang/front/zh.json @@ -806,6 +806,7 @@ "Disseminate": "传播", "Disseminate a file": "传播文件", "Disseminate files by email": "通过电子邮件传播文件", + "Dissemination": "传播", "Dissemination list": "传播清单", "Dissemination lists": "传播列表", "Disseminations lists can be used to send files to a list of recipients that do not necessarily have an OpenCTI account.": "传播列表可用于向不一定拥有 OpenCTI 账户的收件人列表发送文件。", diff --git a/opencti-platform/opencti-front/src/private/components/common/menus/NavToolbarMenu.tsx b/opencti-platform/opencti-front/src/private/components/common/menus/NavToolbarMenu.tsx index 96fa92b3b70e..4448169a4b25 100644 --- a/opencti-platform/opencti-front/src/private/components/common/menus/NavToolbarMenu.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/menus/NavToolbarMenu.tsx @@ -10,6 +10,7 @@ import { useFormatter } from '../../../../components/i18n'; import type { Theme } from '../../../../components/Theme'; import useAuth from '../../../../utils/hooks/useAuth'; import { useSettingsMessagesBannerHeight } from '../../settings/settings_messages/SettingsMessagesBanner'; +import EEMenu from '@components/common/entreprise_edition/EEMenu'; // Deprecated - https://mui.com/system/styles/basics/ // Do not use it for new code. @@ -29,6 +30,7 @@ export interface MenuEntry { path: string; label: string; icon?: ReactElement; + isEE?: boolean; } const NavToolbarMenu: FunctionComponent<{ entries: MenuEntry[] }> = ({ entries }) => { @@ -57,7 +59,7 @@ const NavToolbarMenu: FunctionComponent<{ entries: MenuEntry[] }> = ({ entries } {entry.icon} )} - + {t_i18n(entry.label)} : t_i18n(entry.label)} /> ); })} diff --git a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx index 6c61273c3397..dffdf2a18e37 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx @@ -55,8 +55,9 @@ const AccessesMenu: FunctionComponent = () => { const disseminationEntries: MenuEntry[] = [ { path: '/dashboard/settings/accesses/dissemination_list', - label: 'Dissemination lists', + label: 'Dissemination', icon: , + isEE: true, }, ]; const setAccess = useGranted([SETTINGS_SETACCESSES]); From f38d92c08c24d3cfd469dba8ed69745b1e315464 Mon Sep 17 00:00:00 2001 From: Laurent Bonnet Date: Tue, 28 Jan 2025 16:36:07 +0100 Subject: [PATCH 55/81] [frontend] code tweak after review --- .../opencti-front/src/components/TextField.jsx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/opencti-platform/opencti-front/src/components/TextField.jsx b/opencti-platform/opencti-front/src/components/TextField.jsx index 509995368d3d..bacf04888012 100644 --- a/opencti-platform/opencti-front/src/components/TextField.jsx +++ b/opencti-platform/opencti-front/src/components/TextField.jsx @@ -44,6 +44,7 @@ const TextField = (props) => { const internalOnPaste = React.useCallback( (event) => { // onBeforePaste can be used to alter the pasted content + // this works for textarea or input if (typeof onBeforePaste === 'function') { event.preventDefault(); // prevent default paste // alter the pasted content according to onBeforePaste result @@ -52,17 +53,17 @@ const TextField = (props) => { const sanitizedPastedText = pastedText.replace(/\r/g, ''); const newPastedText = onBeforePaste(sanitizedPastedText); // Insert the modified text at the current cursor position - const textArea = event.target; - const start = textArea.selectionStart; - const end = textArea.selectionEnd; - const before = textArea.value.slice(0, start); - const after = textArea.value.slice(end); - textArea.value = before + newPastedText + after; + const input = event.target; + const start = input.selectionStart; + const end = input.selectionEnd; + const before = input.value.slice(0, start); + const after = input.value.slice(end); + input.value = before + newPastedText + after; // Set the cursor position after the inserted text const cursorPosition = start + newPastedText.length; - textArea.setSelectionRange(cursorPosition, cursorPosition); + input.setSelectionRange(cursorPosition, cursorPosition); - setFieldValue(name, textArea.value); + setFieldValue(name, input.value); } }, [onBeforePaste, setFieldValue, name], From 356c657b95e5019826c4a9b40d1f9fc150c424de Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Wed, 29 Jan 2025 09:50:03 +0100 Subject: [PATCH 56/81] [frontend/backend] emails stored in array (#5551) --- .../common/menus/NavToolbarMenu.tsx | 2 +- .../DisseminationListUtils.ts | 8 ++- .../src/schema/relay.schema.graphql | 24 +------ .../opencti-graphql/src/generated/graphql.ts | 69 ++----------------- .../disseminationList-domain.ts | 6 +- .../disseminationList-types.ts | 6 +- .../disseminationList.graphql | 22 +----- .../disseminationList/disseminationList.ts | 4 +- 8 files changed, 25 insertions(+), 116 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/menus/NavToolbarMenu.tsx b/opencti-platform/opencti-front/src/private/components/common/menus/NavToolbarMenu.tsx index 4448169a4b25..5d8aa9fbe64c 100644 --- a/opencti-platform/opencti-front/src/private/components/common/menus/NavToolbarMenu.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/menus/NavToolbarMenu.tsx @@ -6,11 +6,11 @@ import MenuItem from '@mui/material/MenuItem'; import ListItemText from '@mui/material/ListItemText'; import makeStyles from '@mui/styles/makeStyles'; import ListItemIcon from '@mui/material/ListItemIcon'; +import EEMenu from '@components/common/entreprise_edition/EEMenu'; import { useFormatter } from '../../../../components/i18n'; import type { Theme } from '../../../../components/Theme'; import useAuth from '../../../../utils/hooks/useAuth'; import { useSettingsMessagesBannerHeight } from '../../settings/settings_messages/SettingsMessagesBanner'; -import EEMenu from '@components/common/entreprise_edition/EEMenu'; // Deprecated - https://mui.com/system/styles/basics/ // Do not use it for new code. diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts index d838583ffe64..b69787e198fd 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -25,10 +25,12 @@ export const disseminationListValidator = (t: (value: string) => string) => { }); }; +// remove white space and split on linebreaks to build an array export const formatEmailsForApi = (value: string) => { - return value.replaceAll('\n', ',').replaceAll(/\s/g, ''); + return value.split('\n').map((elem) => elem.trim()); }; -export const formatEmailsForFront = (value: string) => { - return value.replaceAll(',', '\n'); +// build a string with linebreaks from an array +export const formatEmailsForFront = (value: string[]) => { + return value.join('\n'); }; diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index ee0dbb24d558..0ec7f9266008 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -12596,21 +12596,11 @@ type DisseminationList implements InternalObject & BasicObject { created_at: DateTime! updated_at: DateTime! name: String! - emails: String! + emails: [String!]! description: String dissemination_list_values_count: Int! } -type DisseminationListName implements InternalObject & BasicObject { - id: ID! - standard_id: String! - entity_type: String! - parent_types: [String]! - created_at: DateTime! - updated_at: DateTime! - name: String! -} - enum DisseminationListOrdering { name dissemination_list_values_count @@ -12627,19 +12617,9 @@ type DisseminationListEdge { node: DisseminationList! } -type DisseminationListNamesConnection { - pageInfo: PageInfo! - edges: [DisseminationListNamesEdge!]! -} - -type DisseminationListNamesEdge { - cursor: String! - node: DisseminationListName! -} - input DisseminationListAddInput { name: String! - emails: String! + emails: [String!]! description: String } diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index 5ac1b650d722..2e0501ee22c4 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -6297,7 +6297,7 @@ export type DisseminationList = BasicObject & InternalObject & { created_at: Scalars['DateTime']['output']; description?: Maybe; dissemination_list_values_count: Scalars['Int']['output']; - emails: Scalars['String']['output']; + emails: Array; entity_type: Scalars['String']['output']; id: Scalars['ID']['output']; name: Scalars['String']['output']; @@ -6308,7 +6308,7 @@ export type DisseminationList = BasicObject & InternalObject & { export type DisseminationListAddInput = { description?: InputMaybe; - emails: Scalars['String']['input']; + emails: Array; name: Scalars['String']['input']; }; @@ -6324,29 +6324,6 @@ export type DisseminationListEdge = { node: DisseminationList; }; -export type DisseminationListName = BasicObject & InternalObject & { - __typename?: 'DisseminationListName'; - created_at: Scalars['DateTime']['output']; - entity_type: Scalars['String']['output']; - id: Scalars['ID']['output']; - name: Scalars['String']['output']; - parent_types: Array>; - standard_id: Scalars['String']['output']; - updated_at: Scalars['DateTime']['output']; -}; - -export type DisseminationListNamesConnection = { - __typename?: 'DisseminationListNamesConnection'; - edges: Array; - pageInfo: PageInfo; -}; - -export type DisseminationListNamesEdge = { - __typename?: 'DisseminationListNamesEdge'; - cursor: Scalars['String']['output']; - node: DisseminationListName; -}; - export enum DisseminationListOrdering { Score = '_score', DisseminationListValuesCount = 'dissemination_list_values_count', @@ -31166,13 +31143,13 @@ export type ResolversUnionTypes<_RefType extends Record> = Reso /** Mapping of interface types */ export type ResolversInterfaceTypes<_RefType extends Record> = ResolversObject<{ BackgroundTask: ( Omit & { authorized_members?: Maybe> } ) | ( Omit & { authorized_members?: Maybe> } ) | ( RuleTask ); - BasicObject: ( BasicStoreEntityAdministrativeArea ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, coursesOfAction?: Maybe<_RefType['CourseOfActionConnection']>, createdBy?: Maybe<_RefType['Identity']>, dataComponents?: Maybe<_RefType['DataComponentConnection']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Capability ) | ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityCaseTemplate ) | ( BasicStoreEntityChannel ) | ( Omit & { administrativeArea?: Maybe<_RefType['AdministrativeArea']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, country?: Maybe<_RefType['Country']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { configurations?: Maybe>, connector_user?: Maybe<_RefType['User']>, works?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, region?: Maybe<_RefType['Region']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { attackPatterns?: Maybe<_RefType['AttackPatternConnection']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityCsvMapper ) | ( BasicStoreEntityDataComponent ) | ( BasicStoreEntityDataSource ) | ( BasicStoreEntityDecayRule ) | ( BasicStoreEntityDeleteOperation ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( DisseminationList ) | ( DisseminationListName ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityDraftWorkspace ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityEntitySetting ) | ( BasicStoreEntityEvent ) | ( BasicStoreEntityExclusionList ) | ( Omit & { connectors?: Maybe>>, exportFiles?: Maybe<_RefType['FileConnection']>, importFiles: _RefType['FileConnection'], jobs?: Maybe>>, pendingFiles: _RefType['FileConnection'], references?: Maybe<_RefType['StixObjectOrStixRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityFeedback ) | ( BasicStoreEntityFintelTemplate ) | ( Omit & { allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_marking?: Maybe>, max_shareable_marking: Array<_RefType['MarkingDefinition']>, members?: Maybe<_RefType['UserConnection']> } ) | ( BasicStoreEntityGrouping ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIndicator ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIngestionCsv ) | ( BasicStoreEntityIngestionRss ) | ( BasicStoreEntityIngestionTaxii ) | ( BasicStoreEntityIngestionTaxiiCollection ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityLanguage ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, samples?: Maybe>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityMalwareAnalysis ) | ( BasicStoreEntityManagerConfiguration ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_dashboards: Array<_RefType['Workspace']>, default_marking?: Maybe>, draftContext?: Maybe<_RefType['DraftWorkspace']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, max_shareable_marking?: Maybe>, personal_notifiers?: Maybe> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNarrative ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNotification ) | ( BasicStoreEntityNotifier ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityOrganization ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityPlaybook ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, city?: Maybe<_RefType['City']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, serviceDlls?: Maybe<_RefType['StixFileConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityPublicDashboard ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentRegions?: Maybe<_RefType['RegionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subRegions?: Maybe<_RefType['RegionConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Role ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentSectors?: Maybe<_RefType['SectorConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subSectors?: Maybe<_RefType['SectorConnection']>, targetedOrganizations?: Maybe<_RefType['StixCoreRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { activity_listeners?: Maybe>, messages_administration?: Maybe>, platform_critical_alerts: Array<_RefType['PlatformCriticalAlert']>, platform_messages?: Maybe>, platform_organization?: Maybe<_RefType['Organization']> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, vulnerabilities?: Maybe<_RefType['VulnerabilityConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntitySupportPackage ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTask ) | ( TaskTemplate ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityThreatActorIndividual ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTrigger ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, objectAssignedOrganization?: Maybe<_RefType['OrganizationConnection']>, objectOrganization?: Maybe<_RefType['OrganizationConnection']>, personal_notifiers?: Maybe> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityVocabulary ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, softwares?: Maybe<_RefType['StixCyberObservableConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityWorkspace ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); + BasicObject: ( BasicStoreEntityAdministrativeArea ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, coursesOfAction?: Maybe<_RefType['CourseOfActionConnection']>, createdBy?: Maybe<_RefType['Identity']>, dataComponents?: Maybe<_RefType['DataComponentConnection']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Capability ) | ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityCaseTemplate ) | ( BasicStoreEntityChannel ) | ( Omit & { administrativeArea?: Maybe<_RefType['AdministrativeArea']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, country?: Maybe<_RefType['Country']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { configurations?: Maybe>, connector_user?: Maybe<_RefType['User']>, works?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, region?: Maybe<_RefType['Region']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { attackPatterns?: Maybe<_RefType['AttackPatternConnection']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityCsvMapper ) | ( BasicStoreEntityDataComponent ) | ( BasicStoreEntityDataSource ) | ( BasicStoreEntityDecayRule ) | ( BasicStoreEntityDeleteOperation ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( DisseminationList ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityDraftWorkspace ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityEntitySetting ) | ( BasicStoreEntityEvent ) | ( BasicStoreEntityExclusionList ) | ( Omit & { connectors?: Maybe>>, exportFiles?: Maybe<_RefType['FileConnection']>, importFiles: _RefType['FileConnection'], jobs?: Maybe>>, pendingFiles: _RefType['FileConnection'], references?: Maybe<_RefType['StixObjectOrStixRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityFeedback ) | ( BasicStoreEntityFintelTemplate ) | ( Omit & { allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_marking?: Maybe>, max_shareable_marking: Array<_RefType['MarkingDefinition']>, members?: Maybe<_RefType['UserConnection']> } ) | ( BasicStoreEntityGrouping ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIndicator ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIngestionCsv ) | ( BasicStoreEntityIngestionRss ) | ( BasicStoreEntityIngestionTaxii ) | ( BasicStoreEntityIngestionTaxiiCollection ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityLanguage ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, samples?: Maybe>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityMalwareAnalysis ) | ( BasicStoreEntityManagerConfiguration ) | ( Omit & { x_opencti_inferences?: Maybe>> } ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_dashboards: Array<_RefType['Workspace']>, default_marking?: Maybe>, draftContext?: Maybe<_RefType['DraftWorkspace']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, max_shareable_marking?: Maybe>, personal_notifiers?: Maybe> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNarrative ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNotification ) | ( BasicStoreEntityNotifier ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityOrganization ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityPlaybook ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, city?: Maybe<_RefType['City']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, serviceDlls?: Maybe<_RefType['StixFileConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityPublicDashboard ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentRegions?: Maybe<_RefType['RegionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subRegions?: Maybe<_RefType['RegionConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Role ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentSectors?: Maybe<_RefType['SectorConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subSectors?: Maybe<_RefType['SectorConnection']>, targetedOrganizations?: Maybe<_RefType['StixCoreRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { activity_listeners?: Maybe>, messages_administration?: Maybe>, platform_critical_alerts: Array<_RefType['PlatformCriticalAlert']>, platform_messages?: Maybe>, platform_organization?: Maybe<_RefType['Organization']> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, vulnerabilities?: Maybe<_RefType['VulnerabilityConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntitySupportPackage ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTask ) | ( TaskTemplate ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityThreatActorIndividual ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTrigger ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, objectAssignedOrganization?: Maybe<_RefType['OrganizationConnection']>, objectOrganization?: Maybe<_RefType['OrganizationConnection']>, personal_notifiers?: Maybe> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityVocabulary ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, softwares?: Maybe<_RefType['StixCyberObservableConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityWorkspace ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); BasicRelationship: ( Omit & { from?: Maybe<_RefType['InternalObject']>, to?: Maybe<_RefType['InternalObject']> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, from?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, groupings?: Maybe<_RefType['GroupingConnection']>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, opinions?: Maybe<_RefType['OpinionConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, to?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, from?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, groupings?: Maybe<_RefType['GroupingConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectMarking?: Maybe>, opinions?: Maybe<_RefType['OpinionConnection']>, reports?: Maybe<_RefType['ReportConnection']>, to?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, from?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, groupings?: Maybe<_RefType['GroupingConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, opinions?: Maybe<_RefType['OpinionConnection']>, reports?: Maybe<_RefType['ReportConnection']>, to?: Maybe<_RefType['StixObjectOrStixRelationshipOrCreator']>, x_opencti_inferences?: Maybe>> } ); Case: ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityFeedback ); Container: ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityFeedback ) | ( BasicStoreEntityGrouping ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTask ); HashedObservable: ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); Identity: ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityOrganization ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentSectors?: Maybe<_RefType['SectorConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subSectors?: Maybe<_RefType['SectorConnection']>, targetedOrganizations?: Maybe<_RefType['StixCoreRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); - InternalObject: ( Capability ) | ( BasicStoreEntityCaseTemplate ) | ( Omit & { configurations?: Maybe>, connector_user?: Maybe<_RefType['User']>, works?: Maybe>> } ) | ( BasicStoreEntityCsvMapper ) | ( BasicStoreEntityDecayRule ) | ( BasicStoreEntityDeleteOperation ) | ( DisseminationList ) | ( DisseminationListName ) | ( BasicStoreEntityDraftWorkspace ) | ( BasicStoreEntityEntitySetting ) | ( BasicStoreEntityExclusionList ) | ( BasicStoreEntityFintelTemplate ) | ( Omit & { allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_marking?: Maybe>, max_shareable_marking: Array<_RefType['MarkingDefinition']>, members?: Maybe<_RefType['UserConnection']> } ) | ( BasicStoreEntityIngestionCsv ) | ( BasicStoreEntityIngestionRss ) | ( BasicStoreEntityIngestionTaxii ) | ( BasicStoreEntityIngestionTaxiiCollection ) | ( BasicStoreEntityManagerConfiguration ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_dashboards: Array<_RefType['Workspace']>, default_marking?: Maybe>, draftContext?: Maybe<_RefType['DraftWorkspace']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, max_shareable_marking?: Maybe>, personal_notifiers?: Maybe> } ) | ( BasicStoreEntityNotification ) | ( BasicStoreEntityNotifier ) | ( BasicStoreEntityPlaybook ) | ( BasicStoreEntityPublicDashboard ) | ( Role ) | ( Omit & { activity_listeners?: Maybe>, messages_administration?: Maybe>, platform_critical_alerts: Array<_RefType['PlatformCriticalAlert']>, platform_messages?: Maybe>, platform_organization?: Maybe<_RefType['Organization']> } ) | ( BasicStoreEntitySupportPackage ) | ( TaskTemplate ) | ( BasicStoreEntityTrigger ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, objectAssignedOrganization?: Maybe<_RefType['OrganizationConnection']>, objectOrganization?: Maybe<_RefType['OrganizationConnection']>, personal_notifiers?: Maybe> } ) | ( BasicStoreEntityWorkspace ); + InternalObject: ( Capability ) | ( BasicStoreEntityCaseTemplate ) | ( Omit & { configurations?: Maybe>, connector_user?: Maybe<_RefType['User']>, works?: Maybe>> } ) | ( BasicStoreEntityCsvMapper ) | ( BasicStoreEntityDecayRule ) | ( BasicStoreEntityDeleteOperation ) | ( DisseminationList ) | ( BasicStoreEntityDraftWorkspace ) | ( BasicStoreEntityEntitySetting ) | ( BasicStoreEntityExclusionList ) | ( BasicStoreEntityFintelTemplate ) | ( Omit & { allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_marking?: Maybe>, max_shareable_marking: Array<_RefType['MarkingDefinition']>, members?: Maybe<_RefType['UserConnection']> } ) | ( BasicStoreEntityIngestionCsv ) | ( BasicStoreEntityIngestionRss ) | ( BasicStoreEntityIngestionTaxii ) | ( BasicStoreEntityIngestionTaxiiCollection ) | ( BasicStoreEntityManagerConfiguration ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, allowed_marking?: Maybe>, default_dashboard?: Maybe<_RefType['Workspace']>, default_dashboards: Array<_RefType['Workspace']>, default_marking?: Maybe>, draftContext?: Maybe<_RefType['DraftWorkspace']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, max_shareable_marking?: Maybe>, personal_notifiers?: Maybe> } ) | ( BasicStoreEntityNotification ) | ( BasicStoreEntityNotifier ) | ( BasicStoreEntityPlaybook ) | ( BasicStoreEntityPublicDashboard ) | ( Role ) | ( Omit & { activity_listeners?: Maybe>, messages_administration?: Maybe>, platform_critical_alerts: Array<_RefType['PlatformCriticalAlert']>, platform_messages?: Maybe>, platform_organization?: Maybe<_RefType['Organization']> } ) | ( BasicStoreEntitySupportPackage ) | ( TaskTemplate ) | ( BasicStoreEntityTrigger ) | ( Omit & { administrated_organizations: Array<_RefType['Organization']>, effective_confidence_level?: Maybe<_RefType['EffectiveConfidenceLevel']>, groups?: Maybe<_RefType['GroupConnection']>, objectAssignedOrganization?: Maybe<_RefType['OrganizationConnection']>, objectOrganization?: Maybe<_RefType['OrganizationConnection']>, personal_notifiers?: Maybe> } ) | ( BasicStoreEntityWorkspace ); Location: ( BasicStoreEntityAdministrativeArea ) | ( Omit & { administrativeArea?: Maybe<_RefType['AdministrativeArea']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, country?: Maybe<_RefType['Country']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, region?: Maybe<_RefType['Region']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, city?: Maybe<_RefType['City']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentRegions?: Maybe<_RefType['RegionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subRegions?: Maybe<_RefType['RegionConnection']>, x_opencti_inferences?: Maybe>> } ); StixCoreObject: ( BasicStoreEntityAdministrativeArea ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, coursesOfAction?: Maybe<_RefType['CourseOfActionConnection']>, createdBy?: Maybe<_RefType['Identity']>, dataComponents?: Maybe<_RefType['DataComponentConnection']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subAttackPatterns?: Maybe<_RefType['AttackPatternConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityCaseIncident ) | ( BasicStoreEntityCaseRfi ) | ( BasicStoreEntityCaseRft ) | ( BasicStoreEntityChannel ) | ( Omit & { administrativeArea?: Maybe<_RefType['AdministrativeArea']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, country?: Maybe<_RefType['Country']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, region?: Maybe<_RefType['Region']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { attackPatterns?: Maybe<_RefType['AttackPatternConnection']>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityDataComponent ) | ( BasicStoreEntityDataSource ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityEvent ) | ( BasicStoreEntityFeedback ) | ( BasicStoreEntityGrouping ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityIndicator ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityLanguage ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, samples?: Maybe>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityMalwareAnalysis ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityNarrative ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityOrganization ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, city?: Maybe<_RefType['City']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, serviceDlls?: Maybe<_RefType['StixFileConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentRegions?: Maybe<_RefType['RegionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subRegions?: Maybe<_RefType['RegionConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { authorized_members?: Maybe>, avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, filesFromTemplate?: Maybe<_RefType['FileConnection']>, fintelTemplates?: Maybe>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, objects?: Maybe<_RefType['StixObjectOrStixRelationshipRefConnection']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, relatedContainers?: Maybe<_RefType['ContainerConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, parentSectors?: Maybe<_RefType['SectorConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, subSectors?: Maybe<_RefType['SectorConnection']>, targetedOrganizations?: Maybe<_RefType['StixCoreRelationshipConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, vulnerabilities?: Maybe<_RefType['VulnerabilityConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, organizations?: Maybe<_RefType['OrganizationConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityTask ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, locations?: Maybe<_RefType['LocationConnection']>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( BasicStoreEntityThreatActorIndividual ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, killChainPhases?: Maybe>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { avatar?: Maybe<_RefType['OpenCtiFile']>, cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, softwares?: Maybe<_RefType['StixCyberObservableConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); StixCyberObservable: ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, countries?: Maybe<_RefType['CountryConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, serviceDlls?: Maybe<_RefType['StixFileConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, vulnerabilities?: Maybe<_RefType['VulnerabilityConnection']>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, obsContent?: Maybe<_RefType['Artifact']>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ) | ( Omit & { cases?: Maybe<_RefType['CaseConnection']>, connectors?: Maybe>>, containers?: Maybe<_RefType['ContainerConnection']>, createdBy?: Maybe<_RefType['Identity']>, exportFiles?: Maybe<_RefType['FileConnection']>, externalReferences?: Maybe<_RefType['ExternalReferenceConnection']>, groupings?: Maybe<_RefType['GroupingConnection']>, importFiles?: Maybe<_RefType['FileConnection']>, indicators?: Maybe<_RefType['IndicatorConnection']>, jobs?: Maybe>>, notes?: Maybe<_RefType['NoteConnection']>, objectLabel?: Maybe>, objectMarking?: Maybe>, objectOrganization?: Maybe>, observedData?: Maybe<_RefType['ObservedDataConnection']>, opinions?: Maybe<_RefType['OpinionConnection']>, pendingFiles?: Maybe<_RefType['FileConnection']>, reports?: Maybe<_RefType['ReportConnection']>, stixCoreObjectsDistribution?: Maybe>>, stixCoreRelationships?: Maybe<_RefType['StixCoreRelationshipConnection']>, stixCoreRelationshipsDistribution?: Maybe>>, x_opencti_inferences?: Maybe>> } ); @@ -31400,9 +31377,6 @@ export type ResolversTypes = ResolversObject<{ DisseminationListAddInput: DisseminationListAddInput; DisseminationListConnection: ResolverTypeWrapper; DisseminationListEdge: ResolverTypeWrapper; - DisseminationListName: ResolverTypeWrapper; - DisseminationListNamesConnection: ResolverTypeWrapper; - DisseminationListNamesEdge: ResolverTypeWrapper; DisseminationListOrdering: DisseminationListOrdering; DisseminationListSendInput: DisseminationListSendInput; Distribution: ResolverTypeWrapper & { entity?: Maybe }>; @@ -32253,9 +32227,6 @@ export type ResolversParentTypes = ResolversObject<{ DisseminationListAddInput: DisseminationListAddInput; DisseminationListConnection: DisseminationListConnection; DisseminationListEdge: DisseminationListEdge; - DisseminationListName: DisseminationListName; - DisseminationListNamesConnection: DisseminationListNamesConnection; - DisseminationListNamesEdge: DisseminationListNamesEdge; DisseminationListSendInput: DisseminationListSendInput; Distribution: Omit & { entity?: Maybe }; DocsMetrics: DocsMetrics; @@ -33381,7 +33352,7 @@ export type BankAccountResolvers; export type BasicObjectResolvers = ResolversObject<{ - __resolveType: TypeResolveFn<'AdministrativeArea' | 'Artifact' | 'AttackPattern' | 'AutonomousSystem' | 'BankAccount' | 'Campaign' | 'Capability' | 'CaseIncident' | 'CaseRfi' | 'CaseRft' | 'CaseTemplate' | 'Channel' | 'City' | 'Connector' | 'Country' | 'CourseOfAction' | 'Credential' | 'CryptocurrencyWallet' | 'CryptographicKey' | 'CsvMapper' | 'DataComponent' | 'DataSource' | 'DecayRule' | 'DeleteOperation' | 'Directory' | 'DisseminationList' | 'DisseminationListName' | 'DomainName' | 'DraftWorkspace' | 'EmailAddr' | 'EmailMessage' | 'EmailMimePartType' | 'EntitySetting' | 'Event' | 'ExclusionList' | 'ExternalReference' | 'Feedback' | 'FintelTemplate' | 'Group' | 'Grouping' | 'Hostname' | 'IPv4Addr' | 'IPv6Addr' | 'Incident' | 'Indicator' | 'Individual' | 'Infrastructure' | 'IngestionCsv' | 'IngestionRss' | 'IngestionTaxii' | 'IngestionTaxiiCollection' | 'IntrusionSet' | 'KillChainPhase' | 'Label' | 'Language' | 'MacAddr' | 'Malware' | 'MalwareAnalysis' | 'ManagerConfiguration' | 'MarkingDefinition' | 'MeUser' | 'MediaContent' | 'Mutex' | 'Narrative' | 'NetworkTraffic' | 'Note' | 'Notification' | 'Notifier' | 'ObservedData' | 'Opinion' | 'Organization' | 'PaymentCard' | 'Persona' | 'PhoneNumber' | 'Playbook' | 'Position' | 'Process' | 'PublicDashboard' | 'Region' | 'Report' | 'Role' | 'Sector' | 'Settings' | 'Software' | 'StixFile' | 'SupportPackage' | 'System' | 'Task' | 'TaskTemplate' | 'Text' | 'ThreatActorGroup' | 'ThreatActorIndividual' | 'Tool' | 'TrackingNumber' | 'Trigger' | 'Url' | 'User' | 'UserAccount' | 'UserAgent' | 'Vocabulary' | 'Vulnerability' | 'WindowsRegistryKey' | 'WindowsRegistryValueType' | 'Workspace' | 'X509Certificate', ParentType, ContextType>; + __resolveType: TypeResolveFn<'AdministrativeArea' | 'Artifact' | 'AttackPattern' | 'AutonomousSystem' | 'BankAccount' | 'Campaign' | 'Capability' | 'CaseIncident' | 'CaseRfi' | 'CaseRft' | 'CaseTemplate' | 'Channel' | 'City' | 'Connector' | 'Country' | 'CourseOfAction' | 'Credential' | 'CryptocurrencyWallet' | 'CryptographicKey' | 'CsvMapper' | 'DataComponent' | 'DataSource' | 'DecayRule' | 'DeleteOperation' | 'Directory' | 'DisseminationList' | 'DomainName' | 'DraftWorkspace' | 'EmailAddr' | 'EmailMessage' | 'EmailMimePartType' | 'EntitySetting' | 'Event' | 'ExclusionList' | 'ExternalReference' | 'Feedback' | 'FintelTemplate' | 'Group' | 'Grouping' | 'Hostname' | 'IPv4Addr' | 'IPv6Addr' | 'Incident' | 'Indicator' | 'Individual' | 'Infrastructure' | 'IngestionCsv' | 'IngestionRss' | 'IngestionTaxii' | 'IngestionTaxiiCollection' | 'IntrusionSet' | 'KillChainPhase' | 'Label' | 'Language' | 'MacAddr' | 'Malware' | 'MalwareAnalysis' | 'ManagerConfiguration' | 'MarkingDefinition' | 'MeUser' | 'MediaContent' | 'Mutex' | 'Narrative' | 'NetworkTraffic' | 'Note' | 'Notification' | 'Notifier' | 'ObservedData' | 'Opinion' | 'Organization' | 'PaymentCard' | 'Persona' | 'PhoneNumber' | 'Playbook' | 'Position' | 'Process' | 'PublicDashboard' | 'Region' | 'Report' | 'Role' | 'Sector' | 'Settings' | 'Software' | 'StixFile' | 'SupportPackage' | 'System' | 'Task' | 'TaskTemplate' | 'Text' | 'ThreatActorGroup' | 'ThreatActorIndividual' | 'Tool' | 'TrackingNumber' | 'Trigger' | 'Url' | 'User' | 'UserAccount' | 'UserAgent' | 'Vocabulary' | 'Vulnerability' | 'WindowsRegistryKey' | 'WindowsRegistryValueType' | 'Workspace' | 'X509Certificate', ParentType, ContextType>; entity_type?: Resolver; id?: Resolver; parent_types?: Resolver>, ParentType, ContextType>; @@ -34940,7 +34911,7 @@ export type DisseminationListResolvers; description?: Resolver, ParentType, ContextType>; dissemination_list_values_count?: Resolver; - emails?: Resolver; + emails?: Resolver, ParentType, ContextType>; entity_type?: Resolver; id?: Resolver; name?: Resolver; @@ -34962,29 +34933,6 @@ export type DisseminationListEdgeResolvers; }>; -export type DisseminationListNameResolvers = ResolversObject<{ - created_at?: Resolver; - entity_type?: Resolver; - id?: Resolver; - name?: Resolver; - parent_types?: Resolver>, ParentType, ContextType>; - standard_id?: Resolver; - updated_at?: Resolver; - __isTypeOf?: IsTypeOfResolverFn; -}>; - -export type DisseminationListNamesConnectionResolvers = ResolversObject<{ - edges?: Resolver, ParentType, ContextType>; - pageInfo?: Resolver; - __isTypeOf?: IsTypeOfResolverFn; -}>; - -export type DisseminationListNamesEdgeResolvers = ResolversObject<{ - cursor?: Resolver; - node?: Resolver; - __isTypeOf?: IsTypeOfResolverFn; -}>; - export type DistributionResolvers = ResolversObject<{ entity?: Resolver, ParentType, ContextType>; label?: Resolver; @@ -36637,7 +36585,7 @@ export type IngestionTaxiiEdgeResolvers; export type InternalObjectResolvers = ResolversObject<{ - __resolveType: TypeResolveFn<'Capability' | 'CaseTemplate' | 'Connector' | 'CsvMapper' | 'DecayRule' | 'DeleteOperation' | 'DisseminationList' | 'DisseminationListName' | 'DraftWorkspace' | 'EntitySetting' | 'ExclusionList' | 'FintelTemplate' | 'Group' | 'IngestionCsv' | 'IngestionRss' | 'IngestionTaxii' | 'IngestionTaxiiCollection' | 'ManagerConfiguration' | 'MeUser' | 'Notification' | 'Notifier' | 'Playbook' | 'PublicDashboard' | 'Role' | 'Settings' | 'SupportPackage' | 'TaskTemplate' | 'Trigger' | 'User' | 'Workspace', ParentType, ContextType>; + __resolveType: TypeResolveFn<'Capability' | 'CaseTemplate' | 'Connector' | 'CsvMapper' | 'DecayRule' | 'DeleteOperation' | 'DisseminationList' | 'DraftWorkspace' | 'EntitySetting' | 'ExclusionList' | 'FintelTemplate' | 'Group' | 'IngestionCsv' | 'IngestionRss' | 'IngestionTaxii' | 'IngestionTaxiiCollection' | 'ManagerConfiguration' | 'MeUser' | 'Notification' | 'Notifier' | 'Playbook' | 'PublicDashboard' | 'Role' | 'Settings' | 'SupportPackage' | 'TaskTemplate' | 'Trigger' | 'User' | 'Workspace', ParentType, ContextType>; entity_type?: Resolver; id?: Resolver; }>; @@ -42447,9 +42395,6 @@ export type Resolvers = ResolversObject<{ DisseminationList?: DisseminationListResolvers; DisseminationListConnection?: DisseminationListConnectionResolvers; DisseminationListEdge?: DisseminationListEdgeResolvers; - DisseminationListName?: DisseminationListNameResolvers; - DisseminationListNamesConnection?: DisseminationListNamesConnectionResolvers; - DisseminationListNamesEdge?: DisseminationListNamesEdgeResolvers; Distribution?: DistributionResolvers; DocsMetrics?: DocsMetricsResolvers; DomainName?: DomainNameResolvers; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 2b4a6a820b78..ab5980630c5e 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -65,7 +65,7 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs const sendMailArgs: SendMailArgs = { from: settings.platform_email, to: toEmail, - bcc: [disseminationList.emails, user.user_email], + bcc: [...disseminationList.emails, user.user_email], subject: input.email_object, html: generatedEmail, attachments: [ @@ -92,7 +92,7 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { const disseminationListInternalId = generateInternalId(); - const count = input.emails.split(',').length; + const count = input.emails.length; if (count > 500) { throw UnsupportedError('You cannot add more than 500 e-mail addresses'); } @@ -114,7 +114,7 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au const finalInput = [...input]; const emailsInput = finalInput.find((editInput) => editInput.key === 'emails'); if (emailsInput) { - const count = emailsInput.value[0].split(',').length; + const count = emailsInput.value.length; if (count > 500) { throw UnsupportedError('You cannot add more than 500 e-mail addresses'); } diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts index 41c3caa60dc3..8ace3b4902c8 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts @@ -21,21 +21,21 @@ export const ENTITY_TYPE_DISSEMINATION_LIST = 'DisseminationList'; export interface BasicStoreEntityDisseminationList extends BasicStoreEntity { name: string; - emails: string; + emails: string[]; description: string; dissemination_list_values_count: number; } export interface StoreEntityDisseminationList extends StoreEntity { name: string; - emails: string; + emails: string[]; description: string; dissemination_list_values_count: number; } export interface StixDisseminationList extends StixObject { name: string; - emails: string; + emails: string[]; description: string; dissemination_list_values_count: number; extensions: { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 6ae6c29a3c4f..20ad2c7edebe 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -7,20 +7,10 @@ type DisseminationList implements InternalObject & BasicObject { updated_at: DateTime! # DisseminationList name: String! - emails: String! @auth(for: [SETTINGS_SETDISSEMINATION]) + emails: [String!]! @auth(for: [SETTINGS_SETDISSEMINATION]) description: String dissemination_list_values_count: Int! } -type DisseminationListName implements InternalObject & BasicObject { - id: ID! - standard_id: String! - entity_type: String! - parent_types: [String]! - created_at: DateTime! - updated_at: DateTime! - # DisseminationList - name: String! -} # Ordering enum DisseminationListOrdering { @@ -38,14 +28,6 @@ type DisseminationListEdge { cursor: String! node: DisseminationList! } -type DisseminationListNamesConnection { - pageInfo: PageInfo! - edges: [DisseminationListNamesEdge!]! -} -type DisseminationListNamesEdge { - cursor: String! - node: DisseminationListName! -} # Queries type Query { @@ -62,7 +44,7 @@ type Query { input DisseminationListAddInput { name: String! @constraint(minLength: 2, format: "not-blank") - emails: String! + emails: [String!]! description: String } diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts index 9d0d76481393..e486057b1de3 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts @@ -32,8 +32,8 @@ const DISSEMINATION_LIST_DEFINITION: ModuleDefinition Date: Wed, 29 Jan 2025 10:32:42 +0100 Subject: [PATCH 57/81] [frontend] Use theme.spacing (#5551) --- .../StixCoreObjectContentFilesDissemination.tsx | 7 +++++-- .../DisseminationListCreation.tsx | 13 ++++++++----- .../DisseminationListEdition.tsx | 7 +++++-- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index 18f949219489..eaa1457e8c52 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -8,6 +8,7 @@ import { marked } from 'marked'; import DOMPurify from 'dompurify'; import MenuItem from '@mui/material/MenuItem'; import { StixCoreObjectContentFilesDisseminationQuery$data } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; +import { useTheme } from '@mui/styles'; import { fieldSpacingContainerStyle } from '../../../../utils/field'; import TextField from '../../../../components/TextField'; import MarkdownField from '../../../../components/fields/MarkdownField'; @@ -15,6 +16,7 @@ import { useFormatter } from '../../../../components/i18n'; import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import SelectField from '../../../../components/fields/SelectField'; +import type { Theme } from '../../../../components/Theme'; interface StixCoreObjectContentFilesDisseminationProps { fileId: string; @@ -71,6 +73,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent { const { t_i18n } = useFormatter(); + const theme = useTheme(); const basicShape = { disseminationListId: Yup.string().required(t_i18n('This field is required')), @@ -167,7 +170,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent
@@ -183,7 +186,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent {t_i18n('Send')} diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index f062a9a5755e..a947e08688b6 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -6,6 +6,7 @@ import Drawer, { DrawerVariant } from '@components/common/drawer/Drawer'; import { disseminationListValidator, formatEmailsForApi } from '@components/settings/dissemination_lists/DisseminationListUtils'; import { graphql } from 'react-relay'; import { DisseminationListsLinesPaginationQuery$variables } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLinesPaginationQuery.graphql'; +import { useTheme } from '@mui/styles'; import { useFormatter } from '../../../../components/i18n'; import TextField from '../../../../components/TextField'; import { insertNode } from '../../../../utils/store'; @@ -13,6 +14,7 @@ import { handleErrorInForm, MESSAGING$ } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import MarkdownField from '../../../../components/fields/MarkdownField'; import { parseEmailList } from '../../../../utils/email'; +import type { Theme } from '../../../../components/Theme'; const disseminationListCreationMutation = graphql` mutation DisseminationListCreationAddMutation($input: DisseminationListAddInput!) { @@ -41,6 +43,7 @@ const DisseminationListCreationForm: FunctionComponent { const { t_i18n } = useFormatter(); const [commit] = useApiMutation(disseminationListCreationMutation); + const theme = useTheme(); const onSubmit: FormikConfig['onSubmit'] = ( values, @@ -105,7 +108,7 @@ const DisseminationListCreationForm: FunctionComponent { // on pasting data, we try to extract emails @@ -126,12 +129,12 @@ const DisseminationListCreationForm: FunctionComponent -
+
@@ -140,7 +143,7 @@ const DisseminationListCreationForm: FunctionComponent {t_i18n('Create')} diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index c46396911103..89dc058607d6 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -4,12 +4,14 @@ import Drawer from '@components/common/drawer/Drawer'; import { Field, Formik, FormikConfig } from 'formik'; import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; import { disseminationListValidator, formatEmailsForApi, formatEmailsForFront } from '@components/settings/dissemination_lists/DisseminationListUtils'; +import { useTheme } from '@mui/styles'; import { handleErrorInForm, MESSAGING$ } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import TextField from '../../../../components/TextField'; import { useFormatter } from '../../../../components/i18n'; import MarkdownField from '../../../../components/fields/MarkdownField'; import { parseEmailList } from '../../../../utils/email'; +import type { Theme } from '../../../../components/Theme'; export const disseminationListMutationFieldPatch = graphql` mutation DisseminationListEditionFieldPatchMutation($id: ID!, $input: [EditInput!]!) { @@ -37,6 +39,7 @@ const DisseminationListEdition: FunctionComponent { const { t_i18n } = useFormatter(); + const theme = useTheme(); const [commitFieldPatch] = useApiMutation(disseminationListMutationFieldPatch); @@ -110,7 +113,7 @@ const DisseminationListEdition: FunctionComponent { // on pasting data, we try to extract emails From 0e4b15ec91c614f241513210ffbdaf8461bbcc2b Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Wed, 29 Jan 2025 10:37:06 +0100 Subject: [PATCH 58/81] [frontend/backend] remove counter and calculate in front from array length (#5551) --- .../DisseminationListUtils.ts | 2 +- .../DisseminationLists.tsx | 105 +++++++++--------- .../src/schema/relay.schema.graphql | 2 - .../opencti-graphql/src/generated/graphql.ts | 3 - .../disseminationList-converter.ts | 1 - .../disseminationList-domain.ts | 25 ++--- .../disseminationList-types.ts | 3 - .../disseminationList.graphql | 2 - .../disseminationList/disseminationList.ts | 1 - 9 files changed, 65 insertions(+), 79 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts index b69787e198fd..bbfc1f7fc8d7 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -31,6 +31,6 @@ export const formatEmailsForApi = (value: string) => { }; // build a string with linebreaks from an array -export const formatEmailsForFront = (value: string[]) => { +export const formatEmailsForFront = (value: readonly string[]) => { return value.join('\n'); }; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx index da91fc926751..b97c77b6cee4 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationLists.tsx @@ -24,66 +24,65 @@ import PageContainer from '../../../../components/PageContainer'; import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition'; export const disseminationListsQuery = graphql` - query DisseminationListsLinesPaginationQuery( - $search: String - $count: Int! - $cursor: ID - $orderBy: DisseminationListOrdering - $orderMode: OrderingMode - $filters: FilterGroup - ) { - ...DisseminationListsLines_data - @arguments( - search: $search - count: $count - cursor: $cursor - orderBy: $orderBy - orderMode: $orderMode - filters: $filters - ) - } + query DisseminationListsLinesPaginationQuery( + $search: String + $count: Int! + $cursor: ID + $orderBy: DisseminationListOrdering + $orderMode: OrderingMode + $filters: FilterGroup + ) { + ...DisseminationListsLines_data + @arguments( + search: $search + count: $count + cursor: $cursor + orderBy: $orderBy + orderMode: $orderMode + filters: $filters + ) + } `; export const disseminationListsFragment = graphql` - fragment DisseminationListsLines_data on Query - @argumentDefinitions( - search: { type: "String" } - count: { type: "Int", defaultValue: 25 } - cursor: { type: "ID" } - orderBy: { type: "DisseminationListOrdering", defaultValue: name } - orderMode: { type: "OrderingMode", defaultValue: desc } - filters: { type: "FilterGroup" } - ) @refetchable(queryName: "DisseminationListsLinesRefetchQuery") { - disseminationLists( - search: $search - first: $count - after: $cursor - orderBy: $orderBy - orderMode: $orderMode - filters: $filters - ) @connection(key: "Pagination_disseminationLists") { - edges { - node { - ...DisseminationListsLine_node - } - } - pageInfo { - endCursor - hasNextPage - globalCount - } + fragment DisseminationListsLines_data on Query + @argumentDefinitions( + search: { type: "String" } + count: { type: "Int", defaultValue: 25 } + cursor: { type: "ID" } + orderBy: { type: "DisseminationListOrdering", defaultValue: name } + orderMode: { type: "OrderingMode", defaultValue: desc } + filters: { type: "FilterGroup" } + ) @refetchable(queryName: "DisseminationListsLinesRefetchQuery") { + disseminationLists( + search: $search + first: $count + after: $cursor + orderBy: $orderBy + orderMode: $orderMode + filters: $filters + ) @connection(key: "Pagination_disseminationLists") { + edges { + node { + ...DisseminationListsLine_node } + } + pageInfo { + endCursor + hasNextPage + globalCount + } } + } `; const disseminationListsLineFragment = graphql` - fragment DisseminationListsLine_node on DisseminationList { - id - name - emails - description - dissemination_list_values_count - } + fragment DisseminationListsLine_node on DisseminationList { + id + name + emails + description + } `; const LOCAL_STORAGE_KEY = 'view-dissemination-lists'; @@ -149,7 +148,7 @@ const DisseminationLists = () => { label: 'Number of elements', percentWidth: 15, isSortable: true, - render: (node: DisseminationListsLine_node$data) => node.dissemination_list_values_count || '-', + render: (node: DisseminationListsLine_node$data) => node.emails.length || '-', }, }; diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 0ec7f9266008..54e782a0227d 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -12598,12 +12598,10 @@ type DisseminationList implements InternalObject & BasicObject { name: String! emails: [String!]! description: String - dissemination_list_values_count: Int! } enum DisseminationListOrdering { name - dissemination_list_values_count _score } diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index 2e0501ee22c4..bb068528a8ec 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -6296,7 +6296,6 @@ export type DisseminationList = BasicObject & InternalObject & { __typename?: 'DisseminationList'; created_at: Scalars['DateTime']['output']; description?: Maybe; - dissemination_list_values_count: Scalars['Int']['output']; emails: Array; entity_type: Scalars['String']['output']; id: Scalars['ID']['output']; @@ -6326,7 +6325,6 @@ export type DisseminationListEdge = { export enum DisseminationListOrdering { Score = '_score', - DisseminationListValuesCount = 'dissemination_list_values_count', Name = 'name' } @@ -34910,7 +34908,6 @@ export type DisplayStepResolvers = ResolversObject<{ created_at?: Resolver; description?: Resolver, ParentType, ContextType>; - dissemination_list_values_count?: Resolver; emails?: Resolver, ParentType, ContextType>; entity_type?: Resolver; id?: Resolver; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-converter.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-converter.ts index cf2c8c78ad48..103b8f0c9573 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-converter.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-converter.ts @@ -24,7 +24,6 @@ const convertDisseminationListToStix = (instance: StoreEntityDisseminationList): name: instance.name, emails: instance.emails, description: instance.description, - dissemination_list_values_count: instance.dissemination_list_values_count, extensions: { [STIX_EXT_OCTI]: cleanObject({ ...stixObject.extensions[STIX_EXT_OCTI], diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index ab5980630c5e..df4bed919778 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -34,6 +34,8 @@ import { createInternalObject, deleteInternalObject } from '../../domain/interna import { updateAttribute } from '../../database/middleware'; import { notify } from '../../database/redis'; +const EMAILS_LIMIT_BY_LIST = 500; + export const findById = (context: AuthContext, user: AuthUser, id: string) => { return storeLoadById(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); }; @@ -92,35 +94,32 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { const disseminationListInternalId = generateInternalId(); - const count = input.emails.length; - if (count > 500) { - throw UnsupportedError('You cannot add more than 500 e-mail addresses'); + if (input.emails.length > EMAILS_LIMIT_BY_LIST) { + throw UnsupportedError(`You cannot add more than ${EMAILS_LIMIT_BY_LIST} e-mail addresses`); } const disseminationListToCreate = { name: input.name, emails: input.emails, description: input.description, - dissemination_list_values_count: count, internal_id: disseminationListInternalId, }; return createInternalObject(context, user, disseminationListToCreate, ENTITY_TYPE_DISSEMINATION_LIST); }; export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => { + // Get the list const disseminationList = await findById(context, user, id); if (!disseminationList) { throw FunctionalError(`Dissemination list ${id} cannot be found`); } - const finalInput = [...input]; - const emailsInput = finalInput.find((editInput) => editInput.key === 'emails'); - if (emailsInput) { - const count = emailsInput.value.length; - if (count > 500) { - throw UnsupportedError('You cannot add more than 500 e-mail addresses'); - } - finalInput.push({ key: 'dissemination_list_values_count', value: [count] }); + // check the limit of emails + const emailsInput = input.find((editInput) => editInput.key === 'emails'); + if (emailsInput && emailsInput.value.length > EMAILS_LIMIT_BY_LIST) { + throw UnsupportedError(`You cannot add more than ${EMAILS_LIMIT_BY_LIST} e-mail addresses`); } - const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, finalInput); + // Update the list + const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, input); + // Publish Activity await publishUserAction({ user, event_type: 'mutation', diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts index 8ace3b4902c8..50aa3cdb7cb5 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-types.ts @@ -23,21 +23,18 @@ export interface BasicStoreEntityDisseminationList extends BasicStoreEntity { name: string; emails: string[]; description: string; - dissemination_list_values_count: number; } export interface StoreEntityDisseminationList extends StoreEntity { name: string; emails: string[]; description: string; - dissemination_list_values_count: number; } export interface StixDisseminationList extends StixObject { name: string; emails: string[]; description: string; - dissemination_list_values_count: number; extensions: { [STIX_EXT_OCTI]: StixOpenctiExtensionSDO }; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql index 20ad2c7edebe..a93f73de3f32 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.graphql @@ -9,13 +9,11 @@ type DisseminationList implements InternalObject & BasicObject { name: String! emails: [String!]! @auth(for: [SETTINGS_SETDISSEMINATION]) description: String - dissemination_list_values_count: Int! } # Ordering enum DisseminationListOrdering { name - dissemination_list_values_count _score } diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts index e486057b1de3..e779b7887a77 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts @@ -35,7 +35,6 @@ const DISSEMINATION_LIST_DEFINITION: ModuleDefinition { From a57471642f0dad802637c4585431161bf83dcd47 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Wed, 29 Jan 2025 11:57:52 +0100 Subject: [PATCH 59/81] [frontend] Use fetchQuery in StixCoreObjectContentFilesDissemination (#5551) --- ...tixCoreObjectContentFilesDissemination.tsx | 21 +++++++++++++++---- .../StixCoreObjectContentFilesList.tsx | 14 ++----------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index eaa1457e8c52..049366459c5e 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent } from 'react'; +import React, { FunctionComponent, useEffect, useState } from 'react'; import { Box, Button } from '@mui/material'; import { graphql } from 'react-relay'; import { Field, Formik } from 'formik'; @@ -13,7 +13,7 @@ import { fieldSpacingContainerStyle } from '../../../../utils/field'; import TextField from '../../../../components/TextField'; import MarkdownField from '../../../../components/fields/MarkdownField'; import { useFormatter } from '../../../../components/i18n'; -import { handleErrorInForm } from '../../../../relay/environment'; +import { fetchQuery, handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import SelectField from '../../../../components/fields/SelectField'; import type { Theme } from '../../../../components/Theme'; @@ -22,7 +22,6 @@ interface StixCoreObjectContentFilesDisseminationProps { fileId: string; fileName: string; onClose: () => void; - lists: StixCoreObjectContentFilesDisseminationQuery$data['disseminationLists']; } interface DisseminationInput { @@ -70,10 +69,24 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent { const { t_i18n } = useFormatter(); const theme = useTheme(); + const [lists, setLists] = useState(null); + + const fetchDisseminationLists = async () => { + return await fetchQuery(stixCoreObjectContentFilesDisseminationQuery, { + search: '', + count: 10, + }) + .toPromise() as Promise; + }; + + useEffect(() => { + fetchDisseminationLists().then((response) => { + setLists(response?.disseminationLists ?? { edges: [] }); + }); + }, []); const basicShape = { disseminationListId: Yup.string().required(t_i18n('This field is required')), diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx index c129c05cf129..4f9bd856592d 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx @@ -16,18 +16,14 @@ import ListItem from '@mui/material/ListItem'; import { useTheme } from '@mui/styles'; import EmailIcon from '@mui/icons-material/Email'; import Drawer from '@components/common/drawer/Drawer'; -import StixCoreObjectContentFilesDissemination, { - stixCoreObjectContentFilesDisseminationQuery, -} from '@components/common/stix_core_objects/StixCoreObjectContentFilesDissemination'; +import StixCoreObjectContentFilesDissemination from '@components/common/stix_core_objects/StixCoreObjectContentFilesDissemination'; import EEChip from '@components/common/entreprise_edition/EEChip'; -import { useLazyLoadQuery } from 'react-relay'; -import { StixCoreObjectContentFilesDisseminationQuery } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; import { useFormatter } from '../../../../components/i18n'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; import { APP_BASE_PATH } from '../../../../relay/environment'; import ItemMarkings from '../../../../components/ItemMarkings'; import type { Theme } from '../../../../components/Theme'; -import useGranted, { KNOWLEDGE_KNASKIMPORT, KNOWLEDGE_KNDISSEMINATION, KNOWLEDGE_KNGETEXPORT, KNOWLEDGE_KNUPLOAD } from '../../../../utils/hooks/useGranted'; +import { KNOWLEDGE_KNASKIMPORT, KNOWLEDGE_KNDISSEMINATION, KNOWLEDGE_KNGETEXPORT, KNOWLEDGE_KNUPLOAD } from '../../../../utils/hooks/useGranted'; import Security from '../../../../utils/Security'; import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition'; @@ -127,11 +123,6 @@ const StixCoreObjectContentFilesList = ({ const canDownloadAsPdf = menuFile?.metaData?.mimetype === 'text/html' || menuFile?.metaData?.mimetype === 'text/markdown'; - const result = useGranted([KNOWLEDGE_KNDISSEMINATION]) ? useLazyLoadQuery( - stixCoreObjectContentFilesDisseminationQuery, - { search: '', count: 10 }, - ) : null; - return ( {files.length === 0 && } @@ -208,7 +199,6 @@ const StixCoreObjectContentFilesList = ({ fileId={file.id} fileName={file.name} onClose={() => setDrawerOpen(false)} - lists={result ? result.disseminationLists : null} /> From b14848b77f130c25bb4dad55a2b0dd7a2289933c Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Wed, 29 Jan 2025 14:14:41 +0100 Subject: [PATCH 60/81] [frontend] Add DisseminationListField Component (#5551) --- ...tixCoreObjectContentFilesDissemination.tsx | 63 ++-------------- .../DisseminationListField.tsx | 71 +++++++++++++++++++ 2 files changed, 75 insertions(+), 59 deletions(-) create mode 100644 opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index 049366459c5e..77f1b71f087c 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -1,4 +1,4 @@ -import React, { FunctionComponent, useEffect, useState } from 'react'; +import React, { FunctionComponent } from 'react'; import { Box, Button } from '@mui/material'; import { graphql } from 'react-relay'; import { Field, Formik } from 'formik'; @@ -6,16 +6,14 @@ import { FormikConfig } from 'formik/dist/types'; import * as Yup from 'yup'; import { marked } from 'marked'; import DOMPurify from 'dompurify'; -import MenuItem from '@mui/material/MenuItem'; -import { StixCoreObjectContentFilesDisseminationQuery$data } from '@components/common/stix_core_objects/__generated__/StixCoreObjectContentFilesDisseminationQuery.graphql'; import { useTheme } from '@mui/styles'; +import DisseminationListField from '@components/settings/dissemination_lists/DisseminationListField'; import { fieldSpacingContainerStyle } from '../../../../utils/field'; import TextField from '../../../../components/TextField'; import MarkdownField from '../../../../components/fields/MarkdownField'; import { useFormatter } from '../../../../components/i18n'; -import { fetchQuery, handleErrorInForm } from '../../../../relay/environment'; +import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; -import SelectField from '../../../../components/fields/SelectField'; import type { Theme } from '../../../../components/Theme'; interface StixCoreObjectContentFilesDisseminationProps { @@ -30,33 +28,6 @@ interface DisseminationInput { emailBody: string; } -export const stixCoreObjectContentFilesDisseminationQuery = graphql` - query StixCoreObjectContentFilesDisseminationQuery( - $search: String - $count: Int! - $cursor: ID - $orderBy: DisseminationListOrdering - $orderMode: OrderingMode - $filters: FilterGroup - ) { - disseminationLists( - first: $count - after: $cursor - orderBy: $orderBy - orderMode: $orderMode - filters: $filters - search: $search - ) { - edges { - node { - id - name - } - } - } - } -`; - export const DisseminationListSendInputMutation = graphql` mutation StixCoreObjectContentFilesDisseminationMutation( $input: DisseminationListSendInput! @@ -72,21 +43,6 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent { const { t_i18n } = useFormatter(); const theme = useTheme(); - const [lists, setLists] = useState(null); - - const fetchDisseminationLists = async () => { - return await fetchQuery(stixCoreObjectContentFilesDisseminationQuery, { - search: '', - count: 10, - }) - .toPromise() as Promise; - }; - - useEffect(() => { - fetchDisseminationLists().then((response) => { - setLists(response?.disseminationLists ?? { edges: [] }); - }); - }, []); const basicShape = { disseminationListId: Yup.string().required(t_i18n('This field is required')), @@ -143,18 +99,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent {({ isSubmitting, submitForm, handleReset }) => ( - - {lists?.edges?.map((edge) => ( - - {edge.node.name} - - ))} - + { + const { t_i18n } = useFormatter(); + const [lists, setLists] = useState(null); + + const fetchDisseminationLists = async () => { + return await fetchQuery(disseminationListFieldQuery, { + search: '', + count: 10, + }) + .toPromise() as Promise; + }; + + useEffect(() => { + fetchDisseminationLists().then((response) => { + setLists(response?.disseminationLists ?? { edges: [] }); + }); + }, []); + + return ( + + {lists?.edges?.map((edge) => ( + + {edge.node.name} + + ))} + + ); +}; + +export default DisseminationListField; From 5d85cfc2e483aaa5721c8bcc7e454b2414eed005 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Wed, 29 Jan 2025 16:23:52 +0100 Subject: [PATCH 61/81] [frontend] Set pagination count to 50 for fetching dissemination lists (#5551) --- .../settings/dissemination_lists/DisseminationListField.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx index c53e98375290..d8aa37bb0d47 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx @@ -41,7 +41,7 @@ const DisseminationListField: FunctionComponent = () => { const fetchDisseminationLists = async () => { return await fetchQuery(disseminationListFieldQuery, { search: '', - count: 10, + count: 50, }) .toPromise() as Promise; }; From 153fa1e21460319612ffe3a6e956513b865f4c39 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Wed, 29 Jan 2025 16:29:28 +0100 Subject: [PATCH 62/81] [frontend] refacto create & update form (#5551) --- .../DisseminationList.test.ts | 2 +- .../DisseminationListCreation.tsx | 161 ++++-------------- .../DisseminationListEdition.tsx | 90 +++------- .../DisseminationListForm.tsx | 133 +++++++++++++++ .../DisseminationListPopover.tsx | 12 +- .../DisseminationListUtils.ts | 2 +- 6 files changed, 194 insertions(+), 206 deletions(-) create mode 100644 opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts index 2b52657bc5cb..922c8d1bbccf 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationList.test.ts @@ -1,7 +1,7 @@ import { describe, it, expect } from 'vitest'; import { formatEmailsForApi, formatEmailsForFront } from '@components/settings/dissemination_lists/DisseminationListUtils'; -const EXPECTED_RESULT_FOR_API = 'example1@email.com,sample.account@email.com'; +const EXPECTED_RESULT_FOR_API = ['example1@email.com', 'sample.account@email.com']; const EXPECTED_RESULT_FOR_FRONT = 'example1@email.com\nsample.account@email.com'; describe('Function: formatEmailsForApi', () => { diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index a947e08688b6..078e6b523810 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -1,49 +1,48 @@ import React, { FunctionComponent } from 'react'; -import { Field, Formik, FormikConfig } from 'formik'; -import Button from '@mui/material/Button'; +import { FormikConfig } from 'formik'; import { RecordSourceSelectorProxy } from 'relay-runtime'; import Drawer, { DrawerVariant } from '@components/common/drawer/Drawer'; -import { disseminationListValidator, formatEmailsForApi } from '@components/settings/dissemination_lists/DisseminationListUtils'; +import { formatEmailsForApi } from '@components/settings/dissemination_lists/DisseminationListUtils'; import { graphql } from 'react-relay'; import { DisseminationListsLinesPaginationQuery$variables } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLinesPaginationQuery.graphql'; -import { useTheme } from '@mui/styles'; +import DisseminationListForm from '@components/settings/dissemination_lists/DisseminationListForm'; import { useFormatter } from '../../../../components/i18n'; -import TextField from '../../../../components/TextField'; import { insertNode } from '../../../../utils/store'; -import { handleErrorInForm, MESSAGING$ } from '../../../../relay/environment'; +import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; -import MarkdownField from '../../../../components/fields/MarkdownField'; -import { parseEmailList } from '../../../../utils/email'; -import type { Theme } from '../../../../components/Theme'; -const disseminationListCreationMutation = graphql` - mutation DisseminationListCreationAddMutation($input: DisseminationListAddInput!) { - disseminationListAdd(input: $input) { - ...DisseminationListsLine_node - } - } -`; - -interface DisseminationListCreationFormData { +export interface DisseminationListCreationFormData { name: string; emails: string; description: string; } -interface DisseminationListCreationFormProps { - updater: (store: RecordSourceSelectorProxy, rootField: string) => void; - onReset?: () => void; - onCompleted?: () => void; +const disseminationListCreationMutation = graphql` + mutation DisseminationListCreationAddMutation($input: DisseminationListAddInput!) { + disseminationListAdd(input: $input) { + ...DisseminationListsLine_node + } + } +`; + +interface DisseminationListCreationProps { + paginationOptions: DisseminationListsLinesPaginationQuery$variables; } -const DisseminationListCreationForm: FunctionComponent = ({ - updater, - onReset, - onCompleted, +const DisseminationListCreation: FunctionComponent = ({ + paginationOptions, }) => { const { t_i18n } = useFormatter(); + const updater = (store: RecordSourceSelectorProxy, rootField: string) => { + insertNode( + store, + 'Pagination_disseminationLists', + paginationOptions, + rootField, + ); + }; + const [commit] = useApiMutation(disseminationListCreationMutation); - const theme = useTheme(); const onSubmit: FormikConfig['onSubmit'] = ( values, @@ -66,9 +65,6 @@ const DisseminationListCreationForm: FunctionComponent { setSubmitting(false); resetForm(); - if (onCompleted) { - onCompleted(); - } }, onError: (error: Error) => { handleErrorInForm(error, setErrors); @@ -77,113 +73,16 @@ const DisseminationListCreationForm: FunctionComponent - initialValues={initialValues} - validateOnBlur={false} - validateOnChange={false} - validationSchema={disseminationListValidator(t_i18n)} - onSubmit={onSubmit} - onReset={onReset} - > - {({ submitForm, handleReset, isSubmitting }) => ( - <> - - - { - // on pasting data, we try to extract emails - const extractedEmails = parseEmailList(pastedText); - if (extractedEmails.length > 0) { - MESSAGING$.notifySuccess(t_i18n('', { id: '{count} email address(es) extracted from pasted text', values: { count: extractedEmails.length } })); - return extractedEmails.join('\n'); // alter the pasted content - } - return pastedText; // do not alter pasted content; it's probably invalid anyway - }} - /> -
- - -
- - )} - - ); -}; - -interface DisseminationListCreationProps { - paginationOptions: DisseminationListsLinesPaginationQuery$variables; -} - -const DisseminationListCreation: FunctionComponent = ({ - paginationOptions, -}) => { - const { t_i18n } = useFormatter(); - const updater = (store: RecordSourceSelectorProxy, rootField: string) => { - insertNode( - store, - 'Pagination_disseminationLists', - paginationOptions, - rootField, - ); - }; - return ( {({ onClose }) => ( - <> - - + )} ); diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx index 89dc058607d6..54adf0fd710a 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListEdition.tsx @@ -1,24 +1,20 @@ import React, { FunctionComponent } from 'react'; import { graphql } from 'react-relay'; import Drawer from '@components/common/drawer/Drawer'; -import { Field, Formik, FormikConfig } from 'formik'; +import { FormikConfig } from 'formik'; import { DisseminationListsLine_node$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListsLine_node.graphql'; -import { disseminationListValidator, formatEmailsForApi, formatEmailsForFront } from '@components/settings/dissemination_lists/DisseminationListUtils'; -import { useTheme } from '@mui/styles'; -import { handleErrorInForm, MESSAGING$ } from '../../../../relay/environment'; +import { formatEmailsForApi, formatEmailsForFront } from '@components/settings/dissemination_lists/DisseminationListUtils'; +import DisseminationListForm, { DisseminationListFormData, DisseminationListFormInputKeys } from '@components/settings/dissemination_lists/DisseminationListForm'; +import { handleErrorInForm } from '../../../../relay/environment'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; -import TextField from '../../../../components/TextField'; import { useFormatter } from '../../../../components/i18n'; -import MarkdownField from '../../../../components/fields/MarkdownField'; -import { parseEmailList } from '../../../../utils/email'; -import type { Theme } from '../../../../components/Theme'; export const disseminationListMutationFieldPatch = graphql` - mutation DisseminationListEditionFieldPatchMutation($id: ID!, $input: [EditInput!]!) { - disseminationListFieldPatch(id: $id, input: $input) { - ...DisseminationListsLine_node - } + mutation DisseminationListEditionFieldPatchMutation($id: ID!, $input: [EditInput!]!) { + disseminationListFieldPatch(id: $id, input: $input) { + ...DisseminationListsLine_node } + } `; interface DisseminationListEditionComponentProps { @@ -27,7 +23,7 @@ interface DisseminationListEditionComponentProps { onClose: () => void; } -interface DisseminationListEditionFormData { +export interface DisseminationListEditionFormData { name: string; emails: string; description: string; @@ -39,7 +35,6 @@ const DisseminationListEdition: FunctionComponent { const { t_i18n } = useFormatter(); - const theme = useTheme(); const [commitFieldPatch] = useApiMutation(disseminationListMutationFieldPatch); @@ -75,7 +70,17 @@ const DisseminationListEdition: FunctionComponent { + const input = { key: field, value: field === 'emails' ? formatEmailsForApi(value) : [value] }; + commitFieldPatch({ + variables: { + id: data?.id, + input, + }, + }); + }; + + const initialValues: DisseminationListFormData = { name: data.name, emails: formatEmailsForFront(data.emails), description: data.description || '', @@ -87,58 +92,11 @@ const DisseminationListEdition: FunctionComponent - - enableReinitialize={true} - validateOnBlur={true} - validateOnChange={true} - initialValues={initialValues} - validationSchema={disseminationListValidator(t_i18n)} + - {({ submitForm }) => ( - <> - - - { - // on pasting data, we try to extract emails - const extractedEmails = parseEmailList(pastedText); - if (extractedEmails.length > 0) { - MESSAGING$.notifySuccess(t_i18n('', { id: '{count} email address(es) extracted from pasted text', values: { count: extractedEmails.length } })); - return extractedEmails.join('\n'); // alter the pasted content - } - return pastedText; // do not alter pasted content; it's probably invalid anyway - }} - /> - - )} - + onSubmitField={onSubmitField} + defaultValues={initialValues} + /> ); }; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx new file mode 100644 index 000000000000..04ba58d8fe73 --- /dev/null +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx @@ -0,0 +1,133 @@ +import React, { FunctionComponent } from 'react'; +import { FormikHelpers } from 'formik/dist/types'; +import { useTheme } from '@mui/styles'; +import { Field, Formik } from 'formik'; +import { disseminationListValidator } from '@components/settings/dissemination_lists/DisseminationListUtils'; +import Button from '@mui/material/Button'; +import { useFormatter } from '../../../../components/i18n'; +import type { Theme } from '../../../../components/Theme'; +import TextField from '../../../../components/TextField'; +import MarkdownField from '../../../../components/fields/MarkdownField'; +import { parseEmailList } from '../../../../utils/email'; +import { MESSAGING$ } from '../../../../relay/environment'; + +export interface DisseminationListFormData { + name: string; + emails: string; + description: string; +} + +export type DisseminationListFormInputKeys = keyof DisseminationListFormData; + +interface DisseminationListFormProps { + onSubmit: (values: DisseminationListFormData, helpers: FormikHelpers) => void; + onSubmitField?: (field: DisseminationListFormInputKeys, value: string) => void; + defaultValues?: DisseminationListFormData; + onReset?: () => void; +} + +const DisseminationListForm: FunctionComponent = ({ + onSubmit, + onSubmitField, + defaultValues, + onReset, +}) => { + const { t_i18n } = useFormatter(); + const theme = useTheme(); + const isEdition = !!defaultValues; + const validation = disseminationListValidator(t_i18n); + + const initialValues: DisseminationListFormData = defaultValues ?? { + name: '', + emails: '', + description: '', + }; + + const updateField = async (field: DisseminationListFormInputKeys, value: string) => { + if (onSubmitField) { + validation.validateAt(field, { [field]: value }) + .then(() => onSubmitField(field, value)) + .catch(() => false); + } + }; + + const onUpdate = isEdition ? updateField : undefined; + + return ( + + initialValues={initialValues} + enableReinitialize={true} + validateOnBlur={isEdition} + validateOnChange={isEdition} + validationSchema={validation} + onSubmit={onSubmit} + onReset={onReset} + > + {({ submitForm, handleReset, isSubmitting }) => ( + <> + + + { + // on pasting data, we try to extract emails + const extractedEmails = parseEmailList(pastedText); + if (extractedEmails.length > 0) { + MESSAGING$.notifySuccess(t_i18n('', { id: '{count} email address(es) extracted from pasted text', values: { count: extractedEmails.length } })); + return extractedEmails.join('\n'); // alter the pasted content + } + return pastedText; // do not alter pasted content; it's probably invalid anyway + }} + /> + {!isEdition && ( +
+ + +
+ )} + + )} + + ); +}; + +export default DisseminationListForm; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListPopover.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListPopover.tsx index b2c03d07efb7..a4ac0ac0cd2b 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListPopover.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListPopover.tsx @@ -90,13 +90,11 @@ const DisseminationListPopover: FunctionComponent deletion={deletion} submitDelete={submitDelete} /> - {isEditionFormOpen && ( - - )} + ); }; diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts index bbfc1f7fc8d7..7b1d49340e77 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -31,6 +31,6 @@ export const formatEmailsForApi = (value: string) => { }; // build a string with linebreaks from an array -export const formatEmailsForFront = (value: readonly string[]) => { +export const formatEmailsForFront = (value: string[] | readonly string[]) => { return value.join('\n'); }; From b95dc3a29126099a6ceca96e860fbe63fbf97838 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Wed, 29 Jan 2025 16:43:28 +0100 Subject: [PATCH 63/81] [frontend/backend] fix tests (#5551) --- .../dissemination_lists/DisseminationListCreation.tsx | 4 +--- .../tests/01-unit/domain/disseminationList-test.ts | 10 ++++------ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx index 078e6b523810..5a8a189cdb0e 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListCreation.tsx @@ -58,9 +58,7 @@ const DisseminationListCreation: FunctionComponent { - if (updater) { - updater(store, 'disseminationListAdd'); - } + updater(store, 'disseminationListAdd'); }, onCompleted: () => { setSubmitting(false); diff --git a/opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts b/opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts index eccaecdc2746..7cf702accdf7 100644 --- a/opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts +++ b/opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts @@ -8,12 +8,12 @@ const TEST_DISSEMINATION_USER_SET = buildStandardUser([], [], [{ name: 'SETTINGS const TEST_DISSEMINATION_LIST_CREATE_INPUT: DisseminationListAddInput = { name: 'Dissemination list', description: 'Description', - emails: 'example1@email.com,sample.account@email.com,firstname.lastname@email.com,user123@email.com,contact@domain.com,info@example.net,test.email@email.org,random.user@email.co,support@email.io,myaddress@email.biz' + emails: ['example1@email.com', 'sample.account@email.com', 'firstname.lastname@email.com', 'user123@email.com', 'contact@domain.com', 'info@example.net', 'test.email@email.org', 'random.user@email.co', 'support@email.io', 'myaddress@email.biz'] }; const TEST_DISSEMINATION_LIST_UPDATE_INPUT: EditInput[] = [ { key: 'name', value: ['New Dissemination list'] }, { key: 'description', value: ['New description'] }, - { key: 'emails', value: ['example1@email.com,sample.account@email.com'] } + { key: 'emails', value: ['example1@email.com', 'sample.account@email.com'] } ]; describe('Create dissemination list', () => { @@ -22,15 +22,13 @@ describe('Create dissemination list', () => { data = await addDisseminationList(testContext, TEST_DISSEMINATION_USER_SET, TEST_DISSEMINATION_LIST_CREATE_INPUT); expect(data.name, 'List created').toBe('Dissemination list'); expect(data.description, 'List created').toBe('Description'); - expect(data.emails, 'List created').toBe('example1@email.com,sample.account@email.com,firstname.lastname@email.com,user123@email.com,contact@domain.com,info@example.net,test.email@email.org,random.user@email.co,support@email.io,myaddress@email.biz'); - expect(data.dissemination_list_values_count, 'Count of email addresses').toBe(10); + expect(data.emails, 'List created').toEqual(['example1@email.com', 'sample.account@email.com', 'firstname.lastname@email.com', 'user123@email.com', 'contact@domain.com', 'info@example.net', 'test.email@email.org', 'random.user@email.co', 'support@email.io', 'myaddress@email.biz']); }); it('should update a dissemination list for settings user', async () => { data = await fieldPatchDisseminationList(testContext, TEST_DISSEMINATION_USER_SET, data.id, TEST_DISSEMINATION_LIST_UPDATE_INPUT); expect(data.name, 'List updated').toBe('New Dissemination list'); expect(data.description, 'List updated').toBe('New description'); - expect(data.emails, 'List updated').toBe('example1@email.com,sample.account@email.com'); - expect(data.dissemination_list_values_count, 'Count of email addresses').toBe(2); + expect(data.emails, 'List updated').toEqual(['example1@email.com', 'sample.account@email.com']); }); it('should delete a dissemination list for settings user', async () => { const id = await deleteDisseminationList(testContext, TEST_DISSEMINATION_USER_SET, data.id); From e29cb6e1db7edb2b8aef69742f9b31eb392eddae Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 30 Jan 2025 08:52:50 +0100 Subject: [PATCH 64/81] [frontend] Remove count in disseminationListFieldQuery (#5551) --- .../settings/dissemination_lists/DisseminationListField.tsx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx index d8aa37bb0d47..dd0a984f26c8 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx @@ -9,20 +9,16 @@ import SelectField from '../../../../components/fields/SelectField'; export const disseminationListFieldQuery = graphql` query DisseminationListFieldQuery( - $search: String - $count: Int! $cursor: ID $orderBy: DisseminationListOrdering $orderMode: OrderingMode $filters: FilterGroup ) { disseminationLists( - first: $count after: $cursor orderBy: $orderBy orderMode: $orderMode filters: $filters - search: $search ) { edges { node { @@ -40,8 +36,6 @@ const DisseminationListField: FunctionComponent = () => { const fetchDisseminationLists = async () => { return await fetchQuery(disseminationListFieldQuery, { - search: '', - count: 50, }) .toPromise() as Promise; }; From 2571ff3d82e0d261c9e44837b9346fb561df517d Mon Sep 17 00:00:00 2001 From: Angelique Date: Thu, 30 Jan 2025 10:17:33 +0100 Subject: [PATCH 65/81] Add background task for dissemination --- .../src/schema/relay.schema.graphql | 2 + .../config/schema/opencti.graphql | 2 + .../src/domain/backgroundTask-common.js | 3 + .../opencti-graphql/src/generated/graphql.ts | 2 + .../src/manager/taskManager.js | 77 ++++++++++++++++++- .../disseminationList-domain.ts | 26 ++++++- 6 files changed, 108 insertions(+), 4 deletions(-) diff --git a/opencti-platform/opencti-front/src/schema/relay.schema.graphql b/opencti-platform/opencti-front/src/schema/relay.schema.graphql index 54e782a0227d..d228773459c2 100644 --- a/opencti-platform/opencti-front/src/schema/relay.schema.graphql +++ b/opencti-platform/opencti-front/src/schema/relay.schema.graphql @@ -1059,6 +1059,7 @@ enum BackgroundTaskScope { PUBLIC_DASHBOARD INVESTIGATION PLAYBOOK + DISSEMINATION } enum BackgroundTaskActionType { @@ -1077,6 +1078,7 @@ enum BackgroundTaskActionType { SHARE_MULTIPLE UNSHARE_MULTIPLE REMOVE_AUTH_MEMBERS + DISSEMINATE } enum BackgroundTaskContextType { diff --git a/opencti-platform/opencti-graphql/config/schema/opencti.graphql b/opencti-platform/opencti-graphql/config/schema/opencti.graphql index 7b8ac144a5ec..13b234d45c6f 100644 --- a/opencti-platform/opencti-graphql/config/schema/opencti.graphql +++ b/opencti-platform/opencti-graphql/config/schema/opencti.graphql @@ -996,6 +996,7 @@ enum BackgroundTaskScope { PUBLIC_DASHBOARD INVESTIGATION PLAYBOOK + DISSEMINATION } enum BackgroundTaskActionType { DELETE @@ -1013,6 +1014,7 @@ enum BackgroundTaskActionType { SHARE_MULTIPLE UNSHARE_MULTIPLE REMOVE_AUTH_MEMBERS + DISSEMINATE } enum BackgroundTaskContextType { ATTRIBUTE diff --git a/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js b/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js index dd3e337e81b2..7607b6a9d25b 100644 --- a/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js +++ b/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js @@ -33,6 +33,7 @@ export const ACTION_TYPE_UNSHARE = 'UNSHARE'; export const ACTION_TYPE_SHARE_MULTIPLE = 'SHARE_MULTIPLE'; export const ACTION_TYPE_UNSHARE_MULTIPLE = 'UNSHARE_MULTIPLE'; export const ACTION_TYPE_REMOVE_AUTH_MEMBERS = 'REMOVE_AUTH_MEMBERS'; +export const ACTION_TYPE_DISSEMINATE = 'DISSEMINATE'; const isDeleteRestrictedAction = ({ type }) => { return type === ACTION_TYPE_DELETE || type === ACTION_TYPE_RESTORE || type === ACTION_TYPE_COMPLETE_DELETE; @@ -238,6 +239,8 @@ export const checkActionValidity = async (context, user, input, scope, taskType) throw ForbiddenAccess('The targeted ids are not playbooks.'); } } + } else if (scope === BackgroundTaskScope.Dissemination) { + // TODO check capa and input } else { // Background task with an invalid scope throw UnsupportedError('A background task should be of scope: SETTINGS, KNOWLEDGE, USER, IMPORT, DASHBOARD, PUBLIC_DASHBOARD.'); } diff --git a/opencti-platform/opencti-graphql/src/generated/graphql.ts b/opencti-platform/opencti-graphql/src/generated/graphql.ts index bb068528a8ec..47e08bffa632 100644 --- a/opencti-platform/opencti-graphql/src/generated/graphql.ts +++ b/opencti-platform/opencti-graphql/src/generated/graphql.ts @@ -1297,6 +1297,7 @@ export enum BackgroundTaskActionType { Add = 'ADD', CompleteDelete = 'COMPLETE_DELETE', Delete = 'DELETE', + Disseminate = 'DISSEMINATE', Enrichment = 'ENRICHMENT', Merge = 'MERGE', Promote = 'PROMOTE', @@ -1356,6 +1357,7 @@ export type BackgroundTaskError = { export enum BackgroundTaskScope { Dashboard = 'DASHBOARD', + Dissemination = 'DISSEMINATION', Import = 'IMPORT', Investigation = 'INVESTIGATION', Knowledge = 'KNOWLEDGE', diff --git a/opencti-platform/opencti-graphql/src/manager/taskManager.js b/opencti-platform/opencti-graphql/src/manager/taskManager.js index 79db8ae49b52..637c555ccbc0 100644 --- a/opencti-platform/opencti-graphql/src/manager/taskManager.js +++ b/opencti-platform/opencti-graphql/src/manager/taskManager.js @@ -49,7 +49,7 @@ import { } from '../schema/general'; import { BYPASS, executionContext, getUserAccessRight, MEMBER_ACCESS_RIGHT_ADMIN, RULE_MANAGER_USER, SYSTEM_USER } from '../utils/access'; import { buildInternalEvent, rulesApplyHandler, rulesCleanHandler } from './ruleManager'; -import { buildEntityFilters, internalFindByIds, listAllRelations } from '../database/middleware-loader'; +import { buildEntityFilters, internalFindByIds, internalLoadById, listAllRelations } from '../database/middleware-loader'; import { getActivatedRules, getRule } from '../domain/rules'; import { isStixRelationship } from '../schema/stixRelationship'; import { isStixObject } from '../schema/stixCoreObject'; @@ -62,6 +62,7 @@ import { objectOrganization, RELATION_GRANTED_TO, RELATION_OBJECT } from '../sch import { ACTION_TYPE_COMPLETE_DELETE, ACTION_TYPE_DELETE, + ACTION_TYPE_DISSEMINATE, ACTION_TYPE_REMOVE_AUTH_MEMBERS, ACTION_TYPE_RESTORE, ACTION_TYPE_SHARE, @@ -78,14 +79,18 @@ import { processDeleteOperation, restoreDelete } from '../modules/deleteOperatio import { addOrganizationRestriction, removeOrganizationRestriction } from '../domain/stix'; import { stixDomainObjectAddRelation } from '../domain/stixDomainObject'; import { BackgroundTaskScope } from '../generated/graphql'; -import { ENTITY_TYPE_INTERNAL_FILE } from '../schema/internalObject'; -import { deleteFile } from '../database/file-storage'; +import { ENTITY_TYPE_INTERNAL_FILE, ENTITY_TYPE_SETTINGS } from '../schema/internalObject'; +import { deleteFile, downloadFile, loadFile } from '../database/file-storage'; import { checkUserIsAdminOnDashboard } from '../modules/publicDashboard/publicDashboard-utils'; import { ENTITY_TYPE_IDENTITY_ORGANIZATION } from '../modules/organization/organization-types'; import { findById as findOrganizationById } from '../modules/organization/organization-domain'; import { getDraftContext } from '../utils/draftContext'; import { deleteDraftWorkspace } from '../modules/draftWorkspace/draftWorkspace-domain'; import { ENTITY_TYPE_DRAFT_WORKSPACE } from '../modules/draftWorkspace/draftWorkspace-types'; +import { ENTITY_TYPE_DISSEMINATION_LIST } from '../modules/disseminationList/disseminationList-types'; +import { sendMail } from '../database/smtp'; +import { getEntityFromCache } from '../database/cache'; +import { buildContextDataForFile, publishUserAction } from '../listener/UserActionListener'; // Task manager responsible to execute long manual tasks // Each API will start is task manager. @@ -195,6 +200,8 @@ const computeListTaskElements = async (context, user, task) => { type = [ENTITY_TYPE_PUBLIC_DASHBOARD]; } else if (scope === BackgroundTaskScope.Dashboard || scope === BackgroundTaskScope.Investigation) { type = [ENTITY_TYPE_WORKSPACE]; + } else if (scope === BackgroundTaskScope.Dissemination) { + type = [ENTITY_TYPE_DISSEMINATION_LIST]; } const options = { type, @@ -455,6 +462,67 @@ export const executeRemoveAuthMembers = async (context, user, element) => { }); }; +export const executeDissemination = async (context, user, actionContext, element) => { + logApp.info('Executing dissemination with', { actionContext, element }); + const disseminationContext = actionContext.emailData; + const attachFileIds = actionContext.values; + + if (!attachFileIds || attachFileIds.length < 1) { + throw FunctionalError('There is no file to disseminate', { actionContext, element }); + } + + if (!disseminationContext.object || !disseminationContext.body) { + throw FunctionalError('There is no email data for disseminate', { actionContext, element }); + } + + const attachementListForSendMail = []; + const attachementFilesForActivity = []; + for (let i = 0; i < attachFileIds.length; i += 1) { + const attachFileId = attachFileIds[i]; + const file = await loadFile(context, user, attachFileId); + if (file && file.metaData.mimetype === 'application/pdf' && file.metaData.entity_id) { + const stream = await downloadFile(file.id); + attachementListForSendMail.push({ + filename: file.name, + content: stream, + }); + attachementFilesForActivity.push({ + fileId: file.id, + fileName: file.name, + fileMarkings: file.metaData.file_markings, + fileEntityId: file.metaData.entity_id + }); + } + } + + const toEmail = conf.get('app:dissemination_list:to_email'); + const settings = await getEntityFromCache(context, user, ENTITY_TYPE_SETTINGS); + const sendMailArgs = { + from: settings.platform_email, + to: toEmail, + bcc: [...element.emails, user.user_email], + subject: disseminationContext.object, + html: disseminationContext.body, + attachments: attachementListForSendMail, + }; + await sendMail(sendMailArgs); + logApp.info('[DISSEMINATION] email send.'); + + for (let i = 0; i < attachementFilesForActivity.length; i += 1) { + const disseminatedFile = attachementFilesForActivity[i]; + + const instance = await internalLoadById(context, user, disseminatedFile.fileEntityId); + const data = buildContextDataForFile(instance, disseminatedFile.fileId, disseminatedFile.fileName, disseminatedFile.fileMarkings, { element }); + await publishUserAction({ + event_access: 'administration', + user, + event_type: 'file', + event_scope: 'disseminate', + context_data: data + }); + } +}; + const throwErrorInDraftContext = (context, user, actionType) => { if (!getDraftContext(context, user)) { return; @@ -576,6 +644,9 @@ const executeProcessing = async (context, user, job, scope) => { if (type === ACTION_TYPE_REMOVE_AUTH_MEMBERS) { await executeRemoveAuthMembers(context, user, element); } + if (type === ACTION_TYPE_DISSEMINATE) { + await executeDissemination(context, user, actionContext, element); + } } catch (err) { logApp.error('[OPENCTI-MODULE] Task manager index processing error', { cause: err, field, index: elementIndex }); if (errors.length < MAX_TASK_ERRORS) { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index df4bed919778..131b467b8d6d 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -16,7 +16,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. import ejs from 'ejs'; import type { AuthContext, AuthUser } from '../../types/user'; import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../database/middleware-loader'; -import type { DisseminationListAddInput, DisseminationListSendInput, EditInput, QueryDisseminationListsArgs } from '../../generated/graphql'; +import { BackgroundTaskScope, type DisseminationListAddInput, type DisseminationListSendInput, type EditInput, type QueryDisseminationListsArgs } from '../../generated/graphql'; import { type BasicStoreEntityDisseminationList, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; import { sendMail } from '../../database/smtp'; import { getEntityFromCache } from '../../database/cache'; @@ -33,6 +33,7 @@ import { generateInternalId } from '../../schema/identifier'; import { createInternalObject, deleteInternalObject } from '../../domain/internalObject'; import { updateAttribute } from '../../database/middleware'; import { notify } from '../../database/redis'; +import { ACTION_TYPE_DISSEMINATE, createListTask } from '../../domain/backgroundTask-common'; const EMAILS_LIMIT_BY_LIST = 500; @@ -54,6 +55,29 @@ interface SendMailArgs { } export const sendToDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListSendInput) => { + await checkEnterpriseEdition(context); + const emailBodyFormatted = input.email_body.replaceAll('\n', '
'); + + const data = { + body: emailBodyFormatted, + object: input.email_object }; + + const taskInput = { + actions: [{ + type: ACTION_TYPE_DISSEMINATE, + context: { + values: [input.email_attached_file_id], + emailData: data + } + }], + ids: [input.dissemination_list_id], + scope: BackgroundTaskScope.Dissemination + }; + await createListTask(context, user, taskInput); + return true; +}; + +export const sendToDisseminationListSync = async (context: AuthContext, user: AuthUser, input: DisseminationListSendInput) => { await checkEnterpriseEdition(context); const settings = await getEntityFromCache(context, user, ENTITY_TYPE_SETTINGS); const filePath = input.email_attached_file_id; From 768cf7f5e5262102a2db226b77e513cf583f9b34 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 30 Jan 2025 10:26:52 +0100 Subject: [PATCH 66/81] [backend/frontend] Set feature flag again (#5551) --- .../StixCoreObjectContentFilesList.tsx | 5 ++++- .../settings/roles/RoleEditionCapabilities.tsx | 8 +++++++- .../disseminationList/disseminationList-domain.ts | 10 +++++++++- .../src/modules/disseminationList/disseminationList.ts | 6 +++--- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx index 4f9bd856592d..b80ff16e44ce 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesList.tsx @@ -26,6 +26,7 @@ import type { Theme } from '../../../../components/Theme'; import { KNOWLEDGE_KNASKIMPORT, KNOWLEDGE_KNDISSEMINATION, KNOWLEDGE_KNGETEXPORT, KNOWLEDGE_KNUPLOAD } from '../../../../utils/hooks/useGranted'; import Security from '../../../../utils/Security'; import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition'; +import useHelper from '../../../../utils/hooks/useHelper'; const renderIcon = (mimeType: string) => { switch (mimeType) { @@ -79,6 +80,8 @@ const StixCoreObjectContentFilesList = ({ const { fld, t_i18n } = useFormatter(); const deletion = useDeletion({}); const isEnterpriseEdition = useEnterpriseEdition(); + const { isFeatureEnable } = useHelper(); + const isDisseminationFeatureEnabled = isFeatureEnable('DISSEMINATIONLISTS'); const [anchorEl, setAnchorEl] = useState(null); const [menuFile, setMenuFile] = useState(null); @@ -159,7 +162,7 @@ const StixCoreObjectContentFilesList = ({ )} /> - {file.metaData?.mimetype === 'application/pdf' && ( + {file.metaData?.mimetype === 'application/pdf' && isDisseminationFeatureEnabled && ( <> diff --git a/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx b/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx index ce6bddaee03b..6bcf76971589 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/roles/RoleEditionCapabilities.tsx @@ -16,9 +16,10 @@ import { useFormatter } from '../../../../components/i18n'; import { RoleEditionCapabilitiesLinesSearchQuery } from './__generated__/RoleEditionCapabilitiesLinesSearchQuery.graphql'; import { RoleEditionCapabilities_role$data } from './__generated__/RoleEditionCapabilities_role.graphql'; import useApiMutation from '../../../../utils/hooks/useApiMutation'; -import { SETTINGS } from '../../../../utils/hooks/useGranted'; +import { KNOWLEDGE_KNDISSEMINATION, SETTINGS, SETTINGS_SETDISSEMINATION } from '../../../../utils/hooks/useGranted'; import useSensitiveModifications from '../../../../utils/hooks/useSensitiveModifications'; import type { Theme } from '../../../../components/Theme'; +import useHelper from '../../../../utils/hooks/useHelper'; const roleEditionAddCapability = graphql` mutation RoleEditionCapabilitiesAddCapabilityMutation( @@ -84,6 +85,8 @@ interface RoleEditionCapabilitiesComponentProps { const RoleEditionCapabilitiesComponent: FunctionComponent = ({ role, queryRef }) => { const { t_i18n } = useFormatter(); const theme = useTheme(); + const { isFeatureEnable } = useHelper(); + const isDisseminationFeatureEnabled = isFeatureEnable('DISSEMINATIONLISTS'); const { capabilities } = usePreloadedQuery( roleEditionCapabilitiesLinesSearch, @@ -172,6 +175,9 @@ const RoleEditionCapabilitiesComponent: FunctionComponent { const capability = edge?.node; if (capability) { + if (!isDisseminationFeatureEnabled && (capability.name === KNOWLEDGE_KNDISSEMINATION || capability.name === SETTINGS_SETDISSEMINATION)) { + return
; + } const paddingLeft = capability.name.split('_').length * 20 - 20; const roleCapability = roleCapabilities.find( (r) => r.name === capability.name, diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 131b467b8d6d..9bfa3eff69ce 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -25,7 +25,7 @@ import { ENTITY_TYPE_SETTINGS } from '../../schema/internalObject'; import { downloadFile, loadFile } from '../../database/file-storage'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; -import conf, { BUS_TOPICS } from '../../config/conf'; +import conf, { BUS_TOPICS, isFeatureEnabled } from '../../config/conf'; import type { BasicStoreObject } from '../../types/store'; import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; @@ -35,6 +35,8 @@ import { updateAttribute } from '../../database/middleware'; import { notify } from '../../database/redis'; import { ACTION_TYPE_DISSEMINATE, createListTask } from '../../domain/backgroundTask-common'; +const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); + const EMAILS_LIMIT_BY_LIST = 500; export const findById = (context: AuthContext, user: AuthUser, id: string) => { @@ -117,6 +119,9 @@ export const sendToDisseminationListSync = async (context: AuthContext, user: Au }; export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } const disseminationListInternalId = generateInternalId(); if (input.emails.length > EMAILS_LIMIT_BY_LIST) { throw UnsupportedError(`You cannot add more than ${EMAILS_LIMIT_BY_LIST} e-mail addresses`); @@ -156,5 +161,8 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au }; export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => { + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } return deleteInternalObject(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); }; diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts index e779b7887a77..cc7c1ba0939e 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList.ts @@ -32,9 +32,9 @@ const DISSEMINATION_LIST_DEFINITION: ModuleDefinition { From f94acb88cc3a8f022ec55607c19ec6f53f5c5ed9 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 30 Jan 2025 10:56:15 +0100 Subject: [PATCH 67/81] [backend/frontend] Set feature flag in accessesMenu (#5551) --- .../src/private/components/settings/AccessesMenu.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx index dffdf2a18e37..552f00794905 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/AccessesMenu.tsx @@ -11,8 +11,12 @@ import { import { AccountGroupOutline } from 'mdi-material-ui'; import NavToolbarMenu, { MenuEntry } from '../common/menus/NavToolbarMenu'; import useGranted, { SETTINGS_SETACCESSES, SETTINGS_SETDISSEMINATION, SETTINGS_SETMARKINGS, VIRTUAL_ORGANIZATION_ADMIN } from '../../../utils/hooks/useGranted'; +import useHelper from '../../../utils/hooks/useHelper'; const AccessesMenu: FunctionComponent = () => { + const { isFeatureEnable } = useHelper(); + const isDisseminationFeatureEnabled = isFeatureEnable('DISSEMINATIONLISTS'); + const entries: MenuEntry[] = [ { path: '/dashboard/settings/accesses/roles', @@ -71,7 +75,7 @@ const AccessesMenu: FunctionComponent = () => { if (setMarkings) { menuEntries.push(...markingEntries); } - if (setDissemination) { + if (setDissemination && isDisseminationFeatureEnabled) { menuEntries.push(...disseminationEntries); } if (!setAccess && isOrgaAdmin) { From 16d0dbb36e96f33c78cd33bf0d37bff8d93ade99 Mon Sep 17 00:00:00 2001 From: Angelique Date: Thu, 30 Jan 2025 11:19:04 +0100 Subject: [PATCH 68/81] Move code to dissemination domain --- .../src/manager/taskManager.js | 60 +--------- .../disseminationList-domain.ts | 113 +++++++++++------- 2 files changed, 75 insertions(+), 98 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/manager/taskManager.js b/opencti-platform/opencti-graphql/src/manager/taskManager.js index 637c555ccbc0..58e3b8b22a29 100644 --- a/opencti-platform/opencti-graphql/src/manager/taskManager.js +++ b/opencti-platform/opencti-graphql/src/manager/taskManager.js @@ -49,7 +49,7 @@ import { } from '../schema/general'; import { BYPASS, executionContext, getUserAccessRight, MEMBER_ACCESS_RIGHT_ADMIN, RULE_MANAGER_USER, SYSTEM_USER } from '../utils/access'; import { buildInternalEvent, rulesApplyHandler, rulesCleanHandler } from './ruleManager'; -import { buildEntityFilters, internalFindByIds, internalLoadById, listAllRelations } from '../database/middleware-loader'; +import { buildEntityFilters, internalFindByIds, listAllRelations } from '../database/middleware-loader'; import { getActivatedRules, getRule } from '../domain/rules'; import { isStixRelationship } from '../schema/stixRelationship'; import { isStixObject } from '../schema/stixCoreObject'; @@ -79,8 +79,8 @@ import { processDeleteOperation, restoreDelete } from '../modules/deleteOperatio import { addOrganizationRestriction, removeOrganizationRestriction } from '../domain/stix'; import { stixDomainObjectAddRelation } from '../domain/stixDomainObject'; import { BackgroundTaskScope } from '../generated/graphql'; -import { ENTITY_TYPE_INTERNAL_FILE, ENTITY_TYPE_SETTINGS } from '../schema/internalObject'; -import { deleteFile, downloadFile, loadFile } from '../database/file-storage'; +import { ENTITY_TYPE_INTERNAL_FILE } from '../schema/internalObject'; +import { deleteFile } from '../database/file-storage'; import { checkUserIsAdminOnDashboard } from '../modules/publicDashboard/publicDashboard-utils'; import { ENTITY_TYPE_IDENTITY_ORGANIZATION } from '../modules/organization/organization-types'; import { findById as findOrganizationById } from '../modules/organization/organization-domain'; @@ -88,9 +88,7 @@ import { getDraftContext } from '../utils/draftContext'; import { deleteDraftWorkspace } from '../modules/draftWorkspace/draftWorkspace-domain'; import { ENTITY_TYPE_DRAFT_WORKSPACE } from '../modules/draftWorkspace/draftWorkspace-types'; import { ENTITY_TYPE_DISSEMINATION_LIST } from '../modules/disseminationList/disseminationList-types'; -import { sendMail } from '../database/smtp'; -import { getEntityFromCache } from '../database/cache'; -import { buildContextDataForFile, publishUserAction } from '../listener/UserActionListener'; +import { sendDisseminationEmail } from '../modules/disseminationList/disseminationList-domain'; // Task manager responsible to execute long manual tasks // Each API will start is task manager. @@ -462,7 +460,7 @@ export const executeRemoveAuthMembers = async (context, user, element) => { }); }; -export const executeDissemination = async (context, user, actionContext, element) => { +const executeDissemination = async (context, user, actionContext, element) => { logApp.info('Executing dissemination with', { actionContext, element }); const disseminationContext = actionContext.emailData; const attachFileIds = actionContext.values; @@ -474,53 +472,7 @@ export const executeDissemination = async (context, user, actionContext, element if (!disseminationContext.object || !disseminationContext.body) { throw FunctionalError('There is no email data for disseminate', { actionContext, element }); } - - const attachementListForSendMail = []; - const attachementFilesForActivity = []; - for (let i = 0; i < attachFileIds.length; i += 1) { - const attachFileId = attachFileIds[i]; - const file = await loadFile(context, user, attachFileId); - if (file && file.metaData.mimetype === 'application/pdf' && file.metaData.entity_id) { - const stream = await downloadFile(file.id); - attachementListForSendMail.push({ - filename: file.name, - content: stream, - }); - attachementFilesForActivity.push({ - fileId: file.id, - fileName: file.name, - fileMarkings: file.metaData.file_markings, - fileEntityId: file.metaData.entity_id - }); - } - } - - const toEmail = conf.get('app:dissemination_list:to_email'); - const settings = await getEntityFromCache(context, user, ENTITY_TYPE_SETTINGS); - const sendMailArgs = { - from: settings.platform_email, - to: toEmail, - bcc: [...element.emails, user.user_email], - subject: disseminationContext.object, - html: disseminationContext.body, - attachments: attachementListForSendMail, - }; - await sendMail(sendMailArgs); - logApp.info('[DISSEMINATION] email send.'); - - for (let i = 0; i < attachementFilesForActivity.length; i += 1) { - const disseminatedFile = attachementFilesForActivity[i]; - - const instance = await internalLoadById(context, user, disseminatedFile.fileEntityId); - const data = buildContextDataForFile(instance, disseminatedFile.fileId, disseminatedFile.fileName, disseminatedFile.fileMarkings, { element }); - await publishUserAction({ - event_access: 'administration', - user, - event_type: 'file', - event_scope: 'disseminate', - context_data: data - }); - } + await sendDisseminationEmail(context, user, disseminationContext.object, disseminationContext.body, element.emails, attachFileIds); }; const throwErrorInDraftContext = (context, user, actionType) => { diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 9bfa3eff69ce..934f5ed7c8c7 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -18,15 +18,9 @@ import type { AuthContext, AuthUser } from '../../types/user'; import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../database/middleware-loader'; import { BackgroundTaskScope, type DisseminationListAddInput, type DisseminationListSendInput, type EditInput, type QueryDisseminationListsArgs } from '../../generated/graphql'; import { type BasicStoreEntityDisseminationList, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; -import { sendMail } from '../../database/smtp'; -import { getEntityFromCache } from '../../database/cache'; -import type { BasicStoreSettings } from '../../types/settings'; -import { ENTITY_TYPE_SETTINGS } from '../../schema/internalObject'; -import { downloadFile, loadFile } from '../../database/file-storage'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; -import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; +import conf, { BUS_TOPICS, logApp } from '../../config/conf'; import conf, { BUS_TOPICS, isFeatureEnabled } from '../../config/conf'; -import type { BasicStoreObject } from '../../types/store'; import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; import { generateInternalId } from '../../schema/identifier'; @@ -34,6 +28,13 @@ import { createInternalObject, deleteInternalObject } from '../../domain/interna import { updateAttribute } from '../../database/middleware'; import { notify } from '../../database/redis'; import { ACTION_TYPE_DISSEMINATE, createListTask } from '../../domain/backgroundTask-common'; +import { downloadFile, loadFile } from '../../database/file-storage'; +import { getEntityFromCache } from '../../database/cache'; +import { ENTITY_TYPE_SETTINGS } from '../../schema/internalObject'; +import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; +import { sendMail } from '../../database/smtp'; +import type { BasicStoreSettings } from '../../types/settings'; +import type { BasicStoreObject } from '../../types/store'; const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); @@ -47,15 +48,6 @@ export const findAll = (context: AuthContext, user: AuthUser, args: QueryDissemi return listEntitiesPaginated(context, user, [ENTITY_TYPE_DISSEMINATION_LIST], args); }; -interface SendMailArgs { - from: string; - to: string; - bcc?: string[]; - subject: string; - html: string; - attachments?: any[]; -} - export const sendToDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListSendInput) => { await checkEnterpriseEdition(context); const emailBodyFormatted = input.email_body.replaceAll('\n', '
'); @@ -79,33 +71,68 @@ export const sendToDisseminationList = async (context: AuthContext, user: AuthUs return true; }; -export const sendToDisseminationListSync = async (context: AuthContext, user: AuthUser, input: DisseminationListSendInput) => { - await checkEnterpriseEdition(context); +interface SendMailArgs { + from: string; + to: string; + bcc?: string[]; + subject: string; + html: string; + attachments?: any[]; +} + +/** + * Actual sending of email, used by the background task. + * @param context + * @param user + * @param object + * @param body + * @param emails + * @param attachFileIds + */ +export const sendDisseminationEmail = async (context: AuthContext, user: AuthUser, object: string, body: string, emails: string[], attachFileIds: string[]) => { + logApp.info('Calling send disemination', { object, body, emails, attachFileIds }); + const toEmail = conf.get('app:dissemination_list:to_email'); const settings = await getEntityFromCache(context, user, ENTITY_TYPE_SETTINGS); - const filePath = input.email_attached_file_id; - const file = await loadFile(context, user, filePath); - if (file && file.metaData.mimetype === 'application/pdf' && file.metaData.entity_id) { - const stream = await downloadFile(file.id); - const disseminationList = await findById(context, user, input.dissemination_list_id); - const emailBodyFormatted = input.email_body.replaceAll('\n', '
'); - const generatedEmail = ejs.render(EMAIL_TEMPLATE, { settings, body: emailBodyFormatted }); - const toEmail = conf.get('app:dissemination_list:to_email'); - const sendMailArgs: SendMailArgs = { - from: settings.platform_email, - to: toEmail, - bcc: [...disseminationList.emails, user.user_email], - subject: input.email_object, - html: generatedEmail, - attachments: [ - { - filename: file.name, - content: stream, - } - ], - }; - await sendMail(sendMailArgs); - const instance = await internalLoadById(context, user, file.metaData.entity_id); - const data = buildContextDataForFile(instance as BasicStoreObject, file.id, file.name, file.metaData.file_markings, { ...input, ...disseminationList }); + + const attachementListForSendMail = []; + const attachementFilesForActivity = []; + for (let i = 0; i < attachFileIds.length; i += 1) { + const attachFileId = attachFileIds[i]; + const file = await loadFile(context, user, attachFileId); + if (file && file.metaData.mimetype === 'application/pdf' && file.metaData.entity_id) { + const stream = await downloadFile(file.id); + attachementListForSendMail.push({ + filename: file.name, + content: stream, + }); + attachementFilesForActivity.push({ + fileId: file.id, + fileName: file.name, + fileMarkings: file.metaData.file_markings, + fileEntityId: file.metaData.entity_id + }); + } + } + + const emailBodyFormatted = body.replaceAll('\n', '
'); + const generatedEmailBody = ejs.render(EMAIL_TEMPLATE, { settings, body: emailBodyFormatted }); + + const sendMailArgs: SendMailArgs = { + from: settings.platform_email, + to: toEmail, + bcc: [...emails, user.user_email], + subject: object, + html: generatedEmailBody, + attachments: attachementListForSendMail, + }; + await sendMail(sendMailArgs); + logApp.info('[DISSEMINATION] email send.'); + + for (let i = 0; i < attachementFilesForActivity.length; i += 1) { + const disseminatedFile = attachementFilesForActivity[i]; + + const instance = await internalLoadById(context, user, disseminatedFile.fileEntityId); + const data = buildContextDataForFile(instance as BasicStoreObject, disseminatedFile.fileId, disseminatedFile.fileName, disseminatedFile.fileMarkings); await publishUserAction({ event_access: 'administration', user, @@ -113,9 +140,7 @@ export const sendToDisseminationListSync = async (context: AuthContext, user: Au event_scope: 'disseminate', context_data: data }); - return true; } - return false; }; export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { From f9226ed90dd5063aa526658d00e37e41ceb4b350 Mon Sep 17 00:00:00 2001 From: Angelique Date: Thu, 30 Jan 2025 11:24:19 +0100 Subject: [PATCH 69/81] Update --- .../src/modules/disseminationList/disseminationList-domain.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 934f5ed7c8c7..da7930b3d0dc 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -19,8 +19,7 @@ import { internalLoadById, listEntitiesPaginated, storeLoadById } from '../../da import { BackgroundTaskScope, type DisseminationListAddInput, type DisseminationListSendInput, type EditInput, type QueryDisseminationListsArgs } from '../../generated/graphql'; import { type BasicStoreEntityDisseminationList, ENTITY_TYPE_DISSEMINATION_LIST, type StoreEntityDisseminationList } from './disseminationList-types'; import { buildContextDataForFile, publishUserAction } from '../../listener/UserActionListener'; -import conf, { BUS_TOPICS, logApp } from '../../config/conf'; -import conf, { BUS_TOPICS, isFeatureEnabled } from '../../config/conf'; +import conf, { BUS_TOPICS, isFeatureEnabled, logApp } from '../../config/conf'; import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; import { generateInternalId } from '../../schema/identifier'; From f62b72e918d326e79df8f91c65d9e26c3016ad75 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 30 Jan 2025 11:38:09 +0100 Subject: [PATCH 70/81] [frontend/backend add limit in the config (#5551) --- opencti-platform/opencti-front/lang/back/de.json | 1 - opencti-platform/opencti-front/lang/back/en.json | 1 - opencti-platform/opencti-front/lang/back/es.json | 1 - opencti-platform/opencti-front/lang/back/fr.json | 1 - opencti-platform/opencti-front/lang/back/ja.json | 1 - opencti-platform/opencti-front/lang/back/ko.json | 1 - opencti-platform/opencti-front/lang/back/zh.json | 1 - .../StixCoreObjectContentFilesDissemination.tsx | 10 +++++++++- .../opencti-front/src/utils/hooks/useApiMutation.ts | 6 +++--- opencti-platform/opencti-graphql/config/default.json | 3 ++- .../disseminationList/disseminationList-domain.ts | 10 +++++----- 11 files changed, 19 insertions(+), 17 deletions(-) diff --git a/opencti-platform/opencti-front/lang/back/de.json b/opencti-platform/opencti-front/lang/back/de.json index c2aa8a7e4348..7ff5c6a07c7f 100644 --- a/opencti-platform/opencti-front/lang/back/de.json +++ b/opencti-platform/opencti-front/lang/back/de.json @@ -209,7 +209,6 @@ "Disabled": "Deaktiviert", "Dismissible": "Unzulässig", "Display name": "Name anzeigen", - "Dissemination list values count": "Verbreitungsliste Werte zählen", "DLL service": "DLL-Dienst", "Do you want to delete this support package?": "Möchten Sie dieses Support-Paket löschen?", "Draft change": "Entwurfsänderung", diff --git a/opencti-platform/opencti-front/lang/back/en.json b/opencti-platform/opencti-front/lang/back/en.json index c5cf90c4d298..8e477e72b128 100644 --- a/opencti-platform/opencti-front/lang/back/en.json +++ b/opencti-platform/opencti-front/lang/back/en.json @@ -209,7 +209,6 @@ "Disabled": "Disabled", "Dismissible": "Dismissible", "Display name": "Display name", - "Dissemination list values count": "Dissemination list values count", "DLL service": "DLL service", "Do you want to delete this support package?": "Do you want to delete this support package?", "Draft change": "Draft change", diff --git a/opencti-platform/opencti-front/lang/back/es.json b/opencti-platform/opencti-front/lang/back/es.json index 5a23935d1b67..be377716f2f7 100644 --- a/opencti-platform/opencti-front/lang/back/es.json +++ b/opencti-platform/opencti-front/lang/back/es.json @@ -209,7 +209,6 @@ "Disabled": "Desactivado", "Dismissible": "Despedir", "Display name": "Mostrar nombre", - "Dissemination list values count": "Recuento de valores de la lista de difusión", "DLL service": "Servicio DLL", "Do you want to delete this support package?": "¿Desea eliminar este paquete de soporte?", "Draft change": "Proyecto de cambio", diff --git a/opencti-platform/opencti-front/lang/back/fr.json b/opencti-platform/opencti-front/lang/back/fr.json index 16ecf521c31f..d488ab4e74e0 100644 --- a/opencti-platform/opencti-front/lang/back/fr.json +++ b/opencti-platform/opencti-front/lang/back/fr.json @@ -209,7 +209,6 @@ "Disabled": "Désactivé", "Dismissible": "Rejetable", "Display name": "Nom d'affichage", - "Dissemination list values count": "Liste de diffusion - comptage des valeurs", "DLL service": "Service DLL", "Do you want to delete this support package?": "Voulez-vous supprimer ce paquet de support ?", "Draft change": "Changement en brouillon", diff --git a/opencti-platform/opencti-front/lang/back/ja.json b/opencti-platform/opencti-front/lang/back/ja.json index 090d0c0efe64..ecff0be7ee54 100644 --- a/opencti-platform/opencti-front/lang/back/ja.json +++ b/opencti-platform/opencti-front/lang/back/ja.json @@ -209,7 +209,6 @@ "Disabled": "無効", "Dismissible": "無視可能", "Display name": "表示名", - "Dissemination list values count": "普及リストの数値カウント", "DLL service": "DLLサービス", "Do you want to delete this support package?": "このサポートパッケージを削除しますか?", "Draft change": "ドラフト変更", diff --git a/opencti-platform/opencti-front/lang/back/ko.json b/opencti-platform/opencti-front/lang/back/ko.json index 77580d45e153..04435addc8c5 100644 --- a/opencti-platform/opencti-front/lang/back/ko.json +++ b/opencti-platform/opencti-front/lang/back/ko.json @@ -209,7 +209,6 @@ "Disabled": "비활성화됨", "Dismissible": "해제 가능", "Display name": "표시 이름", - "Dissemination list values count": "배포 목록 값 수", "DLL service": "DLL 서비스", "Do you want to delete this support package?": "이 지원 패키지를 삭제하시겠습니까?", "Draft change": "초안 변경", diff --git a/opencti-platform/opencti-front/lang/back/zh.json b/opencti-platform/opencti-front/lang/back/zh.json index f802c8603dcb..3bc51493032b 100644 --- a/opencti-platform/opencti-front/lang/back/zh.json +++ b/opencti-platform/opencti-front/lang/back/zh.json @@ -209,7 +209,6 @@ "Disabled": "禁用", "Dismissible": "可忽略", "Display name": "显示名称", - "Dissemination list values count": "传播清单数值计数", "DLL service": "DLL 服务", "Do you want to delete this support package?": "您想删除此支持包吗?", "Draft change": "修改草案", diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index 77f1b71f087c..c7dfcb2df1e7 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -1,4 +1,5 @@ import React, { FunctionComponent } from 'react'; +import { Link } from 'react-router-dom'; import { Box, Button } from '@mui/material'; import { graphql } from 'react-relay'; import { Field, Formik } from 'formik'; @@ -53,7 +54,14 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent + {t_i18n('The background task has been executed. You can monitor it on')}{' '} + {t_i18n('the dedicated page')}. + + ), + }, ); const handleSubmit: FormikConfig['onSubmit'] = async ( diff --git a/opencti-platform/opencti-front/src/utils/hooks/useApiMutation.ts b/opencti-platform/opencti-front/src/utils/hooks/useApiMutation.ts index 7e8d65202022..0f43454a6634 100644 --- a/opencti-platform/opencti-front/src/utils/hooks/useApiMutation.ts +++ b/opencti-platform/opencti-front/src/utils/hooks/useApiMutation.ts @@ -1,6 +1,6 @@ import { Disposable, GraphQLTaggedNode, IEnvironment, MutationConfig, MutationParameters, PayloadError } from 'relay-runtime'; import { useMutation, UseMutationConfig } from 'react-relay'; -import { useCallback } from 'react'; +import { ReactNode, useCallback } from 'react'; import { MESSAGING$, relayErrorHandling } from '../../relay/environment'; import { RelayError } from '../../relay/relayTypes'; @@ -11,8 +11,8 @@ const useApiMutation = ( query: GraphQLTaggedNode, fn?: (environment: IEnvironment, config: MutationConfig) => Disposable, options?: { - errorMessage?: string, - successMessage?: string, + errorMessage?: string | ReactNode, + successMessage?: string | ReactNode, }, ): [(args: UseMutationConfig) => void, boolean] => { const [commit, inFlight] = useMutation(query, fn); diff --git a/opencti-platform/opencti-graphql/config/default.json b/opencti-platform/opencti-graphql/config/default.json index a793a6fceb07..154e2df0ef3a 100644 --- a/opencti-platform/opencti-graphql/config/default.json +++ b/opencti-platform/opencti-graphql/config/default.json @@ -127,7 +127,8 @@ }, "validation_mode": "workbench", "dissemination_list": { - "to_email": "no-reply@filigran.io" + "to_email": "no-reply@filigran.io", + "max_list_size": 500 } }, "demo_mode": false, diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index da7930b3d0dc..29f9927aeb56 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -37,7 +37,7 @@ import type { BasicStoreObject } from '../../types/store'; const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); -const EMAILS_LIMIT_BY_LIST = 500; +const MAX_DISSEMINATION_LIST_SIZE = conf.get('app:dissemination_list:max_list_size') || 500; export const findById = (context: AuthContext, user: AuthUser, id: string) => { return storeLoadById(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); @@ -147,8 +147,8 @@ export const addDisseminationList = async (context: AuthContext, user: AuthUser, throw UnsupportedError('Feature not yet available'); } const disseminationListInternalId = generateInternalId(); - if (input.emails.length > EMAILS_LIMIT_BY_LIST) { - throw UnsupportedError(`You cannot add more than ${EMAILS_LIMIT_BY_LIST} e-mail addresses`); + if (input.emails.length > MAX_DISSEMINATION_LIST_SIZE) { + throw UnsupportedError(`You cannot add more than ${MAX_DISSEMINATION_LIST_SIZE} e-mail addresses`); } const disseminationListToCreate = { name: input.name, @@ -167,8 +167,8 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au } // check the limit of emails const emailsInput = input.find((editInput) => editInput.key === 'emails'); - if (emailsInput && emailsInput.value.length > EMAILS_LIMIT_BY_LIST) { - throw UnsupportedError(`You cannot add more than ${EMAILS_LIMIT_BY_LIST} e-mail addresses`); + if (emailsInput && emailsInput.value.length > MAX_DISSEMINATION_LIST_SIZE) { + throw UnsupportedError(`You cannot have more than ${MAX_DISSEMINATION_LIST_SIZE} e-mail addresses`); } // Update the list const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, input); From a2f88a39cd7413853f107e37aa773b5e0adde07c Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 30 Jan 2025 14:42:54 +0100 Subject: [PATCH 71/81] [backend] Add feature flag and enterprise edition check to domain (#5551) --- .../disseminationList-domain.ts | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 29f9927aeb56..00b3c03c1aab 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -39,16 +39,27 @@ const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); const MAX_DISSEMINATION_LIST_SIZE = conf.get('app:dissemination_list:max_list_size') || 500; -export const findById = (context: AuthContext, user: AuthUser, id: string) => { +export const findById = async (context: AuthContext, user: AuthUser, id: string) => { + await checkEnterpriseEdition(context); + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } return storeLoadById(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST); }; -export const findAll = (context: AuthContext, user: AuthUser, args: QueryDisseminationListsArgs) => { +export const findAll = async (context: AuthContext, user: AuthUser, args: QueryDisseminationListsArgs) => { + await checkEnterpriseEdition(context); + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } return listEntitiesPaginated(context, user, [ENTITY_TYPE_DISSEMINATION_LIST], args); }; export const sendToDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListSendInput) => { await checkEnterpriseEdition(context); + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } const emailBodyFormatted = input.email_body.replaceAll('\n', '
'); const data = { @@ -89,6 +100,10 @@ interface SendMailArgs { * @param attachFileIds */ export const sendDisseminationEmail = async (context: AuthContext, user: AuthUser, object: string, body: string, emails: string[], attachFileIds: string[]) => { + await checkEnterpriseEdition(context); + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } logApp.info('Calling send disemination', { object, body, emails, attachFileIds }); const toEmail = conf.get('app:dissemination_list:to_email'); const settings = await getEntityFromCache(context, user, ENTITY_TYPE_SETTINGS); @@ -143,6 +158,7 @@ export const sendDisseminationEmail = async (context: AuthContext, user: AuthUse }; export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { + await checkEnterpriseEdition(context); if (!isDisseminationListEnabled) { throw UnsupportedError('Feature not yet available'); } @@ -160,6 +176,10 @@ export const addDisseminationList = async (context: AuthContext, user: AuthUser, }; export const fieldPatchDisseminationList = async (context: AuthContext, user: AuthUser, id: string, input: EditInput[]) => { + await checkEnterpriseEdition(context); + if (!isDisseminationListEnabled) { + throw UnsupportedError('Feature not yet available'); + } // Get the list const disseminationList = await findById(context, user, id); if (!disseminationList) { @@ -185,6 +205,7 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au }; export const deleteDisseminationList = async (context: AuthContext, user: AuthUser, id: string) => { + await checkEnterpriseEdition(context); if (!isDisseminationListEnabled) { throw UnsupportedError('Feature not yet available'); } From e47fc4e018faba434298d87d6f2ba19321f6f5a3 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 30 Jan 2025 15:04:29 +0100 Subject: [PATCH 72/81] [backend] add check emails in domain (#5551) --- .../disseminationList-domain.ts | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index 00b3c03c1aab..b0577990660c 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -22,7 +22,6 @@ import { buildContextDataForFile, publishUserAction } from '../../listener/UserA import conf, { BUS_TOPICS, isFeatureEnabled, logApp } from '../../config/conf'; import { FunctionalError, UnsupportedError } from '../../config/errors'; import { checkEnterpriseEdition } from '../../enterprise-edition/ee'; -import { generateInternalId } from '../../schema/identifier'; import { createInternalObject, deleteInternalObject } from '../../domain/internalObject'; import { updateAttribute } from '../../database/middleware'; import { notify } from '../../database/redis'; @@ -34,6 +33,7 @@ import { EMAIL_TEMPLATE } from '../../utils/emailTemplates/emailTemplate'; import { sendMail } from '../../database/smtp'; import type { BasicStoreSettings } from '../../types/settings'; import type { BasicStoreObject } from '../../types/store'; +import { emailChecker } from '../../utils/syntax'; const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); @@ -157,20 +157,27 @@ export const sendDisseminationEmail = async (context: AuthContext, user: AuthUse } }; +const validationEmails = (emails: string[]) => { + // check the limit of emails + if (emails.length > MAX_DISSEMINATION_LIST_SIZE) { + throw UnsupportedError(`You cannot have more than ${MAX_DISSEMINATION_LIST_SIZE} e-mail addresses`); + } + // check email validity + if (emails.some((email) => !emailChecker.test(email))) { + throw UnsupportedError('Emails are not correctly formatted'); + } +}; + export const addDisseminationList = async (context: AuthContext, user: AuthUser, input: DisseminationListAddInput) => { await checkEnterpriseEdition(context); if (!isDisseminationListEnabled) { throw UnsupportedError('Feature not yet available'); } - const disseminationListInternalId = generateInternalId(); - if (input.emails.length > MAX_DISSEMINATION_LIST_SIZE) { - throw UnsupportedError(`You cannot add more than ${MAX_DISSEMINATION_LIST_SIZE} e-mail addresses`); - } + validationEmails(input.emails); const disseminationListToCreate = { name: input.name, emails: input.emails, description: input.description, - internal_id: disseminationListInternalId, }; return createInternalObject(context, user, disseminationListToCreate, ENTITY_TYPE_DISSEMINATION_LIST); }; @@ -185,11 +192,9 @@ export const fieldPatchDisseminationList = async (context: AuthContext, user: Au if (!disseminationList) { throw FunctionalError(`Dissemination list ${id} cannot be found`); } - // check the limit of emails + // Validation emails const emailsInput = input.find((editInput) => editInput.key === 'emails'); - if (emailsInput && emailsInput.value.length > MAX_DISSEMINATION_LIST_SIZE) { - throw UnsupportedError(`You cannot have more than ${MAX_DISSEMINATION_LIST_SIZE} e-mail addresses`); - } + if (emailsInput) validationEmails(emailsInput.value); // Update the list const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_DISSEMINATION_LIST, input); // Publish Activity From 74a45c16d4bcf6d23eafabcda8f54d46b97a83dc Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 30 Jan 2025 15:19:44 +0100 Subject: [PATCH 73/81] [backend] Verify user capability and input for dissemination tasks (#5551) --- .../src/domain/backgroundTask-common.js | 29 +++++++++++++++++-- .../opencti-graphql/src/utils/access.ts | 1 + 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js b/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js index 7607b6a9d25b..827745b7ede9 100644 --- a/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js +++ b/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js @@ -4,7 +4,15 @@ import { ENTITY_TYPE_PUBLIC_DASHBOARD } from '../modules/publicDashboard/publicD import { generateInternalId, generateStandardId } from '../schema/identifier'; import { ENTITY_TYPE_BACKGROUND_TASK } from '../schema/internalObject'; import { now } from '../utils/format'; -import { isUserHasCapability, KNOWLEDGE_KNASKIMPORT, KNOWLEDGE_KNUPDATE, MEMBER_ACCESS_RIGHT_ADMIN, SETTINGS_SET_ACCESSES, SETTINGS_SETLABELS } from '../utils/access'; +import { + isUserHasCapability, + KNOWLEDGE_KNASKIMPORT, + KNOWLEDGE_KNDISSEMINATION, + KNOWLEDGE_KNUPDATE, + MEMBER_ACCESS_RIGHT_ADMIN, + SETTINGS_SET_ACCESSES, + SETTINGS_SETLABELS +} from '../utils/access'; import { isKnowledge, KNOWLEDGE_DELETE, KNOWLEDGE_UPDATE } from '../schema/general'; import { ForbiddenAccess, UnsupportedError } from '../config/errors'; import { elIndex } from '../database/engine'; @@ -20,6 +28,7 @@ import { extractFilterGroupValues, isFilterGroupNotEmpty } from '../utils/filter import { getDraftContext } from '../utils/draftContext'; import { ENTITY_TYPE_DRAFT_WORKSPACE } from '../modules/draftWorkspace/draftWorkspace-types'; import { ENTITY_TYPE_PLAYBOOK } from '../modules/playbook/playbook-types'; +import { ENTITY_TYPE_DISSEMINATION_LIST } from '../modules/disseminationList/disseminationList-types'; export const TASK_TYPE_QUERY = 'QUERY'; export const TASK_TYPE_RULE = 'RULE'; @@ -240,7 +249,23 @@ export const checkActionValidity = async (context, user, input, scope, taskType) } } } else if (scope === BackgroundTaskScope.Dissemination) { - // TODO check capa and input + const isAuthorized = isUserHasCapability(user, KNOWLEDGE_KNDISSEMINATION); + if (!isAuthorized) { + throw ForbiddenAccess(); + } + if (taskType === TASK_TYPE_QUERY) { + const isDisseminationLists = entityTypeFilters.length === 1 + && entityTypeFilters[0].values.length === 1 + && entityTypeFilters[0].values[0] === ENTITY_TYPE_DISSEMINATION_LIST; + if (!isDisseminationLists) { + throw ForbiddenAccess('The targeted ids are not dissemination lists.'); + } + } else if (taskType === TASK_TYPE_LIST) { + const objects = await internalFindByIds(context, user, ids); + if (objects.some((o) => o.entity_type !== ENTITY_TYPE_DISSEMINATION_LIST)) { + throw ForbiddenAccess('The targeted ids are not dissemination lists.'); + } + } } else { // Background task with an invalid scope throw UnsupportedError('A background task should be of scope: SETTINGS, KNOWLEDGE, USER, IMPORT, DASHBOARD, PUBLIC_DASHBOARD.'); } diff --git a/opencti-platform/opencti-graphql/src/utils/access.ts b/opencti-platform/opencti-graphql/src/utils/access.ts index 4ddab55bfbae..88ad3394cec2 100644 --- a/opencti-platform/opencti-graphql/src/utils/access.ts +++ b/opencti-platform/opencti-graphql/src/utils/access.ts @@ -36,6 +36,7 @@ export const KNOWLEDGE_KNUPDATE = 'KNOWLEDGE_KNUPDATE'; export const KNOWLEDGE_ORGANIZATION_RESTRICT = 'KNOWLEDGE_KNUPDATE_KNORGARESTRICT'; export const KNOWLEDGE_KNUPDATE_KNMANAGEAUTHMEMBERS = 'KNOWLEDGE_KNUPDATE_KNMANAGEAUTHMEMBERS'; export const KNOWLEDGE_KNASKIMPORT = 'KNOWLEDGE_KNASKIMPORT'; +export const KNOWLEDGE_KNDISSEMINATION = 'KNOWLEDGE_KNDISSEMINATION'; export const VIRTUAL_ORGANIZATION_ADMIN = 'VIRTUAL_ORGANIZATION_ADMIN'; export const SETTINGS_SETACCESSES = 'SETTINGS_SETACCESSES'; export const SETTINGS_SECURITYACTIVITY = 'SETTINGS_SECURITYACTIVITY'; From 9fd492fb7d3588fb83c642fac4203016332bf541 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 30 Jan 2025 15:10:11 +0100 Subject: [PATCH 74/81] [backend] replace test file (#5551) --- .../01-database}/disseminationList-test.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename opencti-platform/opencti-graphql/tests/{01-unit/domain => 02-integration/01-database}/disseminationList-test.ts (100%) diff --git a/opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts b/opencti-platform/opencti-graphql/tests/02-integration/01-database/disseminationList-test.ts similarity index 100% rename from opencti-platform/opencti-graphql/tests/01-unit/domain/disseminationList-test.ts rename to opencti-platform/opencti-graphql/tests/02-integration/01-database/disseminationList-test.ts From 62413bf1cefce2eb2e015ebbdb6ef79374ee92e5 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 30 Jan 2025 15:21:53 +0100 Subject: [PATCH 75/81] [frontend] refacto field + replace files (#5551) --- .../fields}/DisseminationListField.tsx | 24 ++++++++++++------- ...tixCoreObjectContentFilesDissemination.tsx | 8 +++++-- 2 files changed, 22 insertions(+), 10 deletions(-) rename opencti-platform/opencti-front/src/{private/components/settings/dissemination_lists => components/fields}/DisseminationListField.tsx (80%) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx b/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx similarity index 80% rename from opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx rename to opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx index dd0a984f26c8..b373cec4949e 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListField.tsx +++ b/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx @@ -3,9 +3,8 @@ import React, { FunctionComponent, useEffect, useState } from 'react'; import MenuItem from '@mui/material/MenuItem'; import { Field } from 'formik'; import { DisseminationListFieldQuery$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListFieldQuery.graphql'; -import { fetchQuery } from '../../../../relay/environment'; -import { useFormatter } from '../../../../components/i18n'; -import SelectField from '../../../../components/fields/SelectField'; +import { fetchQuery } from '../../relay/environment'; +import SelectField from './SelectField'; export const disseminationListFieldQuery = graphql` query DisseminationListFieldQuery( @@ -30,8 +29,17 @@ export const disseminationListFieldQuery = graphql` } `; -const DisseminationListField: FunctionComponent = () => { - const { t_i18n } = useFormatter(); +interface DisseminationListFieldProps { + label: string, + name: string, + required?: boolean, +} + +const DisseminationListField: FunctionComponent = ( + label, + name, + required = false, +) => { const [lists, setLists] = useState(null); const fetchDisseminationLists = async () => { @@ -49,9 +57,9 @@ const DisseminationListField: FunctionComponent = () => { return ( {lists?.edges?.map((edge) => ( diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index c7dfcb2df1e7..b4cf56923c4b 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -8,7 +8,7 @@ import * as Yup from 'yup'; import { marked } from 'marked'; import DOMPurify from 'dompurify'; import { useTheme } from '@mui/styles'; -import DisseminationListField from '@components/settings/dissemination_lists/DisseminationListField'; +import DisseminationListField from '../../../../components/fields/DisseminationListField'; import { fieldSpacingContainerStyle } from '../../../../utils/field'; import TextField from '../../../../components/TextField'; import MarkdownField from '../../../../components/fields/MarkdownField'; @@ -107,7 +107,11 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent {({ isSubmitting, submitForm, handleReset }) => ( - + Date: Thu, 30 Jan 2025 16:31:23 +0100 Subject: [PATCH 76/81] [frontend] fix import (#5551) --- .../src/components/fields/DisseminationListField.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx b/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx index b373cec4949e..2db8508785af 100644 --- a/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx +++ b/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx @@ -2,7 +2,7 @@ import { graphql } from 'react-relay'; import React, { FunctionComponent, useEffect, useState } from 'react'; import MenuItem from '@mui/material/MenuItem'; import { Field } from 'formik'; -import { DisseminationListFieldQuery$data } from '@components/settings/dissemination_lists/__generated__/DisseminationListFieldQuery.graphql'; +import { DisseminationListFieldQuery$data } from './__generated__/DisseminationListFieldQuery.graphql'; import { fetchQuery } from '../../relay/environment'; import SelectField from './SelectField'; From 834d573eeedbcc7712cf8e867cb46446516efe2b Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 30 Jan 2025 17:07:39 +0100 Subject: [PATCH 77/81] [frontend] add last translation (#5551) --- opencti-platform/opencti-front/lang/front/de.json | 2 ++ opencti-platform/opencti-front/lang/front/en.json | 2 ++ opencti-platform/opencti-front/lang/front/es.json | 2 ++ opencti-platform/opencti-front/lang/front/fr.json | 2 ++ opencti-platform/opencti-front/lang/front/ja.json | 2 ++ opencti-platform/opencti-front/lang/front/ko.json | 2 ++ opencti-platform/opencti-front/lang/front/zh.json | 2 ++ .../dissemination_lists/DisseminationListForm.tsx | 2 +- .../dissemination_lists/DisseminationListUtils.ts | 13 ++++++++----- 9 files changed, 23 insertions(+), 6 deletions(-) diff --git a/opencti-platform/opencti-front/lang/front/de.json b/opencti-platform/opencti-front/lang/front/de.json index bb50507b8634..d2dc4c1a9a12 100644 --- a/opencti-platform/opencti-front/lang/front/de.json +++ b/opencti-platform/opencti-front/lang/front/de.json @@ -990,6 +990,7 @@ "Duplicate the dashboard": "Duplizieren Sie das Dashboard", "Dynamic source filters": "Dynamische Quellfilter", "Dynamic target filters": "Dynamische Zielfilter", + "Each line must contain a valid email address": "Jede Zeile muss eine gültige E-Mail Adresse enthalten", "Each tick value must be between min and max value": "Jeder Tick-Wert muss zwischen Min- und Max-Wert liegen", "Edit the selected item": "Das ausgewählte Element bearbeiten", "Edition": "Ausgabe", @@ -3407,6 +3408,7 @@ "You are trying to check the security posture of your organization against this threat intelligence set of knowledge using the OpenBAS platform.": "Sie versuchen, die Sicherheitslage Ihres Unternehmens mit Hilfe der OpenBAS-Plattform anhand dieses Wissens über Bedrohungen zu überprüfen.", "You can configure your platform to consume OpenCTI Streams. A list of public and commercial native feeds is available in the": "Sie können Ihre Plattform so konfigurieren, dass sie OpenCTI-Streams konsumieren kann. Eine Liste öffentlicher und kommerzieller nativer Feeds finden Sie in der", "You can enable/disable default values for marking in the customization of each entity type.": "Sie können in der Anpassung jedes Entitätstyps Standardwerte für die Markierung aktivieren/deaktivieren.", + "You cannot have more than 500 e-mail addresses": "Sie können nicht mehr als 500 E-Mail-Adressen haben", "You do not have any access to the knowledge of this OpenCTI instance.": "Sie haben keinen Zugriff auf das Wissen dieser OpenCTI-Instanz.", "You have more than 50 values": "Sie haben mehr als 50 Werte", "You have no subscription for the moment.": "Sie haben im Moment kein Abonnement.", diff --git a/opencti-platform/opencti-front/lang/front/en.json b/opencti-platform/opencti-front/lang/front/en.json index 673b73cc156d..2ceb390298bc 100644 --- a/opencti-platform/opencti-front/lang/front/en.json +++ b/opencti-platform/opencti-front/lang/front/en.json @@ -990,6 +990,7 @@ "Duplicate the dashboard": "Duplicate the dashboard", "Dynamic source filters": "Dynamic source filters", "Dynamic target filters": "Dynamic target filters", + "Each line must contain a valid email address": "Each line must contain a valid email address", "Each tick value must be between min and max value": "Each tick value must be between min and max value", "Edit the selected item": "Edit the selected item", "Edition": "Edition", @@ -3407,6 +3408,7 @@ "You are trying to check the security posture of your organization against this threat intelligence set of knowledge using the OpenBAS platform.": "You are trying to check the security posture of your organization against this threat intelligence set of knowledge using the OpenBAS platform.", "You can configure your platform to consume OpenCTI Streams. A list of public and commercial native feeds is available in the": "You can configure your platform to consume OpenCTI Streams. A list of public and commercial native feeds is available in the", "You can enable/disable default values for marking in the customization of each entity type.": "You can enable/disable default values for marking in the customization of each entity type.", + "You cannot have more than 500 e-mail addresses": "You cannot have more than 500 e-mail addresses", "You do not have any access to the knowledge of this OpenCTI instance.": "You do not have any access to the knowledge of this OpenCTI instance.", "You have more than 50 values": "You have more than 50 values", "You have no subscription for the moment.": "You have no subscription for the moment.", diff --git a/opencti-platform/opencti-front/lang/front/es.json b/opencti-platform/opencti-front/lang/front/es.json index bbb4e8487fc3..5bd48d8ccff4 100644 --- a/opencti-platform/opencti-front/lang/front/es.json +++ b/opencti-platform/opencti-front/lang/front/es.json @@ -990,6 +990,7 @@ "Duplicate the dashboard": "Duplicar el salpicadero", "Dynamic source filters": "Filtros de fuente dinámicos", "Dynamic target filters": "Filtros dinámicos de destino", + "Each line must contain a valid email address": "Cada línea debe contener una dirección de correo electrónico válida", "Each tick value must be between min and max value": "Cada valor de tick debe estar entre el valor mínimo y máximo", "Edit the selected item": "Quitar el elemento seleccionado", "Edition": "Edición", @@ -3407,6 +3408,7 @@ "You are trying to check the security posture of your organization against this threat intelligence set of knowledge using the OpenBAS platform.": "Usted está tratando de comprobar la postura de seguridad de su organización contra este conjunto de conocimientos de inteligencia de amenazas utilizando la plataforma OpenBAS.", "You can configure your platform to consume OpenCTI Streams. A list of public and commercial native feeds is available in the": "Puede configurar su plataforma para consumir OpenCTI Streams. Una lista de feeds nativos públicos y comerciales está disponible en la sección", "You can enable/disable default values for marking in the customization of each entity type.": "Puede activar/desactivar los valores por defecto para el marcado en la personalización de cada tipo de entidad.", + "You cannot have more than 500 e-mail addresses": "No puede tener más de 500 direcciones de correo electrónico", "You do not have any access to the knowledge of this OpenCTI instance.": "No tienes acceso al conocimiento de esta instancia de OpenCTI.", "You have more than 50 values": "Tiene más de 50 valores", "You have no subscription for the moment.": "No tienes ninguna suscripción por el momento.", diff --git a/opencti-platform/opencti-front/lang/front/fr.json b/opencti-platform/opencti-front/lang/front/fr.json index ca2844502fe1..4d2e5214f493 100644 --- a/opencti-platform/opencti-front/lang/front/fr.json +++ b/opencti-platform/opencti-front/lang/front/fr.json @@ -990,6 +990,7 @@ "Duplicate the dashboard": "Dupliquer le tableau de bord", "Dynamic source filters": "Filtres de source dynamique", "Dynamic target filters": "Filtres dynamiques cibles", + "Each line must contain a valid email address": "Chaque ligne doit contenir une adresse électronique valide", "Each tick value must be between min and max value": "Chaque valeur de marqueur doit être comprise entre la valeur min et max", "Edit the selected item": "Editer l'élément sélectionné", "Edition": "Edition", @@ -3407,6 +3408,7 @@ "You are trying to check the security posture of your organization against this threat intelligence set of knowledge using the OpenBAS platform.": "Vous essayez de vérifier la position de sécurité de votre organisation par rapport à cet ensemble de connaissances sur les menaces à l'aide de la plate-forme OpenBAS.", "You can configure your platform to consume OpenCTI Streams. A list of public and commercial native feeds is available in the": "Vous pouvez configurer votre plateforme pour consommer les flux OpenCTI. Une liste de flux natifs publics et commerciaux est disponible dans la section", "You can enable/disable default values for marking in the customization of each entity type.": "Vous pouvez activer/désactiver les valeurs par défaut pour le marquage dans la personnalisation de chaque type d'entité.", + "You cannot have more than 500 e-mail addresses": "Vous ne pouvez pas avoir plus de 500 adresses électroniques", "You do not have any access to the knowledge of this OpenCTI instance.": "Vous n'avez aucun accès à la connaissance de cette instance OpenCTI.", "You have more than 50 values": "Vous avez plus de 50 valeurs", "You have no subscription for the moment.": "Vous n'avez aucune souscription pour le moment.", diff --git a/opencti-platform/opencti-front/lang/front/ja.json b/opencti-platform/opencti-front/lang/front/ja.json index be32eae848d9..e23db4ff9741 100644 --- a/opencti-platform/opencti-front/lang/front/ja.json +++ b/opencti-platform/opencti-front/lang/front/ja.json @@ -990,6 +990,7 @@ "Duplicate the dashboard": "ダッシュボードの複製", "Dynamic source filters": "ダイナミック・ソース・フィルタ", "Dynamic target filters": "動的ターゲットフィルタ", + "Each line must contain a valid email address": "各行には有効なEメールアドレスを記載すること", "Each tick value must be between min and max value": "各マーカー値は最小値と最大値の間にある必要があります", "Edit the selected item": "選択したアイテムを編集する", "Edition": "エディション", @@ -3407,6 +3408,7 @@ "You are trying to check the security posture of your organization against this threat intelligence set of knowledge using the OpenBAS platform.": "あなたは、OpenBASプラットフォームを使用して、この脅威インテリジェンスセットの知識に対して組織のセキュリティ態勢をチェックしようとしています。", "You can configure your platform to consume OpenCTI Streams. A list of public and commercial native feeds is available in the": "OpenCTIストリームを消費するようにプラットフォームを設定することができます。公開および商用ネイティブフィードのリストは", "You can enable/disable default values for marking in the customization of each entity type.": "各エンティティ・タイプのカスタマイズで、マーキングのデフォルト値の有効/無効を設定できます。", + "You cannot have more than 500 e-mail addresses": "500を超える電子メールアドレスを持つことはできません。", "You do not have any access to the knowledge of this OpenCTI instance.": "このOpenCTIインスタンスのナレッジデータにアクセスする権限がありません。", "You have more than 50 values": "50以上の値があります", "You have no subscription for the moment.": "現在、サブスクリプションはありません。", diff --git a/opencti-platform/opencti-front/lang/front/ko.json b/opencti-platform/opencti-front/lang/front/ko.json index 8087d3fe5009..289791e1ff52 100644 --- a/opencti-platform/opencti-front/lang/front/ko.json +++ b/opencti-platform/opencti-front/lang/front/ko.json @@ -990,6 +990,7 @@ "Duplicate the dashboard": "대시보드 복제", "Dynamic source filters": "동적 소스 필터", "Dynamic target filters": "동적 대상 필터", + "Each line must contain a valid email address": "각 줄에는 유효한 이메일 주소가 포함되어야 합니다", "Each tick value must be between min and max value": "각 틱 값은 최소값과 최대값 사이여야 합니다", "Edit the selected item": "선택한 항목 편집", "Edition": "판", @@ -3407,6 +3408,7 @@ "You are trying to check the security posture of your organization against this threat intelligence set of knowledge using the OpenBAS platform.": "OpenBAS 플랫폼을 사용하여 이 위협 정보 세트에 대한 조직의 보안 태세를 확인하려고 합니다.", "You can configure your platform to consume OpenCTI Streams. A list of public and commercial native feeds is available in the": "OpenCTI 스트림을 사용하도록 플랫폼을 구성할 수 있습니다. 공개 및 상업용 네이티브 피드 목록은", "You can enable/disable default values for marking in the customization of each entity type.": "각 엔터티 유형의 맞춤 설정에서 마킹의 기본값을 활성화/비활성화할 수 있습니다.", + "You cannot have more than 500 e-mail addresses": "이메일 주소는 500개 이상 보유할 수 없습니다", "You do not have any access to the knowledge of this OpenCTI instance.": "이 OpenCTI 인스턴스의 지식에 액세스할 수 없습니다.", "You have more than 50 values": "50개 이상의 값이 있습니다", "You have no subscription for the moment.": "현재 구독이 없습니다.", diff --git a/opencti-platform/opencti-front/lang/front/zh.json b/opencti-platform/opencti-front/lang/front/zh.json index aec9030f2f11..cb54f7f288cd 100644 --- a/opencti-platform/opencti-front/lang/front/zh.json +++ b/opencti-platform/opencti-front/lang/front/zh.json @@ -990,6 +990,7 @@ "Duplicate the dashboard": "复制仪表板", "Dynamic source filters": "动态源过滤器", "Dynamic target filters": "动态目标过滤器", + "Each line must contain a valid email address": "每行必须包含一个有效的电子邮件地址", "Each tick value must be between min and max value": "每个刻度值必须介于最小值和最大值之间", "Edit the selected item": "编辑选中项", "Edition": "版本", @@ -3407,6 +3408,7 @@ "You are trying to check the security posture of your organization against this threat intelligence set of knowledge using the OpenBAS platform.": "您正尝试使用 OpenBAS 平台,根据这套威胁情报知识检查贵组织的安全态势。", "You can configure your platform to consume OpenCTI Streams. A list of public and commercial native feeds is available in the": "您可以对平台进行配置,以便使用 OpenCTI 流。公共和商业原生信息源列表可在", "You can enable/disable default values for marking in the customization of each entity type.": "您可以在定制每个实体类型时启用/禁用标记的默认值。", + "You cannot have more than 500 e-mail addresses": "电子邮件地址不能超过 500 个", "You do not have any access to the knowledge of this OpenCTI instance.": "您无权访问此OpenCTI实例的知识数据。", "You have more than 50 values": "您有超过 50 个值", "You have no subscription for the moment.": "您暂时没有订阅。", diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx index 04ba58d8fe73..6bea5a376bd3 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx @@ -35,7 +35,7 @@ const DisseminationListForm: FunctionComponent = ({ const { t_i18n } = useFormatter(); const theme = useTheme(); const isEdition = !!defaultValues; - const validation = disseminationListValidator(t_i18n); + const validation = disseminationListValidator(); const initialValues: DisseminationListFormData = defaultValues ?? { name: '', diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts index 7b1d49340e77..033d12665a15 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -1,14 +1,17 @@ import * as Yup from 'yup'; +import { useFormatter } from '../../../../components/i18n'; -export const disseminationListValidator = (t: (value: string) => string) => { +const { t_i18n } = useFormatter(); + +export const disseminationListValidator = () => { return Yup.object().shape({ - name: Yup.string().trim().min(2).required(t('This field is required')), + name: Yup.string().trim().min(2).required(t_i18n('This field is required')), description: Yup.string(), emails: Yup.string() - .required(t('This field is required')) + .required(t_i18n('This field is required')) .test( 'emails', - t('Each line must contain a valid email address'), + t_i18n('Each line must contain a valid email address'), (value) => { const emails = value.split('\n').map((email) => email.trim()); return emails.every((email) => email !== '' && Yup.string().email().isValidSync(email)); @@ -16,7 +19,7 @@ export const disseminationListValidator = (t: (value: string) => string) => { ) .test( 'max-emails', - t('You cannot add more than 500 e-mail addresses'), + t_i18n('You cannot have more than 500 e-mail addresses'), (value) => { const emails = value.split('\n').map((email) => email.trim()); return emails.length <= 500; From 2a2e45cfedc546c39bd5c39688f8397d3dd2c133 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 30 Jan 2025 17:15:02 +0100 Subject: [PATCH 78/81] [backend] Correction of feature flag writing (#5551) --- .../src/modules/disseminationList/disseminationList-domain.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts index b0577990660c..b45a0083f0ba 100644 --- a/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts +++ b/opencti-platform/opencti-graphql/src/modules/disseminationList/disseminationList-domain.ts @@ -35,7 +35,7 @@ import type { BasicStoreSettings } from '../../types/settings'; import type { BasicStoreObject } from '../../types/store'; import { emailChecker } from '../../utils/syntax'; -const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLIST'); +const isDisseminationListEnabled = isFeatureEnabled('DISSEMINATIONLISTS'); const MAX_DISSEMINATION_LIST_SIZE = conf.get('app:dissemination_list:max_list_size') || 500; From 113b4fe6114b42b07ffb5af1375bf07cb55a2e4c Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 30 Jan 2025 17:39:43 +0100 Subject: [PATCH 79/81] [backend] Remove TASK_TYPE_QUERY (#5551) --- .../opencti-graphql/src/domain/backgroundTask-common.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js b/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js index 827745b7ede9..d33a1987e15f 100644 --- a/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js +++ b/opencti-platform/opencti-graphql/src/domain/backgroundTask-common.js @@ -253,14 +253,7 @@ export const checkActionValidity = async (context, user, input, scope, taskType) if (!isAuthorized) { throw ForbiddenAccess(); } - if (taskType === TASK_TYPE_QUERY) { - const isDisseminationLists = entityTypeFilters.length === 1 - && entityTypeFilters[0].values.length === 1 - && entityTypeFilters[0].values[0] === ENTITY_TYPE_DISSEMINATION_LIST; - if (!isDisseminationLists) { - throw ForbiddenAccess('The targeted ids are not dissemination lists.'); - } - } else if (taskType === TASK_TYPE_LIST) { + if (taskType === TASK_TYPE_LIST) { const objects = await internalFindByIds(context, user, ids); if (objects.some((o) => o.entity_type !== ENTITY_TYPE_DISSEMINATION_LIST)) { throw ForbiddenAccess('The targeted ids are not dissemination lists.'); From e6d627970bedb744b78a2d3bb578c461e9767fa4 Mon Sep 17 00:00:00 2001 From: FrancoisGrunert Date: Thu, 30 Jan 2025 18:25:40 +0100 Subject: [PATCH 80/81] [frontend] fix hook (#5551) --- .../dissemination_lists/DisseminationListForm.tsx | 2 +- .../dissemination_lists/DisseminationListUtils.ts | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx index 6bea5a376bd3..04ba58d8fe73 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListForm.tsx @@ -35,7 +35,7 @@ const DisseminationListForm: FunctionComponent = ({ const { t_i18n } = useFormatter(); const theme = useTheme(); const isEdition = !!defaultValues; - const validation = disseminationListValidator(); + const validation = disseminationListValidator(t_i18n); const initialValues: DisseminationListFormData = defaultValues ?? { name: '', diff --git a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts index 033d12665a15..d3d0c091ee48 100644 --- a/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts +++ b/opencti-platform/opencti-front/src/private/components/settings/dissemination_lists/DisseminationListUtils.ts @@ -1,17 +1,14 @@ import * as Yup from 'yup'; -import { useFormatter } from '../../../../components/i18n'; -const { t_i18n } = useFormatter(); - -export const disseminationListValidator = () => { +export const disseminationListValidator = (t: (value: string) => string) => { return Yup.object().shape({ - name: Yup.string().trim().min(2).required(t_i18n('This field is required')), + name: Yup.string().trim().min(2).required(t('This field is required')), description: Yup.string(), emails: Yup.string() - .required(t_i18n('This field is required')) + .required(t('This field is required')) .test( 'emails', - t_i18n('Each line must contain a valid email address'), + t('Each line must contain a valid email address'), (value) => { const emails = value.split('\n').map((email) => email.trim()); return emails.every((email) => email !== '' && Yup.string().email().isValidSync(email)); @@ -19,7 +16,7 @@ export const disseminationListValidator = () => { ) .test( 'max-emails', - t_i18n('You cannot have more than 500 e-mail addresses'), + t('You cannot have more than 500 e-mail addresses'), (value) => { const emails = value.split('\n').map((email) => email.trim()); return emails.length <= 500; From acef7bcc3118bce0e6b3fb110aacf266eebb0020 Mon Sep 17 00:00:00 2001 From: Gwendoline Favre-Felix Date: Thu, 30 Jan 2025 18:34:01 +0100 Subject: [PATCH 81/81] [frontend] Remove refacto DisseminationListField (#5551) --- .../fields/DisseminationListField.tsx | 20 ++++++------------- ...tixCoreObjectContentFilesDissemination.tsx | 6 +----- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx b/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx index 2db8508785af..33b2c7a7c5ca 100644 --- a/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx +++ b/opencti-platform/opencti-front/src/components/fields/DisseminationListField.tsx @@ -5,6 +5,7 @@ import { Field } from 'formik'; import { DisseminationListFieldQuery$data } from './__generated__/DisseminationListFieldQuery.graphql'; import { fetchQuery } from '../../relay/environment'; import SelectField from './SelectField'; +import { useFormatter } from '../i18n'; export const disseminationListFieldQuery = graphql` query DisseminationListFieldQuery( @@ -29,17 +30,8 @@ export const disseminationListFieldQuery = graphql` } `; -interface DisseminationListFieldProps { - label: string, - name: string, - required?: boolean, -} - -const DisseminationListField: FunctionComponent = ( - label, - name, - required = false, -) => { +const DisseminationListField: FunctionComponent = () => { + const { t_i18n } = useFormatter(); const [lists, setLists] = useState(null); const fetchDisseminationLists = async () => { @@ -57,9 +49,9 @@ const DisseminationListField: FunctionComponent = ( return ( {lists?.edges?.map((edge) => ( diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx index b4cf56923c4b..8de07ddb3a51 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_objects/StixCoreObjectContentFilesDissemination.tsx @@ -107,11 +107,7 @@ const StixCoreObjectContentFilesDissemination: FunctionComponent {({ isSubmitting, submitForm, handleReset }) => ( - +