Skip to content

Commit d772667

Browse files
committed
Merge branch 'stackable' of https://github.com/stackabletech/SecObserve into stackable
2 parents 7e24197 + 3ead408 commit d772667

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

backend/application/core/api/serializers_observation.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,10 @@ def _create_azure_devops_url(observation: Observation, origin_source_file_url: s
275275

276276
def _create_common_url(observation: Observation, origin_source_file_url: str) -> str:
277277
if observation.branch:
278-
origin_source_file_url += f"/{observation.branch.name}"
278+
if "$BRANCH_NAME" in origin_source_file_url:
279+
origin_source_file_url = origin_source_file_url.replace("$BRANCH_NAME", observation.branch.name)
280+
else:
281+
origin_source_file_url += f"/{observation.branch.name}"
279282
origin_source_file_url += f"/{observation.origin_source_file}"
280283
if observation.origin_source_line_start:
281284
origin_source_file_url += "#L" + str(observation.origin_source_line_start)

backend/application/import_observations/services/import_observations.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,10 +313,13 @@ def _process_data(import_parameters: ImportParameters, settings: Settings) -> Tu
313313
else:
314314
observation_found = (
315315
Observation.objects.filter(
316+
product=imported_observation.product,
316317
title=imported_observation.title,
317318
branch=import_parameters.branch,
318319
origin_component_name=imported_observation.origin_component_name,
319320
origin_component_version=imported_observation.origin_component_version,
321+
origin_cloud_qualified_resource=imported_observation.origin_cloud_qualified_resource,
322+
origin_kubernetes_qualified_resource=imported_observation.origin_kubernetes_qualified_resource,
320323
)
321324
.exclude(scanner=imported_observation.scanner)
322325
.exists()
@@ -328,7 +331,9 @@ def _process_data(import_parameters: ImportParameters, settings: Settings) -> Tu
328331
f"{imported_observation.title} - {imported_observation.origin_component_name} - "
329332
f"{imported_observation.origin_component_version} - {imported_observation.scanner}"
330333
f"{imported_observation.origin_docker_image_name} - "
331-
f"{imported_observation.origin_docker_image_tag}"
334+
f"{imported_observation.origin_docker_image_tag} - "
335+
f"{imported_observation.origin_cloud_qualified_resource} - "
336+
f"{imported_observation.origin_kubernetes_qualified_resource}"
332337
)
333338
else:
334339
_process_new_observation(imported_observation, settings)

backend/application/rules/services/rule_engine.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ def check_rule_for_observation(
160160
or observation_before.current_severity != observation.current_severity
161161
or observation_before.rule_vex_justification != observation.rule_vex_justification
162162
or observation_before.current_vex_justification != observation.current_vex_justification
163+
or observation_before.rule_vex_remediations != observation.rule_vex_remediations
164+
or observation_before.current_vex_remediations != observation.current_vex_remediations
163165
or observation_before.general_rule != observation.general_rule
164166
or observation_before.product_rule != observation.product_rule
165167
):
@@ -240,6 +242,10 @@ def _check_rule_fields(
240242
observation.rule_vex_justification = rule.new_vex_justification
241243
observation.current_vex_justification = get_current_vex_justification(observation)
242244

245+
if rule.new_vex_remediations:
246+
observation.rule_vex_remediations = rule.new_vex_remediations
247+
observation.current_vex_remediations = get_current_vex_remediations(observation)
248+
243249
if observation.current_status == Status.STATUS_RISK_ACCEPTED:
244250
if observation_before.current_status != Status.STATUS_RISK_ACCEPTED:
245251
observation.risk_acceptance_expiry_date = calculate_risk_acceptance_expiry_date(observation.product)
@@ -344,7 +350,7 @@ def _write_observation_log(
344350
else ""
345351
)
346352
vex_remediations = (
347-
observation.current_vex_remediations or ""
353+
observation.current_vex_remediations
348354
if observation_before.current_vex_remediations != observation.current_vex_remediations
349355
else ""
350356
)

frontend/src/metrics/MetricsStatusCurrent.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ const MetricsStatusCurrent = (props: MetricsStatusCurrentProps) => {
3939
OBSERVATION_STATUS_NOT_AFFECTED,
4040
OBSERVATION_STATUS_NOT_SECURITY,
4141
OBSERVATION_STATUS_RISK_ACCEPTED,
42-
OBSERVATION_STATUS_AFFECTED,
4342
],
4443
datasets: [
4544
{
@@ -86,7 +85,6 @@ const MetricsStatusCurrent = (props: MetricsStatusCurrentProps) => {
8685
result.json.not_affected,
8786
result.json.not_security,
8887
result.json.risk_accepted,
89-
result.json.affected,
9088
];
9189
setData((data) => data.concat(new_data));
9290
})

0 commit comments

Comments
 (0)