Skip to content
This repository was archived by the owner on Dec 5, 2025. It is now read-only.

Commit 868023a

Browse files
committed
Merge branch 'master' into release/6.5.0
2 parents d2e556d + af750f2 commit 868023a

File tree

12 files changed

+61
-44
lines changed

12 files changed

+61
-44
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
version: 2.1
33
orbs:
4-
slack: circleci/slack@4.13.3
4+
slack: circleci/slack@4.15.0
55
ms-teams: cloudradar-monitoring/[email protected]
66
jobs:
77
ensure_formatting:

.drone.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ steps:
6363

6464
services:
6565
- name: redis
66-
image: redis:7.4.1
66+
image: redis:7.4.2
6767
- name: elastic
68-
image: docker.elastic.co/elasticsearch/elasticsearch:8.15.3
68+
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
6969
environment:
7070
discovery.type: single-node
7171
xpack.security.enabled: false

docs/requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
autoapi==2.0.1
2-
sphinx==7.4.6
3-
sphinx-autodoc-typehints==2.2.3
4-
sphinx_rtd_theme==2.0.0
2+
sphinx==8.1.3
3+
sphinx-autodoc-typehints==2.5.0
4+
sphinx_rtd_theme==3.0.2

pycti/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
__version__ = "6.4.4"
2+
__version__ = "6.4.8"
33

44
from .api.opencti_api_client import OpenCTIApiClient
55
from .api.opencti_api_connector import OpenCTIApiConnector

pycti/api/opencti_api_client.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,11 @@ def set_synchronized_upsert_header(self, synchronized):
224224
def set_previous_standard_header(self, previous_standard):
225225
self.request_headers["previous-standard"] = previous_standard
226226

227-
def get_request_headers(self):
228-
return self.request_headers
227+
def get_request_headers(self, hide_token=True):
228+
request_headers_copy = self.request_headers.copy()
229+
if hide_token and "Authorization" in request_headers_copy:
230+
request_headers_copy["Authorization"] = "*****"
231+
return request_headers_copy
229232

230233
def set_retry_number(self, retry_number):
231234
self.request_headers["opencti-retry-number"] = (
@@ -408,7 +411,7 @@ def health_check(self):
408411
self.app_logger.info("Health check (platform version)...")
409412
test = self.query(
410413
"""
411-
query {
414+
query healthCheck {
412415
about {
413416
version
414417
}

pycti/entities/opencti_case_rfi.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,8 @@ def __init__(self, opencti):
318318
modified
319319
name
320320
description
321+
severity
322+
priority
321323
information_types
322324
objects(all: true) {
323325
edges {
@@ -678,6 +680,8 @@ def create(self, **kwargs):
678680
object_participant = kwargs.get("objectParticipant", None)
679681
external_references = kwargs.get("externalReferences", None)
680682
revoked = kwargs.get("revoked", None)
683+
severity = kwargs.get("severity", None)
684+
priority = kwargs.get("priority", None)
681685
confidence = kwargs.get("confidence", None)
682686
lang = kwargs.get("lang", None)
683687
created = kwargs.get("created", None)
@@ -716,6 +720,8 @@ def create(self, **kwargs):
716720
"objects": objects,
717721
"externalReferences": external_references,
718722
"revoked": revoked,
723+
"severity": severity,
724+
"priority": priority,
719725
"confidence": confidence,
720726
"lang": lang,
721727
"created": created,
@@ -881,6 +887,8 @@ def import_from_stix2(self, **kwargs):
881887
else None
882888
),
883889
revoked=stix_object["revoked"] if "revoked" in stix_object else None,
890+
severity=stix_object["severity"] if "severity" in stix_object else None,
891+
priority=stix_object["priority"] if "priority" in stix_object else None,
884892
confidence=(
885893
stix_object["confidence"] if "confidence" in stix_object else None
886894
),

pycti/entities/opencti_case_rft.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,8 @@ def __init__(self, opencti):
318318
modified
319319
name
320320
description
321+
severity
322+
priority
321323
takedown_types
322324
objects(all: true) {
323325
edges {
@@ -677,6 +679,8 @@ def create(self, **kwargs):
677679
object_participant = kwargs.get("objectParticipant", None)
678680
external_references = kwargs.get("externalReferences", None)
679681
revoked = kwargs.get("revoked", None)
682+
severity = kwargs.get("severity", None)
683+
priority = kwargs.get("priority", None)
680684
confidence = kwargs.get("confidence", None)
681685
lang = kwargs.get("lang", None)
682686
created = kwargs.get("created", None)
@@ -715,6 +719,8 @@ def create(self, **kwargs):
715719
"objects": objects,
716720
"externalReferences": external_references,
717721
"revoked": revoked,
722+
"severity": severity,
723+
"priority": priority,
718724
"confidence": confidence,
719725
"lang": lang,
720726
"created": created,
@@ -879,6 +885,8 @@ def import_from_stix2(self, **kwargs):
879885
else None
880886
),
881887
revoked=stix_object["revoked"] if "revoked" in stix_object else None,
888+
severity=stix_object["severity"] if "severity" in stix_object else None,
889+
priority=stix_object["priority"] if "priority" in stix_object else None,
882890
confidence=(
883891
stix_object["confidence"] if "confidence" in stix_object else None
884892
),

pycti/entities/opencti_indicator.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ def list(self, **kwargs):
6363
get_all = kwargs.get("getAll", False)
6464
with_pagination = kwargs.get("withPagination", False)
6565
with_files = kwargs.get("withFiles", False)
66-
if get_all:
67-
first = 100
6866

6967
self.opencti.app_logger.info(
7068
"Listing Indicators with filters", {"filters": json.dumps(filters)}

pycti/entities/opencti_marking_definition.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,29 @@ def __init__(self, opencti):
2525
"""
2626

2727
@staticmethod
28-
def generate_id(definition, definition_type):
29-
data = {"definition": definition, "definition_type": definition_type}
28+
def generate_id(definition_type, definition):
29+
# Handle static IDs from OpenCTI
30+
if definition_type == "TLP":
31+
if definition == "TLP:CLEAR" or definition == "TLP:WHITE":
32+
return "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9"
33+
if definition == "TLP:GREEN":
34+
return "marking-definition--34098fce-860f-48ae-8e50-ebd3cc5e41da"
35+
if definition == "TLP:AMBER":
36+
return "marking-definition--f88d31f6-486f-44da-b317-01333bde0b82"
37+
if definition == "TLP:AMBER+STRICT":
38+
return "marking-definition--826578e1-40ad-459f-bc73-ede076f81f37"
39+
if definition == "TLP:RED":
40+
return "marking-definition--5e57c739-391a-4eb3-b6be-7d15ca92d5ed"
41+
# Generate IDs
42+
data = {"definition_type": definition_type, "definition": definition}
3043
data = canonicalize(data, utf8=False)
3144
id = str(uuid.uuid5(uuid.UUID("00abedb4-aa42-466c-9c01-fed23315a9b7"), data))
3245
return "marking-definition--" + id
3346

3447
@staticmethod
3548
def generate_id_from_data(data):
3649
return MarkingDefinition.generate_id(
37-
data["definition"], data["definition_type"]
50+
data["definition_type"], data["definition"]
3851
)
3952

4053
"""

pycti/utils/opencti_stix2.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,7 +1378,7 @@ def import_sighting(
13781378
created=stix_sighting["created"] if "created" in stix_sighting else None,
13791379
modified=stix_sighting["modified"] if "modified" in stix_sighting else None,
13801380
confidence=(
1381-
stix_sighting["confidence"] if "confidence" in stix_sighting else 15
1381+
stix_sighting["confidence"] if "confidence" in stix_sighting else None
13821382
),
13831383
createdBy=extras["created_by_id"] if "created_by_id" in extras else None,
13841384
objectMarking=(
@@ -2585,9 +2585,6 @@ def import_item(
25852585
in_retry = processing_count < PROCESSING_COUNT
25862586
# Platform is under heavy load, wait for unlock & retry indefinitely.
25872587
if ERROR_TYPE_LOCK in error_msg:
2588-
worker_logger.info(
2589-
"Message reprocess for lock rejection", {"count": processing_count}
2590-
)
25912588
bundles_lock_error_counter.add(1)
25922589
sleep_jitter = round(random.uniform(1, 3), 2)
25932590
time.sleep(sleep_jitter)
@@ -2596,10 +2593,6 @@ def import_item(
25962593
)
25972594
# Platform detects a missing reference and have to retry
25982595
elif ERROR_TYPE_MISSING_REFERENCE in error_msg and in_retry:
2599-
worker_logger.info(
2600-
"Message reprocess for missing reference",
2601-
{"count": processing_count},
2602-
)
26032596
bundles_missing_reference_error_counter.add(1)
26042597
sleep_jitter = round(random.uniform(1, 3), 2)
26052598
time.sleep(sleep_jitter)
@@ -2608,8 +2601,7 @@ def import_item(
26082601
)
26092602
# A bad gateway error occurs
26102603
elif ERROR_TYPE_BAD_GATEWAY in error_msg:
2611-
worker_logger.error("A connection error occurred")
2612-
worker_logger.info(
2604+
worker_logger.error(
26132605
"Message reprocess for bad gateway",
26142606
{"count": processing_count},
26152607
)
@@ -2620,8 +2612,7 @@ def import_item(
26202612
)
26212613
# Request timeout error occurs
26222614
elif ERROR_TYPE_TIMEOUT in error_msg:
2623-
worker_logger.error("A connection error occurred")
2624-
worker_logger.info(
2615+
worker_logger.error(
26252616
"Message reprocess for request timed out",
26262617
{"count": processing_count},
26272618
)
@@ -2634,10 +2625,6 @@ def import_item(
26342625
# That also works for missing reference with too much execution
26352626
else:
26362627
bundles_technical_error_counter.add(1)
2637-
worker_logger.error(
2638-
"Error executing import",
2639-
{"count": processing_count, "reason": error},
2640-
)
26412628
if work_id is not None:
26422629
item_str = json.dumps(item)
26432630
self.opencti.work.report_expectation(

0 commit comments

Comments
 (0)