22 October 2021, v2.2.2

v2.2.2

This is the final release of v2.2.2. This release contains mostly optimizations and unit testing, but there are several impactful bug fixes and changes.

New Features

  • Added new filters for report templates

    • add_days: Add some number of business days to a date

    • format_datetime: Change the format of the provided datetime string

  • The cloud monitoring task can now collect information about AWS Lightsail instances and S3 buckets

  • A new "Notification Delay" setting is available under the Cloud Configurations

    • This setting delays cloud infrastructure teardown notifications by X days

    • Useful if you want to run the cloud monitor task more frequently and not get teardown reminders for some period of time after a project ends

  • Projects now have fields for timezone, start time, and end time to track working hours

  • Client contacts now have a timezone field

  • You can now save up to three additional IP addresses for cloud servers (they are stored in an array for easy iteration)

Fixed

  • Fixed the sorting of the domain age column in the domain table

  • Fixed issue with the JavaScript for deleting entries in a formset selecting other checkboxes

  • Fixed WhoisStatus model's count property

  • Fixed error handling that could suppress report generation error messages when generating all reports

  • Fixed error that could lead to WebSocket disconnections and errors when editing the timestamp values of a log entry

  • Fixed a typo in the emoji used by the default Slack message for an untracked server

  • Fixed a logic issue that could result in an "ignore tag" being missed when reporting on cloud infrastructure

Changed

  • Adjusted the report data to replace a blank short name with the client's full name (rather than a blank space in a report)

  • Moved some form validation logic to Django Signals in preparation for the API

  • Added a custom "division by zero" error message for times when a Jinja2 template attempts to divide a value (e.g., total num of completed objectives) that is zero without first checking the value

  • Bumped Toastr message opacity to .9 (up from .8) to improve readability

  • Bumped 50 character limit on certain OplogEntry values to 255 (the standard for other models)

  • Condensed Docker image layers and disabled caching for pip and apk to reduce image sizes by about 0.2 to 0.3GB

  • Optimized and improved code quality throughout the project based on recommendations from Code Factor (https://www.codefactor.io/repository/github/ghostmanager/ghostwriter)

  • Added Signals to release a checked-out server or domain if the current checkout is deleted (so it is released immediately rather than waiting for a scheduled task to run)

  • When updating a project's dates, Ghostwriter will no longer update the dates on domain and server checkouts if the checkout has already expired

  • If an in-use domain is flagged as "burned" by the health check task, a notification will now be sent to the project's Slack channel if a Slack channel is configured

  • All core libraries have been bumped up to their latest versions and Django has been upgraded to v3.1 from v3.0

Security Changes

  • Upgraded the Django image to Alpine v3.14 to address potential security vulnerabilities in the base image

  • Upgraded Postgres image to Postgres v11.12 to address potential security vulnerabilities in previously used version/base image

  • Pinned nginx image to v1.12.1 for security and stability

  • Upgraded TinyMCE to v5.8.2 to address potential XSS discovered in older TinyMCE versions

Last updated