Please consult the Upgrade notes in the documentation for specific instructions for this release, and general upgrade instructions. Below is an automatically generated list of all PRs merged since the previous release.
Changes since 3.4.300
- fix(dedupe): stop a manual duplicate mark from hiding an open finding @devGregA (#16579)
- fix(reimport): stop folding a new host into a suppressed finding @devGregA (#16580)
- docs(ai-guardrails): document AI Guardrails for Claude Code @devGregA (#16419)
- docs(changelog): add DefectDojo Pro 3.4.301 release notes @Maffooch (#16570)
- docs: say which Pro token controls hide when API tokens are off @blakeaowens (#16565)
- docs(connectors): document Ingestion Health for upstream connectors @blakeaowens (#16561)
- docs: stop loading Reo on docs.defectdojo.com @devGregA (#16564)
- docs(pro): describe the filter bar's sort as one row per level @blakeaowens (#16546)
- docs(page-layouts): hide an empty tab in a tab group @blakeaowens (#16545)
- docs(assets): describe the count cards and their footers on the Asset page @blakeaowens (#16538)
- docs(navigation): describe the grouped column picker and sort fields @blakeaowens (#16544)
- docs: import scan results from GitHub Actions with the official action @devGregA (#16560)
- docs(changelog): add DefectDojo Pro 3.4.300 release notes @Maffooch (#16558)
- fix(docs): make plain-text code blocks readable in light mode @skywalke34 (#16552)
🚀 General features and enhancements
- perf(api): load a test's finding groups and their JIRA issues once in ?prefetch=test @Maffooch (#16569)
🚀 API features and enhancements
- fix(api): return 413 instead of 500 when a request exceeds upload limits @Maffooch (#16584)
- perf(api): load a test's finding groups and their JIRA issues once in ?prefetch=test @Maffooch (#16569)
- fix(ui): say why a blocked delete failed instead of printing the error repr @blakeaowens (#16566)
- fix(api): a blocked v2 delete counts what refers to it instead of naming it @blakeaowens (#16550)
- fix(api): a Django ValidationError 400 reads as sentences @blakeaowens (#16549)
🐛 Bug Fixes
- fix(api): return 413 instead of 500 when a request exceeds upload limits @Maffooch (#16584)
- bugfix: duplicate_finding_set returns a QuerySet for orphaned duplicates (fixes 'list' has no attribute 'filter') @Maffooch (#16539)
- fix(dedupe): stop a single finding delete from deadlocking the duplicate cleanup @Maffooch (#16568)
- fix(ui): say why a blocked delete failed instead of printing the error repr @blakeaowens (#16566)
- fix(api): a blocked v2 delete counts what refers to it instead of naming it @blakeaowens (#16550)
- fix(api): a Django ValidationError 400 reads as sentences @blakeaowens (#16549)