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
|`unittests/scans/<parser_dir>/{many_vulns,no_vuln,one_vuln}.json` | Sample files containing meaningful data for unit tests. The minimal set.
38
38
|`unittests/tools/test_<parser_name>_parser.py` | Unit tests of the parser.
39
39
|`dojo/settings/settings.dist.py` | If you want to use a modern hashcode based deduplication algorithm
40
-
|`doc/content/en/integrations/parsers/<file/api>/<parser_file>.md` | Documentation, what kind of file format is required and how it should be obtained
40
+
|`docs/content/en/connecting_your_tools/parsers/<file/api>/<parser_file>.md` | Documentation, what kind of file format is required and how it should be obtained
41
+
41
42
42
43
## Factory contract
43
44
@@ -50,7 +51,7 @@ Parsers are loaded dynamicaly with a factory pattern. To have your parser loaded
50
51
3. The name of this class **MUST** be the Python module name without underscores and with `Parser` suffix.
51
52
- ex: `dojo.tools.my_tool.parser.MyToolParser`
52
53
4. This class **MUST** have an empty constructor or no constructor
53
-
5. This class **MUST** implement 3 methods:
54
+
5. This class **MUST** implement 4 methods:
54
55
1.`def get_scan_types(self)` This function return a list of all the *scan_type* supported by your parser. This identifiers are used internally. Your parser can support more than one *scan_type*. For example some parsers use different identifier to modify the behavior of the parser (aggregate, filter, etc...)
55
56
2.`def get_label_for_scan_types(self, scan_type):` This function return a string used to provide some text in the UI (short label)
56
57
3.`def get_description_for_scan_types(self, scan_type):` This function return a string used to provide some text in the UI (long description)
@@ -357,7 +358,7 @@ If you want to take a look at previous parsers that are now part of DefectDojo,
357
358
358
359
## Update the import page documentation
359
360
360
-
Please add a new .md file in [`docs/content/en/integrations/parsers`] with the details of your new parser. Include the following content headings:
361
+
Please add a new .md file in [`docs/content/en/connecting_your_tools/parsers`] with the details of your new parser. Include the following content headings:
361
362
362
363
* Acceptable File Type(s) - please include how to generate this type of file from the related tool, as some tools have multiple methods or require specific commands.
description: Tag Formatting Changes + Import Payload Changes
6
+
---
7
+
8
+
### Tag Formatting Update
9
+
10
+
Tags can no longer contain the following characters:
11
+
12
+
-**Commas (,)**
13
+
-**Quotations** (both single `'` and double `"`)
14
+
-**Spaces**
15
+
16
+
#### Automatic Migration
17
+
18
+
To ensure a smooth transition, an automatic migration will be applied to existing tags as follows:
19
+
20
+
-**Commas** → Replaced with **hyphens (`-`)**
21
+
-**Quotations** (single and double) → **Removed**
22
+
-**Spaces** → Replaced with **underscores (`_`)**
23
+
24
+
#### Examples
25
+
26
+
-`example,tag` → `example-tag`
27
+
-`'SingleQuoted'` → `SingleQuoted`
28
+
-`"DoubleQuoted"` → `DoubleQuoted`
29
+
-`space separated tag` → `space_separated_tag`
30
+
31
+
#### Why This Change?
32
+
33
+
This update improves consistency, enhances search capabilities, and aligns with best practices for tag formatting.
34
+
35
+
#### Recommended Actions
36
+
37
+
We recommend reviewing your current tags, specifically CI/CD processes before upgrading to ensure they align with the new format. Performing a database backup is also suggested as this migration cannot be reverted.
38
+
39
+
Following the deployment of these new behaviors, requests sent to the API or through the UI with any of the violations listed above will result in an error, with the details of the error raised in the response.
40
+
41
+
---
42
+
43
+
### Asynchronous Import deprecation in 2.47.0
44
+
45
+
Please note that asynchronous import is already deprecated and will be removed in version 2.47.0. If you haven't migrated from this feature yet, we recommend doing so.
46
+
47
+
### Import / Reimport Statistics Delta
48
+
49
+
Following a successful import or reimport, a JSON blob for `statistics` is generated to provide the differential of finding activity.
50
+
There was a section in the `delta` JSON blob that referred to a key labeled `left untouched`. This value does not comply with REST
51
+
norms, and has been renamed to `untouched`. Here is a before and after to make it clear:
52
+
53
+
Before:
54
+
55
+
"statistics": {
56
+
"before": {},
57
+
"delta": {
58
+
"created": {},
59
+
"closed": {},
60
+
"reactivated": {},
61
+
"left untouched": {}
62
+
},
63
+
"after": {}
64
+
}
65
+
66
+
After:
67
+
68
+
"statistics": {
69
+
"before": {},
70
+
"delta": {
71
+
"created": {},
72
+
"closed": {},
73
+
"reactivated": {},
74
+
"untouched": {}
75
+
},
76
+
"after": {}
77
+
}
78
+
79
+
---
80
+
81
+
Check the [Release Notes](https://github.com/DefectDojo/django-DefectDojo/releases/tag/2.46.0) for the contents of the release.
0 commit comments