13 April 2021, v2.2.0-rc1

Change log for v2.3


This is a release candidate (RC) for v2.2.0. This code is final unless anyone reports a bug or issue. We have bumped the minor version to 2.2 in recognition of several impactful changes:

New Features

  • Introduced the new ReportData serializer. This is nearly invisible to users but is a huge efficiency and performance upgrade for the back-end. Changes to project data models will now automatically appear in the raw JSON reports and be accessible within DOCX reports.

  • The new serializer has modified some of the Jinja2 template expressions. View a JSON report to see everything available. For example, instead of writing {{ project_codename }}, you will access this project value with {{ project.codename }}.

  • Ghostwriter now handles dates differently to better support all international date formats. Dates displayed in the interface and dates within reports (e.g., report_date) will match the date locale set in your server settings (en-us by default).


  • Added a missing field in the Report Template admin panel.

  • "Add to Report" on the finding details page now works.

  • Updated delete actions for operation logs to avoid an error that could prevent the deletion of entries when deleting an entire log.

  • Domain age calculations are now accurate.

  • An invalid value for domain purchase date no longer causes a server error during validation.

  • Constrained Twisted library to v20.3.0 to fix a potential issue that could come up with Django Channels

  • Improved the reporting engine to handle even the wildest nested styling.


  • Adjusted finding severity lists to sort by the severity's weight instead of alphabetically.

  • Re-enabled evidence uploads in all WYSIWYG editors (it was previously excluded from certain finding fields).

  • Adjusted sidebar organization to improve visibility of a few sections that could be difficult to locate.

  • Updated BootStrap and FontAwesome CSS versions.

  • Updated all Python libraries to their latest versions.

  • Animated the hamburger menus for fun.

  • Switched ASGI servers (from Daphne server to Uvicorn) for WebSockets and better performance.

  • Updated the sample template.docx to act as a walkthrough for the new report data and changes in Jinja2 expressions.

Last updated