Gentics Mesh Changelog

0.18.3 (25.04.2018)

REST: Add error response when updating a user node reference without specifying the project name.

REST: Fixed the root cause of an inconsistency which caused the deletion of referenced nodes when deleting a node.

0.18.2 (23.04.2018)

Database revision was updated due to OrientDB update. Thus only an offline upgrade can be performed when using clustered mode.
The generation of the search index document version has been reworked in order to increase index sync performance. A triggered index sync will thus re-sync all documents. Triggering the sync action is not required and can be executed at any time.

Backup/Restore: It is now no longer required to restart the server after a backup has been restored via the /api/v1/admin/graphdb/restore endpoint. #387

OrientDB: The included OrientDB version has been updated to version 2.2.34

Consistency: Additional consistency checks have been added.

Consistency: Various consistency issues have been fixed.

REST: Fixed various security related issues.

Core: Image data in binary fields will now only be processed/transformed if the binary is in a readable file format. The readable image file formats are png, jpg, bmp and gif.

Core: Added consistency checks for node versions.

Core: Deleting language versions of nodes will no longer create inconsistencies.

Core: Projects containing multiple releases can now be deleted without any error.

0.18.1 (13.04.2018)

Core: Added consistency check for node containers.

GraphQL: Using filtering with nodes without content does not throw an error anymore.

REST: Added missing hostname and ssl property handling for release creation requests.

REST: Creating a release with fixed UUID will now invoke the node migration.

Java REST Client: The eventbus() method now correctly sends authorization headers.

Java Rest Client: Missing methods to start schema/microschema migrations for a release have been added.

0.18.0 (06.04.2018)

GraphQL filtering

This version of Gentics Mesh introduces GraphQL filtering. A detailed description of this feature can be found in our Documentation.

Search: The /api/v1/search/reindex endpoint was replaced by /api/v1/search/sync.

Docs: The Contribution Guide has been added.

The /api/v1/search/sync endpoint can now be used to trigger the differential synchronization of search indices. The indices will no longer be dropped and re-populated. Instead only needed actions will be executed to sync the index with the Gentics Mesh data.

The /api/v1/search/clear endpoint has been added. It can be used to re-create all Elasticsearch indices which are managed by Gentics Mesh. Note that this operation does not invoke the index sync.

Docker: A new volume location for the data directory of the embedded elasticsearch has been added. You can now use the /elasticsearch/data folder to mount your elasticsearch data files. #348

REST: The /api/v1/search/status endpoint has been enhanced. The endpoint will now also return the current elasticsearch sync progress.

Logging: The logging verbosity has been further decreased.

REST: Fix ETag generation for nodes. Previously taking a node offline did not alter the ETag and this also lead to inconsistent status information being displayed in the Mesh UI #345

Java Rest Client: Fix webroot requests never returns when containing whitespaces.

GraphQL: Fixed language parameter in nodes query method was ignored in some cases. #365

REST: The /api/v1/microschemas endpoint will now correctly detect name conflicts during microschema creation.

0.17.3 (15.03.2018)

UI: Restrict nodes to certain schema if allow is set in node list fields.

0.17.2 (13.03.2018)

Docker: A new volume location for the config directory has been added. You can now use the /config folder to mount your configuration files.

Core: The Vert.x library has been downgraded to 3.5.0 due to a regression which could cause requests to not be handled by the HTTP Server.

0.17.1 (08.03.2018)

OrientDB: The included OrientDB version has been updated to version 2.2.33

Core: The core Vert.x library was updated to version 3.5.1

Config: It is now possible to configure the elasticsearch start-up timeout via the search.startupTimeout field in the mesh.yml or via the MESH_ELASTICSEARCH_STARTUP_TIMEOUT environment variable.

Search: The reindex endpoint will now execute the reindex operation asynchronously.

Search: Two new reindex specific events have been added:,

REST: The GET /api/v1/search/status endpoint response has been updated. The reindexRunning flag has been added.

Config: Fixed a bug which prevented optional boolean environment variables (e.g. MESH_HTTP_CORS_ENABLE_ENV) from being handled correctly.

Core: It is now possible to change the listType of a list field in a schema via the Rest-API.

Core: The server will now shutdown if an error has been detected during start-up.

REST: Fixed an error which led to inconsistent properties being shown in the job endpoint response.

Search: When calling reindex via the POST /api/v1/search/reindex endpoint the reindexing stopped after a certain amount of time because of a timeout in the database transaction. This has been fixed now.

REST: In some cases parallel file uploads of multiple images could cause the upload process to never finish. This has been fixed now.

0.17.0 (22.02.2018)

Search: The raw search endpoints now wraps a multisearch request. The endpoint response will now include the elasticsearch responses array. The query stays the same.

Demo: The demo application was updated to use Angular 5.

Core: Gentics Mesh can now be downgraded if the database revision matches the needed revision of Gentics Mesh.

Clustering: Gentics Mesh is now able to form cluster between different server versions. A database revision hash will now be used to determine which versions of Gentics Mesh can form a cluster. Only instances with the same database revision hash are allowed to form a cluster. The current revision hash info is included in the /api/v1 endpoint response.

Various settings can now be overridden via environment variables. This is useful when dealing with docker based deployments.

Elasticsearch: Search requests failed on systems with many schemas. #303

Elasticsearch: Fixed handling of search.url settings which contained a https URL.

Image: The image resizer returned the original image if no fpx,fpy were present for a focal point image resize request. #272

Image: The focal point resize returned a slightly skewed image when using the fpz zoom factor. #272

Events: The mesh.node.deleted event was not handled correctly. This has been fixed now.

Core: It was possible to upload binaries with empty filenames. This has been fixed now: it is enforced that a binary upload has a filename and content type which are not empty. #299

Core: If the keystore path was only a file name without a directory a NPE was thrown on start-up. This has been fixed now.

Core: After resetting a job via rest (admin/jobs/::uuid::/error) the job was not processed again. This has been fixed now. #295

Core: When the migration for multiple nodes failed during a schema migration the error details could become very long. This has been fixed now. Error details in the job list will be truncated after a certain amount of characters.

Core: Image transformation calls previously did not copy the image properties of the binary field. Instead the filename and other properties were not copied to the new binary image field. This has been fixed now.

REST: It is now possible use custom HttpClientOptions upon instantiation of a MeshRestHttpClient.

REST: The node response ETag now incorporates the uuids of all node references.

REST: The /api/v1/auth/logout endpoint will now correctly delete the mesh.token cookie. #282

0.16.0 (07.02.2018)

Search: The contents of HTML and HTML list fields will now automatically be stripped of markup prior of indexing.
The mesh.yml search section has been updated. The search.url property replaces the search.hosts property.
  url: "http://localhost:9200"
  timeout: 8000
  startEmbedded: false

GraphQL: The underlying graphql-java library was updated to version 7.0.

REST: An error which prevented the /api/v1 info endpoint from returning version information has been fixed.

OrientDB: The included OrientDB Studio has been updated to version 2.2.32.

Config: It is now possible to configure the JVM arguments of the embedded Elasticsearch server via the search.embeddedArguments property in the mesh.yml file.

GraphQL: Schema fields can now be queried. Currently supported are name, label, required and type.

0.15.0 (31.01.2018)

The embedded Elasticsearch was removed and replaced by a connector to a dedicated Elasticsearch server. It is highly recommended to verify existing queries due to breaking changes between Elasticsearch version 2.4 and 6.1. Please also check the Elasticsearch changelog: Elasticsearch Changelog
Configuration: The mesh.yml format has been updated. Please remove the search section or replace it with the following settings.
  - hostname: "localhost"
    port: 9200
    protocol: "http"
  startEmbeddedES: true
The Elasticsearch update may affect custom mappings within your schemas. You may need to manually update your schemas.

Elasticsearch 6.1 compliant example for the commonly used raw field:

    "fields": {
        "raw": {
            "type": "keyword",
            "index": true
The unfilteredCount GraphQL paging property has been removed. You can now use the totalCount property instead.
Gentics Mesh will automatically extract and start an embedded Elasticsearch server into the elasticsearch folder. The old search index (e.g: data/searchIndex) can be removed.
The user which is used to run the process within the docker image has been changed. You may need to update your data volume ownership to uid/gid 1000.

REST: The UUID of the referenced binary data will now also be listed for binary fields. Fields which share the same binary data will also share the same binary UUID.

GraphQL: It is now possible to read the focal point information and binary uuid of binary fields.

Docs: The Elasticsearch integration documentation has been enhanced.

Search: The overall search performance has been increased.

Logging: The logging verbosity has been further decreased.

0.14.2 (30.01.2018)

Elasticsearch: Fixed a bug which caused an internal error when granting multiple permissions to the same element at the same time.

GraphQL: The linkType parameter for string and html fields now causes the the link to be rendered in the language of the queried node if no language information is given.

0.14.1 (19.01.2018)

Core: Fixed a deadlock situation which could occur when handling more than 20 image resize requests in parallel. Image resize operations will now utilize a dedicated thread pool.

Core: Fixed a bug which caused permission inconsistencies when deleting a group from the system.

REST: Added support to automatically handle the Expect: 100-Continue header. We however recommend to only use this header for upload requests. Using this header will otherwise reduce the response times of your requests. Note that PHP curl will add this header by default. You can read more about the header here.

0.14.0 (16.01.2018)

The image manipulation query parameters cropx, cropy, croph and cropw have been replaced by the rect parameter. The rect parameter contains the needed values rect=x,y,w,h.
The image manipulation query parameter width was renamed to w. The parameter height was renamed to h.
The binary transformation request request was updated. The crop parameters are now nested within the cropRect object.
It is now required to specify the crop mode when cropping an image. Possible crop modes are rect which will utilize the specified crop area or fp which will utilize the focal point information in order to crop the image.

Image: It is now possible to specify a focal point within the binary field of an image. This focal point can be used to automatically crop the image in a way so that the focused area is kept in the image. The focal point can also be manually specified when requesting an image. This will overrule any previously stored focal point information within the binary field.

UI: The admin UI has been updated to use the renamed image parameters.

0.13.3 (12.01.2018)

Core: Optimized concurrency when handling binary data streams (e.g: downloading, image resizing)

Core: Fixed some bugs which left file handles open and thus clogged the system. This could lead a lock-up of the system in some cases.

0.13.2 (11.01.2018)

Java Rest Client: It is now possible to retrieve the client version via MeshRestClient.getPlainVersion().

Core: The consistency checks have been enhanced.

Core: Fixed some bugs which left file handles open and thus clogged the system. This could lead a lock-up of the system in some cases.

0.13.1 (05.01.2018)

Core: A Vert.x bug has been patched which caused HTTP requests to fail which had the "Connection: close" header set.

REST: A concurrency issue has been addressed which only happens when deleting and creating projects in fast succession.

Core: A potential concurrency issue has been fixed when handling request parameters.

0.13.0 (02.01.2018)

The Java REST client was updated to use RxJava 2.

Core: The internal RxJava code has been migrated to version 2.

0.12.0 (21.12.2017)

The search.httpEnabled option within the mesh.yml has been removed. The embedded elasticsearch API can no longer be directly accessed via HTTP. The existing endpoint /api/v1/:projectName/search is unaffected by this change.

Core: The core Vert.x library was updated to version 3.5.0

Core: The internal server routing system has been overhauled.

0.11.8 (18.12.2017)

Image: Fixed a bug which left file handles open and thus clogged the system. This could lead a lock-up of the system in some cases.

0.11.7 (17.12.2017)

UI: Fixed an issue where the name in the explorer content list in always shown in English. #23

Storage: Binary field deletion has been made more resilient and will no longer fail if the referenced binary data is not stored within used binary storage. #235

REST: The hostname and ssl properties have been added to the project create request. This information will be directly added to the initial release of the project. The properties can thus be changed by updating the project.

REST: The link resolver mechanism was enhanced to also consider the hostname and ssl flag of the release of the node which is linked. The link resolver will make use of these properties as soon as mesh links point to nodes of foreign projects. You can read more on this topic in the cross domain link section of our documentation.

0.11.6 (15.12.2017)

Search: The automatic recreation of the search index will now also occur if an empty search index folder was found.

UI: Nodes are now always reloaded when the edit button is clicked in the explorer content list. #16

UI: Fixed an issue that was causing a click on a node in the explorer list to open it like a container, even if it is not a container.

UI: Dropdowns for required string fields with the allowed attribute now properly require a value to be set in order to save the node.

UI: Fixed a issue where contents of a micronode were not validated before saving a node.

Core: Reduce the memory load of the ChangeNumberStringsToNumber-changelog by reducing the size of a single transactions.

Image: Image handling has been optimized. Previously resizing larger images could temporarily lock up the http server.

0.11.5 (14.12.2017)

UI: Add multi binary upload dialogue. Users can now upload multiple files at once by clicking the button next to the create node button.

UI: Binary fields can now be used as display fields. The filename is used as the display name for the node. #11

UI: It is now possible to specify the URL to the front end of a system. This allows users to quickly go to the page that represents the node in the system. See the default mesh-ui-config.js or the online documentation for more details. #14

Upload: The upload handling code has been refactored in order to process the uploaded data in-parallel.

Storage: The binary storage mechanism has been overhauled in preparation for Amazon S3 / Minio support. The data within the local binary storage folder and all binary fields will automatically be migrated. The created binaryFilesMigrationBackup folder must be manually removed once the migration has finished.

Core: The OrientDB graph database was updated to version 2.2.31

Core: Binary fields can now be chosen as display fields. The value of the display field is the filename of the binary.

REST: The display name has been added to the node response. It can be found in the key displayName.

GraphQL: The display name can now be fetched from a node via the displayName field.

UI: Nodes in the "Select Node…​" dialogue are now sorted by their display name. #15

UI: The "Select Node…​" dialogue now remembers the last position it was opened. #12

UI: The dropdown for list types in the schema editor now only shows valid list types.

UI: Fixed a bug that causes image preview to disappear after saving a node. #18

Core: A bug has been fixed which prevented node updates. The issue occurred once a node was updated from which a language variant was previously deleted.

Search: The search index will now automatically be recreated if the search index folder could not be found.

Core: The values of number-fields where stored as strings in the database which caused issues when converting numbers to and from string. This has been fixed: the values of number-fields will now be stored as numbers.

Schema: The schema deletion process will now also include all schema versions, referenced changes and jobs.

Clustering: A NPE which could occur during initial setup of a clustered instance has been fixed.

0.11.4 (07.12.2017)

Core: Fixed various errors which could occur when loading a node for which the editor or creator user has been previously deleted.

0.11.3 (30.11.2017)

Core: Various performance enhancements have been made to increase the concurrency handling and to lower the request times.

Websocket: It is now possible to register to a larger set of internal events. A full list of all events is documented within the eventbus bridge / websocket documentation.

Config: The eventloop and worker pool size can now be configured within the mesh.yml file.

Logging: The logging verbosity was reduced.

GraphQL: It is now possible to load a list of all languages of a node via the added .languages field.

GraphQL: The underlying graphql-java library was updated to version 6.0

Core: Fixed a bug which prevented uploading multiple binaries to the same node.

UI: Fixed error message handling for failed save requests.

UI: Fixed the dropdown positioning in IE within the node edit area.

Memory: The memory usage for micronode migrations has been improved.

0.11.2 (21.11.2017)

Core: The OrientDB graph database was updated to version 2.2.30

Core: Fixed a bug which caused unusual high CPU usage. #201

0.11.1 (13.11.2017)

Elasticsearch: Add support for inline queries.

Elasticsearch: In some cases the connection to Elasticsearch was not directly ready during start up. This caused various issues. A start-up check has been added in order to prevent this.

Schema: A bug within the schema update mechanism which removed the urlField property value has been fixed.

Elasticsearch: A deadlock situation which could occur during schema validation was fixed.

0.11.0 (11.11.2017)

GraphQL: The root field releases has been removed. The root field release now takes no parameters and loads the active release.
Elasticsearch: Search queries will now automatically be wrapped in a boolean query in order to check permissions much more efficiently.
The schema field property searchIndex / searchIndex.addRaw has been removed. The property was replaced by a mapping definition which can be added to each field. All schemas will automatically be migrated to the new format. Please keep in mind to also update any existing schema files which you may have stored externally.
  "name": "dummySchema",
  "displayField": "name",
  "fields": [
      "name": "name",
      "label": "Name",
      "required": true,
      "type": "string",
      "elasticsearch": {
        "raw": {
          "index": "not_analyzed",
          "type": "string"

Schema: It is now possible to configure index settings and custom search index field mappings within the schema.

The index settings can be used to define new analyzers and tokenizer or other additional index settings. The specified settings will automatically be merged with a default set of settings.

Once a new analyzer has been defined it can be referenced by custom field mappings which can now be added to each field. The specified field mapping will be added to the generated fields property of the mapping. You can read more about this topic in the fields mapping documentation of Elasticsearch.

  "name": "dummySchema",
  "displayField": "name",
  "elasticsearch": {
    "settings": {
      "number_of_shards" :   1,
      "number_of_replicas" : 0
    "analysis" : {
      "analyzer" : {
        "suggest" : {
          "tokenizer" : "mesh_default_ngram_tokenizer",
          "char_filter" : [ "html_strip" ],
          "filter" : [ "lowercase" ]
  "fields": [
      "name": "name",
      "label": "Name",
      "required": true,
      "type": "string",
      "elasticsearch": {
        "suggest": {
          "analyzer": "suggest",
          "type": "string"

You can use the POST /api/v1/utilities/validateSchema endpoint to validate and inspect the effective index configuration.

REST: The POST /api/v1/utilities/validateSchema and POST /api/v1/utilities/validateMicroschema endpoints can now be used to validate a schema/microschema JSON without actually storing it. The validation response will also contain the generated Elasticsearch index configuration.

GraphQL: Nodes can now be loaded in the context of a schema. This will return all nodes which use the schema.

Search: The /api/v1/rawSearch/.. and /api/v1/:projectName/rawSearch/.. endpoints have been added. These can be used to invoke search requests which will return the raw elasticsearch response JSON. The needed indices will automatically be selected in order to only return the type specific documents. Read permissions on the document will also be automatically checked.

Search: Error information for failed Elasticsearch queries will now be added to the response.

Webroot: The schema property urlFields can now used to specify fields which contain webroot paths. The webroot endpoint in turn will first try to find a node which specified the requested path. If no path could be found using the urlField values the regular segment path will be used to locate the node. This feature can be used to set custom urls or short urls for your nodes.

Performance: Optimized binary download memory usage.

REST: Fixed a bug which prevented pages with more then 2000 items from being loaded.

0.10.4 (10.10.2017)

REST: The availableLanguages field now also contains the publish information of the languages of a node.

REST: Fixed a bug in the permission system. Permissions on microschemas will now correctly be updated when applying permission recursively on projects.

REST: ETags will now be updated if the permission on the element changes.

Core: Various bugs within the schema / microschema migration code have been addressed and fixed.

Core: The search index handling has been updated. A differential synchronization will be run to update the new search index and thus the old index data can still be used.

Performance: Removing permissions has been optimized.

UI: A new action was added to the node action context menu. It is now possible to unpublish nodes.

UI: The Mesh UI was updated.

Config: It is now possible to configure the host to which the Gentics Mesh http server should bind to via the setting in the mesh.yml file. Default is still (all interfaces).

REST: The /api/v1/:projectName/releases/:releaseUuid/migrateSchemas and /api/v1/:projectName/releases/:releaseUuid/migrateMicroschemas endpoints have been changed from GET to POST.

REST: The /api/v1/admin/reindex and /api/v1/admin/createMappings endpoints have been changed from GET to POST.

CLI: It is now possible to reset the admin password using the -resetAdminPassword command line argument.

GraphQL: The underlying graphql-java library was updated to version 5.0

Core: The OrientDB graph database was updated to version 2.2.29

0.10.3 (18.09.2017)

Logging: The logback.xml default logging configuration file will now be placed in the config folder. The file can be used to customize the logging configuration.

Configuration: It is now possible to set custom properties within the elasticsearch setting.

Core: The OrientDB graph database was updated to version 2.2.27

REST: It is now possible to set and read permissions using paths which contain the project name. Example: GET /api/v1/roles/:roleUuid/permissions/:projectName/…​

Search: A potential race condition has been fixed. This condition previously caused the elasticsearch to no longer accept any changes.

Performance: The REST API performance has been improved by optimizing the JSON generation process. #141

0.10.2 (14.09.2017)

Documentation: The new security and performance sections have been added to our documentation.

The Webroot-Response-Type header can now be used to differentiate between a webroot binary and node responses. The values of this header can either be binary or node.

The /api/v1/admin/status/migrations endpoint was removed. The status of a migration job can now be obtained via the /api/v1/admin/jobs endpoint. Successfully executed jobs will no longer be removed from the job list.

The /api/v1/:projectName/release/:releaseUuid/schemas and /api/v1/:projectName/release/:releaseUuid/microschemas endpoint has been reworked. The response format has been updated. The status and uuid of the job which has been invoked when the migration was started will now also be included in this response.

Java REST Client: A potential threading issue within the Java REST Client has been fixed. Vert.x http clients will no longer be shared across multiple threads.

Memory: Reduce memory footprint of microschema migrations. #135

Fixed handling "required" and "allow" properties of schema fields when adding fields to schemas.

0.10.1 (08.09.2017)

Clustering: Added documentation and support for cluster configurations which use a list of static IP adresses instead of multicast discovery.

Node Migration: The node migration performance has been increased.

REST: Added new endpoints /api/v1/admin/jobs to list and check queued migration jobs. The new endpoints are described in the feature documentation.

Search: The raw field will no longer be added by default to the search index. Instead it can be added using the new searchIndex.addRaw flag within the schema field. Please note that the raw field value in the search index will be automatically truncated to a size of 32KB. Otherwise the value can’t be added to search index.

Migration: Interrupted migrations will now automatically be started again after the server has been started. Failed migration jobs can be purged or reset via the /api/v1/admin/jobs endpoint.

Migration: Migrations will no longer fail if a required field was added. The field will be created and no value will be set. Custom migration scripts can still be used to add a custom default value during migration.

    "name" : "name",
    "label" : "Name",
    "required" : true,
    "type" : "string",
    "searchIndex": {
        "addRaw": true

Java REST Client: Various missing request parameter implementations have been added to the mesh-rest-client module.

Node Migration: A bug has been fixed which prevented node migrations with more then 5000 elements from completing.

GraphQL: Updated GraphiQL browser to latest version to fix various issues when using aliases.

0.10.0 (04.09.2017)

Manual Change: Configuration changes. For already existing mesh.yml files, the nodeName setting has to be added. Choose any name for the mesh instance.
Manual Change: Configuration changes. The clusterMode setting has been deprecated in favour of the new cluster configuration. This setting must be removed from the mesh.yml file.

Manual Change: The configuration files mesh.yml, keystore.jceks must be moved to a subfolder config folder.

mkdir config
mv mesh.yml config
mv keystore.jceks config

Manual Change: The graph database folder needs to be moved. Please create the storage subfolder and move the existing data into that folder.

mkdir -p data/graphdb/storage
mv data/graphdb/* data/graphdb/storage/

Clustering: This release introduces the master-master clustering support. You can read more about clustering and the configuration in the clustering documentation.

Core: The OrientDB graph database was updated to version 2.2.26

REST: The /api/v1/admin/consistency/check endpoint has been added. The endpoint can be used to verify the database integrity.

Core: Fixed missing OrientDB roles and users for some older graph databases. Some graph databases did not create the needed OrientDB user and roles. These roles and users are needed for the OrientDB server and are different from Gentics Mesh users and roles.

REST: Invalid date strings were not correctly handled. An error will now be thrown if a date string can’t be parsed.

REST: The delete handling has been updated. It is now possible to specify the ?recursive=true parameter to recursively delete nodes. By default ?recursive=false will be used. Deleting a node which contains children will thus cause an error. The behaviour of node language deletion has been updated as well. Deleting the last language of a node will also remove this node. This removal will again fail if no ?recursive=true query parameter has been added.

0.9.28 (28.08.2017)

Core: The permission check system has been updated. The elements which have only readPublished permission can now also be read if the user has only read permission. The read permission automatically also grants readPublished.

Java REST Client: The classes NodeResponse and MicronodeField now correctly implement the interface FieldContainer.

REST: The endpoint /api/v1/{projectName}/nodes/{nodeUuid}/binary/{fieldName} did not correctly handle the read published nodes permission. This has been fixed now. #111

0.9.27 (23.08.2017)

GraphQL: It is now possible to retrieve the unfiltered result count. This count is directly loaded from the search provider and may not match up with the exact filtered count. The advantage of this value is that it can be retrieved very fast.

Java REST Client: The client now also supports encrypted connections.

REST: Invalid date were not correctly handled. An error will now be thrown if a date string can’t be parsed.

GraphQL: Various errors which occurred when loading a schema of a node via GraphQL have been fixed now.

0.9.26 (10.08.2017)

UI: Added CORS support. Previously CORS was not supported by the UI.

REST API: Added a missing allowed CORS headers which were needed to use the Gentics Mesh UI in a CORS environment.

UI: Fixed translation action. Previously a error prevented translations from being executed.

UI: Fixed image handling for binary fields. Previously only the default language image was displayed in the edit view. This has been fixed.

0.9.25 (09.08.2017)

Demo: The demo dump extraction will now also work if an empty data exists. This is useful when providing a docker mount for the demo data.

GraphQL: The paging performance has been improved.

Core: Various missing permission checks have been added.

Core: A bug in the schema changes apply code has been fixed. The bug previously prevented schema changes from being applied.

0.9.24 (03.08.2017)

REST API: Added idempotency checks for various endpoints to prevent execution of superfluous operations. (E.g: Assign role to group, Assign schema to project)

Core: Fixed a bug which prevented micronodes from being transformed. SUP-4751

0.9.23 (02.08.2017)

Rest-Client: It is now possible to configure the base uri for the rest client.

GraphQL: It is now possible to get the reference of all projects from schemas and microschemas.

UI: Date fields now work with ISO 8601 strings rather than Unix timestamps.

UI: Fixed bugs with lists of microschemas. (SUP-4712)

UI: Fixed mouse clicks not working in lists in FF and (partially) in IE/Edge. (SUP-4717)

Core: The reindex performance has been increased and additional log output will be provided during operations actions.

0.9.22 (28.07.2017)

REST API: It is now possible to create nodes, users, groups, roles, releases and projects using a provided uuid.

Versioning: A publish error which was caused due to a bug in the node language deletion code has been fixed.

0.9.21 (26.07.2017)

Core: The OrientDB graph database was updated to version 2.2.24

Core: Fixed handling of ISO8601 dates which did not contain UTC flag or time offset value. Such dates could previously not be stored. Note that ISO8601 UTC dates will always be returned.

GraphQL: URL handling of the GraphQL browser has been improved. Previously very long queries lead to very long query parameters which could not be handled correctly. The query browser will now use the anchor part of the URL to store the query.

Migration: The error handling within the schema migration code has been improved.

GraphQL: It is now possible to load the schema version of a node using the schema field.

Versioning: Older Gentics Mesh instances (>0.8.x) were lacking some draft information. This information has been added now.

0.9.20 (21.07.2017)

License: The license was changed to Apache License 2.0

Schema Versions: The schema version field type was changed from number to string. It is now also possible to load schema and microschema versions using the ?version query parameter.

Search: The error reporting for failing queries has been improved.

Search: The total page count value has been fixed for queries which were using ?perPage=0.

0.9.19 (07.07.2017)

UI: Fixed adding node to node list.

Docs: Various endpoints were not included in the generated RAML. This has been fixed now.

0.9.18 (30.06.2017)

Demo: Fixed demo data uuids.

Core: The OrientDB graph database was updated to version 2.2.22

Core: The Ferma OGM library was updated to version 2.2.2

0.9.17 (21.06.2017)

UI: A bug which prevented micronodes which contained empty node field from being saved was fixed.

Core: Issues within the error reporting mechanism have been fixed.

Server: The Mesh UI was added to the mesh-server jar.

Core: The internal transaction handling has been refactored.

Core: The Vert.x core dependency was updated to version 3.4.2

API: The version field of node responses and publish status responses are now strings instead of objects containing the version number.

0.9.16 (19.06.2017)

Documentation: Huge documentation update.

0.9.15 (19.06.2017)

GraphQL: Fixed loading tags for nodes.

0.9.14 (09.06.2017)

WebRoot: Bugs within the permission handling have been fixed. It is now possible to load nodes using only the read_published permission. This permission was previously ignored.

GraphQL: An introspection bug which prevented graphiql browser auto completion from working correctly has been fixed. The bug did not occur on systems which already used microschemas.

0.9.13 (08.06.2017)

UI: The UI was updated. An file upload related bug was fixed.

UI: Schema & Microschema description is no longer a required field.

0.9.12 (08.06.2017)

GraphQL: Fixed handling of node lists within micronodes.

GraphQL: Fixed Micronode type not found error.

GraphQL: Fixed GraphQL API for system which do not contain any microschemas.

GraphQL: Fixed permission handling and filtering when dealing with node children.

0.9.11 (07.06.2017)

GraphQL: The GraphQL library was updated. Various GraphQL related issues have been fixed.

0.9.10 (29.05.2017)

Schemas: The default content and folder schemas have been updated. The fileName and folderName fields have been renamed to slug. The name field was removed from the content schema and a teaser field has been added. These changes are optional and thus not automatically applied to existing installations.

Demo: The folderName and fileName fields have been renamed to slug. This change only affects new demo installations.

GraphQL: The language fallback handling was overhauled. The default language will no longer be automatically be append to the list of fallback languages. This means that loading nodes will only return nodes in those languages which have been specified by the lang argument.

GraphQL: The path handling for nodes within node lists has been fixed. Previously it was not possible to retrieve the path and various other fields for those nodes.

0.9.9 (19.05.2017)

Core: The OrientDB graph database was updated to version 2.2.20.

API: The following endpoints were moved:

  • /api/v1/admin/backup/api/v1/admin/graphdb/backup

  • /api/v1/admin/export/api/v1/admin/graphdb/export

  • /api/v1/admin/import/api/v1/admin/graphdb/import

  • /api/v1/admin/restore/api/v1/admin/graphdb/restore

Core: Added /api/v1/:projectName/releases/:releaseUuid/migrateMicroschemas endpoint which can be used to resume previously unfinished micronode migrations.

Performance: The startup performance has been increased when dealing with huge datasets.

Auth: The anonymous authentication mechanism can now also be disabled by setting the Anonymous-Authentication: disable header. This is useful for client applications which don’t need or want anonymous authentication. The Gentics Mesh REST client has been enhanced accordingly.

Core: The read performance of node lists has been improved.

Core: The write performance of nodes has been improved.

Demo: The demo data have been updated. The a folderName and fileName field has been added to the demo schemas.

GraphQL: Added micronode list handling. Previously it was not possible to handle micronode list fields.

Core: Fixed NPE that was thrown when loading releases on older systems.

Core: An upgrade error has been fixed which was caused by an invalid microschema JSON format error.

UI: You will no longer be automatically logged in as anonymous user once your session expires.

Core: The language fallback handling for node breadcrumbs has been fixed. Previously the default language was not automatically added to the handled languages.

0.9.8 (08.05.2017)

UI: Microschemas can now be assigned to projects.

UI: Descriptions can now be assigned to schemas & microschemas.

Core: A bug was fixed which prevented the node response project property to be populated.

Core: The redundant isContainer field was removed from the node response.

Core: Various bugs for node migrations have been fixed.

Core: The allow property for micronode schema fields will now correctly be handled.

Core: Microschemas will now be assigned to projects during a schema update. This only applies for microschemas which are referenced by the schema (e.g. via a micronode field).

Core: The OrientDB graph database was updated to version 2.2.19.

0.9.7 (28.04.2017)

GraphQL: The nested content and contents fields have been removed. The properties of those fields have been merged with the node / nodes field.

GraphQL: The field names for paged resultset meta data have been updated to better match up with the REST API fields.

GraphQL: A language can now be specified when loading node reference fields using the lang argument.

GraphQL: It is now possible to resolve links within loaded fields using the linkType field argument.

Auth: Support for anonymous access has been added to mesh. Requests which do not provide a mesh.token will automatically try to use the anonymous user. This user is identified by username and the thus no anonymous access support is provided if the user can’t be located.

GraphQL: It is now possible to retrieve the path for a content using the path field. The Node.languagePaths has been removed in favour of this new field.

Auth: It is now possible to issue API tokens via the GET /api/v1/users/:userUuid/token endpoint. API tokens do not expire and work in conjunction with the regular JWT authentication mechanism. These tokens should only be used when SSL is enabled. The DELETE /api/v1/users/:userUuid/token endpoint can be used to revoke the issued API token. Only one API token is supported for one user. Generating a new API token will invalidate the previously issued token.

GraphQL: An error was fixed which occurred when loading a node using a bogus uuid.

Auth: An error which caused the keystore loading process to fail was fixed.

0.9.6 (14.04.2017)

It is now possible to resume previously aborted schema migrations via the /api/v1/:projectName/releases/:releaseUuid/migrateSchemas endpoint.

Auth: The Java keystore file will now automatically be created if none could be found. The keystore password will be taken from the mesh.yml file or randomly generated and stored in the config.

Core: Migration errors will no longer cause a migration to be aborted. The migration will continue and log the errors. An incomplete migration can be resumed later on.

Core: Fixed node migration search index handling. Previous migrations did not correctly update the index. A automatic reindex will be invoked during startup.

0.9.5 (13.04.2017)

Core: The schema check for duplicate field labels has been removed. The check previously caused schema updates to fail.

0.9.4 (13.04.2017)

UI: Fixed project creation.

UI: Fixed error when attempting to translate a node.

UI: Fixed incorrect search query.

UI: Display error when attempting to publish a node with an unpublished ancestor

JWT: The signatureSecret property within the Gentics Mesh configuration has been renamed to keystorePassword.

JWT: It is now possible to configure the algorithm which is used to sign the JWT tokens.

Java: The Java model classes have been updated to provide fluent API’s.

Demo: It is now possible to access elasticsearch head UI directly from mesh via http://localhost:8080/elastichead - The UI will only be provided if the elasticsearch http ports are enabled. Only enable this for development since mesh will not protect the Elasticsearch HTTP server.

Core: Downgrade and upgrade checks have been added. It is no longer possible to run Gentics Mesh using a dump which contains data which was touched by a newer mesh version. Upgrading a snapshot version of Gentics Mesh to a release version can be performed under advisement.

0.9.3 (10.04.2017)

UI: A bug which prevented assigning created schemas to projects was fixed.

A bug which could lead to concurrent request failing was fixed.

Error handling: A much more verbose error will be returned when creating a schema which lacks the type field for certain schema fields.

GraphQL: A bug which lead to incorrect column values for GraphQL errors was fixed.

The OrientDB dependency was updated to version 2.2.18.

GraphQL: The container/s field was renamed to content/s to ease usage.

GraphQL: It is no longer possible to resolve nodes using the provided webroot path. The path argument and the resolving was moved to the content field.

0.9.2 (04.04.2017)

The /api/v1/admin/backup, /api/v1/admin/restore, /api/v1/admin/import, /api/v1/admin/export endpoints were added to the REST API. These endpoint allow the creation of backup dumps.

GraphQL: It is now possible to execute elasticsearch queries. within the GraphQL query.

GraphQL: It is now possible to resolve a partial web root path using the child field of a node.

GraphQL: It is now possible to resolve information about the running mesh instance via GraphQL.

Various issues with the linkType argument within the GraphQL API have been fixed.

Fixed NPE that occurred when loading a container for a language which did not exist.

0.9.1 (28.03.2017)

The Access-Control-Allow-Credentials: true Header will now be returned when CORS support is enabled.

A NullPointerException within the Java Rest Client was fixed.

The AngularJS Demo was updated.

0.9.0 (27.03.2017)

Gentics Mesh now supports GraphQL.

The expandAll and expand parameters will be removed within an upcoming release of Gentics Mesh. We highly recommend to use the GraphQL endpoint instead if you want to fetch deeply nested data.

Schema name validation - Schema and microschema names must only contain letter, number or underscore characters.

Node Tag Endpoint

The endpoint /api/v1/:projectName/nodes/:nodeUuid/tags was enhanced. It is now possible to post a list of tag references which will be applied to the node. Tags which are not part of the list will removed from the node. Tags which do not exist will be created. Please note that tag families will not automatically be created.

The tags field within the node response was updated accordingly.

0.8.3 (24.02.2017)

Tags are now also indexed in the node document in the field tagFamilies, grouped by tag families.

0.8.2 (23.02.2017)

The trigram filter configuration was updated so that all characters will be used to tokenize the content.

0.8.1 (21.02.2017)

A bug which prevented index creation in certain cases was fixed.

0.8.0 (10.02.2017)

Names, string fields and html field values will now be indexed using the trigram analyzer.

Binary Endpoint Overhaul

The field API endpoint /api/v1/:projectName/nodes/:nodeUuid/languages/:language/fields/:field was removed and replaced by the binary /api/v1/:projectName/nodes/:nodeUuid/binary endpoint. The binary endpoints are now also versioning aware and handle conflict detection. It is thus required to add the language and version form data parameters to the upload request.

Transform Endpoint Overhaul

The endpoint /api/v1/:projectName/nodes/:nodeUuid/languages/:language/fields/:field/transform was renamed to /api/v1/:projectName/nodes/:nodeUuid/binaryTransform. The transform endpoint will now return the updated node.

The no longer needed schemaReference property was removed from node update requests.

The rootNodeUuid property within node project response was changed.

Old structure:

  "rootNodeUuid" : "cd5ac8943a4448ee9ac8943a44a8ee25",

New structure:

  "rootNode": {
    "uuid" : "cd5ac8943a4448ee9ac8943a44a8ee25",
— Example

The parentNodeUuid property within node create requests was changed.

Old structure:

  "parentNodeUuid" : "cd5ac8943a4448ee9ac8943a44a8ee25",

New structure:

  "parentNode": {
    "uuid" : "cd5ac8943a4448ee9ac8943a44a8ee25",
— Example

JSON Schema information have been added to the RAML API documentation. This information can now be used to generate REST model types for various programming languages.

The navigation response JSON was restructured. The root element was removed.

Old structure:

  "root" : {
    "uuid" : "cd5ac8943a4448ee9ac8943a44a8ee25",
    "node" : {…},
    "children" : […]

New structure:

  "uuid" : "cd5ac8943a4448ee9ac8943a44a8ee25",
  "node" : {…},
  "children" : […]
— Example

0.7.0 (19.01.2017)

Content releases support

This version of Gentics Mesh introduces Content Releases. A detailed description of this feature can be found in our Documentation.

Versioning support

This version of Gentics Mesh introduces versioning of contents. A detailed description of the versioning feature can be found in our Documentation.

Important changes summary:

  • Node update request must now include the version information

  • The query parameter ?version=published must be used to load published nodes. Otherwise the node will not be found because the default version scope is draft.

  • Two additional permissions for nodes have been added: publish, readpublished

Existing databases will automatically be migrated during the first setup.

The missing availableLanguages and defaultLanguage parameters have been added to the mesh-ui-config.js file. Previously no language was configured which removed the option to translate contents.

Image Property Support - The binary field will not automatically contain properties for image width, image height and the main dominant color in the image.

API Version endpoint - It is now possible to load the mesh version information via a GET request to /api/v1/.

Project endpoint - The current project information can now be loaded via a GET request to /api/v1/:projectName.

When the search indices where recreated with the reindex endpoint, the mapping for the raw fields was not added. This has been fixed now.

The search index mapping of fields of type "list" were incorrect and have been fixed now.

Various issues with the schema node migration process have been fixed.

0.6.29 (07.03.2017)

The documentation has been enhanced.

Missing fields could cause error responses. Instead the missing fields will now be set to null instead.

0.6.28 (21.10.2016)

Missing fields could cause error responses. Instead the missing fields will now be set to null instead.

0.6.27 (07.10.2016)

Various issues with the schema node migration process have been fixed.

0.6.26 (05.10.2016)

The maximum transformation depth limit was raised from 2 to 3.

0.6.25 (20.09.2016)

The used Vert.x version was bumped to 3.3.3.

0.6.24 (19.09.2016)

The Gentics Mesh admin ui has been updated. The UI will no longer send basic auth information for succeeding requests which were invoked after the login action had been invoked. Instead the basic auth login information will only be send directly during login.

A bug within the breadcrumb resolver has been fixed. Previously breadcrumbs did not account for language fallback options and thus returned a 404 path for nodes which used a different language compared to the language of the retrieved node. This has been fixed.

0.6.23 (14.09.2016)

The missing availableLanguages and defaultLanguage parameters have been added to the mesh-ui-config.js file. Previously no language was configured which removed the option to translate contents.

0.6.22 (24.08.2016)

It is now possible to publish language variants. Previously it was only possible to publish nodes. This affected all language variants of the node.

0.6.21 (17.08.2016)

The debug output in case of errors has been enhanced.

0.6.20 (03.08.2016)

The changelog processing action for existing installations was fixed.

0.6.19 (02.08.2016)

Mesh-Admin-UI was updated to version 0.6.13

0.6.18 (24.06.2016)

Previously a search request which queried a lot of nodes could result in a StackOverflow exception. The cause for this exception was fixed.

The gentics/mesh and gentics/mesh-demo images now use the alpine flavour base image and thus the size of the image stack has been reduced.

The performance of the search endpoints have been improved.

0.6.17 (22.06.2016)

The path property within the node response breadcrumb was not set. The property will contain the resolved webroot path for the breadcrumb element. No value will be set if the resolveLinks query parameter was configured or set to OFF. CL-459

0.6.16 (21.06.2016)

Gzip compression support was added. JSON responses are now pretty printed by default.

0.6.15 (20.06.2016)

Mesh-Admin-UI was updated to version 0.6.12

0.6.13 (17.06.2016)

Mesh-Admin-UI was updated to version 0.6.10

0.6.12 (02.06.2016)

A bug within the schema migration process was fixed. The label field was previously not correctly handled for newly added fields.

A bug within the schema migration process was fixed. The segmentfield value was reset to null when updating a schema. This has been fixed now.

The "AllChangeProperties" field was removed from the JSON response of schema fields.

0.6.11 (31.05.2016)

A bug which prevented node reference deletion was fixed. It is now possible to delete node references using a json null value in update requests.

OrientDB was updated to version 2.1.18

0.6.10 (25.05.2016)

It is now possible to grant and revoke permissions to microschemas using the roles/:uuid/permissions endpoint.

0.6.9 (04.05.2016)

The mesh-ui was updated.

It is now possible to also include non-container nodes in a navigation response using the includeAll parameter. By default only container nodes will be included in the response.

A minor issue within the webroot path handling of node references was fixed. CL-425

Fixed label and allow field property handling when updating schema fields. CL-357

Various concurrency issues have been addressed.

0.6.8 (26.04.2016)

The mesh-ui was updated.

OrientDB was updated to version 2.1.16

0.6.7 (25.04.2016)

Update checker. A bug that prevented the update checker from working correctly was fixed.

0.6.6 (06.04.2016)

Public open beta release

A bug within the reindex changelog entry was fixed. The bug prevented the node index to be recreated.

The mesh-ui-config.js default apiUrl parameter was changed to /api/v1 in order to allow access from hosts other than localhost.

0.6.5 (05.04.2016)

The displayField value was missing within the node search document. The value was added.

The changelog execution information was added to the demo data dump and thus no further changelog execution will happen during mesh demo startup.

An edge case that could cause multiple stack overflow exception was fixed.

A Cache-Control: no-cache header has been set to mesh responses.

The mesh-ui was updated.

Various search index related bugs have been fixed.

The mesh-ui configuration file was renamed to mesh-ui.config.js

0.6.4 (24.03.2016)

The mesh ui was updated.

0.6.3 (22.03.2016)

Database migration/changelog system. A changelog system was added to mesh. The system is used to upgrade mesh data from one mesh version to another.

The published flag can now be referenced within an elasticsearch query.

It was not possible to update the allow flag for schema lists (e.g. micronode lists). This has been fixed now.

The schema migration process did not update the node search index correctly. In some cases duplicate nodes would be returned (the old node and the migrated one). This has been fixed. Only the latest version of nodes will be returned now.

A NPE was fixed which occurred when updating or creating a node list which included elements which could not be found. (CL-358)

A typo within the search model document for users was fixed. The property emailadress was renamed to emailaddress.

0.6.2 (15.03.2016)

The microschema and schema permission field was always empty for newly created elements.

0.6.1 (14.03.2016)

Added mesh-ui to gentics/mesh docker image

0.6.0 (14.03.2016)

Added image API endpoint Images can now be resized and cropped using the image endpoint.

Added schema versioning

Added schema migration process It is now possible to update schemas. Custom migration handlers can be defined in order to modify the node data.

Added Micronodes/Microschemas A new field type has been added which allows creation of micronodes.

Webroot API The webroot REST endpoint was added which allows easy retrieval of nodes by its web path.

JWT Authentication support has been added It is now possible to select JWT in order to authenticate the user.

Navigation Endpoint The navigation REST endpoint was added which allows retrieval of navigation tree data which can be used to render navigations.

Added docker support It is now possible to start mesh using the gentics/mesh or gentics/mesh-demo docker image.

Vert.x update The Vert.x dependency was updated to version 3.2.1

Fixed paging issue for nested tags

0.5.0 (17.11.2015)

Closed beta release