Changelog

  • New Feature: Component Groups

    Changes in: mapi app Permalink

    With component groups you will be able to add a virtual structure to your list of components. This will make the organization within components easier.

    component-groups

    Besides the better organization of components adding a specific group as whitelist to the blocks field type, so one would not need to update block fields if a new component is introduced and a group is used for restrictions.

    Component group restrictions

  • Plugin subdomain for custom fields

    Changes in: app Permalink

    Plugins have received their custom subdomain for Storyblok so they no longer can access the app.storyblok.com context from within the field type. This was necessary to not allow field types to access localstorage and other app.storyblok.com information that are not intended to be shared with the plugins.

    Please update your configurations to whitelist plugins.storyblok.com rather than app.storyblok.com since all API calls will be done by that domain starting with 30.04.2019.

  • Improved multi browser tab title naming

    Changes in: app Permalink

    Feature Request: “Add space name into browser tab title. If you have opened multiple different spaces is hard to differ between the tabs. :) Thx! This small change would help a lot ;)”

    We’ve added the space name, plugin names, route names, and other useful information for all of you that love to life in multiple browser tabs.

  • Default asset folder for file field type

    Changes in: app Permalink

    You can now choose “Default Asset Folder” for the field type file which was previously only available for the type image.

  • Language codes added to space/me

    Changes in: api Permalink

    If you already use field level translations you know that you can configure the available languages in the settings tab. Now, you can also get it from Storyblok’s API in the call /v1/cdn/spaces/me.

    {
      "space": {
         ...
        "language_codes": [ "en", "de", "es" ]
      }
    }
    
  • App Store

    Changes in: app website Permalink

    The new Storyblok App Store has been launched!

    With the new app system developers can contribute with their own apps to extend Storyblok’s functionality.

    Storyblok App Store

  • Last author and is_published

    Changes in: mapi Permalink

    Introduced two new filter for the Management API:

    • v1/stories:
      • is_published (bool)
        • false to receive only entries that were never published (or were unpublished)
        • true for those that were published at least once
      • last_author is now available in the list call too.
  • Release Merged Webhook

    Changes in: app mapi Permalink

    A webhook for releases has been added and can be set in the space settings. Whenever a release gets merged into the content repository it will trigger a post request with following payload:

    {
      "text": "The release summer has been merged.",
      "release_id": 313,
      "space_id": 44953
    }
    

    With the release_id you can get a list of stories that have been in that release by making a call to the management api with the parameter from_release: https://www.storyblok.com/docs/api/management#core-resources/stories/retrieve-multiple-stories

  • Url resolving added to Content Delivery API

    Changes in: api Permalink

    The content delivery api has now the possibility for link resolving of items like global navigation items. With the parameter resolve_links and the values story and url the developer can now choose between resolving a link as “story” or as a smaller “url” object.

    Request without resolve_links=url

    {
      "story": {
        "content": {
          "link": {
            "id": "f5c956e6-66a9-4f0b-a530-2ae88b9689a6",
            "url": "", // entered URL if external link
            "linktype": "story",
            "fieldtype": "multilink",
            "cached_url": "my-folder/my-cached-url" // a cached URL based on time of publication
          }
        }
      }
    }
    

    Request with resolve_links=url

    {
      "story": {
        "content": {
          "link": {
            "id": "f5c956e6-66a9-4f0b-a530-2ae88b9689a6",
            "url": "", // entered URL if external link
            "linktype": "story",
            "fieldtype": "multilink",
            "cached_url": "my-folder/my-cached-url", // a cached URL based on time of publication
            "story": { // NEW story object inside the link field of yours
              "name": "My Linked Entry",
              "id": 669642,
              "uuid": "f5c956e6-66a9-4f0b-a530-2ae88b9689a6",
              "slug": "my-updated-url",
              "full_slug": "my-folder/my-updated-url", 
              "url": "my-folder/my-updated-url" // <-- URL that can be used for links and will stay up2date
            }
          }
        }
      }
    }
    
  • Real path added to Content Delivery API

    Changes in: api Permalink

    Many of you asked about having the Real Path added in the Story object so you can use that to generate your routes. Be aware that this path currently can’t be filter as its purpose is to change the path in Storyblok itself. However, for those of you who want to use that property outside the management API can now do that!

    {
      "story": {
        "name": 
        ...,
        "path":"your_real_path_value"
      }
    }
    
  • Datasource CDN Endpoint

    Changes in: api Permalink

    With the datasource CDN endpoint you are able to consume a list of datasources so that you can access their values by using the datasource_entries API endpoint by using the datasource slug.

    Read more at the Api Documentation

  • Delete and Unpublish Permissions

    Changes in: api app mapi Permalink

    The advanced roles have been extended with following rules:

    • Allow unpublishing content
    • Allow deleting content
  • Deeper relationship resolving

    Changes in: api Permalink

    We’ve introduced a new syntax for relationship resolving with the resolve_relations parameter.

    You can now pass the format COMPONENT_NAME.FIELD_NAME to resolve even nested components, allowing you to create a nested structure with single or multiple choices in repeatable components to be resolved. Before that only the root level fields of your content type where possible to be resolved. The old syntax will continue to work, for future implementation we recommend using the new one.

  • Improved Filter Query

    Changes in: api Permalink

    The parameter filter_query of the delivery api has been improved to check for empty values.

    Nested queries are now possible for all filter query types. To access nested attributes you need to use a point as path separator. Examples: seo.description, body.0.teaser_header

    Changes in operators

    1. gt-int, gt-int: When doing a greater than or less than query it no longer triggers an error when there are non numeric values in the content entries.
    2. in: When providing an empty string then the api returns all fields that have empty strings or null values.
  • Field level translations

    Changes in: app api mapi Permalink

    In the past the only way of creating multi-language content was through a multi tree folder structure. As this still is a good practise for a lot of our customers we also got a lot of feedback from customers that have a different requirement.

    That’s why we now offer an additional way to manage multiple languages in Storyblok.

    Field level translations

    Introducing “Field Level Translations”

    With “Field Level Translations” you can now store multi-language content on the field level. This means you only need one content tree. A single tree stores each translation as a property under the same content item.

    As long as your site content is very similar from one language to another, this is the best option. You will have fewer pages to manage and the system takes care of serving the correct language automatically.

    Highlights about this new feature:

    • Manage all your content under a single content tree
    • Decide for each individual field if you want to activate translation
    • Easily copy the default language value to the translation
    • Quick-Jump to Google Translate

    Read more at our documentation about internationalization.

  • First published at field

    Changes in: api app mapi Permalink

    The new field “first_published_at” for getting information about the date when an item has been published the first time has been added.

    First published date

  • Backups on your S3 bucket

    Changes in: app mapi Permalink

    For additional security you can now setup backups of your content and the component definitions. The only thing you need is an Amazon AWS account. After installing the app under the Apps section you can configure the automatic daily backups or trigger a backup manually.

    Storyblok automatic backup

    Automatic backup

    The automatic backup runs every day at 1:00 GMT and will create a zip file on your Amazon AWS S3 bucket.

    Restoring

    You can restore a backup via the S3 link on the existing space or on a new one.

    What is included in the backup?

    The backup file contains stories (content), releases, scheduled content and component definitions.

    How to setup?

    Please read the setup instruction at the documentation area.

  • Branches and Releases

    Changes in: app api mapi Permalink

    We are proud to announce a new feature we have been working on a very long time and we think it will be very useful for your bigger projects.

    What are releases for?

    Imagine you want to promote a new collection of sunglasses. You change a teaser on your homepage, add the products to the product overview and create a news entry of the new collection. In the past you would need to remember which content items you changed and publish each item separately. Here comes Storyblok’s “Releases” feature into the play. Prepare all the changes in a release and then publish them with one click or at a specific date.

    Content staging releases headless CMS

    What are branches for?

    With Storyblok’s branches you can setup a content staging workflow. A classical setup for this workflow is to have a staging branch for review and testing and a production branch for your live content. But you can also setup more branches if required.

    Branches, with the exception of “Preview”, are read only and each of the branches can have multiple releases and api-keys.

    Example: In the following diagram you can see that “Release 3” only exists in the default “Preview” branch and can then be deployed on “Live” before being tested on the “Staging” branch.

    Branching model headless CMS

    How to activate this feature?

    Currently the releases and branches functionality is only available for the “Premium” plans. But if you want to try it out please contact us via the onsite chat and we will activate a trial for you.

  • RTL support

    Changes in: app Permalink

    Storyblok now supports RTL (Right to left) for the field types “Text”, “Textarea” and “Markdown”. It can be configured in the schema definition of the field type with the checkbox “Enable RTL”.

    RTE Support

  • Rate limit Management-Api

    Changes in: mapi Permalink

    The management api has been rate limited to 3 requests per second for users on the free plan and 6 requests per second for other users.

    Customers using Storyblok’s official nodejs SDK “storyblok-js-client” are not affected by this change as the module already handles throttling the requests to the right level.

  • Open asset from field

    Changes in: app Permalink

    For all of you that wanted to access linked assets with one click in the asset and mutli asset fields - you can now do that - simply click on the file-name and open it in a new tab.

    Visual editor

  • Improved Asset Manager

    Changes in: app mapi Permalink

    In the past managing assets was limited to a basic flat folder structure. Now you can nest folders to organize your assets in a better way. Just create the folders you need and drag and drop them inside each other to create a tree.

    What is also brand new in the asset manager is the list view and sorting options. The multi-select bulk actions makes it easy to move around multiple assets at once.

    New Asset Manager

  • Polished Create and Duplicate Space

    Changes in: app Permalink

    We always listen to feedback and try to improve our platform for you. One feedback that bothered many of you was the unpolished create new space dialog and the hidden features like duplicating a whole space with few clicks, therefore we’ve now refreshed that section.

    New create new space

  • Flow and UI Improvements

    Changes in: app Permalink

    We’ve updated the entry flow into editing as suggested by many feedback we received from you.

    Compose as first focus

    If you now enter a content entry we will directly focus the Compose mode instead of the left sidebar allowing you to directly start editing and creating content.

    First Spot for Compose mode

    Everything that was previously available in the left sidebar and the Edit Navigation is now available on a separate tab called Config allowing you to configure every attribute of the current story in one place.

    Configure

    Improved Form Only mode

    You can switch between the Editmode Visual and Form only to disable and enable the visual composer which is perfect if you only need a flat content structure or you do not have a website but only an app to display your entries. To make it more usable for you we’ve updated many details that may have caught you off guard in the past - but shouldn’t in the future!

    improved form only

  • Improved Blocks UI

    Changes in: app Permalink

    UI refreshment for the blocks type in Compose and in Form Only mode.

    Compose Before & After

    Before and After

    Form Only Before & After

    Before and After Big