Announcing strapi@3.0.0-alpha.26 - Filter on deeply nested objects

deep filtering Photo by unsplash-logoCristian Palmer on Unsplash

Sit back, relax and have a look at what's coming in this release.
I'm particularly happy to announce this release as it will be the ultimate alpha of Strapi. Yes, next one will be the first beta!

This is the reason why we stopped merging PR as you probably saw on GitHub. We are currently working hard on the new architecture for the admin panel and the plugins to provide better stability of the Strapi core.
So, no PR will be merged in the next 5 weeks as we are focusing on delivering the beta version of Strapi. On top of that, you would have to rewrite your PR based on the new architecture, so there's no point PRing right now.

But you can still contribute! See at the end of this article how you can get involved without coding.
For now, let's see what's new in this release!

🔻Filtering on deeply nested objects

First up, deep filtering. Did you ever want to filter on relation's fields? Well, now you can 🤩 !
This new feature comes in several flavors: REST, GraphQL and is supported on all the current databases (Mongo, SQLite, MySQL and PostgresQL).

Here are some examples:

nthdeepgraphql nthdeeprest

This new feature also introduces some changes we think you are going to love:

Multi field sorting

GET /products?_sort=created_at:desc,price:asc

Multi operator filtering

GET /products?updated_at_gt=2019-01-01T00:00:00&updated_at_lt=2019-01-10T00:00:00

Query arrays to create OR filtering

GET /products?title_contains=ice&title_contains=fire

New filters

Finally we are introducing two new filters:

  • n_contains : Tests that the field doesn't contain a value (case insensitive)
  • n_containss : Tests that the field doesn't contain a value (case insensitive)

These new features were implemented by @alexandrebodin and @kamalbennani!

🤸‍♀️ Stability improvements

Lately, our goal had been to stabilise the code, put the foundation to be able to develop new features without regressions and to test, test and retest the code. This is particularly important at this stage, prior to beta, to be able to ship faster in the future.
So, GraphQL has been fixed and a few other bugs have been killed 🔫 :

  • Fix Blue button @soupette
  • Fix front-end generators plugin @soupette
  • Run snyk only on non fork repo @alexandrebodin
  • Fix big integer support on GraphQL @derrickmehaffy
  • Good old issues fixing before the beta @soupette
  • Fix languages in settings manager @soupette
  • Trim content builder model attributes @Getriax

    📚 Documentation - Deploying on Heroku with PostgresSQL / MongoDB

    Many of you asked for a more detailed documentation on deployment. It is done now for Heroku.
    You can either choose MongoDB or PostgresQL as a database.

    Documentation Strapi for Heroku deployment

    We also published a video based on our tutorial series : Learn GatsbyJS with Strapi Headless CMS.
    This video will show you how to deploy Strapi on Heroku, thanks to @davidkartuzinski.

    Upgrade to strapi@3.0.0-alpha.26

    If you are already building an API using Strapi, we recommend you to migrate to this version.
    A fully detailed migration guide is available.

    Ready?
    Just upgrade your Strapi version with a single command line:

    npm i strapi@alpha -g  
    

    If you are new to Strapi, just give it a try!

    Take a look at the Getting Started guide to jump on board, or get started with the following command lines:

    npm install strapi@alpha -g  
    strapi new myproject --quickstart
    

    Be involved

    Contribute!

    Contributing to an open-source project could be scary if you never did before, and it doesn't necessarily include coding.

    Even if you like to write code, other types of contributions are a great way to get involved with a project and meet other community members. Building those relationships will give you opportunities to work on other parts of the project. https://opensource.guide

    For example, we are always open to relevant guest posting from devs with killer content to share! Let us know if it’s your case.
    Your contributions could include for example:

  • Development tips and tricks: share how you improved your workflow and optimised your use of Strapi
  • Tutorials: help the community by sharing how to realise a specific project or feature
  • Experience feedbacks: explain to new users what was your challenge and how Strapi helped you solve it

    Hit us up if you want to talk about it.

    And if you have a question or just want to say hi 👉 we're always happy to hear from you on Twitter, Github, Slack or in the comments below. Please share this article to help more people discover it.

    Thanks to the community

    Strapi is a product of over 200 community committers.
    Strapi alpha.26 contains code contributions from the following people:
    @kamalbennani, @siddhartha-crypto, @MunGell, @derrickmehaffy, @abdonrd, @Getriax and the Strapi team members @alexandrebodin, @aurelsicoko, @davidkartuzinski, @lauriejim, @pierreburgy, @soupette and @virginieky.

    What's next?

    Over the last few months we have been working towards one goal: the release of beta version.

    The goals we set ourselves:

    • Less breaking changes in the following releases
    • A better experience building apps with Strapi
    • Less bugs
    • Better team workflow
    • Deployments will be much simpler
    • Setting up the new fondations to bring customization to Strapi's admin

    Stay tuned on Twitter or on our blog.