Skip to content

Commit c84e378

Browse files
committed
fix: reintroduce vex_remediations
1 parent ac5275a commit c84e378

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

backend/application/rules/services/rule_engine.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
get_current_severity,
1313
get_current_status,
1414
get_current_vex_justification,
15+
get_current_vex_remediations,
1516
)
1617
from application.core.services.observation_log import create_observation_log
1718
from application.core.services.risk_acceptance_expiry import (
@@ -159,6 +160,8 @@ def check_rule_for_observation(
159160
or observation_before.current_severity != observation.current_severity
160161
or observation_before.rule_vex_justification != observation.rule_vex_justification
161162
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
162165
or observation_before.general_rule != observation.general_rule
163166
or observation_before.product_rule != observation.product_rule
164167
):
@@ -238,6 +241,10 @@ def _check_rule_fields(
238241
observation.rule_vex_justification = rule.new_vex_justification
239242
observation.current_vex_justification = get_current_vex_justification(observation)
240243

244+
if rule.new_vex_remediations:
245+
observation.rule_vex_remediations = rule.new_vex_remediations
246+
observation.current_vex_remediations = get_current_vex_remediations(observation)
247+
241248
if observation.current_status == Status.STATUS_RISK_ACCEPTED:
242249
if observation_before.current_status != Status.STATUS_RISK_ACCEPTED:
243250
observation.risk_acceptance_expiry_date = calculate_risk_acceptance_expiry_date(observation.product)
@@ -341,6 +348,11 @@ def _write_observation_log(
341348
if observation_before.current_vex_justification != observation.current_vex_justification
342349
else ""
343350
)
351+
vex_remediations = (
352+
observation.current_vex_remediations
353+
if observation_before.current_vex_remediations != observation.current_vex_remediations
354+
else ""
355+
)
344356
risk_acceptance_expiry_date = (
345357
observation.risk_acceptance_expiry_date
346358
if observation_before.risk_acceptance_expiry_date != observation.risk_acceptance_expiry_date
@@ -362,6 +374,7 @@ def _write_observation_log(
362374
priority=priority,
363375
comment=comment,
364376
vex_justification=vex_justification,
377+
vex_remediations=vex_remediations,
365378
assessment_status=Assessment_Status.ASSESSMENT_STATUS_AUTO_APPROVED,
366379
risk_acceptance_expiry_date=risk_acceptance_expiry_date,
367380
)
@@ -409,6 +422,16 @@ def _write_observation_log_no_rule(
409422
else None
410423
)
411424

425+
observation.rule_vex_remediations = ""
426+
previous_vex_remediations = observation.current_vex_remediations
427+
observation.current_vex_remediations = get_current_vex_remediations(observation)
428+
429+
log_vex_remediations = (
430+
observation.current_vex_remediations
431+
if previous_vex_remediations != observation.current_vex_remediations
432+
else ""
433+
)
434+
412435
if previous_product_rule:
413436
comment = f"Removed product {previous_product_rule.type.lower()} rule {previous_product_rule.name}"
414437
elif previous_general_rule:
@@ -423,6 +446,7 @@ def _write_observation_log_no_rule(
423446
priority=log_priority,
424447
comment=comment,
425448
vex_justification=log_vex_justification,
449+
vex_remediations=log_vex_remediations,
426450
assessment_status=Assessment_Status.ASSESSMENT_STATUS_AUTO_APPROVED,
427451
risk_acceptance_expiry_date=log_risk_acceptance_expiry_date,
428452
)

0 commit comments

Comments
 (0)