For Developers
Exports and Renditions
A lot of work has been done around renditions so as to make the rendition concept the standard way to handle binary transformations of documents.
- Rendition definitions can now also be contributed through a class implementing the interface RenditionDefinitionProvider. When asked for the list of rendition definitions for a document, all matching RenditionDefinitionProviders are called to compute dynamic rendition definitions.
- RenditionDefinitions and RenditionDefinitionProviders can be filtered through standard filters.
- Transcoded videos are exposed as renditions (but not visible in the UI).
- Picture conversions are also exposed as renditions (but not visible in the UI).
- The default exports (XML export, ZIP Tree Export, ...) have been migrated to be exposed as standard renditions, thanks to the new ExportDocument operation.

Automation: Scripting and Major Renaming.
Automation Scripting
Automation scripting is a new platform service that allows to deploy at runtime new operations defined via a JavaScript script. Those scripts are executed serverside with Nashorn. In those scripts, developer has access to all automation operations. Scripts can be edited in Nuxeo Studio.
Global Renaming
We have renamed most of the operations so as to provide better readability. The label is now equal to the id of the operation in most of the cases. The following documentation lists renamed operations. Compatibility has been kept with aliases.
Workflow REST API
Endpoints have been added for controlling workflow engine remotely: start workflow instances, complete tasks, query opened tasks and much more. A sample JavaScript application has been implemented for demonstrating the use of this API. This application is also provided as Marketplace package.
Nuxeo JavaScript Client
Some improvements have been done to the JS client during this release:
- Added Document.copy and Document.move methods
- Added proxy and portal authentication to Node.js client
- Increased default timeout from 3000 to 30000 ms
- Fixed delete request
Note that the authentication configuration has changed, see the Migrating from 0.3.x part.
Elasticsearch
New Elasticsearch Admin API to Wait for Indexing Completion
The following documentation explains how to migrate code from VCS to DB using this new API.
Support Properties on Select Clause Using Elasticsearch
It is now possible to select scalar fields instead of documents from Elasticsearch API. Note that aggregate (COUNT, MAX, MIN, SUM, AVG) are not yet supported.
Visit the following documentation for more information.
Field Constraints, Extended fields and Validation
It is now possible to set field constraints and define references on the schema XSD definition. This validation is performed when submitting a document form.
Visit the "Field Constraints and Validation" documentation and the "How to Customize Document Validation" documentation for more information and the layout showcase for a small demo.
Plugable JSON Marshalling
Nuxeo provides a way to define reusable Marshallers. Each registered marshaller can be used and aggregated. Nuxeo provides built-in and reusable marshallers for many Nuxeo based objects. All marshallers can be used in a web context or in a server-side context (for example, JSON could be logged in audit or used with non HTTP connectors).
Visit the following documentation for more information.
Management of Document's Updates
The dirty flag of document's properties is now more accurate. A property is dirty only if its value has changed. When a document has version 1.0, a 1.0+ version is created while editing only if some property changed. The update date and the list of contributors are updated only if there were changes (Previously, simply saving the document caused the updates, even with identical values).
Dublincore's Extended Fields
"dc:creator", "dc:lastContributor" and "dc:contributors" are now defined as references to Nuxeo users. "dc:subjects", "dc:nature" and "dc:coverage" are now defined as references to the corresponding directories. This provides all benefits from the validation and from the pluggable JSON marshalling.
Blob Manager Service
Blob access in lower layers is now made through a new service, Blob Manager, that provides pluggable implementations. This can be used for fetching blobs from remote storage services, like Google Drive or One Drive, or for handling smarter storage policies.
File Upload Widget Has Been Made Extensible
The current JSF file upload widget (based on UIInputFile code) has been made pluggable in order to be able to create blobs not only based on an HTML file upload from the user's desktop but also based on other kinds of blob creation (for example using an existing file in Google Drive). See NXP-16551 for details on how to contribute an additional file picker.
ACL Related Queries
It is now possible to fetch documents depending on ACLs that are set on it thanks to a new NXQL system field: "ecm:acl". For instance: "SELECT * FROM Document WHERE ecm:acl/*/principal = 'bob'".
Transient Store
A new service `TransientStoreService` has been added to `nuxeo-core-cache`. The goal is to provide a way to handle storage of temporary objects and streams. `TransientStoreService` can be seen as a high level and cluster compliant interface on top of a 2 level Cache and Filesystem storage. This very first version was build to accommodate the requirements of asynchronous renditions, but we expect to have much more use cases soon.
Picture Document Type Evolutions
- The following documentation provides the new default contribution for binaries metadata extraction in the Nuxeo Platform. Main changes are that IPTC binary metadata are mapped to Dublin Core schema (source, copyrights (> dc:rights), legend (> dc:description)), as an exemple of what can be done configuring the metadata extractor.
- Exif mapping remains identical.
- The widget "summary_picture_iptc" has been removed from document Summary.
- Mistral engine is removed. Use the Binary Metadata feature to extract metadata with custom engine. (The default one is ExifTool since 7.1).
JDK 1.8+ is required (version 8u25 minimum)
Java 8 update 25+ is required for building Nuxeo and the constraint has been set as an enforcement in the root
Nuxeo POM `org.nuxeo:nuxeo-ecm`.
Some products like the Automation Client will still be compiled with Java 7 compliance (source and
target) for being usable in Java 7 runtime environments but Java 8 is still required to perform their build.
Deactivation of DoubleClickShield
The Double Click Shield prevents a form from being submitted twice. It is set by default on every action defined in the platform. In some use cases, in the case of a download for example, the DoubleClickShield does not allow another click on the action because the marker for request completion is still present. A new property "disableDoubleClickShield" has been introduced in the action contribution. By default, this property is defined to false.