TL;DR
Ghost 2.13.0 brings significant improvements to data handling, fixing several critical bugs including empty string storage, startup crashes, and user authentication issues. This release enhances system stability and developer experience with better test organization and API key management.
The update focuses on database integrity by properly handling null values, improves error handling for missing dependencies, and fixes several user-facing issues. For developers, there's improved testing infrastructure with separated test environments and better API key management.
Highlight of the Release
- Fixed database integrity issues by properly handling null values instead of empty strings
- Improved system stability with fixes for startup crashes when no active theme is present
- Enhanced content editing experience by fixing drag-n-drop card reordering issues
- Reorganized testing infrastructure with separate environments for acceptance, regression, and unit tests
- Improved API key management with better formatting and authentication checks
Migration Guide
Database Migration
This release includes an important migration that updates empty strings to null values in nullable database columns. This improves database integrity and fixes issues related to empty string handling.
Testing Environment Changes
If you're a developer working with Ghost's testing infrastructure:
yarn test now only runs acceptance and unit tests
- Use
yarn test:regression to manually run regression tests
- Be aware of the new test categories:
- Acceptance tests: Common/basic API use cases against the stable API
- Unit tests: All unit tests with no database access and proper mocking
- Regression tests: Tests for packages and components that don't need to run for each PR or commit
API Key Format Changes
If you're using Admin API keys, note that the format has changed to {id}:{secret}. This means you only need to copy a single value during setup rather than handling ID and secret separately.
Upgrade Recommendations
This release is recommended for all Ghost users, especially those who:
- Have experienced issues with database integrity related to empty strings
- Have encountered crashes when no active theme is present
- Work with content editing and have experienced issues with card reordering
- Are developers using the Admin API or working with the testing infrastructure
The upgrade process follows the standard Ghost update procedure and should be straightforward. The included database migration will automatically fix empty string issues in your database.
For developers, be aware of the changes to API key format and testing infrastructure if these affect your workflow.
Bug Fixes
Database and Data Handling
- Fixed database integrity issues by adding migration to update empty strings to null values
- Updated base model to store null instead of empty string for nullable columns
- Fixed crash on startup when no active theme is present by using default theme engine values
User Experience
- Fixed 404 errors for locked or suspended users
- Fixed drag-n-drop card reordering interfering with caption and markdown/html card text selection
- Fixed console getting cleared on dev start by removing
clearConsole on preact cli
Development Environment
- Fixed eslint installation error when using node version < 8.10 and < 6.14 by bumping brute-knex
- Fixed error handling for missing sharp install by updating ghost-ignition dependency
- Removed
.only from test files that were causing test failures
New Features
API Key Improvements
- Modified Admin API key output format to
{id}:{secret} for easier implementation
- Added audience check in Admin API key authentication
- Shortened admin key length for better usability
- Added integration ID to frame context
- Changed
context.api_key_id to an object containing key type information
Testing Infrastructure
- Separated test environments into acceptance, regression, and unit tests
- Added cron handling for Travis CI
- Set up structure for daily regression tests via cronjob
Webhook Enhancements
- Set Ghost user-agent header for outgoing webhook requests to
Ghost/2.13.0 (https://github.com/TryGhost/Ghost) for better analytics and security features
Security Updates
No specific security fixes were mentioned in this release.
Performance Improvements
Testing Performance
- Improved CI performance by separating tests into different categories
- Reduced Travis CI build time from 10-13 minutes by only running acceptance and unit tests by default
- Set up regression tests to run on a daily schedule rather than on every commit
Error Handling
- Improved error handling for missing dependencies like sharp
- Enhanced error reporting by ensuring error codes take priority over inherited error codes
Impact Summary
Ghost 2.13.0 delivers important stability improvements and bug fixes that enhance both the user and developer experience. The most significant impact comes from the database handling improvements, which ensure proper storage of null values instead of empty strings, resolving potential data integrity issues.
For content creators, the fixed drag-and-drop card reordering eliminates frustrating interference with text selection in captions and markdown/html cards. Administrators will benefit from improved system stability with fixes for startup crashes when no active theme is present and better handling of locked or suspended users.
Developers working with Ghost will appreciate the reorganized testing infrastructure, which improves development efficiency by separating tests into logical categories and reducing CI build times. The API key improvements make integration easier with a simplified format and better authentication checks.
Overall, this release focuses on stability, correctness, and developer experience rather than introducing major new features, making it an important maintenance update for all Ghost installations.
Full Release Notes
- 🐛 Added migration to update empty strings to null (#10428)
- 🐛 Fixed crash on startup when no active theme (#10426)
- 🐛 Updated base model to store null instead of empty string (#10425)
- 🐛 Fixed error for missing sharp install (#10423)
- 🐛 Fixed drag-n-drop card reordering interfering with caption and markdown/html card text selection
- 🐛 Fixed 404 for locked or suspended users
- 🐛 Fixed eslint installation error when using node version < 8.10 and < 6.14
You can see the full change log for the details of every change included in this release.