Product Updates

DatoCMS changelog for new features and general improvements
NewUI Improvement
Introducing Per-Locale Publishing
June 26th, 2023

We are excited to announce the launch of our latest feature, Per-Locale Publishing, designed to simplify content creation and localization workflows for teams using multiple locales.

With Locale-based Publishing, your team can now publish content for a single locale independently, regardless of the status of other locales in your project. This empowers you to reach new audiences, shorten content creation timelines, and streamline your workflow like never before.

Up until now, content creators often faced the challenge of having to create and publish content for all locales simultaneously. This process could become time-consuming, cumbersome, and inefficient, especially when every locale is managed by a different team.

With Locale-based Publishing, you can now focus on one locale at a time, allowing your team to start and finish creating content on a specific locale, without the need to touch the other locales. Work independently, maximize efficiency, and publish localized content with ease.

You can read the complete announcement in our Blog.

NewContent Delivery APIIntegrations
Vercel Content Link generally available for Enterprise customers
June 22nd, 2023

We're thrilled to share that, as of today, the Content Link (prev: Visual Editing) feature we developed in partnership with Vercel is generally available to all our enterprise customers: please get in touch with us if you want to use this exciting new feature on your projects.

Once activated, Content Link will add clickable links to any content present on your Vercel websites that's coming from DatoCMS.

By clicking these links, you'll start editing content in zero seconds:

With Visual Editing enabled, you can efficiently navigate to specific content without needing to know its exact location within DatoCMS.

We prepared a documentation page to guide you through the setup, which, by the way, it's gonna be simple. Once the feature is enabled both on DatoCMS and Vercel (notice that Content Link is a beta feature on Vercel: you'll have to ask them to have the feature enabled), all you have to do is add a couple of headers to the GraphQL API calls and... that's it!

Do not hesitate to contact us if you want to start using Content Link on your projects, or in case you need any further information about it.

Content Delivery API
Enforcing new GraphQL complexity limit calculation
June 12th, 2023

Since today, June 12th 2023, we are enforcing the GraphQL complexity limit we updated some months ago.

If one of your projects executed a query with a complexity higher than your plan's limit, you should have received an email in the past days.

If you have any questions or concerns about this change, please don't hesitate to contact our support team.

NewUI Improvement
Introducing the "All locales" filter option on Tabular view
May 10th, 2023

We are happy to inform you about a new feature that improves the browsing experience for models with optional locales.

Previously, when working with a model that allowed for optional locales, users were unable to browse all records simultaneously, as the interface required selecting a specific locale, limiting the ability to view content across all locales.

To address this limitation, we have now introduced the "All locales" filter option in the Locale switcher. This new feature empowers users to effortlessly browse records containing any locale, providing a comprehensive view of their content.

To ensure a seamless transition and avoid any confusion, we have maintained the default visualization settings. The interface will continue to display the primary locale of the project by default. This means that users who prefer the previous behavior can continue working without any disruptions.

With the addition of the "All locales" filter option, editors can now easily access and manage their records across multiple locales within a single interface, streamlining workflows and providing a more efficient content management experience.

UI ImprovementPlugins
Introducing Schema ERD Plugin: advanced visualization and export options for your project's schema
May 10th, 2023

We're pleased to announce that we have extracted the feature that allows you to generate an Entity-Relationship Diagram (ERD) of your project's schema into a separate plugin called Schema ERD.

By separating this feature into a plugin, we can now offer advanced capabilities and expand the range of export options available to you.

Enhanced Features

  • Export Options: The new plugin offers a wider variety of export options. In addition to the existing ability to produce ERD diagrams as PDF files, you can now also export them in GraphViz DOT language and SVG format. This provides greater flexibility in integrating the ERD diagrams into your workflow and sharing them with others.

  • Clearer and easy-to-read diagrams: The plugin improves the clarity and readability of your ERD diagrams. It better exposes the connections between fields and models, enabling you to understand the relationships in your schema more easily. This enhancement simplifies data analysis and fosters a deeper understanding of your project's data structure.

New Functionality

  • Interactive interface: With the new plugin, you can now explore your ERD diagrams directly within the interface. The plugin provides a user-friendly and interactive experience, allowing you to browse, pan, and zoom the diagram effortlessly. This feature simplifies the analysis and navigation of complex schemas, enabling you to gain deeper insights into your project's data structure.

We are confident that the introduction of the Schema ERD plugin will enhance your experience and provide you with powerful tools to visualize and work with your project's schema!

NewPlugins
New hooks available in Plugins SDK
May 9th, 2023

We've super excited to announce we've added a couple of new very useful hooks in our Plugin SDK! 🥳

Custom sidebars

The first one lets you add custom sidebars next to your records form:

You can take a look at a real-world example of this hook in the upgraded Web Previews plugin, which now can offer your editors side-by-side previews of unpublished/draft content, directly within DatoCMS:

Custom record presentation

The second hook enables you to customize the presentation of your records according to your specific needs. This level of flexibility empowers you to create a unique and tailored user experience that aligns with your goals.

The buildItemPresentationInfo hook can be used in numerous ways. For example, you can:

  • Combine multiple fields to present a record;

  • Generate a preview image on the fly;

  • Perform asynchronous API requests to third parties to compose the presentation.

Content Delivery API
Improved multi-locale fields and meta fields in Content Delivery API
May 8th, 2023
Current behavior

Both locale: and fallbackLocales: arguments can be passed to multi-locale fields, but both arguments are completely ignored:

query {
allBlogPosts {
_allTitleLocales(locale: it_IT, fallbackLocales: [it, en]) {
locale
value
}
}
}

Similarly, the fallbackLocales: argument can be passed down to meta fields, but it's ignored:

query {
_allBlogPostsMeta(fallbackLocales: [it, en]) {
count
}
}
Improved behavior

Both the locale: argument in multi-locale fields, and the fallbackLocales: argument in meta fields are removed, as they make no sense.

The fallbackLocales: argument in multi-locale fields is now taken into consideration when a value for a particular locale is missing:

query {
allBlogPosts {
noFallbacks: _allTitleLocales {
locale
value
}
withFallbacks: _allTitleLocales(fallbackLocales: [en]) {
locale
value
}
}
_allBlogPostsMeta {
count
}
}
{
"allBlogPosts" {
noFallbacks: [
{ locale: "it", value: "" },
{ locale: "es", value: "Título" },
{ locale: "en", value: "Title" },
],
withFallbacks: [
{ locale: "it", value: "Title" },
{ locale: "es", value: "Título" },
{ locale: "en", value: "Title" },
],
},
"_allBlogPostsMeta": {
"count": 3
}
}
Who is affected by this change?

This change will apply to all brand new DatoCMS projects created from today onwards. If you have an existing project that you'd like to update, you can manually do so in the Environment Settings.

Please note that this change cannot be undone, so we strongly recommend testing the effects in a sandbox environment before applying the change to your primary environment.

UI Improvement
Media are filtered based on the accepted asset types
May 2nd, 2023

We recently released a tiny, tiny improvement that should help people frequently working with the media gallery: as of now, when filling in a media field that validates the type of file that can be uploaded, the media gallery is open with a filter already set.

So, the initial list of media displayed when the gallery appears is limited to the usable uploads. The filter can be removed to access all the contents of the media gallery.

Content Management API
Assign a creator at item creation via API
April 28th, 2023

Since today it's possible to assign a creator when an item is created via API. The creator can be anyone that belongs to the site or the organization. The call must be made using a token with permission to edit the creator.

API users can assign the creator by declaring the type and the ID of the desired creator in the relationship field of the creation request:

POST https://site-api.datocms.com/items HTTP/1.1
X-Api-Version: 3
Authorization: Bearer YOUR-API-TOKEN
Accept: application/json
Content-Type: application/vnd.api+json
{
"data": {
"type": "item",
"attributes": { [...] }
},
"meta": { [...] },
"relationships": {
"item_type": {
"data": {
"type": "item_type",
"id": "44"
}
},
"creator": {
"data": {
"type": "account",
"id": "312"
}
}
}
}
}
NewContent Delivery API
Introducing explicit AND operators in filter expressions for enhanced convenience
April 19th, 2023

Filter expression conditions have always been implicitly combined using a logical AND. However, there are situations where explicitly incorporating an AND expression can greatly improve the filtering experience:

query {
allArtists(
filter: {
AND: [
{ name: { matches: { pattern: "Blank" } },
{ name: { matches: { pattern: "Banshee" } }
]
}
) {
id
name
genre
}
}

In the example provided, the same filter type is required multiple times within the same expression. Without an explicit AND operator, this would not be achievable.

We're excited to announce that alongside the pre-existing OR operator, you can now seamlessly incorporate explicit AND operators into your GraphQL queries for optimal flexibility and customization.