Home

>

Tools

>

Strapi

>

Releases

>

3.0.0-alpha.6

Strapi Release: 3.0.0-alpha.6

Tag Name: v3.0.0-alpha.6.3

Release Date: 10/16/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.6.3 introduces two major plugins: Content Manager and Content Type Builder, along with significant improvements to the admin interface and plugin architecture. This release focuses on enhancing developer experience with reduced bundle sizes, improved documentation, and a more streamlined contribution process. The update also includes important bug fixes and performance optimizations for the Settings Manager plugin.

Highlight of the Release

    • Introduction of Content Manager plugin for managing content types and entries
    • New Content Type Builder plugin for creating and modifying content structures without coding
    • Improved plugin architecture with bootstrap and requirement functions
    • Comprehensive new documentation covering all aspects of the system
    • Reduced bundle size through shared common dependencies
    • Enhanced query process supporting different ORMs (Object-Relational Mappings)
    • Simplified contribution process for developers

Migration Guide

Upgrading to v3.0.0-alpha.6.3

Prerequisites

  • This version is only compatible with Node v8 and npm >= 5.3.0
  • Make sure your Node.js and npm versions meet these requirements before upgrading

Upgrading Steps

  1. Update your Strapi dependencies in your package.json:

    {
      "dependencies": {
        "strapi": "3.0.0-alpha.6.3",
        "strapi-admin": "3.0.0-alpha.6.3",
        "strapi-utils": "3.0.0-alpha.6.3",
        // Update any other strapi-* dependencies
      }
    }
    
  2. Run npm install to update the dependencies

  3. If you've customized any admin components, you may need to update them due to changes in the admin interface structure

  4. If you're using custom plugins, ensure they follow the new plugin architecture with bootstrap and requirement functions

  5. Check your database configuration as the session handling has changed from koa-generic-session to koa-session

  6. Review the new documentation for any changes in API or configuration structure

  7. Test your application thoroughly after upgrading, especially if you're using custom plugins or have modified the admin interface

Upgrade Recommendations

Who should upgrade?

  • Developers who want to take advantage of the new Content Manager and Content Type Builder plugins
  • Teams looking for improved admin interface and better documentation
  • Projects that would benefit from the enhanced query system and ORM support
  • Anyone experiencing issues fixed in this release, particularly with the Settings Manager

When to upgrade?

  • This is an alpha release (v3.0.0-alpha.6.3), so it's recommended for development and testing environments
  • Production environments should upgrade with caution and thorough testing
  • Consider upgrading if you need the specific features or bug fixes included in this release

Upgrade Priority

  • Medium for development environments
  • Low to Medium for production environments (due to alpha status)

Preparation

  • Ensure compatibility with Node v8 and npm >= 5.3.0
  • Back up your project and database before upgrading
  • Review the migration guide and new documentation
  • Plan for adequate testing time after the upgrade

Bug Fixes

Settings Manager Fixes

  • Fixed issue where editing security settings would cause crashes
  • Corrected security service to send appropriate values for xframe instead of objects
  • Fixed React IntL warnings in select components
  • Resolved PropTypes warnings throughout the Settings Manager

Content Type Builder Fixes

  • Fixed attribute minLength bug in nested input checkboxes
  • Corrected popup relation design issues
  • Fixed button loader and close button modal functionality
  • Removed required field for popup relation content type builder

Content Manager Fixes

  • Fixed redirection after editing a record
  • Resolved enter key submission issues
  • Fixed relationship deletion handling in both Mongoose and Bookshelf
  • Corrected number type format issues
  • Fixed table values display

Admin Interface Fixes

  • Fixed settings-manager plugin left menu active class
  • Corrected button props and removed unknown props warnings
  • Fixed 404 back button functionality
  • Resolved UTC date format in TableRow component
  • Fixed navigation issues between plugins

New Features

Content Manager Plugin

The new Content Manager plugin provides a user-friendly interface for managing content entries. It includes:

  • CRUD operations for all content types
  • Relationship management between content types
  • Form validation and submission handling
  • Table view with pagination for content entries
  • Support for different data types including relationships

Content Type Builder Plugin

This powerful plugin allows developers to create and modify content types through a GUI:

  • Create new content types without writing code
  • Add, edit, and remove fields with various data types
  • Configure relationships between content types (one-to-many, many-to-many)
  • Set field properties like required, unique, etc.
  • Automatically updates the admin menu when content types are added or removed

Plugin Architecture Improvements

  • New bootstrap function that executes before plugin mounting
  • requirement function to conditionally render plugins based on environment or other factors
  • Plugin blocking components for production or auto-reload scenarios
  • Better integration between plugins and the admin interface

Enhanced Query System

  • Support for different ORMs (Object-Relational Mappings)
  • Improved filters for API endpoints
  • Better handling of relationships in queries
  • Proper ordering of relation attributes

Security Updates

Security Middleware Improvements

  • Fixed security service in settings-manager to send appropriate values for xframe headers
  • Properly configured security settings to prevent crashes
  • Improved session handling with database connections
  • Enhanced error handling for security-related operations

Note: While specific security vulnerabilities are not explicitly mentioned in the commit messages, the improvements to the security settings handling and middleware configuration contribute to a more secure application.

Performance Improvements

Bundle Size Optimization

  • Reduced bundle size by sharing common dependencies between plugins and admin
  • Implemented DllPlugin to share dependencies across builds
  • Used React and React-DOM through global to ensure the same dependency is used everywhere
  • Optimized webpack configuration for better build performance

Database and Session Improvements

  • Migrated from koa-generic-session to koa-session for better performance
  • Using database connections for sessions
  • Created multiple Mongoose instances for each connection
  • Improved handling of database connectors

UI Performance Enhancements

  • Enhanced button library for better responsiveness
  • Improved table list component with shadow effects
  • Optimized form submissions and validations
  • Added loading indicators for better user feedback during operations
  • Increased clickable zones for better usability

Impact Summary

This release represents a significant milestone in Strapi's development with the introduction of two core plugins: Content Manager and Content Type Builder. These plugins fundamentally change how developers work with Strapi by providing GUI interfaces for content management and content type creation, reducing the need for manual coding.

The architectural improvements, including the new plugin bootstrap and requirement functions, create a more flexible and robust foundation for plugin development. This allows for better integration between plugins and the core system, as well as conditional rendering based on environment or other factors.

Performance optimizations, particularly the reduced bundle size through shared dependencies, improve the overall user experience and load times. The migration from koa-generic-session to koa-session and the use of database connections for sessions enhance stability and scalability.

The comprehensive new documentation makes Strapi more accessible to new users and provides valuable reference material for experienced developers. Combined with the simplified contribution process, this should lead to increased community involvement and faster adoption.

For existing users, the numerous bug fixes, especially in the Settings Manager, Content Manager, and admin interface, resolve pain points and improve the overall reliability of the system. The enhanced query system with support for different ORMs provides more flexibility in database choices and query capabilities.

Overall, this release significantly advances Strapi's capabilities as a headless CMS while improving developer experience and system performance.

Full Release Notes

🚀 New feature

  • [Plugin] Content Manager.
  • [Plugin] Content Type Builder.
  • [Plugin] Execute bootstrap function before mounting.
  • [Plugin] Execute requirement function to allow or not rendering.
  • Write new documentation.

🐛 Bug Fix

  • [Plugin] Settings Manager - Allow edit of security settings without crashing.

💅 Enhancement

  • [Admin] Reduce number of steps to be able to contribute.
  • [Admin] Reduce bundle size by sharing commons dependencies.
  • [Admin] Update strapi-helper-plugin and strapi-admin dependencies to the latest version.
  • [Plugin] Finalize the query process to be able to use different ORMs.

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

Statistics:

File Changed300
Line Additions13,829
Line Deletions960
Line Changes14,789
Total Commits250

User Affected:

  • Can now use the Content Type Builder plugin to create and manage content types without writing code
  • Benefit from reduced bundle size and improved performance through shared dependencies
  • Can access comprehensive new documentation for better understanding of the system
  • Need to ensure Node v8 and npm >= 5.3.0 compatibility

Contributors:

soupetteAurelsicokolauriejimpierreburgy