pycti 6.6.2__tar.gz → 6.6.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pycti might be problematic. Click here for more details.
- {pycti-6.6.2 → pycti-6.6.4}/PKG-INFO +12 -12
- {pycti-6.6.2 → pycti-6.6.4}/pycti/__init__.py +1 -1
- {pycti-6.6.2 → pycti-6.6.4}/pycti/api/opencti_api_client.py +34 -18
- {pycti-6.6.2 → pycti-6.6.4}/pycti/connector/opencti_connector_helper.py +8 -4
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_attack_pattern.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_campaign.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_case_incident.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_case_rfi.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_case_rft.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_course_of_action.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_data_component.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_data_source.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_event.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_feedback.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_grouping.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_identity.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_incident.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_infrastructure.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_intrusion_set.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_language.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_location.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_malware.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_malware_analysis.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_narrative.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_note.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_observed_data.py +16 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_opinion.py +8 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_stix_core_relationship.py +8 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_stix_sighting_relationship.py +8 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_task.py +8 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_threat_actor_group.py +8 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_threat_actor_individual.py +8 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_tool.py +8 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_vulnerability.py +8 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti.egg-info/PKG-INFO +12 -12
- {pycti-6.6.2 → pycti-6.6.4}/pycti.egg-info/requires.txt +11 -11
- {pycti-6.6.2 → pycti-6.6.4}/setup.cfg +11 -11
- {pycti-6.6.2 → pycti-6.6.4}/LICENSE +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/README.md +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/api/__init__.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/api/opencti_api_connector.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/api/opencti_api_playbook.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/api/opencti_api_work.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/connector/__init__.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/connector/opencti_connector.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/connector/opencti_metric_handler.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/__init__.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/indicator/__init__.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/indicator/opencti_indicator_properties.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_capability.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_channel.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_external_reference.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_group.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_indicator.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_kill_chain_phase.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_label.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_marking_definition.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_report.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_role.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_settings.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_stix.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_stix_core_object.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_stix_cyber_observable.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_stix_domain_object.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_stix_nested_ref_relationship.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_stix_object_or_stix_relationship.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_threat_actor.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_user.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/opencti_vocabulary.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/stix_cyber_observable/__init__.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/stix_cyber_observable/opencti_stix_cyber_observable_deprecated.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/entities/stix_cyber_observable/opencti_stix_cyber_observable_properties.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/utils/__init__.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/utils/constants.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/utils/opencti_logger.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/utils/opencti_stix2.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/utils/opencti_stix2_identifier.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/utils/opencti_stix2_splitter.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/utils/opencti_stix2_update.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti/utils/opencti_stix2_utils.py +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti.egg-info/SOURCES.txt +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti.egg-info/dependency_links.txt +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pycti.egg-info/top_level.txt +0 -0
- {pycti-6.6.2 → pycti-6.6.4}/pyproject.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pycti
|
|
3
|
-
Version: 6.6.
|
|
3
|
+
Version: 6.6.4
|
|
4
4
|
Summary: Python API client for OpenCTI.
|
|
5
5
|
Home-page: https://github.com/OpenCTI-Platform/client-python
|
|
6
6
|
Author: Filigran
|
|
@@ -23,37 +23,37 @@ Description-Content-Type: text/markdown
|
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
Requires-Dist: datefinder~=0.7.3
|
|
25
25
|
Requires-Dist: pika~=1.3.0
|
|
26
|
-
Requires-Dist: pydantic
|
|
26
|
+
Requires-Dist: pydantic~=2.11.3
|
|
27
27
|
Requires-Dist: python-magic~=0.4.27; sys_platform == "linux" or sys_platform == "darwin"
|
|
28
28
|
Requires-Dist: python-magic-bin~=0.4.14; sys_platform == "win32"
|
|
29
|
-
Requires-Dist: python_json_logger~=
|
|
29
|
+
Requires-Dist: python_json_logger~=3.3.0
|
|
30
30
|
Requires-Dist: PyYAML~=6.0
|
|
31
|
-
Requires-Dist: requests
|
|
32
|
-
Requires-Dist: setuptools~=
|
|
31
|
+
Requires-Dist: requests~=2.32.3
|
|
32
|
+
Requires-Dist: setuptools~=78.1.0
|
|
33
33
|
Requires-Dist: cachetools~=5.5.0
|
|
34
34
|
Requires-Dist: prometheus-client~=0.21.1
|
|
35
|
-
Requires-Dist: opentelemetry-api
|
|
36
|
-
Requires-Dist: opentelemetry-sdk
|
|
35
|
+
Requires-Dist: opentelemetry-api~=1.32.0
|
|
36
|
+
Requires-Dist: opentelemetry-sdk~=1.32.0
|
|
37
37
|
Requires-Dist: deprecation~=2.1.0
|
|
38
38
|
Requires-Dist: fastapi<0.116.0,>=0.115.8
|
|
39
39
|
Requires-Dist: uvicorn[standard]<0.35.0,>=0.33.0
|
|
40
40
|
Requires-Dist: filigran-sseclient>=1.0.2
|
|
41
41
|
Requires-Dist: stix2~=3.0.1
|
|
42
42
|
Provides-Extra: dev
|
|
43
|
-
Requires-Dist: black~=
|
|
43
|
+
Requires-Dist: black~=25.1.0; extra == "dev"
|
|
44
44
|
Requires-Dist: build~=1.2.1; extra == "dev"
|
|
45
45
|
Requires-Dist: isort~=6.0.0; extra == "dev"
|
|
46
|
-
Requires-Dist: types-pytz~=2025.
|
|
47
|
-
Requires-Dist: pre-commit~=
|
|
46
|
+
Requires-Dist: types-pytz~=2025.2.0.20250326; extra == "dev"
|
|
47
|
+
Requires-Dist: pre-commit~=4.2.0; extra == "dev"
|
|
48
48
|
Requires-Dist: pytest-cases~=3.8.0; extra == "dev"
|
|
49
|
-
Requires-Dist: pytest-cov~=
|
|
49
|
+
Requires-Dist: pytest-cov~=6.1.1; extra == "dev"
|
|
50
50
|
Requires-Dist: pytest_randomly~=3.16.0; extra == "dev"
|
|
51
51
|
Requires-Dist: pytest~=8.3.4; extra == "dev"
|
|
52
52
|
Requires-Dist: types-python-dateutil~=2.9.0; extra == "dev"
|
|
53
53
|
Requires-Dist: wheel~=0.45.1; extra == "dev"
|
|
54
54
|
Provides-Extra: doc
|
|
55
55
|
Requires-Dist: autoapi~=2.0.1; extra == "doc"
|
|
56
|
-
Requires-Dist: sphinx-autodoc-typehints~=
|
|
56
|
+
Requires-Dist: sphinx-autodoc-typehints~=3.1.0; extra == "doc"
|
|
57
57
|
Requires-Dist: sphinx-rtd-theme~=3.0.2; extra == "doc"
|
|
58
58
|
Dynamic: license-file
|
|
59
59
|
|
|
@@ -71,6 +71,25 @@ from pycti.utils.opencti_stix2 import OpenCTIStix2
|
|
|
71
71
|
from pycti.utils.opencti_stix2_utils import OpenCTIStix2Utils
|
|
72
72
|
|
|
73
73
|
|
|
74
|
+
def build_request_headers(token: str, custom_headers: str, app_logger):
|
|
75
|
+
headers_dict = {
|
|
76
|
+
"User-Agent": "pycti/" + __version__,
|
|
77
|
+
"Authorization": "Bearer " + token,
|
|
78
|
+
}
|
|
79
|
+
# Build and add custom headers
|
|
80
|
+
if custom_headers is not None:
|
|
81
|
+
for header_pair in custom_headers.strip().split(";"):
|
|
82
|
+
if header_pair: # Skip empty header pairs
|
|
83
|
+
try:
|
|
84
|
+
key, value = header_pair.split(":", 1)
|
|
85
|
+
headers_dict[key.strip()] = value.strip()
|
|
86
|
+
except ValueError:
|
|
87
|
+
app_logger.warning(
|
|
88
|
+
"Ignored invalid header pair", {"header_pair": header_pair}
|
|
89
|
+
)
|
|
90
|
+
return headers_dict
|
|
91
|
+
|
|
92
|
+
|
|
74
93
|
class File:
|
|
75
94
|
def __init__(self, name, data, mime="text/plain"):
|
|
76
95
|
self.name = name
|
|
@@ -99,24 +118,28 @@ class OpenCTIApiClient:
|
|
|
99
118
|
```
|
|
100
119
|
:param json_logging: format the logs as json if set to True
|
|
101
120
|
:type json_logging: bool, optional
|
|
121
|
+
:param bundle_send_to_queue: if bundle will be sent to queue
|
|
122
|
+
:type bundle_send_to_queue: bool, optional
|
|
102
123
|
:param cert: If String, file path to pem file. If Tuple, a ('path_to_cert.crt', 'path_to_key.key') pair representing the certificate and the key.
|
|
103
124
|
:type cert: str, tuple, optional
|
|
104
|
-
:param
|
|
105
|
-
:type
|
|
125
|
+
:param custom_headers: Add custom headers to use with the graphql queries
|
|
126
|
+
:type custom_headers: str, optional must in the format header01:value;header02:value
|
|
127
|
+
:param perform_health_check: if client init must check the api access
|
|
128
|
+
:type perform_health_check: bool, optional
|
|
106
129
|
"""
|
|
107
130
|
|
|
108
131
|
def __init__(
|
|
109
132
|
self,
|
|
110
133
|
url: str,
|
|
111
134
|
token: str,
|
|
112
|
-
log_level="info",
|
|
135
|
+
log_level: str = "info",
|
|
113
136
|
ssl_verify: Union[bool, str] = False,
|
|
114
137
|
proxies: Union[Dict[str, str], None] = None,
|
|
115
|
-
json_logging=False,
|
|
116
|
-
bundle_send_to_queue=True,
|
|
138
|
+
json_logging: bool = False,
|
|
139
|
+
bundle_send_to_queue: bool = True,
|
|
117
140
|
cert: Union[str, Tuple[str, str], None] = None,
|
|
118
|
-
|
|
119
|
-
perform_health_check=True,
|
|
141
|
+
custom_headers: str = None,
|
|
142
|
+
perform_health_check: bool = True,
|
|
120
143
|
):
|
|
121
144
|
"""Constructor method"""
|
|
122
145
|
|
|
@@ -138,17 +161,10 @@ class OpenCTIApiClient:
|
|
|
138
161
|
# Define API
|
|
139
162
|
self.api_token = token
|
|
140
163
|
self.api_url = url + "/graphql"
|
|
141
|
-
self.request_headers =
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if auth is not None:
|
|
147
|
-
self.session = requests.session()
|
|
148
|
-
self.session.auth = auth
|
|
149
|
-
else:
|
|
150
|
-
self.session = requests.session()
|
|
151
|
-
|
|
164
|
+
self.request_headers = build_request_headers(
|
|
165
|
+
token, custom_headers, self.app_logger
|
|
166
|
+
)
|
|
167
|
+
self.session = requests.session()
|
|
152
168
|
# Define the dependencies
|
|
153
169
|
self.work = OpenCTIApiWork(self)
|
|
154
170
|
self.playbook = OpenCTIApiPlaybook(self)
|
|
@@ -902,6 +902,12 @@ class OpenCTIConnectorHelper: # pylint: disable=too-many-public-methods
|
|
|
902
902
|
self.opencti_token = get_config_variable(
|
|
903
903
|
"OPENCTI_TOKEN", ["opencti", "token"], config
|
|
904
904
|
)
|
|
905
|
+
self.opencti_custom_headers = get_config_variable(
|
|
906
|
+
"OPENCTI_CUSTOM_HEADERS",
|
|
907
|
+
["opencti", "custom_headers"],
|
|
908
|
+
config,
|
|
909
|
+
default=None,
|
|
910
|
+
)
|
|
905
911
|
self.opencti_ssl_verify = get_config_variable(
|
|
906
912
|
"OPENCTI_SSL_VERIFY", ["opencti", "ssl_verify"], config, False, False
|
|
907
913
|
)
|
|
@@ -1078,6 +1084,7 @@ class OpenCTIConnectorHelper: # pylint: disable=too-many-public-methods
|
|
|
1078
1084
|
self.log_level,
|
|
1079
1085
|
self.opencti_ssl_verify,
|
|
1080
1086
|
json_logging=self.opencti_json_logging,
|
|
1087
|
+
custom_headers=self.opencti_custom_headers,
|
|
1081
1088
|
bundle_send_to_queue=self.bundle_send_to_queue,
|
|
1082
1089
|
)
|
|
1083
1090
|
# - Impersonate API that will use applicant id
|
|
@@ -1088,6 +1095,7 @@ class OpenCTIConnectorHelper: # pylint: disable=too-many-public-methods
|
|
|
1088
1095
|
self.log_level,
|
|
1089
1096
|
self.opencti_ssl_verify,
|
|
1090
1097
|
json_logging=self.opencti_json_logging,
|
|
1098
|
+
custom_headers=self.opencti_custom_headers,
|
|
1091
1099
|
bundle_send_to_queue=self.bundle_send_to_queue,
|
|
1092
1100
|
)
|
|
1093
1101
|
self.connector_logger = self.api.logger_class(self.connect_name)
|
|
@@ -1932,10 +1940,6 @@ class OpenCTIConnectorHelper: # pylint: disable=too-many-public-methods
|
|
|
1932
1940
|
raise ValueError("Nothing to import")
|
|
1933
1941
|
|
|
1934
1942
|
if bundle_send_to_queue:
|
|
1935
|
-
if work_id:
|
|
1936
|
-
self.api.work.add_expectations(work_id, expectations_number)
|
|
1937
|
-
if draft_id:
|
|
1938
|
-
self.api.work.add_draft_context(work_id, draft_id)
|
|
1939
1943
|
if entities_types is None:
|
|
1940
1944
|
entities_types = []
|
|
1941
1945
|
if self.queue_protocol == "amqp":
|
|
@@ -17,6 +17,14 @@ class AttackPattern:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -109,6 +117,14 @@ class AttackPattern:
|
|
|
109
117
|
spec_version
|
|
110
118
|
created_at
|
|
111
119
|
updated_at
|
|
120
|
+
status {
|
|
121
|
+
id
|
|
122
|
+
template {
|
|
123
|
+
id
|
|
124
|
+
name
|
|
125
|
+
color
|
|
126
|
+
}
|
|
127
|
+
}
|
|
112
128
|
createdBy {
|
|
113
129
|
... on Identity {
|
|
114
130
|
id
|
|
@@ -17,6 +17,14 @@ class Campaign:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -103,6 +111,14 @@ class Campaign:
|
|
|
103
111
|
spec_version
|
|
104
112
|
created_at
|
|
105
113
|
updated_at
|
|
114
|
+
status {
|
|
115
|
+
id
|
|
116
|
+
template {
|
|
117
|
+
id
|
|
118
|
+
name
|
|
119
|
+
color
|
|
120
|
+
}
|
|
121
|
+
}
|
|
106
122
|
createdBy {
|
|
107
123
|
... on Identity {
|
|
108
124
|
id
|
|
@@ -17,6 +17,14 @@ class CaseIncident:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -233,6 +241,14 @@ class CaseIncident:
|
|
|
233
241
|
spec_version
|
|
234
242
|
created_at
|
|
235
243
|
updated_at
|
|
244
|
+
status {
|
|
245
|
+
id
|
|
246
|
+
template {
|
|
247
|
+
id
|
|
248
|
+
name
|
|
249
|
+
color
|
|
250
|
+
}
|
|
251
|
+
}
|
|
236
252
|
createdBy {
|
|
237
253
|
... on Identity {
|
|
238
254
|
id
|
|
@@ -17,6 +17,14 @@ class CaseRfi:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -232,6 +240,14 @@ class CaseRfi:
|
|
|
232
240
|
spec_version
|
|
233
241
|
created_at
|
|
234
242
|
updated_at
|
|
243
|
+
status {
|
|
244
|
+
id
|
|
245
|
+
template {
|
|
246
|
+
id
|
|
247
|
+
name
|
|
248
|
+
color
|
|
249
|
+
}
|
|
250
|
+
}
|
|
235
251
|
createdBy {
|
|
236
252
|
... on Identity {
|
|
237
253
|
id
|
|
@@ -17,6 +17,14 @@ class CaseRft:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -232,6 +240,14 @@ class CaseRft:
|
|
|
232
240
|
spec_version
|
|
233
241
|
created_at
|
|
234
242
|
updated_at
|
|
243
|
+
status {
|
|
244
|
+
id
|
|
245
|
+
template {
|
|
246
|
+
id
|
|
247
|
+
name
|
|
248
|
+
color
|
|
249
|
+
}
|
|
250
|
+
}
|
|
235
251
|
createdBy {
|
|
236
252
|
... on Identity {
|
|
237
253
|
id
|
|
@@ -17,6 +17,14 @@ class CourseOfAction:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -96,6 +104,14 @@ class CourseOfAction:
|
|
|
96
104
|
spec_version
|
|
97
105
|
created_at
|
|
98
106
|
updated_at
|
|
107
|
+
status {
|
|
108
|
+
id
|
|
109
|
+
template {
|
|
110
|
+
id
|
|
111
|
+
name
|
|
112
|
+
color
|
|
113
|
+
}
|
|
114
|
+
}
|
|
99
115
|
createdBy {
|
|
100
116
|
... on Identity {
|
|
101
117
|
id
|
|
@@ -17,6 +17,14 @@ class DataComponent:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -118,6 +126,14 @@ class DataComponent:
|
|
|
118
126
|
spec_version
|
|
119
127
|
created_at
|
|
120
128
|
updated_at
|
|
129
|
+
status {
|
|
130
|
+
id
|
|
131
|
+
template {
|
|
132
|
+
id
|
|
133
|
+
name
|
|
134
|
+
color
|
|
135
|
+
}
|
|
136
|
+
}
|
|
121
137
|
createdBy {
|
|
122
138
|
... on Identity {
|
|
123
139
|
id
|
|
@@ -17,6 +17,14 @@ class DataSource:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -97,6 +105,14 @@ class DataSource:
|
|
|
97
105
|
spec_version
|
|
98
106
|
created_at
|
|
99
107
|
updated_at
|
|
108
|
+
status {
|
|
109
|
+
id
|
|
110
|
+
template {
|
|
111
|
+
id
|
|
112
|
+
name
|
|
113
|
+
color
|
|
114
|
+
}
|
|
115
|
+
}
|
|
100
116
|
createdBy {
|
|
101
117
|
... on Identity {
|
|
102
118
|
id
|
|
@@ -17,6 +17,14 @@ class Event:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -103,6 +111,14 @@ class Event:
|
|
|
103
111
|
spec_version
|
|
104
112
|
created_at
|
|
105
113
|
updated_at
|
|
114
|
+
status {
|
|
115
|
+
id
|
|
116
|
+
template {
|
|
117
|
+
id
|
|
118
|
+
name
|
|
119
|
+
color
|
|
120
|
+
}
|
|
121
|
+
}
|
|
106
122
|
createdBy {
|
|
107
123
|
... on Identity {
|
|
108
124
|
id
|
|
@@ -16,6 +16,14 @@ class Feedback:
|
|
|
16
16
|
spec_version
|
|
17
17
|
created_at
|
|
18
18
|
updated_at
|
|
19
|
+
status {
|
|
20
|
+
id
|
|
21
|
+
template {
|
|
22
|
+
id
|
|
23
|
+
name
|
|
24
|
+
color
|
|
25
|
+
}
|
|
26
|
+
}
|
|
19
27
|
createdBy {
|
|
20
28
|
... on Identity {
|
|
21
29
|
id
|
|
@@ -204,6 +212,14 @@ class Feedback:
|
|
|
204
212
|
spec_version
|
|
205
213
|
created_at
|
|
206
214
|
updated_at
|
|
215
|
+
status {
|
|
216
|
+
id
|
|
217
|
+
template {
|
|
218
|
+
id
|
|
219
|
+
name
|
|
220
|
+
color
|
|
221
|
+
}
|
|
222
|
+
}
|
|
207
223
|
createdBy {
|
|
208
224
|
... on Identity {
|
|
209
225
|
id
|
|
@@ -18,6 +18,14 @@ class Grouping:
|
|
|
18
18
|
spec_version
|
|
19
19
|
created_at
|
|
20
20
|
updated_at
|
|
21
|
+
status {
|
|
22
|
+
id
|
|
23
|
+
template {
|
|
24
|
+
id
|
|
25
|
+
name
|
|
26
|
+
color
|
|
27
|
+
}
|
|
28
|
+
}
|
|
21
29
|
createdBy {
|
|
22
30
|
... on Identity {
|
|
23
31
|
id
|
|
@@ -197,6 +205,14 @@ class Grouping:
|
|
|
197
205
|
spec_version
|
|
198
206
|
created_at
|
|
199
207
|
updated_at
|
|
208
|
+
status {
|
|
209
|
+
id
|
|
210
|
+
template {
|
|
211
|
+
id
|
|
212
|
+
name
|
|
213
|
+
color
|
|
214
|
+
}
|
|
215
|
+
}
|
|
200
216
|
createdBy {
|
|
201
217
|
... on Identity {
|
|
202
218
|
id
|
|
@@ -19,6 +19,14 @@ class Identity:
|
|
|
19
19
|
spec_version
|
|
20
20
|
created_at
|
|
21
21
|
updated_at
|
|
22
|
+
status {
|
|
23
|
+
id
|
|
24
|
+
template {
|
|
25
|
+
id
|
|
26
|
+
name
|
|
27
|
+
color
|
|
28
|
+
}
|
|
29
|
+
}
|
|
22
30
|
createdBy {
|
|
23
31
|
... on Identity {
|
|
24
32
|
id
|
|
@@ -112,6 +120,14 @@ class Identity:
|
|
|
112
120
|
spec_version
|
|
113
121
|
created_at
|
|
114
122
|
updated_at
|
|
123
|
+
status {
|
|
124
|
+
id
|
|
125
|
+
template {
|
|
126
|
+
id
|
|
127
|
+
name
|
|
128
|
+
color
|
|
129
|
+
}
|
|
130
|
+
}
|
|
115
131
|
createdBy {
|
|
116
132
|
... on Identity {
|
|
117
133
|
id
|
|
@@ -18,6 +18,14 @@ class Incident:
|
|
|
18
18
|
spec_version
|
|
19
19
|
created_at
|
|
20
20
|
updated_at
|
|
21
|
+
status {
|
|
22
|
+
id
|
|
23
|
+
template {
|
|
24
|
+
id
|
|
25
|
+
name
|
|
26
|
+
color
|
|
27
|
+
}
|
|
28
|
+
}
|
|
21
29
|
createdBy {
|
|
22
30
|
... on Identity {
|
|
23
31
|
id
|
|
@@ -107,6 +115,14 @@ class Incident:
|
|
|
107
115
|
spec_version
|
|
108
116
|
created_at
|
|
109
117
|
updated_at
|
|
118
|
+
status {
|
|
119
|
+
id
|
|
120
|
+
template {
|
|
121
|
+
id
|
|
122
|
+
name
|
|
123
|
+
color
|
|
124
|
+
}
|
|
125
|
+
}
|
|
110
126
|
createdBy {
|
|
111
127
|
... on Identity {
|
|
112
128
|
id
|
|
@@ -22,6 +22,14 @@ class Infrastructure:
|
|
|
22
22
|
spec_version
|
|
23
23
|
created_at
|
|
24
24
|
updated_at
|
|
25
|
+
status {
|
|
26
|
+
id
|
|
27
|
+
template {
|
|
28
|
+
id
|
|
29
|
+
name
|
|
30
|
+
color
|
|
31
|
+
}
|
|
32
|
+
}
|
|
25
33
|
createdBy {
|
|
26
34
|
... on Identity {
|
|
27
35
|
id
|
|
@@ -117,6 +125,14 @@ class Infrastructure:
|
|
|
117
125
|
spec_version
|
|
118
126
|
created_at
|
|
119
127
|
updated_at
|
|
128
|
+
status {
|
|
129
|
+
id
|
|
130
|
+
template {
|
|
131
|
+
id
|
|
132
|
+
name
|
|
133
|
+
color
|
|
134
|
+
}
|
|
135
|
+
}
|
|
120
136
|
createdBy {
|
|
121
137
|
... on Identity {
|
|
122
138
|
id
|
|
@@ -17,6 +17,14 @@ class IntrusionSet:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -106,6 +114,14 @@ class IntrusionSet:
|
|
|
106
114
|
spec_version
|
|
107
115
|
created_at
|
|
108
116
|
updated_at
|
|
117
|
+
status {
|
|
118
|
+
id
|
|
119
|
+
template {
|
|
120
|
+
id
|
|
121
|
+
name
|
|
122
|
+
color
|
|
123
|
+
}
|
|
124
|
+
}
|
|
109
125
|
createdBy {
|
|
110
126
|
... on Identity {
|
|
111
127
|
id
|
|
@@ -17,6 +17,14 @@ class Language:
|
|
|
17
17
|
spec_version
|
|
18
18
|
created_at
|
|
19
19
|
updated_at
|
|
20
|
+
status {
|
|
21
|
+
id
|
|
22
|
+
template {
|
|
23
|
+
id
|
|
24
|
+
name
|
|
25
|
+
color
|
|
26
|
+
}
|
|
27
|
+
}
|
|
20
28
|
createdBy {
|
|
21
29
|
... on Identity {
|
|
22
30
|
id
|
|
@@ -120,6 +128,14 @@ class Language:
|
|
|
120
128
|
spec_version
|
|
121
129
|
created_at
|
|
122
130
|
updated_at
|
|
131
|
+
status {
|
|
132
|
+
id
|
|
133
|
+
template {
|
|
134
|
+
id
|
|
135
|
+
name
|
|
136
|
+
color
|
|
137
|
+
}
|
|
138
|
+
}
|
|
123
139
|
createdBy {
|
|
124
140
|
... on Identity {
|
|
125
141
|
id
|