- ✨ Added Admin API endpoint for basic member stats (#11840) - Kevin Ansfield
- 🐛 Removed incorrect a11y roles from navigation template (#11833) - Marco Zehe
See the changelogs for Ghost and Ghost-Admin for the details of every change in this release.
Tag Name: 3.17.0
Release Date: 5/26/2020
GhostOpen-source publishing platform specifically designed for professional bloggers and publications. Focuses on clean, minimalist writing and publishing experience.
Ghost 3.17.0 introduces a new Admin API endpoint for member statistics, enhances member management capabilities, and improves accessibility. This release focuses on empowering site owners with better tools to understand their membership growth while also addressing security and usability concerns with password reset emails. The update includes several code refactoring improvements and dependency updates that enhance the overall stability of the platform.
No breaking changes have been introduced in this release that would require migration steps. The updates are backward compatible and should work seamlessly with existing Ghost installations.
If you're developing custom integrations with the Members API, note that there are new endpoints available for member statistics and profile updates that you may want to leverage in your applications.
This release is recommended for all Ghost users, especially those who:
The upgrade process follows the standard Ghost update procedure and should be straightforward with no breaking changes to be concerned about.
Password reset emails now show the full URL instead of a truncated link. This important fix addresses both security and usability concerns, as users can now properly see where the link leads and can copy/paste the URL if needed.
Incorrect ARIA roles have been removed from the navigation template. These roles were hiding actual links from accessibility aids and were not appropriate in this context. This fix improves the experience for users of screen readers and other assistive technologies.
Removed global bodyParser middleware for the members app and added it only to specific endpoints. This resolves an issue with Stripe webhook processing, as Stripe expects raw data to be passed down to the /webhooks endpoint rather than parsed JSON.
A new Admin API endpoint has been added that provides basic member statistics. This moves the generation of member stats for admin graphs from the client to the server, improving performance and reliability. The endpoint outputs totals across requested date ranges (30, 90, 365 days, or all time) and is optimized for performance even with large datasets.
Example request:
GET /ghost/api/canary/members/stats/?days=30
Example response:
{
"total": 100000,
"total_in_range": 20000,
"total_on_date": {
"2020-04-25": 19000,
"2020-04-26": 19500,
// continues until today's date
},
"new_today": 200
}
Members can now update their profile information when logged in with a valid session. This includes:
The implementation includes:
subscribed status to member responsesAdded support for filtering members by label in the Admin API. This includes:
filter plugin with appropriate label relationshipThe fix for password reset emails now shows the full URL instead of a truncated link. This security improvement allows users to verify the destination of password reset links before clicking, reducing the risk of phishing attacks that might exploit users' inability to see the full URL.
The new member statistics API endpoint has been optimized to handle large datasets efficiently. Testing with 100,000 members showed query performance under 100ms, ensuring that even sites with large member bases can quickly retrieve analytics data.
Extensive refactoring of the codebase to use destructuring for common library imports has improved code readability and potentially reduced memory usage. This modernization of the codebase affects multiple areas including:
Ghost 3.17.0 significantly enhances the Members feature with new API endpoints for statistics and profile management. Site administrators gain valuable insights through the new statistics endpoint, which provides member growth data across different time periods. Members benefit from improved self-service capabilities, allowing them to update their profiles and subscription preferences.
The accessibility improvements make Ghost more inclusive by fixing navigation template issues that previously affected screen reader users. Security and usability are enhanced with the fix to password reset emails, ensuring users can see and copy the full reset URL.
Behind the scenes, extensive code refactoring improves maintainability and sets the foundation for future development. The targeted middleware approach for body parsing resolves issues with Stripe webhook processing.
Overall, this release strengthens Ghost's capabilities as a membership platform while addressing important usability, security, and accessibility concerns.
See the changelogs for Ghost and Ghost-Admin for the details of every change in this release.