Home

>

Tools

>

Strapi

>

Releases

>

3.0.0-alpha.4

Strapi Release: 3.0.0-alpha.4

Tag Name: v3.0.0-alpha.4

Release Date: 7/20/2017

Strapi LogoStrapi

Open-source headless CMS built with Node.js. Provides developers with complete freedom in choosing their favorite tools and frameworks for frontend development.

TL;DR

Strapi v3.0.0-alpha.4 introduces a major architectural shift with the first implementation of plugins, a new dashboard layout, and a shared helper package for plugin development. This release adds new CLI commands for plugin management and improves the development workflow. The update also enhances database adapters and requires Node v8+ and npm 5.3.0+. This alpha release represents a significant step toward a more modular and developer-friendly Strapi ecosystem.

Highlight of the Release

    • First implementation of a plugin system with Content Manager as the initial plugin
    • Introduction of strapi-helper-plugin shared package for plugin development consistency
    • New CLI commands to create, install, and uninstall plugins
    • Completely redesigned dashboard layout
    • Improved database adapters with new lifecycle hooks and relation handling
    • Async/await support throughout the codebase
    • Node v8+ and npm 5.3.0+ requirement

Migration Guide

Upgrading to v3.0.0-alpha.4

Node.js and npm Requirements

  • Upgrade to Node.js v8 or higher
  • Ensure npm version 5.3.0 or higher is installed

Project Structure Changes

  • The admin interface is now in a separate package (strapi-admin)
  • Plugins are now modular and stored in their own directories

Database Adapter Changes

If you've extended the database adapters:

  • Review the new lifecycle hooks: beforeFetchCollection & afterFetchCollection
  • Check custom column and table name implementations
  • Update any code that relies on the previous model structure

Policy System Changes

  • Policies are now organized by scope: global, API, and plugin
  • Update your policy configurations to match the new structure

Development Workflow

  • Use the new CLI commands for plugin management
  • Leverage the strapi-helper-plugin package for plugin development
  • Follow the new plugin structure for custom plugins

UI Customizations

If you've customized the admin UI:

  • Review the new dashboard layout structure
  • Update any custom components to work with the new design system

Upgrade Recommendations

For Development Environments

We recommend upgrading to this alpha release if you're actively developing with Strapi and want to explore the new plugin system and improved development workflow. This version introduces significant architectural changes that will be the foundation for future releases.

For Production Environments

As this is an alpha release (v3.0.0-alpha.4), it's not recommended for production use. There may be breaking changes in future releases before the stable v3.0.0 release.

Upgrade Steps

  1. Ensure your environment meets the requirements (Node v8+, npm 5.3.0+)
  2. Create a backup of your existing project
  3. Install the latest version: npm install [email protected]
  4. Review the migration guide for specific changes
  5. Test thoroughly in a development environment before considering any production deployment

Known Issues

  • This is an alpha release and may contain bugs or incomplete features
  • The plugin system is in its early stages and API may change
  • Some features from v1.x may not be fully implemented yet

Bug Fixes

Database Fixes

  • Fixed issue preventing the usage of Mongoose
  • Fixed multi-word relations handling
  • Fixed password issues with Knex
  • Fixed lifecycle callback execution for Bookshelf
  • Fixed conflicts with model names in many-to-many relationships by using globalId

UI and Navigation Fixes

  • Fixed sagas and browserHistory issues
  • Fixed pagination for short lists
  • Fixed router prefix condition
  • Fixed hot reload for plugins
  • Resolved left menu links generator issues

System Fixes

  • Fixed restart when there is no exit code
  • Fixed setup issues for development environment
  • Fixed crash when connections exist but there are no models
  • Improved error handling when hooks fail to load

New Features

Plugin System

  • First implementation of a modular plugin architecture
  • Content Manager plugin as the first official plugin
  • Dynamic content type management with list and edit views
  • Pagination, sorting, and filtering in content lists
  • Relation handling in the Content Manager UI

Development Tools

  • New strapi-helper-plugin shared package for consistent plugin development
  • CLI commands to create, install, and uninstall plugins:
    • strapi generate:plugin pluginName
    • strapi install pluginName
    • strapi uninstall pluginName
  • Improved plugin generator with standardized structure
  • Hot reload support for plugin translations

User Interface

  • Brand new dashboard layout with improved navigation
  • Redesigned left menu with better organization
  • Enhanced plugin header components
  • Responsive design improvements

API Enhancements

  • Support for custom responses based on HTTP status
  • Improved policy system with global, API, and plugin policies
  • Better error handling with Boom integration

Security Updates

Security Enhancements

  • Updated dependencies to more secure versions
  • Improved session handling with Redis
  • Added TTL to Redis sessions
  • Exposed session in ctx.state for better security control
  • Enhanced authentication flow

Performance Improvements

Caching Improvements

  • Force EJS to cache in production mode
  • Added Redis support for caching with TTL options
  • New utility caching methods for strapi-redis
  • Added disabledCaching option for more control

Database Optimizations

  • Improved Bookshelf adapter with better relation handling
  • Support for custom tableName on many-to-many associations
  • Allow custom columnName on one-to-many associations
  • Added beforeFetchCollection & afterFetchCollection lifecycle hooks
  • Support for multiple connections with strapi-bookshelf connector

Build Process

  • Simplified build process for plugins
  • Disabled Dedupe plugin for faster builds
  • Excluded admin directory for plugin dictionary to improve performance
  • Optimized plugin structure for better loading times

Impact Summary

Strapi v3.0.0-alpha.4 represents a fundamental shift in the architecture of the CMS, introducing a plugin-based system that will define the future of the platform. The introduction of the Content Manager plugin and the strapi-helper-plugin package establishes a foundation for a rich ecosystem of extensions.

The new dashboard layout significantly improves the user experience, while the enhanced database adapters provide more flexibility and control for developers. The addition of async/await support modernizes the codebase and improves readability and error handling.

This release requires Node v8+ and npm 5.3.0+, which may necessitate environment upgrades for some users. The new CLI commands for plugin management streamline the development workflow, making it easier to extend Strapi's functionality.

While this is an alpha release and not recommended for production use, it provides a clear direction for the future of Strapi and offers developers an opportunity to start adapting to the new architecture. The modular approach will allow for more targeted updates and improvements in the future, benefiting both the core development team and the community.

Full Release Notes

💥 Breaking changes

  • async/await support.

🚀 New features

  • First implementation of plugins.
  • Introduce brand new dashboard layout (more coming soon).
  • Introduce a shared package strapi-helper-plugin to keep consistency in the future ecosystem.
  • New CLI commands to create, install and uninstall a plugin.
  • New development setup workflow.

💅 Enhancement

  • Update README and ROADMAP.
  • Improve databases adapters strapi-bookshelf and strapi-mongoose.

This version is only compatible with Node v8 and npm >= 5.3.0

Statistics:

File Changed300
Line Additions12,667
Line Deletions5,174
Line Changes17,841
Total Commits250

User Affected:

  • Must upgrade to Node v8+ and npm 5.3.0+ to use this version
  • Need to adapt to the new plugin architecture
  • Can leverage new CLI commands for plugin management
  • Benefit from improved database adapters for Bookshelf and Mongoose
  • Can use async/await syntax throughout the codebase

Contributors:

Aurelsicokopierreburgylauriejim