Ghostwriter v7.2.1
Summary
This release introduces several quality of life changes for admins and users alike and some bug fixes.
CHANGELOG
[7.2.1] - 9 July 2026
Added
- Added support for a new
--required-onlyfor loading seed data- Fixtures can now be flagged with
"required": false - The
loaddatacommand will not load fixtures marked as such when the flag is set
- Fixtures can now be flagged with
- Added option to scope a service token by client
- This works similarly to All Accessible Projects but filters the access by one or more clients
- The token will have access to all current and future user-accessible projects under the selected client(s)
- Added preview modals for findings and observations on reports
- These now have Preview buttons in their dropdown menus
- Added jinja2 rendering to field preview modals for finding, observation, report, and project fields
- Continuing preview enhancements from v7.2.0, previews now render Jinja2 templating using the report context
- Clicking the Preview buttons will now trigger the modal and a Rendering rich text preview... loading message
- It will take a moment to generate the context and render any Jinja2
- If there are syntax errors, rendering will fail and there will be an error message
- Added configuration options to the General Settings to control maximum token lifetime and credential rotation
- Maximum Token Lifetime in Days (default: 365) limits how far into the future a token expiry date may be set
- Require Token Rotation to Extend Expiry (default: True) forces token rotation when extending expiry
- Added the option to regenerate API and service tokens to immediately roll the credential and receive a new token
Changed
- Updated Ghostwriter CLI Binaries: Updated the pre-built Ghostwriter CLI binaries to v1.0.1
- Marked the starter templates as non-required so they will not re-appear during updates and container builds if deleted
- Adjusted the Docker service configurations to cap log file size to 30MB (maximum of 3 files * 10MB each)
- This caps the size of all logs to ~240MB
- Preview modals for rich-text fields now render references, captions, and client logo objects
- References will be represented by your figure label and a placeholder—e.g.,
Figure # - Captions will also use the configured caption label and prefix and show the caption text–e.g.,
Figure # — Caption Contents - Client logo objects will insert the client logo when available
- Logos are set to a static 6.5" width to align with Office's default width and keep very large or wide logos under control
- References will be represented by your figure label and a placeholder—e.g.,
- When editing an API token's expiration date, the form and back-end now enforce the Maximum Token Lifetime in Days setting
- The
whoamiquery now works with service tokens - Changed the Hasura GraphQL build to add a copy of BusyBox for health checks
- The Hasura base image uses Ubuntu Jammy, and installing
curlduring emulatedlinux/arm64builds can triggerlibc-binpost-installation failures under QEMU - The Hasura image no longer runs
apt-getjust to provide a health check command - Hasura health checks now use the bundled BusyBox
wgetprobe instead ofcurl
- The Hasura base image uses Ubuntu Jammy, and installing
Fixed
- Removed tags from autocomplete suggestions in filters so they work as expected when selecting them (Fixes #927)
Security
- Adjusted WebSocket consumers to check object access to match access controls used elsewhere
- Please see security advisory for details: GHSA-f6w3-9v9c-5364