You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/content/admin/user_management/user_permission_chart.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,10 +63,12 @@ The majority of Configuration Permissions give users access to certain pages in
63
63
| Login Banner | n/a | n/a | Edit the login banner, located under **⚙️Configuration \> Login Banner**| n/a |
64
64
| Announcements | n/a | n/a | Configure Announcements, located under **⚙️Configuration \> Announcements**| n/a |
65
65
| Note Types | Access the ⚙️Configuration \> Note Types page | Add a Note Type | Edit a Note Type | Delete a Note Type |
66
+
| Prioritization Engines | Access the Prioritization Engine configuration page | Add a new Prioritization Engine | Edit an existing Prioritization Engine | Delete a Prioritization Engine |
66
67
| Product Types | n/a | Add a new Product Type (under Products \> Product Type) | n/a | n/a |
67
68
| Questionnaires | Access the **Questionnaires \> All Questionnaires** page | Add a new Questionnaire | Edit an existing Questionnaire | Delete a Questionnaire |
68
69
| Questions | Access the **Questionnaires \> Questions** page | Add a new Question | Edit an existing Question | n/a |
69
70
| Regulations | n/a | Add a Regulation to the **⚙️Configuration \> Regulations** page | Edit an existing Regulation | Delete a Regulation |
71
+
| Scheduling Service Schedule | Access the **Scheduling** page | Superuser only | Edit an existing Schedule (change trigger, enable/disable) | Delete a Schedule |
70
72
| SLA Configuration | Access the **⚙️Configuration \> SLA Configuration** page | Add a new SLA Configuration | Edit an existing SLA Configuration | Delete an SLA Configuration |
71
73
| Test Types | n/a | Add a new Test Type (under **Engagements \> Test Types**) | Edit an existing Test Type | n/a |
72
74
| Tool Configuration | Access the **⚙️Configuration \> Tool Configuration** page | Add a new Tool Configuration | Edit an existing Tool Configuration | Delete a Tool Configuration |
Copy file name to clipboardExpand all lines: docs/content/automation/rules_engine/about.md
+18-7Lines changed: 18 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,17 +14,28 @@ Rules Engine can only be accessed through the [Pro UI](/get_started/about/ui_pro
14
14
15
15
Currently, Rules can only be created for Findings, however more object types will be supported in the future.
16
16
17
-
Rules always need to be manually triggered from the **All Rules** page. When a rule is triggered, it will be applied to all existing Findings that match the filter conditions set.
17
+
Rules can be triggered manually from the **All Rules** page, or scheduled to run automatically on a recurring schedule. When a rule is triggered, it will be applied to all existing Findings that match the filter conditions set.
18
18
19
19
## Possible Rule Actions
20
20
Each Rule can apply one or more of these changes to a Finding when it is triggered successfully (i.e. matches the set Filter conditions).
21
21
22
-
* Modify or append one or more informational fields on a Finding, including Title, Description, Severity, CVSSv3 Vector, Active, Verified, Risk Accepted, False Positive, Mitigated
23
-
* Set a User to Review a Finding
24
-
* Assign a Group as Owners for a Finding
25
-
* Add Tags to a Finding
26
-
* Add a Note to a Finding
27
-
* Create an Alert in DefectDojo with custom text
22
+
### Field Modifications
23
+
***Set a field** on a Finding, including Title, Description, Severity, CVSSv3 Vector, Active, Verified, Risk Accepted, False Positive, Mitigated
24
+
***Append or Prepend text** to a Finding's Title or Description
25
+
***Set Priority** — override the calculated Priority value on a Finding (overrides automatic priority calculation)
26
+
***Set Risk** — override the calculated Risk level on a Finding (overrides automatic risk calculation)
27
+
***Add, Subtract, Multiply, or Divide** the Priority value on a Finding by a given number
28
+
29
+
### Assignments & Ownership
30
+
***Set a User to Review** a Finding
31
+
***Assign a Group as Owners** for a Finding
32
+
***Set a Mitigation Policy** on a Finding — assigns a pre-configured Mitigation Policy to the Finding
33
+
***Add to Risk Acceptance** — adds a Finding to an existing Risk Acceptance record (sets risk_accepted=True, active=False, and handles Jira integration and endpoint statuses)
34
+
35
+
### Tags, Notes & Alerts
36
+
***Add Tags** to a Finding
37
+
***Add a Note** to a Finding
38
+
***Create an Alert** in DefectDojo with custom text
28
39
29
40
### Filter conditions
30
41
Rules are automatically triggered when a Finding meets specific Filter conditions. For more information on Filters that can be used to create Rule Actions, see the [Filter Index](/navigation/pro__filter_index) page.
description: "Automatically run Rules Engine rules on a recurring or one-time schedule"
4
+
weight: 2
5
+
audience: pro
6
+
---
7
+
<spanstyle="background-color:rgba(242, 86, 29, 0.3)">Note: Rules Engine Scheduling is a DefectDojo Pro-only feature.</span>
8
+
9
+
Rules can be scheduled to run automatically rather than triggered manually each time. A scheduled rule will execute against all Findings that match its filter conditions at the configured time.
10
+
11
+
The user setting up the schedule must have the **Change Scheduling Service Schedule** configuration permission.
12
+
13
+
## Schedule Types
14
+
15
+
### Single Run
16
+
17
+
A Single Run schedule executes the rule once at a specific date and time. After the run completes, the schedule is not repeated.
18
+
19
+
### Repeated Run
20
+
21
+
A Repeated Run schedule allows you to trigger a rule on a recurring basis — for example, every day at 9:00 AM, or every Monday at 15:00.
22
+
23
+
**Note:** Rules Engine schedules are limited to quarter-hour marks. The minute field of a cron schedule must be one of: **0, 15, 30, or 45**. Other minute values are not permitted.
24
+
25
+
Examples of valid schedules:
26
+
- Every hour on the hour: `0 * * * *`
27
+
- Every day at 9:15 AM: `15 9 * * *`
28
+
- Every Monday at 3:00 PM: `0 15 * * 1`
29
+
- Every 15 minutes: `0,15,30,45 * * * *`
30
+
31
+
## Creating a Schedule for a Rule
32
+
33
+
1. Navigate to the **All Rules** page from the **Rules Engine** menu in the sidebar.
34
+
2. Find the rule you want to schedule, and open its action menu (**⋮**).
35
+
3. Click **Schedule Rule**. This option is only visible if the Scheduling Service is enabled and you have the required permission.
36
+
4. In the **Schedule Rule** modal, fill in the following fields:
37
+
38
+
| Field | Description |
39
+
|---|---|
40
+
|**Name**| A unique name for this schedule (required, max 100 characters). |
41
+
|**Description**| Optional description of the schedule's purpose. |
42
+
|**Trigger Type**| Choose **Single Run** for a one-time execution, or **Repeated Run** for a recurring cron schedule. |
43
+
|**Frequency**| For Repeated Run: use the cron builder to select the period (hourly, daily, weekly, etc.) and the specific minute, hour, and day values. For Single Run: select a date and time using the date picker. |
44
+
|**Enable Schedule**| Toggle to enable or disable the schedule. A disabled schedule will not run until re-enabled. |
45
+
46
+
5. Click **Submit** to save the schedule. The rule will run automatically at the next scheduled time.
47
+
48
+
49
+
## Permissions
50
+
51
+
Access to scheduling within Rules Engine requires Superuser permissions or the appropriate Configuration Permission. See [User Permission Chart](/admin/user_management/user_permission_chart) for details.
Copy file name to clipboardExpand all lines: docs/content/releases/pro/changelog.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,11 +12,17 @@ For Open Source release notes, please see the [Releases page on GitHub](https://
12
12
13
13
## Feb 2026: v2.55
14
14
15
+
### Feb 26, 2026: v2.55.5
16
+
17
+
***(Rules Engine)** Rules Engine now automatically retries when encountering database lock contention or serialization conflicts, reducing the likelihood of a rule run failing due to temporary load on the system.
18
+
15
19
### Feb 24, 2026: v2.55.4
16
20
17
21
***(Connectors)** Added Akamai API Security, JFrog Xray to Connectors.
18
22
***(Surveys)** Anonymous surveys: users can now access surveys without logging in when anonymous surveys are enabled.
19
23
***(Pro UI)** The Pro UI editor now uses Markdown-based editing for text fields. This resolves issues with HTML-string encoding, especially when Findings were manually entered or edited.
24
+
***(Rules Engine)** Added **Set Mitigation Policy** action type: Rules can now assign a pre-configured Mitigation Policy to matching Findings.
25
+
***(Rules Engine)** Added **Add to Risk Acceptance** action type: Rules can now add matching Findings to an existing Risk Acceptance record, automatically setting them as risk-accepted and inactive, and handling Jira integration and endpoint statuses.
***(Rules Engine)** Rules can now be scheduled to run automatically on a recurring or one-time basis. From the Rules list, use the **⋮** menu on any rule to open the **Schedule Rule** form.
Copy file name to clipboardExpand all lines: dojo/importers/endpoint_manager.py
+3-2Lines changed: 3 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -157,8 +157,9 @@ def update_endpoint_status(
157
157
"""Update the list of endpoints from the new finding with the list that is in the old finding"""
158
158
# New endpoints are already added in serializers.py / views.py (see comment "# for existing findings: make sure endpoints are present or created")
159
159
# So we only need to mitigate endpoints that are no longer present
160
-
# using `.all()` will mark as mitigated also `endpoint_status` with flags `false_positive`, `out_of_scope` and `risk_accepted`. This is a known issue. This is not a bug. This is a future.
Copy file name to clipboardExpand all lines: dojo/importers/location_manager.py
+9-7Lines changed: 9 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -127,17 +127,19 @@ def update_location_status(
127
127
"""Update the list of locations from the new finding with the list that is in the old finding"""
128
128
# New endpoints are already added in serializers.py / views.py (see comment "# for existing findings: make sure endpoints are present or created")
129
129
# So we only need to mitigate endpoints that are no longer present
130
-
# using `.all()` will mark as mitigated also `endpoint_status` with flags `false_positive`, `out_of_scope` and `risk_accepted`. This is a known issue. This is not a bug. This is a future.
0 commit comments