Forrester: The Total Economic Impact™ of Contentstack Headless CMS Platform
The results tell the story. See how Contentstack customers save costs and boost business value in this commissioned study conducted by Forrester
Composable vs. monolithic: Which is right for you?
Businesses are trying to create better customer experiences, so composable digital experience platforms (DXPs) are becoming more popular. But what are they?
Cross-Origin Resource Sharing (CORS) is a mechanism or a protocol that allows devices on one domain to access resources residing on other domains.
Webhook
A webhook is a user-defined HTTP callback. It's a mechanism that sends real-time info to any third-party app. Learn how to set up Contentstack Webhooks here!
We’re excited to introduce a new “actions” shortcut for all items on list pages of entries, assets, and content models. Users can access these quick actions by hovering over any item on the list page, and then clicking the vertical ellipsis icon under the Actions column.
This gives users a quick and easy way to perform common actions such as edit, copy, publish, export, and more in just a few clicks.
We're thrilled to share the newest improvements to Contentstack's AI Assistant, a tool we've developed in partnership with OpenAI's ChatGPT. Based on feedback from our Early Access Program participants, we've made several updates that keep us focused on our mission: making creating content faster, simpler, and more tailored to your brand.
Don’t have the AI Assistant app yet?
The Contentstack AI Assistant is available at no extra cost for our customers. If you’d like to join our Early Access Program, you can fill out this form to sign up. After agreeing to some additional terms, we'll send you a link to install the app.
Update for the latest features
If you're already using the app, update it to get the latest features. Here’s how: Go to Marketplace, select manage your installed apps, click on AI Assistant, and click the update icon.
New Features
JSON Rich Text Editor Integration
To further enhance its functionality, the AI Assistant can now operate within the JSON Rich Text Editor. This means when you type into ChatGPT inside the JSON editor, the AI Assistant will turn JSON data into HTML text and use it to prompt a response from ChatGPT.
To maintain the formatting and structure of your content, the AI Assistant now asks ChatGPT to retain the HTML tags in its response. When it keeps the formatting (in specific prompts, it will not be maintained), the HTML in ChatGPT's response is converted back into JSON values, preserving the design of the original content.
ChatGPT Version Selection
You now have the choice between ChatGPT-3.5 Turbo and the more advanced (but slower) ChatGPT-4 in the app configuration screen. This gives you the flexibility to choose the model that best suits your needs, as long as your account has ChatGPT-4 API access enabled.
These updates are now live for those signed up for Contentstack's Early Access technology program. We appreciate all feedback as it helps us continuously improve our product to better serve your needs. Stay tuned for more as we continue to build more AI and automation capabilities into the Contentstack platform.
The new Brightcove app allows content managers to fetch, view, and manage videos within your Contentstack entries. It enables users to select multiple videos from your Brightcove account and add them to the Custom Field or JSON Rich Text Editor fields in Contentstack.
This helps content managers stream videos, enable easy access to video content across multiple platforms, and organize video assets efficiently.
Regions in which changes were made: AWS North America, AWS Europe, and Azure North America
Enhancements:
For AI Assistant: Added the necessary support to work on JSON RTE
Announcing the General Availability of Contentstack Launch
May 15, 2023
Contentstack AppLaunch
We are excited to announce the general availability of Contentstack Launch, a headless hosting solution that allows CMS customers to deploy and host front-end sites and middleware applications in the framework of their choice. With Launch, Contentstack provides enterprises with the first fully composable, fully automated, digital experience stack from front-end to back-end.
Launch makes it easy to connect stacks to code and deploy your starter stacks and front-end apps within minutes.
Some highlights for the release include:
Quickstart guides using NextJS and Gatsby to kickstart your Launch projects.
The GitHub and File Upload approaches to create projects in Launch.
We’re thrilled to be able to offer Contentstack Launch to all of our customers and look forward to seeing all the ways in which it will be used to host and deploy projects.
We’re excited to announce the release of the new Trados app, now available in our Marketplace. The app allows you to translate your Releases content and provide localized versions into multiple languages. The Trados app Dashboard Widget creates projects for language translations and displays the translation status of your projects. This enables a smooth translation process and aids content managers in managing and streamlining their translation projects while providing correct and consistent translations of information in all languages.
Experience Tailored Previews with Contentstack's Locale-based Live Preview
May 15, 2023
Contentstack App
Contentstack is excited to announce an enhancement to our Live Preview feature: Locale-based Live Preview. With this upgrade, you can now view your content in a locale-based preview environment.
Setting up Locale-based Live Preview is easy. Just define a preview environment when setting up Live Preview for your stack, and all your locale-based content will appear in the Live Preview panel at the base URLs specified for each locale under the set preview environment. Switching between locales is effortless, making it a breeze to preview content for different languages.
We're excited to introduce the latest Marketplace app, Bulk Operations, which enables content managers to streamline their work and perform operations to content in bulk with just a few clicks.
With the Bulk Operations app, content managers can easily identify and replace content across many entries, then publish them all at once, making it simple to fix spelling mistakes, update outdated material, or make changes across large volumes of content, all in one go.
Contentstack Pulse: What’s new and what’s in store for Contentstack Launch
May 09, 2023
Launch
Are you a developer looking for the latest data on Contentstack’s front-end hosting solution? Then look no further. Contentstack Launch has officially entered its first quarter since announcing our product, which is now in general availability, and we’ve earned a wealth of knowledge and cultivated relationships along the way.
In this blog post, we’ll take an in-depth look at our successes over Q1, provide insights into how it all came to be and what users can expect from us moving forward. We pride ourselves on continuously innovating our products so that anyone using the platform can benefit right away with maximum efficiency. Let’s explore together!
We’re excited to announce the release of the new Workflow Board app, now available in our marketplace. This app enables content managers to view their workflows in a Kanban format, displaying workflow stages and tasks in an intuitive, easy-to-use interface.
In your Contentstack environment, this Full Page UI Location app allows users to easily drag and drop tasks from one stage to another, search for workflows and entries, and sort them using various filters. This provides greater visibility into the status of workflows, aiding in work planning, time estimation, and increasing productivity and efficiency.
Once installed, the Workflow Board app appears in the left navigation panel of your stack, providing you easy access.
Contentstack Pulse spring recap: What's new and what's coming for Contentstack
May 05, 2023
Contentstack AppAPIsDocs & TutorialsSDKs and toolsLaunchMarketplace AppsAutomation Hub
Welcome to Contentstack Pulse, your go-to source for the latest news on platform enhancements, roadmap updates and answers to frequently asked questions. Our mission is to keep you up-to-date on all the exciting developments at Contentstack and with our platform. Each month, we'll share the latest platform news to help you streamline your user experience. And every quarter, we'll offer a recap of everything that's happened, so you never miss a beat. Whether you're an existing customer or just curious to learn more about what we do, Contentstack Pulse has got you covered. Click here to learn more!
We’re happy to announce some exciting new updates for Automation Hub in the month of April!
Repeat Paths
Repeat Paths allows users to loop over a set of instructions based on specific criteria like a date range or a numerical input, enabling them to automate repetitive tasks for large and complex data sets.
This new connector enables users to input limited JavaScript into their automation steps, allowing them to perform various functions, like clean up text or check between different field values. Ultimately, it provides greater flexibility and customization for users to automate complex workflows that were previously difficult to achieve without coding.
Learn more about the Code Block connector in our documentation.
New action in Data Store connector: Append Data
Previously, the Data Store connector could Set and Get Data on different levels (i.e. Automation, Organization, and Execution Levels) but it could not append the data in an array or create a new collection of objects. This option is now available with the Append Data action.
Learn more about the new Data Store action in our documentation.
Project Delete
With Project Delete, users are now able to delete a project, its automations, and any of its connected apps in an organization.
Other improvements
Project Search allows users to search all projects within an organization.
The Constructor connector now allows you to select the Index Section present in the Constructor Dashboard and send an Email to a specific person in the event the index update fails.
The new ‘Release Preview’ app allows you to see the upcoming content releases in a calendar format, preview web pages before a scheduled release, compare with existing content, and view release details that are added to a release with their specific titles, content types, and versions within your environment. It helps content editors get better control and visibility over future releases. This Full Page UI Location app, once installed, appears on the left navigation panel of your stack.
Introducing Full Page UI location—a new addition to our artillery of App Framework UI locations. In fact, this one is amongst the most versatile UI locations, as it allows developers to create custom apps that function as separate, independent pages or modules (unlike other UI locations that are restricted to and are part of other modules).
Once a new app is created, it will appear on the main left navigation bar of the Contentstack app, making it easy to access again.
Note: For more information on this UI location, refer to the Full Page Location documentation.
Introducing a new app—Interstack Reference—that solves a complex problem for developers. It allows developers to add references to content types of other stacks within the same organization, without leaving the current stack. This opens up new possibilities for developers by ensuring availability of content across the entire enterprise, and saves a lot of time for content managers by reducing manual maintenance of managing duplicate data.
We’ve added support for another UI location—Field Modifier—to our App Framework.
Using this type of UI location, developers can create apps that let them add custom functionalities to the entry fields, allowing content managers to do a lot more with their content.
While the possibilities are endless, some common use cases include adding AI capabilities to text fields, adding conversion capabilities to number fields, and so on.
You can use Field Modifier for various fields (such as Title, URL, Single Line Textbox, Multi-Line Textbox, HTML-based Rich Text Editor, JSON Rich Text Editor, Markdown, Select, Number, Boolean, Date, File, Reference, and Custom fields).
Note: For more information on this UI location, refer to the Field Modifier Location documentation.
We’re happy to announce some exciting new capabilities for content editors to customize their view of Entries or Assets.
Freeze columns:
Users can now freeze up to two columns on the Entries list page (not yet available on the Assets list page), it easier to pin the data you want to the left, while scrolling over to view the rest of the columns.
Remove column (up to two columns):
With this update, it is now possible for users to remove any column from the view (including the Title field). Note that at least two columns must be visible.
View options moved to ‘Table Settings’:
All settings that allow you to customize your Entries and Assets view, like “Change table view” and “Add or remove columns”, have been moved to “Table Settings”, found by accessing the gear icon at the top-right of the table view.
We're excited to announce that Contentstack now supports SCIM provisioning with Okta as well. With this, you can now leverage your Okta IdP to efficiently manage users and groups within your Contentstack organization.
Enhanced Experience for SSR Websites in Live Preview
Mar 31, 2023
Contentstack App
We're excited to announce an improved user experience for Live Preview in Server Side Rendered (SSR) websites. With this enhancement, you can now view entry changes for your SSR websites in real-time (with enhanced JavaScript support) even for delayed scripts on your website.
Note: This update does not have any impact on the fundamental working or mechanism of Live Preview.
We’re happy to announce some exciting new updates for Automation Hub in the month of March!
New Connector: ChatGPT
This new connector brings the power of artificial intelligence to Automation Hub. With this connector, users can use ChatGPT's features, including extracting metadata or keywords from text, optimizing search engine ranking, and producing article or text summaries. Integrating ChatGPT opens up fresh opportunities and enhances your content's overall quality.
The ChatGPT connector currently has two action types: Chat and Prompt.
Chat: This action uses the gpt-3.5-turbo model to interact with ChatGPT.
Prompt: This allows you to use previous models, such as text-davinci-003, text-curie-001, or others in ChatGPT’s API.
New modifiers for the Transform connector: Replace, Replace All, and Trim
New modifiers have been added to the Transform connector to format or change text during automation.
Replace: This modifier allows you to replace the first occurrence of a character/word/string.
ReplaceAll: This modifier will replace all instances of a character/word/string.
Trim: This modifier will trim spaces from before and after a string
Learn more about the new Transform modifiers in our documentation
Other changes:
With the Data Store connector, you can store the data at the execution level, i.e., the data for an individual execution can be stored and fetched easily. This is useful when working with the Conditional Path. Read more here.
Email by Automation Hub connector now allows you to send up to 10,000 emails monthly in an organization.
We are delighted to inform you about the release of our newest version of the Markdown editor. This upgrade introduces more HTML and Markdown syntaxes, providing you with a broader array of choices to enhance your content. Whether you need to incorporate headings, tables, or comments, the improved Markdown editor makes it effortless and easy for you to achieve your goals.
Learn more about the Markdown editor through our documentation.
We are excited to announce the latest update to our JSON RTE Comments feature. You can now include comments for selected text within JSON RTEs, making it easier than ever to collaborate and discuss content with your team. To add a comment to a text, highlight it and click the "Add Comment" icon.
In the Discussion tab, you will find all the JSON RTE comments as well as entry comments.
We’re happy to announce some exciting new updates for Automation Hub in the month of February!
Project Sharing
Project Sharing, the organization owner, organization admins, and the respective project owner can now invite various users to individual projects, facilitating collaboration.
Previously, only owners/admins had the ability to access and modify all projects within Automation Hub. However, with the Project Sharing feature, members can also participate as contributors in the specific project(s) they were invited to by the owner and admins of the organization.
Android SDK Version: 3.11.0 - Release Date: Feb 24, 2023
Feb 24, 2023
SDKs and tools
New Features:
String locale code support added for methods sync and syncLocale.
Bug Fixes:
None
Introducing JSON RTE Comments
Feb 17, 2023
Contentstack App
Contentstack now lets you add Comments to content blocks and images within JSON RTEs. This feature lets you collaborate and efficiently initiate discussions around the content.
You can view all JSON RTE comments under the Discussion tab along with entry comments.
Refer to our documentation on JSON RTE Comments for more information.
Handled GitHub rate limit exceeded issue(429) for seed command on repeated seeding of GitHub repositories
Replaced HTTP calls with SDK calls for export-to-csv, seed, export, and import plugins
Introduced standard utility to create CMA object and imported this utility-based CMA object to perform CMA operations from import, export, export-to-csv commands
Vulnerability Fixes:
Upgrade sinon from 11.1.2 to 15.0.1
Upgrade tslib from 1.14.1 to 2.4.1
Upgrade fs from 0.0.1-security to 0.0.2
Upgrade json5 vulnerability
Vulnerability fixes for @contentstack/cli-cm-regex-validate repository
Bug Fixes:
Datasync does not update the entry payload if the referred assets are deleted and the entry is published again
Resolved the marketplace app’s configuration issues for the constructor.io app
Resolved CodeQL issues in the datasync-filesystem-SDK repository
The plugin support is added, where users can create their own plugins and attach them to the stack instance.
Powerful new updates for search
Jan 20, 2023
Contentstack App
We have added some powerful enhancements to our search to make it more intuitive for you. Here’s a glance at what’s new:
Adding support for stemming and word forms
This means that if you, for example, search for “like”, it will fetch results that contain “likes”, “liked”, “liking”, and other words that share the same root. This helps you find what you are looking for, even when you don’t feed in the exact query.
Making search accent insensitive
You can now search content without using diacritics (or accents) and still find what you are looking for. So, for example, the search query “cafe” will fetch results that contain “cafe” and “café”.
Ignoring stop words for more relevancy
Our search algorithm now automatically ignores stop words (common articles, pronouns and prepositions such as “a”, “the”, “are”, “and” etc.) from your query to boost search relevancy.
Post January 13, 2023, when updating the content of your JSON Rich Text Editor, you do NOT need to pass the "dirty":true attribute within the request body.
Previously, when updating the content within the JSON Rich Text Editor, you had to pass the "dirty":true attribute within the request body to accommodate the changes introduced.
With this improvement, if the user doesn't supply the "dirty" attribute, the API takes care of this on its own. However, even if the user passes the dirty attribute, the entry is not affected.
Automation Hub January Release Highlights: Streamline your business processes with a new advanced user interface
Jan 12, 2023
Contentstack App
The January release of Automation Hub is a game-changer. With a host of new features and improvements, this release will make it easier than ever to create and manage automated workflow processes to streamline your integrations and workflows.
What's new in this release:
New actionable step outline tool
This new outline will display the automation flow of steps, and a user can easily jump into any step and edit it just by clicking on the step within the step outline tool. The outline is a visual display of the full automation process and logic. This feature is designed to make it easy to build and maintain complex automations with ease.
In addition, the step outline now features a search capability that, as you’re typing a query, will automatically filter results to display the search term.
Each step is displayed in a new, easy-to-read vertical display
Next, after clicking on a step in the step outline, we have a step wizard on the right side of the page. This vertical step display provides easy visualization of the automation step setup. You can quickly view steps and related data and see previous steps and their configurations as needed. This feature makes it easy to understand how your automations are configured and how they fit together.
Introducing a powerful new feature: Conditional Paths
A powerful new feature called Conditional Paths allows for if/else statement support. This enables you to create more complex business processes and logic. This feature allows you to create a multi-filtered query to target specific information. It supports OR and AND operators and has several different conditional checks like "matches," "is empty," and more. Each conditional path can have multiple statements to produce robust automations. This feature allows you to build automations that handle much more complex business processes.
Basic Information page provides an automation overview
Finally, we've added a Basic Information page for each automation. This page will display an intro to the automaton, including the title, description, when it was created, and by whom. In the future, this page will incorporate additional information, such as the number of times the automation has run and if there have been errors, etc. This feature was designed to give you a quick overview of your automations and their history, making it easy to understand how they are being used and how they can be improved.
In summary, the January release of Automation Hub is packed with new features that make it easier than ever to create and manage automated processes. As always, please let us know if you have any questions or need help with this new functionality.
Your best work done in less time with the new entry editor
Jan 04, 2023
Contentstack App
We have made some refreshing new visual updates to the entry editor experience, so content managers can work faster and with ease. Here is a rundown of what’s new:
Prominent field blocks: The earlier formless editor gets a form-like design, with each field now more prominently displayed for better visual convenience for content managers.
Smarter nested fields: Fields like “Group”, “Global”, and “Modular Blocks” — that can hold nested fields — now have color-coded icons and an easy way to collapse all child items. The nested fields also have color-coded icons so you can visually distinguish one from the other.
Flexible custom fields: Custom fields are enclosed in accordions, so you can expand/collapse them as required.
This is the first of many new updates planned for making entry editor much more efficient and elegant. so, stay tuned updates.
Announcing the General Availability of Automation Hub
Jan 02, 2023
Contentstack App
We are excited to announce the general availability of Automation Hub, an integrated automation and streamlining tool for the Contentstack Content Experience Platform.
As we transition out of our Early Access phase, customers who were previously beta testing Automation Hub will be moved to our Explorer Plan, which offers up to 200 executions at no cost each month. Since Contentstack does not count additional usage for multi-step automations or charge extra for premium connectors, 200 executions is a generous allotment that can be used in production to help with critical but lower-frequency business tasks. Also, paid plans are available for those interested in additional usage of this valuable streamlining tool.
Some highlights for the release include:
The new JSON RTE Formatter connector streamlines the output of JSON RTE fields to work more efficiently with third-party integrations.
New actions to several connectors, such as publishing assets and unpublishing entries in the Contentstack connector, updating or deleting entries from an Algolia index, and more!
Custom options for various triggers enable additional use cases.
More complex options are available for the Contentstack entry trigger, such as adding referenced or custom query parameters.
We’re thrilled to be able to offer Automation Hub to all of our customers and look forward to seeing all of the creative ways in which it will be used to streamline and automate business processes.
If you have any questions or need more information, please contact our Customer Support team.
We are happy to announce some exciting new updates available for Automation Hub! What's new in this release:
Introducing the RTE Formatter connector
We’ve created a new Automation Hub connector, the RTE Formatter, to help with the complex nested nature of the JSON output that may need to be supported by some external systems to create automations or integrations.
The RTE Formatter currently has two action types, “Format JSON RTE Content to HTML” and “Format JSON RTE Content to Text.”
Learn more about RTE Formatter through our documentation.
New actions for the Algolia connector
Previously, the Algolia connector could index content but could not delete an entry or do partial updates. These options are now available with the "Delete Entries" and the "Update Entries" actions.
Using triggers involves raising the trigger event first, thus triggering further automation steps to capture the payload. It is unreasonable to wait hours, days, or weeks for a scheduled trigger to happen.
So, we've now added mock data to the Scheduler connector. Instead of waiting for the event to happen, testing the trigger will display default data, which can be saved and used in later steps.
Other improvements:
The Algolia connector will now appropriately index items that contain quotes or other special characters.
We’ve fixed an issue related to the filename format with the Amazon S3 connector.
We are glad to introduce some cool new capabilities to the entry list page, making it easier to filter and find your favorite entries. Here’s a peek at what’s new:
Filter for table column headers: Select columns and apply filters to display only what you want.
Column resizing: All columns can now be resized so you can accommodate just the data that you want.
Column shuffling: You can drag and move columns in the column selector to customize your table view.
Add/remove columns: There are now no restrictions on which columns you can hide or display on the entry list page, giving you complete control of your view.
Introducing User Provisioning with Microsoft Azure AD
Nov 03, 2022
Contentstack App
Introducing SCIM provisioning in Contentstack with Azure Active Directory. You can now use your Azure AD IdP to manage users and groups within your Contentstack organization.
Contenstack introduces .NET and Java Management SDKs to help you manage your content. Integrate your .NET or Java applications with Contentstack to create, update, delete, and fetch data using these SDKs.
Refer to our documentation on .NET and Java Management SDK for more information.
Introducing Markdown Support to Format Content within the JSON RTE
Oct 13, 2022
Contentstack App
The JSON Rich Text Editor now supports Markdown syntax for formatting content. You can add headings, inline characters, or lists, as well as more complex formatting, like images, URLs, or code blocks using the Markdown Syntax.
Contentstack now lets you use the “venus-components” to open a modal within apps and extensions to display additional information, collect additional inputs from users, or draw attention to a specific feature (or features) on a page, etc. You can use "cbModal" to launch a new modal using the Contentstack’s Venus Modal Component.
We are launching the Contenstack command-line interface (CLI) version 1.0.3. Along with overall improvements to, and bug fixes on the product, and introduces command respecification and restructuring for achieving command standardization.
With this release, we have:
- Resolved vulnerabilities and fixed minor bugs
- Added backward compatibility for old commands and their flags
Note: All other features and plugins remain as is.
Accept or Skip Source Font Size While Copying Content in HTML RTE
Aug 04, 2022
Docs & TutorialsAPIs
Post this release, i.e., August 4, 2022, you will be allowed to skip the font size attribute while pasting content from a vendor (Google Document) while executing the Add stack settings API request. You can pass the "sys_rte_skip_format_on_paste" key within the stack_variables section in the request body.
While copying content from an external app (e.g., Google Drive) into the HTML RTE field (using the Add stack settings API requests), the font-size attribute helps you copy content along with the font size used in the source.
If you wish to ignore the font size of the source and use the default or user-defined font size, you can skip this attribute while executing the API request.
To skip the font-size attribute, you can use the "sys_rte_skip_format_on_paste":"GD:font-size" key. Here, GD indicates the external app’s prefix (Google Document), while font-size signifies the attribute to skip.
Note: We are currently only supporting one attribute (GD:font-size) for this key. This is only applicable for the HTML Rich Text Editor.
Accept or Skip Source Font Size While Copying Content in HTML RTE
Aug 04, 2022
Contentstack AppAPIs
While copying content from an external app (e.g., Google Drive) into the HTML RTE field (using the Add stack settings API requests), the font-size attribute helps you copy content along with the font size used in the source.
If you wish to ignore the font size of the source and use the default or user-defined font size, you can skip this attribute while executing the API request.
To skip the font-size attribute, you can use the "sys_rte_skip_format_on_paste":"GD:font-size" key. Here, GD indicates the external app’s prefix (Google Document), while font-size signifies the attribute to skip.
Note: We currently support only one attribute (GD:font-size) for this key. This is only applicable for the HTML Rich Text Editor. For more information, refer to the API Change Log for this update.
The Mission Control dashboard is a plan-based feature that helps you monitor the overall health of your organization. Additionally, you can use it to identify and track issues in your organization, helping you minimize the impact of the issues on customers.
Refer to our documentation on Mission Control for more information.
Introducing Product Analytics
Organization Analytics is now called Product Analytics under Organization Settings. With this release, the dashboard gets enhanced UX and new capabilities to explore your organization’s usage.
In case you are unable to access the Product Analytics dashboard, please contact our support team.
Refer to our documentation on Product Analytics for more information.
Deploy Content to Multiple Servers Feature Discontinued
Jul 26, 2022
Docs & TutorialsAPIsBreaking changes
Post this release, i.e., July 26, 2022, we will stop supporting the ability to add multiple content deployment servers while setting up a specific publishing environment in Contentstack. We recommend that you instead make use of Webhooks to trigger deployment to multiple web servers whenever you publish content to an environment.
Once this product update goes live, all Content Management API (CMA) requests related to environments will no longer return the deploy_content and servers keys in the response. Here's a sample of an updated response body that returns environment data when you run the Get all environments API request:
Resolved Live Preview with reference entry issue on SSR web app.
Deploy Content to Multiple Servers Feature Discontinued
Jul 26, 2022
Contentstack AppAPIs
Post July 26, 2022, we will stop supporting the ability to add multiple content deployment servers while setting up a specific publishing environment in Contentstack. We recommend that you instead make use of Webhooks to trigger deployment to multiple web servers whenever you publish content to an environment.
This update will be effective across both the new and classic Contentstack interfaces.
Breaking Changes: Once the July 26, 2022, product update is completed, all Content Management API (CMA) requests related to environments will no longer return the deploy_content and servers keys in the response. Please consider these parameters to avoid breaking changes in your application. For any inquiries, please reach out to our support team at support@contentstack.com.
For more information on this update, refer to our API Change Log documentation.
New Asset filters, Sorting Options, and UI Enhancements Sample
Jul 21, 2022
Contentstack AppAPIs
New Asset Filters
Finding assets is now easier than ever. Introducing three new filters — Code, Executable, and Archive — on the assets list page that help you find your code files, executable (.exe) files, and zip files, respectively. These filters are also available while searching for assets in the global search. Refer to our documentation on More asset filters for more information.
More Sorting Options
We have added new sorting functionality to some of the common list pages:
Users & Roles (sort by Status)
Webhooks (sort by Status)
Workflow (sort by Status)
Extensions (sort by Name, Type, Field data type, Hosting method, Last modified)
Audit Log (sort by Date, Module, Remote address, Title).
UI Enhancements
Disabled past date selection while scheduling publishing
It is no longer possible to select a date that has passed while scheduling a release.
Improved search experience
The search bar now has a dedicated “Advanced Search” button that lets you switch to an advanced mode where you can add complex and nested condition sets. We have also added a shortcut to our documentation site and have improved the look and feel of the “Filters” button.
“See more” Localized language entries in a separate pop-up
When you click on the "See more" option under the Localization Status section (see screenshot), the list now opens up in a separate pop-up modal window, making it easier to see all of the languages for which that entry has been adapted.
See more - modal:
Selected localized language entry opens in a separate tab:
New “Default field” tag for default fields of content types
We have added a “Default field” tag to the fields that come by default while creating a content type.
Change in the “Remove” icon in the entry reference field
The “Remove” icon, which appears when you hover over the reference field of an entry, has been changed to be more consistent with other icons in the interface.
Cancel scheduled publishing of an entry
You can now easily cancel the scheduled publishing of an entry from the Publish Queue by simply hovering over the entry and clicking on “Cancel Scheduling".
Environments are now sorted alphabetically on the publish/unpublish modal
Jul 01, 2022
Contentstack AppAPIs
Publishing content is now quicker and simpler for content managers. The list of your environments on the publish/unpublish modal for entries and assets is now sorted alphabetically, making it easier to find your preferred option(s) from the list.
Webhook Rate Limit
Jun 29, 2022
Docs & Tutorials
Earlier, an Organization could perform as many webhook executions as they wanted at any given time, without restrictions. Due to this setup, there was a huge probability that a single customer could flood the network by occupying higher positions in the queue.
To avoid this bottleneck situation, we have imposed a rate limit of 200 Webhook executions per minute for all Organizations. So, when an Organization reaches this rate limit, further webhook messages will be set to process in the next queue, without dropping any of the events beyond the rate limit. For more information, refer the documentation on Webhook Rate Limit.
Java SDK Version: 1.10.1 - Release Date: Jun 17, 2022
Jun 17, 2022
SDKs and tools
Bug Fix:
#57 CompileJava issue in Gradle build ecosystem (contentstack-utils).
#58 content_type : Invalid warning for contentTypeUid.
Notify Users about Disabled Webhooks
Jun 09, 2022
Contentstack AppAPIs
Now, you can choose which users you want to notify when Webhook Circuit Breaker disables a particular webhook. You can specify the email addresses of the users to be notified under the Users(s) to Notify section when creating your webhook.
Partial Text-based Search for Assets and Asset Folders
Jun 08, 2022
Docs & TutorialsContentstack App
We introduced the following changes in our June 8, 2022 release:
Contentstack now allows you to run a text-based search for an asset folder present in your stack. You can enter a search phrase that entirely or partially matches the name of the asset folder to bring it up in your search results.
For example, you can run a Basic Search based on a search phrase such as “Marketing” to search for the “Marketing Images” asset folder, thus reducing effort and time.
Contentstack now allows you to run a Basic Search for assets and asset folders based on a search phrase that partially matches the name of the asset or folder to bring it up in your search results. Instead of entering an exactly matching search phrase, you can type in a specific part of the asset or folder name for your basic search.
For example, you can run a basic search using partially matching search phrases such as “smart” or “phone” to search for the “Smartphone.jpg” asset in your stack.
Partial Text-based Search for Assets and Asset Folders
Jun 08, 2022
Contentstack AppAPIs
We introduced the following changes in our June 8, 2022 release:
Contentstack now allows you to run a text-based search for an asset folder present in your stack. You can enter a search phrase that entirely or partially matches the name of the asset folder to bring it up in your search results. For example, you can run a Basic Search based on a search phrase such as “Marketing” to search for the “Marketing Images” asset folder, thus reducing effort and time.
Contentstack now allows you to run a Basic Search for assets and asset folders based on a search phrase that partially matches the name of the asset or folder to bring it up in your search results. Instead of entering an exactly matching search phrase, you can type in a specific part of the asset or folder name for your basic search. For example, you can run a basic search using partially matching search phrases such as “smart” or “phone” to search for the “Smartphone.jpg” asset in your stack.
For more information, refer to our API Change Log documentation.
Introducing Contentstack Marketplace and Contentstack Developer Hub
May 23, 2022
Contentstack AppAPIsDocs & Tutorials
We are excited to introduce Contentstack Marketplace and our App Development Framework (in Public Beta).
Contentstack Marketplace is a one-stop platform that allows you to explore and use third-party integrations and pre-built extensions to solve all your business-specific needs. Read more about Contentstack Marketplace.
Contentstack Developer Hub is an app development platform that allows you to build your own apps and publish them to Contentstack Marketplace. It is currently in the Beta phase. Please reach out to your CSM to get access. Read more about how you can use Contentstack Developer Hub to build apps for Marketplace.
Note: This plan-based feature is available only in the new Contentstack interface.
Asset Sidebar Extension, a new type of Experience Extension, allows developers to create custom sidebars for assets. With this new extension, they can add powerful new capabilities for content managers to manage, transform, and optimize assets easily.
Introducing Additional Metadata Support for Entries and Assets
May 20, 2022
Contentstack AppAPIs
Developers can now add custom metadata to entries and assets, so content managers can easily organize, categorize, and find content. You can add new metadata without incrementing the version, using the Metadata Content Management API requests.
Refer to our documentation on Metadata for entries and assets for more information.
Note: This plan-based feature is available only in the new Contentstack interface.
Contentstack now allows you to use the "Export" option to export details of all the users on the organization users list page into a Comma Separated Values (CSV) file. You can open this CSV file using any spreadsheet application to clearly view the exported user details.
With this option, you can skim through user details in a single view instead of viewing only 30 users on a page at a time, avoiding the need to constantly scroll through long user lists.
Note: The "Export users list" feature is available only in the new Contentstack interface.
Webhook Channel Support for Entry Comments and Discussions
May 13, 2022
Contentstack AppAPIs
Now, you can also set trigger conditions based on actions performed on entry comments and discussions. Refer to our Comments and Discussions webhook documentation to learn more about the trackable events.
Restrict Content Types and Global Fields with Upper Case Unique IDs
Apr 11, 2022
Docs & TutorialsAPIsBreaking changes
Post this release, i.e., April 11, 2022, Contentstack will restrict you from creating or importing content types and global fields with unique IDs specified in upper case. If you try to create or import a content type or global field with an uppercase unique ID, your Content Management API (CMA) requests will return an error in the response.
Content Type Related Error Messages
For content type creation requests (with upper case UIDs), you will encounter the following error:
{
"error_message":"Content Type creation failed. Please try again.",
"error_code":118,
"errors":{
"uid":[
"is not valid."
]
}
}
For content type import requests (with upper case UIDs), you will encounter the following error:
{
"error_message":"There was a problem importing the Content Type. Please correct the Content Type and try again.",
"error_code":118,
"errors":{
"uid":[
"is not valid."
]
}
}
Global Field Related Error Messages
For global field creation requests (with upper case UIDs), you will encounter the following error:
{
"error_message":"Global Field creation failed. Please try again.",
"error_code":118,
"errors":{
"uid":[
"is not valid."
]
}
}
For global field import requests (with upper case UIDs), you will encounter the following error:
{
"error_message":"There was a problem importing the Global Field. Please try again.",
"error_code":118,
"errors":{
"uid":[
"is not valid."
]
}
}
SAML attributes can now be encrypted in SSO login requests. This provides an additional layer of protection for your personal or corporate data. Once you enable encryption in your IdP and Contentstack, the IdP encrypts the SAML attributes using Contentstack's public key certificate.
[Potential Breaking Change] Additional "branch" Key in Webhook-related API Responses
Feb 25, 2022
Docs & Tutorials
If the "Branches'' feature is part of your plan, all webhook-related API requests that hit the Content Management API (CMA) will return the branch key in the response body. This key specifies the unique ID of the branch on which the concerned webhook was triggered. Additionally, it also highlights the unique ID for any alias assigned to the branch and the source branch from which it inherits data.
Here's a sample of the webhook data returned along with the branch key when you run the Get webhook executions API request:
Additional "branches" and "branch_aliases" Keys to Specify Branch/Alias Scope in Responses
If the "Branches" feature is part of your plan, you will see additional keys named branches and branch_aliases in the API responses in some of the Contentstack modules (listed below). The branches and branch_aliases keys specify the unique IDs of the branches and aliases selected within the scope for the concerned modules.
Webhooks-related API requests that hit the Content Management API (CMA) will return a top-level branches key in the response body. This key specifies the unique ID of the branch to which the webhook is applicable.
When creating or updating a webhook, you need to specify the branch scope through the following schema in the request body:
"branches":[
"main"
]
For instance, here’s the response that you will get for the Create a webhook API request:
Workflows-related API requests that hit the Content Management API (CMA) will return a top-level branches key in the response body. This key specifies the unique IDs of the branches to which the workflow is applicable.
When creating or updating a workflow, you need to specify the branch scope through the following schema in the request body:
"branches":[
"main"
]
For instance, here’s the response that you will get for the Create a workflow API request:
Publish Rules-related API requests that hit the Content Management API (CMA) will return a top-level branches key in the response body. This key specifies the unique IDs of the branches for which the publishing rule is applicable.
When creating or updating a publishing rule, you need to specify the branch scope through the following schema in the request body:
"branches":[
"main"
]
For instance, here’s the response that you will get for the Create publish rules API request:
Delivery Token and Management Token-related API requests that hit the Content Management API (CMA) will return the branches and branch_aliases keys under the scope section in the response body. These keys specify the unique IDs of the branches and branch aliases for which a delivery or management token is applicable.
When creating or updating a delivery or management token, you need to specify the branch and alias scope through the following schema in the request body:
User Roles-related API requests that hit the Content Management API (CMA) will return the branches and branch_aliases keys under the rules section in the response body. These keys specify the unique IDs of the branches and branch aliases of which a particular user role can access data.
When creating or updating a user role, you need to specify the branch and alias scope through the following schema in the request body:
[Potential Breaking Change] Updated Asset Download URL Format as per Branch
If the "Branches" feature is part of your plan, you will see an updated download URL format for all assets part of any branch, except the default main branch. The branch={branch_UID} query parameter is attached to the download URL.
For instance, if you upload an asset to the development branch, Contentstack generates the following asset download URL:
Support "include_branch" as Query Parameter in CMA and CDA API Requests
If the "Branches" feature is part of your plan, you can pass the include_branch query parameter while running Content Delivery API (CDA) / CDN and Content Management API (CMA) requests. Set the include_branch key to true to allow the API to return the _branch top-level key in the response. This key specifies the unique ID of the branch and helps identify where the concerned Contentstack module resides.
Here’s the list of the components that support the include_branch query parameter:
Content Types [CDA / CMA]
Global fields [CDA / CMA]
Assets [CDA / CMA]
Entries [CDA / CMA]
Extensions
Languages
Releases
Audit Log
Publish Queue
Note: For Publish Queue and Audit Log related API requests, instead of "_branch": "{branch_ID}", you will see the "branch": "{branch_ID}" top-level key in the response.
Let us look at an example to understand how the response would look when you pass the include_branch query parameter. For instance, here’s the response that you will get for the Get all content types API request:
Contentstack now offers branching functionality that allows developers to experiment and innovate freely and collaborate with business teams. With Branches, developers can create copies of content type structures (schemas) to make changes and iterate without affecting deployments on the production server.
Branches can have their separate workflows to involve business users in making content modifications, enabling cross-functional innovation. Read our docs for more information.
Breaking Changes: When activating “Branches,” you will see a change in the API responses returned for several Content Delivery API (CDA) / CDN and Content Management API (CMA) requests. We have listed the changes introduced within the Breaking Changes PDF file for smooth adoption of the feature. You need to update your code with the relevant parameters to avoid breaking changes in your application.
Note: The Branches feature will be rolled out to all customers gradually over the next few weeks. It is available in Contentstack only for the new interface. For any inquiries, please reach out to our support team at support@contentstack.com.
Updated UI for Adding Key-value Choices in Select Field
Feb 18, 2022
Contentstack AppAPIs
With the latest update to Key-value choices of Select fields, you no longer need to add spaces before and after the colon (:) of your key-value pairs. For example, if you're adding key-value choices for t-shirt sizes, you need to add the choices as: Large:L, Medium:M, Small:S, and so on.
Learn more about this change in the Select field documentation.
Restrict Records Maintenance for Publish Queue Activities
Feb 11, 2022
Restrict Records Maintenance for Publish Queue Activities
Post this release, i.e., February 11, 2022, the Publish Queue of the stack will only maintain records of publishing/unpublishing activities performed within the last 90 days. This update ensures that constant publishing activity does not overload the queue.
Restrict Records Maintenance for Audit Log Activities
Post this release, i.e., February 11, 2022, the Audit Log of the stack will only maintain records of activities (updates, deletes, publishing/unpublishing activities, etc.) performed within the last 90 days.
For more information, refer to the Audit Log documentation.
Webhook Signatures for Webhook Events
Post this release, i.e., February 11, 2022, Contentstack will sign all webhook events sent to your endpoints with a signature. This signature appears in each event's X-Contentstack-Request-Signature header. It allows you to verify the integrity of the data and the provider's authenticity (Contentstack) from which data is coming.
Restrict Records Maintenance for Publish Queue and Audit Log Activities
Feb 11, 2022
Contentstack AppAPIs
We introduced the following changes in our February 11, 2022 release:
The Publish Queue of your stack now only maintains records of publishing/unpublishing activities performed within the last 90 days. This update ensures that constant publishing activity does not overload the queue.
The Audit Log of your stack now only maintains records of activities (events) performed within the last 90 days.
Read more about these updates in our API Change Log documentation.
Contentstack now signs all webhook events sent to your endpoints with a signature. This signature appears in each event's X-Contentstack-Request-Signature header. It allows you to verify the integrity of the data and the provider's authenticity (Contentstack) from which data is coming.
Use Slash Command for Formatting Shortcuts in JSON Rich Text Editor
Jan 31, 2022
Contentstack AppAPIs
You can now type in "/" in the JSON Rich Text Editor to open a formatting menu that contains options for formatting texts and bullets, embedding entries and assets, and so on. With the slash command, you can style and edit your content efficiently at a faster pace. To select a formatting option, choose from the displayed list or type the option you need to add.
For more information, read our documentation on Slash Command.
The new Update release items to their latest versions button updates all entries and assets in a release to their latest versions. This update feature ensures publishing up-to-date content with a release.
Create or Update Roles with Language-Specific Permissions
Jan 31, 2022
Contentstack AppAPIs
You can now restrict access to the master language and add custom exceptions for all or specific languages while creating or updating a user role. For example, you can restrict a role from being able to "Create," "Update," or "Delete" entries localized in a specific language, e.g., English (United States) or French (France).
Prefix Dollar Sign in Webhook JSON Payload with Wildcard
Jan 21, 2022
Docs & Tutorials
Post this release, i.e., January 21, 2022, whenever a webhook sends data to a specified notification URL, if any key name in the response begins with a dollar sign ($), it will be prefixed with the acronym "cs" as a wildcard. For example, the key named "$success" would be replaced with "cs$success."
Let's consider the following sample webhook data that contains a key prefixed with a dollar sign:
{
"$success": true
}
The key name will be prefixed with the "cs" acronym, as shown in the following webhook data:
Prefix Dollar Sign in Webhook JSON Payload Keys with Wildcard
Jan 21, 2022
Contentstack AppAPIs
With this update, whenever a webhook sends data to a specified notification URL, if any key name in the response begins with a dollar sign ($), it will be prefixed with the acronym "cs" as a wildcard. For example, the key named "$success" would be replaced with "cs$success."
Let's consider the following sample webhook data that contains a key prefixed with a dollar sign:
{
"$success": true
}
The key name will be prefixed with the "cs" acronym, as shown in the following sample webhook data:
Android SDK Version: 3.10.1 - Release Date: Jan 17, 2022
Jan 17, 2022
SDKs and tools
Bug Fixes:
Fixed compile issue with target version 31.
January 7, 2022
Jan 07, 2022
Docs & Tutorials
Password Reset Link Expiration
Earlier, Contentstack did not impose an expiration timeframe on password reset links you generate when you forget the password. This vulnerability could expose users to information security attacks.
Post January 07, 2022, Contentstack will invalidate all password reset links within 60 minutes from when you generate them. This update maintains a robust security mechanism and prevents accounts from being hacked. Once the link expires, you can create another link using Forgot password and reset your password.
JSON RTE Plugins and Password Reset Link Expiration
Jan 07, 2022
Contentstack AppAPIs
You can now extend the functionality of your JSON Rich Text Editor with our latest JSON RTE Plugins. These plugins let you inject specific functional logic directly into the JSON Rich Text Editor through third-party tools, without the need to add separate fields to perform complex content checks.
JSON RTE Plugins lets you dynamically interact with and improve the rich text content by introducing features such as auto suggestions, grammar, and terminology checks that helps enhance content quality and accelerate editorial velocity.
Note: This plan-based feature will be available only for the JSON Rich Text Editor in the new Contentstack interface.
Contentstack now disables all password reset links within 60 minutes from the time you generate them. Once the link expires, you can reuse the Forgot password option to generate a new link and reset the password.
Restrict Multiple Entry Creation for Singleton Content Types using CMA
Oct 19, 2021
Docs & TutorialsAPIs
Earlier, even though the Contentstack user interface did not allow the creation of multiple entries in a content type marked as "Single," users could still create them using the API. Post this release, i.e., October 19, 2021, Contentstack will restrict you from using the Content Management API (CMA) to create more than one entry in a content type that has been marked as "Single."
Note: This change will not affect existing entries created in a content type of type "Single" using the Content Management API (CMA). You will still be able to fetch those entries using the CMA.
To create multiple entries using the same content type, you need to mark that content type as "Multiple."
.NET SDK Version: 2.7.0 - Release Date: Oct 14, 2021
Oct 14, 2021
SDKs and tools
New Feature:
Live preview feature support added.
Webhook Circuit Breaker
Oct 07, 2021
APIsContentstack AppBreaking changes
Webhook Circuit Breaker
A webhook request may fail to retrieve data from a specific notification URL under the following scenarios:
The provided domain name is either invalid or does not exist
The API fails to respond with data within 30 seconds
The destination server aborted the connection
When a webhook request repeatedly fails 10 times under any of the above scenarios, the system detects the invalid URL and automatically disables the webhook configured for that client. Contentstack then marks the faulty webhook with an Unhealthy status.
If any webhook goes into an unhealthy state, webhook-related Content Management API (CMA) requests will return the unhealthy key in the response:
{
"unhealthy":{
"state":true
}
}
We also send a notification email to the concerned client (user) whenever the Webhook Circuit Breaker disables any webhook in Contentstack. To enable the webhook again, you can refer to the webhook logs and debug the issue.
Contentstack now deploys the Webhook Circuit Breaker (WCB) whenever any webhook uses up its allotted execution retry attempts. WCB automatically disables a webhook that repeatedly fails to retrieve data from a specific notification URL 10 times. The faulty webhook is then marked with an Unhealthy status.
If any webhook goes into an unhealthy state, webhook-related Content Management API (CMA) requests will return the unhealthy key in the response:
Implemented Refine to extend class within module scope.
September 6, 2021
Sep 06, 2021
Docs & TutorialsContentstack App
Any regular expression added within the validation property of your content type should be valid. This update will restrict you from saving your content type if an invalid regex has been entered to avoid catastrophic backtracking.
The Regex Validation property helps you define a set of validation options for a given field. Initially, content types with invalid regexes were saved, and the validation check became time-consuming when executed. Regular expressions like these either freeze the browser or utilize 100% of the CPU core process.
Post this release, i.e., September 6, 2021, any regulars expression added within the validation property of your content type should be valid. This update will restrict you from saving your content type if an invalid regex has been entered to avoid catastrophic backtracking.
Add Valid Regexes while Creating a Content Type
Sep 06, 2021
Contentstack AppAPIs
With this update, you will be restricted from saving a content type that contains an invalid regular expression. This update will avoid catastrophic backtracking that may end up freezing your browser or utilizing 100% of the CPU core process.
Date Range Filtering for Webhook Execution Details
Aug 19, 2021
Docs & TutorialsAPIsBreaking changes
The Get executions of a webhook API request now allows you to filter the webhook execution details based on a particular date range. To do so, you can pass from and to as query parameters within the API request. For both of these parameters, you need to provide a date in ISO format as the value. For instance, to set the start date in the from parameter to December 8, 2017, you can pass the date in ISO format as shown below:
from="2017-12-08T00:00:00.000Z"
Linking Content Management API Requests with Audit Log
Audit Log tracks and displays activities (events) performed in a particular stack. Initially, the API response body only contained information about the operations being performed. With multiple API requests being executed throughout the stack by various users, mapping each request was a tedious task.
After this release, you will be able to view a request_id key in the response body of the GET Audit Log and GET Audit Log Item requests. This key helps map the API requests made throughout a stack with the Audit Log.
Date Range Filter for Webhook Execution Details and Linking Content Management API Requests with Audit Log
Aug 19, 2021
Contentstack AppAPIs
You can now use the "from" and "to" query parameters to filter the webhook execution details based on a specific date range. Here's more about these query parameters:
from: Allows you to provide the start date in ISO format as value, e.g., from="2016-10-07T12:34:36.000Z"
to: Allows you to provide the end date in ISO format as value, e.g., to="2017-12-08T00:00:00.000Z"
Linking Content Management API Requests with Audit Log: We have updated the response body of the GET Audit Log and GET Audit Log Item requests with a request_id key which helps map all API requests made throughout a stack with the Audit Log. Let's look at a sample Audit Log schema:
Whenever any webhook fails to send data to the desired notification URL or a session timeout occurs, Contentstack's exponential webhook retry policy attempts to send data to the destination URL again four more times after certain intervals. Setting a resend interval avoids several requests constantly hitting the server and prevents database overload.
The resend interval time lasts for 5 seconds, by default, for the first retry attempt. It increases exponentially as the retry instance number increases. The exponential backoff formula will look as follows:
Introducing the JSON-powered Rich Text Editor (JSON RTE) Field
Jul 17, 2021
Contentstack AppAPIs
The new JSON RTE field provides a hassle-free content editing experience for writers and enables developers to render rich-text data across all channels seamlessly. It stores and returns field data in JSON format, allowing developers to serialize the data in any human-readable format, paving the way for a truly omnichannel experience for your customers.
You can migrate your existing content from the HTML-based RTE to the new JSON RTE field using our CLI or change JSON data of the RTE into HTML using our serializer package. For more information, read our docs.
Note: This feature is available only in the new Contentstack interface.
Added support for utils function gql.jsonToHtml().
Bug Fix:
Resolved bug
Instead stacktrace used logger.error().
Permanent Asset URLs
Jul 08, 2021
Contentstack AppAPIs
You can now assign permanent URLs to assets and create custom URLs for every asset. These URLs remain unchanged even if the assets are updated multiple times, so you don’t have to update the referring hyperlinks in entries ever and can maintain your SEO scores. Learn more about permanent asset URLs.
Add Custom Languages to Your Stack
Jul 02, 2021
Contentstack AppAPIs
Good news for developers! You don’t have to reach out to our support team any more to get a language added to our list of supported languages. You can add custom languages of your choice to your stack in a click. Here’s how.
Add Key-value Choices in Select Field
Jun 24, 2021
Contentstack AppAPIs
You can now add key-value pairs as choices in the Select field. For example, to specify the state code for a state while defining choices in a government website, you can specify key-value pairs such as New York : NY. Learn more about this change in the Select field documentation.
Dart SDK Version: 0.3.0 - Release date: Jun 05, 2021
Fixed Unhandled promise rejection on HTML response body.
.NET SDK Version: 2.8.0 - Release Date: Jan 11, 2021
Jan 11, 2021
SDKs and tools
Bug fix:
Live preview Query issue.
New Feature:
Entry
IncludeOnlyReference function added.
IncludeExceptReference function added.
Query
IncludeOnlyReference function added.
IncludeExceptReference function added.
Release of January 11, 2021 - Force user to type the name of the delivery token before deleting
Jan 11, 2021
Contentstack AppAPIs
Confirmation Step to Delete Delivery Token: We now force the user to type and confirm the name of the delivery token that they want to delete. Refer to the Delete a Delivery Token section to learn more about this change.
New Languages: We added a number of languages to the existing list of supported languages in which you can localize your entry. Learn more about these "Supported Languages".
We have stopped supporting Access Token for all stacks created post this release, i.e., December 16, 2020. For stacks created after this release, the Access Token will no longer be generated. Instead, you need to use the value of the environment-specific Delivery Token against the ‘access_token’ key to make authorized Content Delivery API (CDA) or CDN requests. Subsequently, you can use Management Tokens to make Content Management API (CMA) requests.
For stacks created before December 16, 2020, we will continue to support Access Tokens. However, we strongly recommend switching to Delivery Tokens and Management Tokens for the respective API requests mentioned above.
Note: Though we have stopped supporting Access Tokens, we haven’t removed the usage of the ‘access_token’ key for Content Delivery API requests. To make authorized Content Delivery API requests, you need to now pass the value of the delivery token against the access_token key.
Improvements in Upload Asset API Request: We now provide the ability to include image dimensions (height and width) in the API response while uploading an asset. You need to pass the include_dimension=true query parameter while running the API request. Learn how to upload an asset using our Content Management API.
Stockholm Release - Retrieve Fallback Language Content for Published Entries
Dec 05, 2020
Contentstack AppAPIs
When fetching published content, if the requested entry is not available for the specified language, you can get its published fallback language content in the same API request. You no longer need to make multiple queries or write custom code to get the fallback language content. Learn how to retrieve fallback language content for published entries.
Adding support for the include_fallback query parameter for the following Content Delivery API requests: Get All Entries, Get Single Entry, Get All Assets, and Get Single Asset.
Using the include_fallback=true parameter in the above API requests, you can fetch published content from the fallback languages, if the requested entry is not available for the specified language.
Release of November 4 - Limited Webhook Retry Attempts
Nov 04, 2020
Contentstack AppAPIs
In case of a failure or if a session timeout occurs (webhook request timeout is 30 seconds), the webhook will immediately retry to send data to the destination URL again for three more times. After three unsuccessful attempts, the webhook will not make any further attempts automatically. However, you can trigger the webhook manually up to seven more times by clicking on the Retry link. Learn how to view webhook logs.
You can create discussions for each of the subfields present inside “Group,” “Modular Blocks,” or “Global” fields. However, when you mark the parent field as multiple, the discussion fails to recognize which subfield was linked to it.
To identify each instance of a field marked as “Multiple”, we send the _metadata key in the response of GET requests for draft entries. This key contains the unique ID assigned to each field instance.
This is useful in cases where “Group,” “Modular Blocks,” or “Global” fields have comments added to multiple instances of their subfields.
For example, consider an entry named “Demo Entry” that consists of the “Employee Address” Global field. If the Global field has been marked as “Multiple”, then the following response is returned for a “Get entry” API request:
Contentstack provides the ability to add comments to entry fields. With this feature, content managers can add comments to fields of an entry and reply inline, letting them initiate discussions around the content to collaborate efficiently. Learn how to work with entry comments.
August 31, 2020
Aug 31, 2020
Docs & Tutorials
We have deprecated the include_workflow parameter for all Content Delivery API (CDA) or CDN requests. For stacks created post this release, i.e., August 31, 2020, users will no longer be able to fetch workflow stage details for published entries. However, for stacks created before this release, users will be able to retrieve workflow stage details for existing published entries. Read more about adding workflows and workflow stages.
Release of August 31, 2020 - Concise Webhook Payloads and Option to Require Unique URLs in a Stack
Aug 31, 2020
Contentstack AppAPIs
Contentstack allows you to send a concise JSON payload to the specified URL whenever the selected event occurs. Learn how to send concise webhook payload.
Contentstack allows you to ensure that entry URLs are not duplicated across the stack and provide a warning when a duplicate URL is detected. This can be done through the API. Read more.
Organization Bulk Task Queue: The "Bulk Task Queue" section under "Organization Settings" displays the queue of bulk operations that the users of your organization perform. Read more about the Bulk Task Queue.
Enable or Disable Releases through Super Admin: Incorporated the ability to disable the "Releases" feature from super admin.
Select Field: Added the ability to select all options when entering data for a Select field in the entry.
Rome Release - Contentstack GraphQL API Beta Version
Jul 23, 2020
Contentstack AppAPIs
The Contentstack GraphQL API Beta version is now publicly available. This version facilitates optimized schema handling, returns error debugging responses, uses database resources efficiently, prevents malicious requests to the database, and has an increased rate limit. Read more about the Contentstack GraphQL API Beta.
Download and install our latest Postman Collection that covers all the GraphQL Content Delivery API endpoints for Contentstack.
Trash maintains a backup of all deleted items for up to 14 days from the date of deletion. You can restore the deleted items back to their original condition before they are permanently deleted. The following items are stored in the Trash after being deleted:
Following changes have been introduced to new stacks of Organizations created post this release, i.e., June 24, 2020:
Users will no longer be able to use the stack Access Token to make authorized Content Delivery API (CDA) or CDN requests. Instead, you need to use the value of the environment-specific delivery token of the stack against the access_token key. Read more about the relevant authentication parameters.
Users will no longer be able to pass authentication parameters such as api_key (Stack API key), access_token (Access Token of the stack), authtoken (user-generated authtoken), and authorization (Management token of the stack) as query parameters for any stack-specific API requests. Read more about Queries.
Release of June 02, 2020 - Enable or Disable Webhooks
Jun 02, 2020
Contentstack AppAPIs
Contentstack allows you to enable and disable a webhook as per your requirements. Learn how to enable or disable a webhook.
Dart SDK Version: 0.1.0 - Release Date: May 11, 2020
May 11, 2020
SDKs and tools
Initial release for the Contentstack-dart-sdk for Content Delivery API.
PHP SDK Version: 1.6.1 - Release Date: 08 May, 2020
May 08, 2020
SDKs and tools
Bug
Stack api key and access token moved to the header.
Ruby SDK Version: 0.1.0 - Release Date: May 8, 2020
May 08, 2020
SDKs and tools
Bug
Stack Tokens Moved to Headers.
Dart SDK Version: 0.0.1 - Release Date: May 08, 2020
May 08, 2020
SDKs and tools
Beta release for the Contentstack-dart-sdk for Content Delivery API.
Port Louis Release
Apr 24, 2020
Contentstack AppAPIs
Edit Access Permissions for Workflow Stages: A stack administrator or developer, can now define who can edit entries on different stages of a workflow. This access control ensures that your content reaches the end of its lifecycle, without any unwanted modifications. Read more about setting edit access permissions on workflow stages.
Webhook Log Enhancements: You can now filter out the Webhook Logs information according to days by using the date filter located at the top of the page. Additionally, you can apply the Call Status filter to retrieve only the logs with successfully triggered webhooks.
Contentstack Extensions SDK Enhancements: Extension fields that support data types such as text, number, boolean, or date can now programmatically change the data of another extension field using the field.setData() function. The field.onChange() function is called as soon as the other extension field witnesses change in data. We have also added the following new methods for the Entry class:
onChange(): Executes the callback function every time an entry has been updated.
onPublish(): Executes the callback function every time an entry has been published with the respective payload.
onUnpublish(): Executes the callback function every time an entry has been unpublished with the respective payload. Refer to the Extensions SDK API Reference document to learn more about the changes.
You can now add the “Group,” “Modular Blocks,” and “Reference” fields, along with other fields, to the Global fields. Also, you can add Global fields within Group fields or use Global field as a block within the Modular Blocks field. This means that developers can create really complex structures and use them across multiple content types. Read more about Complex Global Fields.
Contentstack allows you to delete multiple localized versions of an entry right from the “Delete” modal of the master language version of the entry. Read more.
Area-specific languages allow you to create content that caters to a specific continent or a group of politically or economically influential countries (for example, all Latin American regions). Read more.
Contentstack's Image Delivery API now provides enhanced image optimization parameters that serve pixel-perfect and bandwidth efficient images to your devices. The new parameters are: Smart and Fail-safe Cropping parameters, Canvas, Overlay Pad, Brightness, Contrast, Saturation, Resize-filter, Sharpen, Blur, and Frame.
Bulk Actions on Search Results: Content managers can now perform bulk actions on the result set of Basic or Advanced searches. The bulk action options available are Publish, Unpublish, Delete, and Change Workflow Details.
Perform Advanced Search Within Multiple Content Types: While using Advanced search, you can now select multiple content types within which you want to perform the search (previously, a search could be done on a single content type or all content types). This offers more flexibility to content managers and helps in getting accurate results.
Adding support for ‘Workflow Stage’ option in Advanced Search: You can now search entries by their workflow stage, provided they are associated with the same workflow.
Madison Release - Nested Modular Blocks & Reference and File Field Type for Custom Field Extensions
Nov 24, 2019
Contentstack AppAPIs
Nested Modular Blocks: Developers can now add Modular Blocks within a Modular Block field while creating a content type. This enables content managers to create complex, flexible content pages without the help of developers. Read more.
Reference and File Field Type for Custom Field Extensions: Developers can now save the input data of their custom field extensions in the form of Reference or File data types. Read more.
Global Field: A 'Global Field' is a standalone, reusable field (or group of fields) that you can create once and use in multiple content types. It eliminates the need to create the same bunch of fields repeatedly in different content types. For example, an ‘SEO’ Global Field can be used to quickly add the subfields “Meta Title” and “Meta Data” across content types. Read more.
IOS SDK Version: 3.6.4 - Release Date: Oct 25, 2019
Oct 25, 2019
SDKs and tools
New Features:
CSError
added a new class
CSNetworking
Implemented Contentstack Networking library
October 18, 2019
Oct 18, 2019
Docs & TutorialsAPIs
Management Token is a stack-level read-write token that lets you make authorized Content Management API requests. The token value needs to be passed in the new authorization header parameter. Read more about this token in the Authentication section.
The Get executions of a webhook API request will return a maximum of 100 records while fetching the execution details for a specific webhook. Previously, there was no limit on the number of records returned.
Management Tokens for your stack: Management Tokens are stack-specific, read-write tokens, used along with the Stack API key to make authorized Content Management API (CMA) requests. While Authtokens are user-specific, Management Tokens are not personal and no role-specific permissions are applicable to them. They are recommended to be used when you do not wish to use Authtokens in CMA requests, for example, for third-party integrations, in automation scripts, or for SSO-enabled organizations. Read more.
Jackson Release - Asset Folder-level Permissions & Improved Error Messages
Oct 01, 2019
Contentstack AppAPIs
Set asset folder-level permissions: While setting up or modifying custom roles, you can now assign permissions to asset folders and subfolders as well. This allows flexible and granular access control over the asset folders of your stack. Read more.
Improvements
Improved error messages on content type builder page: The new error messages are now crisper, friendlier, and more accurate than before. This ensures that you can save time diagnosing a problem and focus on fixing it right away. Read more.
Introducing “Gatsby Preview” extension: The Gatsby Preview widget extension helps content managers preview content changes instantly on their “Contentstack + Gatsby” websites and web apps. Read more.
Set preferences for your Dashboard and its widgets: You can now reorder the widgets on your stack Dashboard, and choose to show or hide them. Dashboard account preferences now work everywhere, irrespective of the device or browser you use to access your stack. Read more.
Android SDK Version: 3.6.1 - Release Date: Aug 23, 2019
Aug 23, 2019
SDKs and tools
New Features:
Query:
Support added for whereIn(String key) and whereNotIn(String key) methods in Query.
Config:
Support added for setRegion(ContentstackRegion region) in Config class.
Deprecation of TLS 1.0 and 1.1
Aug 23, 2019
APIs
TLS 1.0 and 1.1 have been deprecated and will not longer be supported. Read more.
Please reach out to Contentstack Support or your dedicated Customer Success Manager with questions.
Added support for whereIn(String key) and whereNotIn(String key) methods.
CSAppConstants
Removed Google internet connection check from CSAppConstants.
Bulk Publish Localized Entry Versions and Non-localizable Fields
Aug 09, 2019
Contentstack AppAPIs
Bulk publish localized entry versions: You can now bulk publish the localized versions of an entry from the master language entry. Read more.
Non-localizable Field: Specify fields as “non-localizable,” such as a URL or an image field that doesn’t require translation, to ensure that the contents of the fields are not editable in local entries. Read more.
Support added for the method includeReferenceContentTypeUID.
Entry:
Support added for the method includeReferenceContentTypeUID.
July 29, 2019
Jul 29, 2019
Docs & Tutorials
The upgraded Reference field now allows you to add references to the entries of multiple content type. For example, the “Sample” Reference field in your “Demo” content type can refers to the “Content Type 1,” "Content Type 2", ... content types. So, while creating an entry for the “Demo” content type, the content manager can add any entry from the above mentioned content types as a reference to the “Sample” field.
This has an impact on some of the existing API Requests. They are as follows:
Create a content type
OLD
NEW
Method: POST/PUT
Method: POST/PUT
URL: https://api.contentstack.io/v3/content_types
URL: https://api.contentstack.io/v3/content_types
Request Body
{
"content_type": {
"title": "Old content type",
"uid": "old_content_type",
"schema": [{
"display_name": "Title",
"uid": "title",
"data_type": "text"
"field_metadata": {
"_default": true
},
"unique": true,
"mandatory": true,
"multiple": true,
}, {
"data_type": "reference",
"display_name": "Reference",
"reference_to": "referred_content_type",
"field_metadata": {
"ref_multiple": true
},
"uid": "reference",
"mandatory": false,
"multiple": false,
"unique": false
}],
"options": {
"title": "title",
"publishable": true,
"is_page": false,
"singleton": false,
"sub_title": [],
"url_pattern": false,
"url_prefix": ""
}
}
}
Request Body
{
"content_type": {
"title": "Content Type With Multiple Content Type Referencing Field",
Referencing Multiple Content Types: The upgraded Reference field now allows users to add references to more than one content types in a single instance. Read more.
.NET SDK Version: 2.0.0 - Release Date: Jun 28, 2019
In-progress Entries: Content managers can now save entries that are "in-progress," even if mandatory fields are left blank, and come back to continue adding content and editing later without losing their work. The "mandatory" field validation is checked only when publishing the entry. Contact us to enable this feature for your organization. Read more.
Java SDK Version: 1.3.3 - Release Date: Jun 21, 2019
Jun 21, 2019
SDKs and tools
HOTFIX:
Override response hot-fix.
Edison
May 31, 2019
Contentstack AppAPIs
Set a ‘Fallback Language’ for easy localization: You can now specify the language to use as source content if the entry does not exist in the specified primary language. Read more.
Support for generic languages: Create content in generic languages, i.e., languages that are not tied to any region or country (e.g., English, Spanish, French). Read more.
PHP SDK Version: 1.2.1 - Release Date: 25 May, 2019
May 25, 2019
SDKs and tools
Bug
Made changes in the helper file for fetching proper data on language query
Java SDK Version: 1.3.2 - Release Date: May 13, 2019
May 13, 2019
SDKs and tools
Changes:
Code Improvement:
Removed println.
Code Improvement:
Added support for Logger.
Java SDK Version: 1.3.1 - Release Date: May 02, 2019
May 02, 2019
SDKs and tools
Bug Fix:
Bug fixed for include reference.
Added testcase report for v1.3.1.
Denver 2
Apr 19, 2019
Contentstack App
Analytics dashboard: Introducing the all-new Analytics dashboard for organizations. Get one-click access to the overall usage and API analytics of your organization, and make better, more informed business decisions.
Version Naming: You can now assign names to versions of entries and assets to quickly identify the status of the entry or asset. For example, you can specify an entry as important ('Production Ready') or less urgent ('First Draft').
Following breaking changes from Config class have been deprecated for:
public void setSSL(boolean isSSL)setSSL()
public boolean isSSL()
Casa Blanca
Apr 05, 2019
Contentstack AppAPIsSDKs and tools
Dashboard for stacks: Dashboard—the new homepage for your stack—is a collection of widgets that provide a quick overview of your stack’s recent entries and assets.
Dashboard Widget: This release introduces our third type of Experience Extension, the Dashboard Widget, that allows you to add useful widgets to the dashboard of your stack.
Instance-level config for custom fields: You can now add a separate configuration for each instance of a custom field in a content type.
New functions in SDK: We have added support for new functions in the Extensions SDK.
DataSync: The latest addition to our data synchronization offering, DataSync, lets you sync your Contentstack data (assets and entries) with your database (FileSystem, MongoDB, etc.) over 8x faster.
IdP Role Mapping in SSO: Now you can map your SAML Identity Provider (IdP) roles to Contentstack roles for your SSO-enabled organizations, and manage users and roles from your IdP. Read more.
Java SDK Version: 1.2.1 - Release Date: Mar 14, 2019
Mar 14, 2019
SDKs and tools
Bug Fix:
Bug fixes and code cleanups.
March 8, 2019
Mar 08, 2019
Docs & Tutorials
When a webhook is triggered for an entry or asset because it was published/unpublished via a release, the webhook data of such an event contains a source key. This key contains the JSON data of the release (type, title, and uid) through which it was deployed.
This is useful in cases where a lot depends on the webhook data. For example, in the case of static site generators, a build is generated every time an item (entry or asset) is published or unpublished. So, if a release is deployed with 200 items, it will generate a build 200 times, instead of just one time for the release. To avoid such cases, the developer can write custom code that ignores events whose response contains the source key. So, only one build will be generated for the whole release.
Our webhooks just got stronger. Here’s what’s new in our webhooks:
New support for ‘Release Deployment’ events in webhooks: You can now set up webhook events related to the deployment of releases on any or specific environments. Read more.
We’ve added the ability for you to import and export webhooks: Import and export webhooks at the click of a button.
Customizations for Rich Text Editor (RTE): Developers can now customize the formatting options in the toolbar of the Rich Text Editor (RTE) field. This will allow you to deliver an experience that is more tailored to your content managers’ needs.
Java SDK Release Date: Feb 20, 2019
Feb 20, 2019
SDKs and tools
Changes:
Maven integration
Folder structure.
GraphQL Content Delivery APIs
Feb 19, 2019
Contentstack App
GraphQL Content Delivery API: GraphQL is a popular query language that enables one-trip relational queries. It lets you fetch exactly the data you want via Contentstack’s API as an alternative to making multiple round-trip queries with RESTful calls.
Ximenez
Jan 18, 2019
Contentstack AppAPIs
Field Visibility Rules: Dynamically show or hide fields on the entry page, based on the value entered in other fields. Read more.
New Content Type Builder: Content Type Builder has a new look that makes the process of building content types quicker and more enjoyable. Read more.
Advanced Search: Contentstack now offers advanced search capabilities that let you perform field-level searches and combine multiple search queries to find your proverbial needles in a (content) haystack.
Bulk Operations: Perform bulk operations (such as publish, unpublish, delete) on multiple entries and assets at once.
Verma
Nov 30, 2018
Contentstack App
We’ve added some powerful and exciting capabilities to our workflows, giving you more flexibility and control over your content creation process. Here’s a rundown of what’s new:
Multiple workflows in a stack: Create different workflows for different content types within your stack.
Stage transition rules: Define next stage options for each stage, and manage who can move from one step to another.
Superusers with unrestricted access: Superusers can change the entry stage without any restrictions. The purview of stage transition rules does not limit them.
Birds-eye view of all tasks: Stack owners and administrators have visibility into all workflow tasks assigned to all users.
Conditional publishing: Add conditions to publishing/unpublishing actions. For example, allow publishing "only if" the entry reaches a particular workflow stage.
IOS SDK Version: 3.2.0 - Release Date: Nov 10, 2017
Nov 10, 2018
SDKs and tools
New Features:
Stack
added method ‘imageTransformWithUrl:andParams:’
Query
added method ‘includeContentType:’
QueryResult
added property ‘content_type’.
API deprecation:
Query
Deprecated property ‘includeSchema’.
Upton
Oct 26, 2018
Contentstack App
Sync API: We have introduced the Sync API that takes care of syncing your Contentstack data with your apps and ensures that data is always up-to-date and updates are performed with maximum efficiency by fetching only incremental changes. Read more.
Improvements
Upgraded RTE: We upgraded the Rich Text Editor field to provide users with new and improved editing features. For any new stacks you create, you will automatically be using the upgraded Rich Text Editor. All of your existing stacks will continue to use the same Rich Text Editor as before until you are ready to upgrade, which you can do (and undo) at any time by editing the appropriate content types. Learn how to upgrade to the new RTE.
Here’s what’s new in the new Rich Text Editor field:
New ‘Undo’ and ‘Redo’ shortcut keys
Support for ‘Heading level 6’ under the Format option
Option to apply custom ID and class without switching to the HTML mode
New ‘List’ button that contains ‘Unordered List,’ ‘Ordered List,’ ‘Outdent,’ and ‘Indent’ options
Options to add title, caption, and hyperlink to images; set position of the image
Keyboard shortcut ‘ALT + ENTER’ to unselect image or video
Removed options to change font properties (size, family, color, background color)
Removed keys ‘Horizontal Rule’, ‘Superscript’ and ‘Subscript’
List of bugs fixed:
Improper rendering of code snippets when switched to HTML view
Text formatting doesn’t work as expected on Google Chrome browser
Link is wrapped automatically when a URL is inserted in a code block
Improper alignment of the ‘Choose File’ option in Internet Explorer 11
The field doesn’t work as expected if an invalid script tag is used
Internet Explorer 11 crashes if more than 300KB of data is inserted
Small images disappear is added in a table
Heading-1 tag doesn’t render properly on Google Chrome and Mozilla Firefox when published
Account Lockout Policy: To secure your account from potential hacking threats, we have introduced account lockout policy that locks your account after several unsuccessful login attempts. Learn more.
Tucker
Sep 29, 2018
Contentstack App
New Features
Delivery tokens: Create a separate delivery token for each environment. These delivery tokens ensure only specified people have access to the content of the required environment.
Fine-grained permissions for roles: Custom roles are now more customizable. You can assign entry-level, field-level as well as asset-level permissions to roles for greater control.
Custom widgets: Build powerful custom functionality and incorporate it directly into your CMS editing environment. Custom Widgets can integrate with any third-party app and data source to, for example, perform sentiment analysis on a text entry, provide SEO recommendations, and deliver realtime translation capabilities. The possibilities are endless.
Replaced the createError method with New method contentstackcreateError.
Ramanujan
Aug 03, 2018
Contentstack App
Custom Fields: Custom Fields are part of Contentstack’s new ‘Experience Extensions’ integrations framework that allows developers to create a unique, custom-built field. For example, you might create a Custom Field to add a ‘color picker,’ ‘video selector,’ or a ‘star rating’ review widget.
Global search (beta): The new search bar in the header lets you search content, entries, and assets, across your entire stack.
Enhancement Release [27-07-2018]
Jul 27, 2018
Contentstack App
‘Title’ field becomes more flexible: You can now set minimum and maximum character limits for the ‘Title’ field and also rename it according to your preferences.
New languages added: We have added support for two additional languages – ‘English - China’ and ‘English - Korea’.
No default master language: When creating a new stack, no master language is selected by default (previously, the default was set to ‘English - US’).
Spaces allowed in tags: We have added support for spaces in tags (e.g., Business News) to allow multi-word tags for entries. You can use a comma to separate multiple tags.
.NET SDK Version: 1.0.6 - Release date: Aug 10, 2018
Jun 01, 2018
SDKs and tools
Introduced Contentstack SDK for .NET.
Quinn
May 21, 2018
Contentstack App
Introducing .NET SDK: Power the content and ensure lightning-fast content delivery of your .NET applications using our new .NET SDK.
Content type versioning: Contentstack now maintains a history of all versions of your content types. You can retrieve any previous version through the API.
Pascal
May 07, 2018
Contentstack App
Reference field 2.0: Reference field gets a makeover. You can now edit referenced entries/assets quickly, create new references on-the-go, and do a lot more.
Compare languages of an entry: Now perform a side-by-side comparison of versions across all languages of an entry.
View entry localization status: We have added a new ‘Localization Status’ section within the ‘Entry Information’ tab in the entry. It gives you localization details of all languages of the entry.
Reference info of an entry: Get a list of all the entries within which the current entry is referenced.
Workflow: A powerful feature that streamlines content creation and optimizes content review and approval processes for your team.
Releases: By assigning entries/assets to a ‘Release’, content can be published/unpublished in bulk and perfectly timed with a critical event, such as an announcement or product release.
Newton
Feb 23, 2018
Contentstack App
Introducing ‘Modular Blocks’ Field: A powerful tool that gives content managers the flexibility to dynamically create components of a page or app without requiring developer’s assistance.
Android SDK Version: 3.3.0 - Release Date: Dec 15, 2017
Dec 15, 2017
SDKs and tools
New Features:
Entry
Method added - ‘addParam’
Query
Method added - ‘addParam’
Asset
Method added - ‘addParam’
Java SDK Version: 1.2.0 - Release Date: Dec 15, 2017
Dec 15, 2017
SDKs and tools
New Features:
Entry
Added method ‘addParam’.
Query
Added method ‘addParam’.
Asset
Added method ‘addParam’.
Manfredi 2
Dec 15, 2017
Contentstack App
Introducing Single Sign-On: Contentstack introduces Single Sign-On (SSO) for organizations, so you can authenticate users securely with your corporate identity provider.
Manfredi
Dec 02, 2017
Contentstack App
Introducing ‘Select’ Field: A multiple choice field that allows users to choose one or more options from a given set of values (choices). This allows your content editors to pick options quickly without creating a reference content type.
Image dimension validation: Set width and height dimension limits to images that can be uploaded in the ‘File’ field.
Android SDK Version: 3.2.0 - Release Date: Nov 10, 2017
Nov 10, 2017
SDKs and tools
New Features:
Stack
Method added - ‘ImageTransform’
Query
Method added - ‘includeContentType’
QueryResult
Method added - ‘content_type’
API Modifications:
None
API Deprecation:
Query
Deprecated method ‘includeSchema’
Bug Fixes:
None
Java SDK Version: 1.1.0 - Release Date: Nov 10, 2017
Deprecated includeSchema and added includeContent.
October 14, 2017
Oct 14, 2017
Docs & Tutorials
The URL of assets for stacks created after this release will include the file name, and the URL pattern will be /v3/assets/:api_key/:asset_uid/:token/:filename. To enforce the changes on images of existing RTE or Markdown fields, you need to re-upload the images and then re-publish the entry for the changes to reflect. For more information, contact us.
It will now be possible to get entries by URL even if the entries use default URL pattern. This change will be applicable only to the stacks created after this release.
Entries that have empty URL after the upgrade, the user will have to re-save the entry to get them autopolulated in the URL field.
Organization: Manage your users and stacks from one administrative panel.
Image Delivery API: Manipulate and optimize images with a new set of APIs for best delivery in your sites and apps.
Limit Multiple field instances: Set a maximum limit to the number of instances that can be created for the fields marked as ‘Multiple’.
New SDKs
We’re excited to announce four brand new SDKs: PHP, Ruby, Java, and React Native.
Enhancements, Improvements & Bug Fixes:
The URL of assets for stacks created after this release will include the file name, and the URL pattern will be /v3/assets/:api_key/:asset_uid/:token/:filename.
It is now possible to get entries by URL even if the entries use default URL pattern. This change is applicable only to the stacks created after this release.
Built.io Contentstack is upgrading its TLS version and is deprecating TLS 1.0 and 1.1. Support for the older versions will end on March 30, 2018.
What You Need To Know
After March 30, 2018, our CDN/API services will use the upgraded TLS version and will no longer support TLS 1.0 or TLS 1.1 over HTTPS on the api/cdn/images/assets.contentstack.io domain. We will only accept requests made by browsers or API clients that have TLS 1.2 or higher.
Why Are We Making This Change?
The TLS 1.2 protocol was defined in RFC 5246 in August 2008. It is an improvement over TLS 1.1 standard and is more secure. Among other items, it provides protection against cipher block chaining (CBC) attacks. One of the major reasons for this revision from TLS 1.1 to TLS 1.2 is to remove the protocol’s dependency on the MD5 and SHA-1 digest algorithms. TLS 1.2 supports the expansion of support for authenticated encryption ciphers with AES-GCM cipher suites that are not prone to these attacks.
What Do I Need To Do?
Most browsers have supported TLS 1.2 for at least the last few years. So, end users are unlikely to be affected by this change. The impact is likely only going to be felt by API users with very old libraries. A comprehensive list of support is available here: https://www.ssllabs.com/ssltest/clients.html
API Library Support
If you have code that connects with the Built.io Contentstack API, it is important to ensure that it will continue to work after March 30, 2018. While each language and library is different, we have identified some of the popular ones as a starting reference.
Here’s the list of languages that will need significant changes/upgrades in order to continue operating uninterrupted:
Java 6u45 / 7u45
.NET before 4.5 (does not support TLS 1.2)
.NET 4.5 (must be have setting changed to explicitly enable TLS 1.2)
OpenSSL 0.9.8
Most dynamic languages such as Ruby, PHP, and Python rely on the underlying operating system’s OpenSSL version. You can check it by running openssl version. 1.0.1 is the minimum requirement.
Browser Support
Most browsers support TLS 1.2, and have been supporting it for several years. The following are the browser versions (including lower versions) that DO NOT support TLS 1.2:
Google Chrome 29
Firefox 26
Internet Explorer 10
Safari 8
iOS 4
Android 4
Please let us know if you have any questions. You can reach us using the chat function in your Built.io Contentstack account or by email at support-contentstack@built.io.
Introducing asset versioning: Any new update to an existing asset will be saved as a new version of the asset, enabling you to rollback to or retrieve data from the earlier versions.
Give an identity to assets: We have added the ‘Title’ and ‘Description’ fields for assets so you can store your file in a organized manner and retrieve them with ease.
Enhancements and improvements
A product update page has been added in the Built.io Contentstack UI that will provide updates on all the newly introduced features and changes.
Updates in Assets Management:
Asset will now be displayed in List View (latest on top), instead of Grid View.
You can now search assets on a global scale irrespective of the folder you currently working on.
IOS SDK Version: 3.1.1 - Release Date: Jun 24, 2017
Jun 24, 2017
SDKs and tools
API deprecation:
Entry
removed property ‘publishDetails’
Asset
removed property ‘publishDetails:’
Android SDK Version: 3.1.2 - Release Date: June 24, 2017
Jun 24, 2017
SDKs and tools
New Features:
None
API Modifications:
None
API Deprecations:
Asset
Removed method - getPublishDetails()
Entry
Removed method - getPublishDetails()
Bug Fixes:
None
June 24, 2017
Jun 24, 2017
Docs & Tutorials
1. Change in Response of GET requests of Entries and Assets
The 'publish_details' key that was available in the response of 'Get Entry', 'Get Entries', 'Get Asset' and 'Get Assets' API requests will be no longer returned by default. To include it in the response, use the 'include_publish_details' parameter.
Webhook: All entry relevant webhook channel response
2. Change in response of GET requests of Entries and Assets for specific environment(s)
The 'publish_details' response key now contains the details of only the environment(s) specified in the 'environment' parameter, and not of all the environments.
The format of the 'publish_details' response key has been changed from array to JSON object.
3. Default disposition value of Images API changed to inline
When an image URL is opened in a browser, it now renders the image in the browser, instead of downloading it (which was the case earlier).
4. Maximum pagination limit set to 100 records
All endpoints will return a maximum of 100 records (changed from 1000 earlier). The next batch of records can be retrieved by making the same request and changing the 'skip' parameter to 100 from 0.
Publish references in a click: When you publish an entry that has references to other unpublished (or draft) entries or assets (like images, a blog post author, or category), you will get an alert. This alert works as a reminder as well as tool to publish all the references in a single click.
API changes
We have made some changes to our APIs. However, these changes are applicable only for stacks that have been created after June 24, 2017.
The ‘publish_details’ key in the response of the GET requests of draft entries and assets has been made optional. To include it in the response, use the ‘include_publish_details’ parameter.
The ‘publish_details’ key in the response of GET requests of entries and assets of specific environment(s) now contains the details of only the environment(s) specified in the ‘environment’ parameter.
The image URL, when opened in the browser will render the image, instead of downloading it.
A single API request will return a maximum of 100 records (reduced from 1000 earlier). The next batch of records can be retrieved by using the ‘skip’ parameter.
UI changes
This release also includes some minor changes to the user interface.
On the entry page, clicking or hovering over a field will highlight the field.
The ‘Not Published’ filter option has been removed from the entries and assets list page.
The checkboxes for filter options on the entries and assets list page have been changed to radio buttons. Consequently, only one filter option can be selected at a time.
The ‘Mark as group title’ property has been added to the ‘Date’ and ‘Link’ fields.
Create and manage folders in Assets: Users will now be able to create folders for Assets. The folders can be renamed, deleted, and moved with ease. Also, you can create nested folders, i.e., folders within folders, too. Note: This feature is available for V3 stacks only.
Android SDK Version: 3.1.1 - Release Date: May 17, 2017
May 17, 2017
SDKs and tools
New Features:
None
API Modifications:
None
API Deprecation:
None
Bug Fixes:
Support added for TLSv1.2 for older android versions.
Galileo
Mar 17, 2017
Contentstack App
New validation properties for 'File' and 'Date' fields: New validation properties have been introduced for two of the existing fields: 'File' and 'Date'.
In the 'File' field, we have introduced File Type, that will let you specify the types of files that can be uploaded, and File Size, that will let you set validations on the size of an uploaded file. In the 'Date' field, we have introduced the 'Date Range' property that will allow you to set the range of dates that a user can select in a 'Date' field.
Field validation error message: You can now define and display custom validation error messages for single-line and multiline text fields if the regex validation that you have set fails.
Multiple stacks can be configured rather than a singleton Stack Object.
Bug fix:
Fixed the issue with the support for import attribute on the client side.
Foster
Jan 13, 2017
Contentstack App
Introducing two-factor authentication (2FA): We have introduced two-factor authentication in Built.io Contentstack. After logging into the account using their credentials, users will be prompted to verify the security code that they get on Authy app. It is an opt-in security feature, so users can enable/disable it at will.
IOS SDK Version: 3.1.0 - Release Date: Dec 19, 2016
The request/response format has been changed. The default value of 'unique' field under 'schema' has been changed. The position of ‘description’ and ‘singleton’ keys have been changed.
Version 3 (New)
Version 2
{
"content_types": [
{
“title”:”Page”,
‘uid”:”page”
...
"schema": [
{
"display_name": "Title",
"uid": "title",
"data_type": "text",
"field_metadata": {
"_default": true
},
"unique": false,
"mandatory": true,
"multiple": false
}],
"options": {
...
"singleton": false
},
"description": "Content_type Description"
}
}
{
"content_types": [
{
“title”:”Page”,
‘uid”:”page”
...
"schema": [
{
"display_name": "Title",
"uid": "title",
"data_type": "text",
"field_metadata": {
"_default": true
},
"unique": "global",
"mandatory": true,
"multiple": false
}],
"options": {
...
"description": "Content_type Description"
},
"singleton": false
}
}
Entry
The ‘_metdata’ key has been removed from the ‘entry’ response body, and all they keys ('locale', 'uid', and 'publish_details') that were under ‘_metadata’ are now available directly under the ‘entry’ key.
Version 3 (New)
Version 2
{
...
"entry": {
“title”:”example”,
“url”:”/example”,
"locale": "en-us",
"uid": "abcdefhgi123",
"publish_details": []
}
}
{
...
"entry": {
“title”:”example”,
“url”:”/example”
"_metadata": {
"locale": "en-us",
"uid": "abcdefghi12345",
"publish_details": []
},
}
Entry published/unpublished
The environment name is now mentioned instead of its UID. ‘locale’ and ‘version’ keys have been made independant. Finally, the ‘content_type’ key has been eliminated.
Version 3 (New)
Version 2
{
"entry": {
"locales": [
"en-us"
],
"environments": [
"development"
]
},
"locale": "en-us",
"version": 1
}
{
"entry": {
"content_type": {
“title”:”Page”,
“uid’:”page”
},
"entry": {
"locale": "en-us",
"version": "1"
},
"locale": [
"en-us"
],
"environment": [
"qwertyuiop123456"
]
}
}
Asset
The ‘_metadata’ object has been removed from the asset body, and the response data, ‘publish_details’, is now wrapped in the ‘asset’ object instead of the ‘upload’ object. The format of the 'url' key has been changed.
The asset details are now wrapped in the ‘asset’ object instead of the ‘entry’ object. The ‘entry’ and ‘action’ keys have been eliminated.
Version 3 (New)
Version 2
{
"asset": {
"locales": [
"en-us"
],
"environments": [
"development"
]
}
}
{
"entry": {
"locale": [
"en-us"
],
"environment": [
"1234567890abcdef"
],
"entry": {
“title”:”filename.jpg”,
“entry_uid”:”blt7b6c042533cdb1eb”
},
"action": "action"
}
}
Locales
The request/response format of the locale object has been changed from ‘locale_uid’ to ‘code’.
Version 3 (New)
Version 2
{
"locale": {
"code": "zh-cn"
}
}
{
"locale": {
"locale_uid": "zh-cn"
}
}
Environment
The ‘_metadata’ object removed from the environment response body and the ‘status’ key has been brought to the top level.
Version 3 (New)
Version 2
{
"environment": {
“uid”:”blt7b6c042533cdb1eb”,
“name”:”development”,
"status": “1”
},
}
{
"environment": {
“uid”:”blt7b6c042533cdb1eb”,
“name”:”development”,
"_metadata": {
"status": “1”
},
}
Publish Queue
The ‘form’ object has been replaced with ‘content_type’ and the ‘entry_uid’ key under the ‘entry’ object has been replaced with ‘uid’. The ‘_metadata’ object has been eliminated and all the keys (i.e., publish_details, user, roles, and cancelled_by) within it has become independent objects. The ‘status’ key has been included under the ‘publish_details’ object.
Version 3 (New)
Version 2
{
"queue": [
{
...
"content_type": {
"title": "Title",
"uid": "uid"
},
...
"publish_details": {
"status": 2,
"user": "sys_bltd0f5afe8abcd",
"roles": []
},
...
}
]
}
{
"queue": [
{
“uid”:”abcd123”
"form": {
“title”:”form title”,
“form_uid”:”uid”
},
...
"entry": {
“locale”:”en-us”,
“title”:”title of entry”
"entry_uid": "abcdefhgi1234567890"
},
...
"_metadata": {
"publish_details": [
{
"name": "server-name",
"status": "-1",
"message": ""
}
],
"user": "abcd1234567890",
"roles": []
},
...
}
]
}
Audit Logs
The ‘_metadata’ object has been renamed to ‘metadata’ from audit log body.
Version 3 (New)
Version 2
{
"logs": [{
...
“event_type”:”create”,
“module”:”entry”,
"metadata": {
"title": "Test",
"locale": {
"title": "English - United States" ,
"code": "en-us",
}
"content_type": {
"title": "Page",
"uid": "page",
}
}
}]
}
{
"logs": [{
...
“event_type”:”create”,
“module”:”entry”,
"_metadata": {
"title": "Test",
"locale": {
"title": "English - United States",
"uid": "en-us",
}
"content_type": {
"title": "Page",
"uid": "page",
}
}
}]
}
Roles
The ‘rights’ object has been renamed to ‘permission’ and the ‘locales’ object has been added.
Version 3 (New)
Version 2
{
“role”:{
“uid”:”abcd1323”
...
"permissions": {
"content_types": [{
"uid": "content_type_uid",
“name”:”content_type_name”,
"SYS_ACL": {
"sub_acl": {}
}
}],
"environments": [
{
"uid": "environment_uid",
"SYS_ACL": {
"sub_acl": {}
}
}
],
"locales": [
{
"uid": "locale_uid",
"SYS_ACL": {
"sub_acl": {}
} ...
} ]
}
}
}
}
{
“role”:{
“uid”:”abcd1323”
...
"rights": {
"content_types": [{
"uid": "content_type_uid",
“name”:”content_type_name”,
"SYS_ACL": {
"sub_acl": {}
}
}],
"environments": [
{
"uid": "environment_uid",
"SYS_ACL": {
"sub_acl": {}
}
}]
}
}
}
Webhook
Three new calls, ‘execution’, ‘logs’, and ‘retry’, have been incorporated in the new release.
Webhook Request
The ‘webhook’ request object has been modified to include ‘basic_auth’ and ‘custom_header’ subkeys. The ‘url’ key has been renamed to ‘target_url’ and is now included under the ‘destinations’ key. Finally, we have added the ‘retry_policy’ key which will enable the user to manually trigger a webhook.
Version 3 (New)
Version 2
{
"webhook": {
"name": "Test",
"destinations": [
{
"target_url": "http://example.com",
"http_basic_auth": "basic",
"http_basic_password": "test",
"custom_header": [
{
"header_name": "Custom-Header",
"value": "testing"
}]
}],
"channels": [
"content_types.entries.create"
],
"retry_policy": "manual"
}
}
{
"webhook": {
"name": "Test",
"url": "http://example.com",
"channels": [
"content_types.entries.create"
]
}
}
Webhook Trigger Response
The trigger response body has been modified. The changes are illustrated in the following examples: