LTS Changelog

The LTS changelog lists releases which are only accessible via a commercial subscription. All fixes and changes in LTS releases will be released the next minor release. Changes from LTS 1.4.x will be included in release 1.5.0.

1.8.10 (22.09.2022)

Java Rest Client: The classes MeshWebrootResponse and MeshWebrootFieldResponse now extend Closeable and calling close() on implementations will close the underlying response. See Gentics Mesh Java Client for examples of how to properly close the responses.

1.8.9 (07.09.2022)

Core: The included Mesh UI has been updated to version 1.3.4.

GraphQL: all requests to graphql v2 were failing if one of the schemas included an s3 binary field. This has been fixed.

Dependencies: The 'spring-security', 'gson', 'zip4j' libraries have been updated.

S3: A support of S3 fields has been added to the indexing engine.

1.8.8 (19.08.2022)

GraphQL: When a node with the root webpath was retrieved in a specific branch, a permission error was returned, even if user had permission for it. This has been fixed.

GraphQL: The behaviour for getting a single node with version=draft using GraphQL has been changed. Before, if a user had only read published permissions and was requesting a draft node, the node content was returned in case the draft version matched the published version. Now a permission error will be returned without the actual content of the node.

1.8.7 (22.07.2022)

This version contains OrientDB version 3.1.18.

Core: Possible errors during node migrations in branches have been fixed.

Java Rest Client: The new options maxRetries and retryDelayMs can be used to configure automatic retries for requests to Mesh which failed due to a network error. By default retries are disabled. A value of -1 for retryDelayMs will automatically calculate a delay such that all tries are performed in the timespan of the call timeout configured for the Ok HTTP client.

Plugins: Fixes plugin initialization such that plugins that failed to load will cause the liveness probe to return an unhealthy status.

Cluster: The plugin initialization now waits not only for the write quorum being reached, but for the node availability as well, during the startup.

Core: Schema field names are now checked for uniqueness regardless of case sensitivity. This behavior was already enforced in the UI, and is now enforced in the REST API. The check is not performed for existing schemas.

Core: When a project was deleted, its associated version purge jobs were not. This has been fixed.

1.6.34 (22.09.2022)

Java Rest Client: The classes MeshWebrootResponse and MeshWebrootFieldResponse now extend Closeable and calling close() on implementations will close the underlying response. See Gentics Mesh Java Client for examples of how to properly close the responses.

1.6.33 (07.09.2022)

Core: The included Mesh UI has been updated to version 1.3.4.

GraphQL: all requests to graphql v2 were failing if one of the schemas included an s3 binary field. This has been fixed.

Dependencies: The 'spring-security', 'gson', 'zip4j' libraries have been updated.

S3: A support of S3 fields has been added to the indexing engine.

1.6.32 (19.08.2022)

GraphQL: When a node with the root webpath was retrieved in a specific branch, a permission error was returned, even if user had permission for it. This has been fixed.

GraphQL: The behaviour for getting a single node with version=draft using GraphQL has been changed. Before, if a user had only read published permissions and was requesting a draft node, the node content was returned in case the draft version matched the published version. Now a permission error will be returned without the actual content of the node.

1.6.31 (21.07.2022)

This version contains OrientDB version 3.1.18.

Java Rest Client: The new options maxRetries and retryDelayMs can be used to configure automatic retries for requests to Mesh which failed due to a network error. By default retries are disabled. A value of -1 for retryDelayMs will automatically calculate a delay such that all tries are performed in the timespan of the call timeout configured for the Ok HTTP client.

Plugins: Fixes plugin initialization such that plugins that failed to load will cause the livenes probe to return an unhealthy status.

Cluster: The plugin initialization now waits not only for the write quorum being reached, but for the node availability as well, during the startup.

1.6.30 (06.07.2022)

GraphQL: The behaviour for getting lists of nodes with version=draft using the REST API or GraphQL was inconsistent for nodes, for which the requesting user only had the read published permission. When using the REST API, those nodes were never returned, using GraphQL, those nodes were returned, if they were published and the draft version happened to be identical to the published version. The behaviour when using GraphQL has been changed to be identical to the REST API now.

Rest: The endpoint GET /api/v2/{project}/tagFamilies/{tagFamilyUuid}/tags/{tagUuid}/nodes did not correctly check for the read when called with version=draft, but returned all tagged nodes with read published permission. This has been fixed.

Rest: The endpoint GET /api/v2/{project}/navroot/{path} failed with a 404 error if called with version=published and at least one of the nodes in the node structure was not published. This has been fixed.

Core: If a link to a node was rendered from a url field, the path prefix of the used branch was ignored. This has been changed now, so that links to nodes will always contain the path prefix, regardless of whether the link is rendered from a url field or from segment fields.

Core: When the pathPrefix of a branch was changed, node could possibly still be access using the old pathPrefix due to an internal cache, which was not invalidated. The cache will now be cleared when a branch is modified.

GraphQL: The fields hostname, ssl and pathPrefix have been added to the type branch.

1.6.29 (31.05.2022)

OrientDB: The included OrientDB version has been updated to version 3.1.18.

Search: When a schema contained a field of type "micronode" or "list" of "micronode" and no "allow", generating the microschema version hash as part of the search index name failed with a NullPointerException. This has been fixed, so that the microschema version hash will now be null in such cases (like if "allow" was set to an empty array).

Core: The default values for the periodic disk quota check have been changed to absolute values: the default for storage.diskQuota.warnThreshold is now 3G and the default for storage.diskQuota.readOnlyThreshold is 1G.

Server: Fixed defined Health-Check in docker container and added a startup-grace period of 60s.

1.6.28 (10.05.2022)

Rest: Many reading request were implemented in a way that they would never be executed concurrently with other reading requests. So would e.g. a long running graphql request cause webroot requests executed at the same time to be queued until the graphql request was done. The behaviour has been changed, so that reading requests will only be queued, if the worker pool has been exhausted.

Core: A periodic check for the EventBus has been added, which can be configured via the configuration settings vertxOptions.eventBus.checkInterval, vertxOptions.eventBus.warnThreshold and vertxOptions.eventBus.errorThreshold. If enabled (which is the default), and the periodically sent ping event is not received within the given error threshold, the Mesh instance which be considered unhealthy (liveness check will fail).

1.6.27 (08.04.2022)

Clustering: When starting an instance of Gentics Mesh with the command line parameter -resetAdminPassword to reset the password of the admin user, starting would fail if the write quorum of OrientDB was not reached. The startup behaviour has been changed now, so that resetting the password is delayed until the write quorum is reached.

Rest: When creating a new user and setting the admin flag to false, this failed if the request user did not have the admin flag set to true. The permission check has been fixed now, so that the admin flag is only required for the requesting user, if the new user should also have the admin flag set to true.

Core: When a project was renamed, deleted and then recreated with the same name, an internal cache was not cleared and caused subsequent errors in calls to the project, until the Mesh instance was restarted. This has been fixed now. The internal caches will be properly cleared.

Rest: The new endpoint DELETE /api/v1/admin/cache will clear all internal caches (cluster wide).

Core: The included Mesh UI has been updated to version 1.3.3.

1.6.26 (23.03.2022)

Core: The included Mesh UI has been updated to version 1.3.2.

1.6.25 (21.03.2022)

Rest: The endpoint /api/v1/admin/jobs now supports query parameters for filtering (status, type, branchName, branchUuid, schemaName, schemaUuid, microschemaName, microschemaUuid, fromVersion, toVersion).

Search: The periodic check for correctness of the indices in Elasticsearch created temporary indices, which did not start with the installation prefix, and thus were sometimes not cleaned up. The naming of those temporary indices has now been changed to also start with the installation prefix.

Security: The 'spring-security', 'jsoup', 'commons-io', 'guava', 'jackson-databind' libraries have been updated.

Core: The 'commons-codec' libary has been updated. This fixes possible internal errors when parsing uploaded files using tika.

Cluster: When starting a node with a new version of Gentics Mesh in a cluster, application of the changelog and setting the new Mesh version and database revision was delayed until the write quorum is reached, but not until the cluster topology lock was raised, which could cause a blocked transaction. This has been fixed.

1.6.24 (01.12.2021)

Search: When the ElasticSearch instance is not available, getting version information from the endpoint /api/v1 failed with an internal server error. This has been fixed, calling the endpoint /api/v1 will not fail anymore, but will not contain the ElasticSearch version.

Rest: When a project with name "project" was deleted, calls to the endpoint /projects would cause 404 errors, until the Mesh instance was restarted. This has been fixed now.

Java Rest Client: If requests to mesh fail with I/O errors (including timeouts), the thrown exception will now also contain the request method and URL.

Server: Liveness-Check script live.sh will now fail if the mesh.live file has not been changed since 20s (previously 60s)

Docker-Image: The base image has been changed from JRE to JDK to include more tools for analyzing (e.g. creating heap-dumps). The base image has been updated to a newer JDK minor version (11.0.12)

1.6.23 (11.11.2021)

AWS S3: Now the Cross-Origin Request Settings parameters of a S3 connection can be configured. By default the allowed headers/origins are set to *, the allowed methods are set to "GET", "PUT", "POST", "DELETE". Setting any of the CORS configuration to null prevents is to override the server’s default configuration. Setting all the CORS configuration to null or empty value prevents the CORS config to be changed at all.

Cluster: When doing a rolling update in a cluster, a OConcurrentModificationException could occur during the startup, which could cause subsequent errors. This has been fixed.

Core: A periodic check for available disk space has been added. If not enough disk space is available, Gentics Mesh will be set to read-only to avoid corruption of the storage due to a full disk. Additionally, the metrics mesh_storage_disk_total and mesh_storage_disk_usable have been added to monitoring.

Search: The indices for nodes of a schema, which contains fields of type "micronode" have a mapping for the fields in the allowed microschemas, but were not changed, if the microschemas were changed. This caused subsequent errors while indexing or searching. The naming of such indices have been changed to contain a hash over all allowed microschema versions and when a microschema is changed, a new index will be created now. This update will automatically drop and recreate all existing indices for schemas containing fields of type "micronode".

AWS S3: Now the Cross-Origin Request Settings parameters of a S3 connection can be configured. By default the allowed headers/origins are set to *, the allowed methods are set to "GET", "PUT", "POST", "DELETE". Setting any of the CORS configuration to null prevents is to override the server’s default configuration. Setting all the CORS configuration to null or empty value prevents the CORS config to be changed at all.

1.6.22 (19.10.2021)

Server: added a health/writable monitoring and REST endpoint to check whether mesh is in a writable state (e.g. the topology lock is not hold).

Server: when a schema was updated with a new field with elastic search properties, these were ignored. This has been fixed now.

Search: If ElasticSearch indices, which were originally created by Mesh were dropped, they would probably be re-created with the default mapping when Mesh stored a document in the index. This could cause the index to be not completely filled and also the mapping to be incorrect, so that search queries would fail to find documents. In order to detect and repair such situations, a periodic check has been added to Mesh, which will check existence and correctness of all required ElasticSearch indices. Missing indices will be created and incorrect indices will be dropped and re-created. Afterwards a full sync for the affected indices will be triggered. The check period can be configured with the new configuration setting search.indexCheckInterval, which defaults to 60_000 milliseconds. Setting the interval to 0 will disable the periodic check (not recommended).

Search: The index maintenance endpoints /api/v1/search/sync and /api/v1/search/clear have been extended with the query parameter index, which can be used to restrict the synchronized/cleared indices by a regular expression.

Search: The index maintenance actions triggered via /api/v1/search/sync and /api/v1/search/clear will now be redirected to the current master instance, if the cluster coordinator is used.

Core: The included Mesh UI has been updated to version 1.3.1, containing the language-related improvements and minor bugfixes.

1.6.21 (12.10.2021)

Search: When a full synchronization of the search indices was triggered, language specific indices were unnecessarily removed first. This has been changed, language specific indices will now be treated like all other indices during a full synchronization.

Core: When performing an update for role permissions, an event was published even if the update actually did not change anything. A check has been added to only publish the event if permissions are actually changed.

Core: When eventbus messages where published during execution of a job (e.g. a node migration), the events were not published and handled immediately, but were queued in memory and eventually published after the job execution. This caused high memory consumption during a node migration and also the elasticsearch indexing of migrated nodes to be delayed until after all nodes had been migrated. Execution of the jobs has been changed now, so that events will be published immediately to fix those issues.

Core: The overall memory consumption during a migration job has been reduced.

Clustering: Due to a bug in the vert.x eventbus system, elasticsearch sync operations were not only performed in the Mesh instance, were the causing data change actually happened, but on all Mesh instances, which caused unnecessary high load on the elasticsearch. This has been fixed with a workaround.

Core: When deleting old versions of nodes, the related binaries were not deleted from the disk. This has been fixed now. Credits to https://github.com/kdima001.

Core: When an OrientDB transaction repeatedly fails and runs into the retry limit, the original cause will now also be logged.

Server: When an OutOfMemory was caught or one of the plugins (permanently) failed to initialize, mesh was still considered to be live. This has been fixed now.

Clustering: When doing an offline update of Mesh in a cluster, the first instance of the cluster could not be started with the new Mesh version, because the new version should be written into OrientDB, which failed due to write quorum not reached. The initialization procedure has been changed now, so that executing the changelog and storing the Mesh version and DB revision will now only be started after the write quorum has been reached.

1.6.20 (23.09.2021)

Server: Mesh will now create a file mesh.live and touch it every 10 seconds as long as the instance is considered live. If an OutOfMemory is caught or one of the plugins (permanently) fails to initialize, mesh is considered no longer live and the file will not be touched any more.

Server: The readiness probe will now also check the status of the local OrientDB storage. A mesh instance will only be considered "ready" if the local OrientDB storage is "ONLINE".

GraphQL: The wait parameter will now only wait for elasticsearch to be ready when a query option in nodes is actively used. Previously it would wait for elasticsearch even if it wasn’t needed.

1.6.19 (22.09.2021)

Clustering: When recovering from a split-brain situation, the topology lock (which was raised, because nodes rejoined the cluster) was not always removed. This has been fixed, and some info log about the reason for the topology lock has been added.

1.6.18 (26.08.2021)

Core: The included Mesh UI has been updated to version 1.3.0, containing the stability improvements, as well as the new feature of the node status (draft/updated/published/archived etc) filtering.

1.6.17 (18.08.2021)

Clustering: The high level changelog system has been extended to allow for specific changes to be executed in cluster mode.

1.6.16 (10.08.2021)

Core: A bug preventing the string schema field restrictions from being cleared, has been fixed.

1.6.15 (21.06.2021)

Core: The included Hazelcast-Kubernetes library has been updated to version 1.5.6, containing a DNS resolving fix.

1.6.14 (17.06.2021)

AWS S3: A bug preventing the new image data from being stored into an existing s3binary container, has been fixed. AWS S3: An inability of changing permissions for the schema with an S3 field has been fixed.

1.6.13 (03.06.2021)

Core: Added support for storing/referencing the binary data at Amazon Web Services S3 container.

1.6.12 (02.06.2021)

Clustering: The cluster.topologyChangeReadOnly setting and MESH_CLUSTER_TOPOLOGY_CHANGE_READONLY environment setting have been added. By enabling this flag, Mesh will be automatically set in readOnly mode, when the cluster topology changes, which will let reading requests pass and writing requests fail (immediately), instead of blocking all requests, which happens when the cluster.topologyLockTimeout is set to a positive value.

Plugins: If plugin initialization fails due to topology changes (e.g. the OrientDB needs to be synchronized from another node), the plugin will be set to status FAILED_RETRY and initialization will be retried as soon as OrientDB becomes available again.

Clustering: The timeout for waiting to join the cluster (which includes the time for synchronizing the graphdb storage), which was hardcoded to 500_000 milliseconds, can now be configured with the setting storage.clusterJoinTimeout or the environment variable MESH_GRAPH_CLUSTER_JOIN_TIMEOUT.

1.6.11 (12.05.2021)

OrientDB: The included OrientDB version has been updated to version 3.1.11.

1.6.10 (27.04.2021)

Plugins: An issue in the plugin environment has been fixed which prevents plugin REST handler starting over 0.0.0.0 host IP address, when the OS disallows it.

Upload: More user-friendly message + HTTP 400 error on an attempt to upload an empty file.

OrientDB: The included OrientDB version has been updated to version 3.1.10.

Upload: The document processing library tika has been updated to version 1.26 to fix the PDF parser failing on files with some Adobe fonts.

1.6.9 (11.03.2021)

Core: Added support for looking up the node field content by webroot path and a field name.

Rest: Added new endpoint for webroot path field lookup.

1.6.8 (21.12.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.6.

OrientDB: A bug in the startup order has been fixed which prevented opening of databases via OrientDB Studio.

Core: Binary upload processing failed for binaries with brackets in the metadata key. This has been fixed now.

GraphQL: Queries, that take longer than the configured threshold will be logged now. See GraphQL Slow Query Log for details.

1.6.7 (20.11.2020)

Jobs: A race condition within the job processing mechanism has been fixed. In some cases newly created jobs would not be automatically invoked. This has been fixed now.

Search: Fixed potential NullPointerException that could occur during search index synchronization.

1.6.6.1 (02.06.2021)

Clustering: The cluster.topologyChangeReadOnly setting and MESH_CLUSTER_TOPOLOGY_CHANGE_READONLY environment setting have been added. By enabling this flag, Mesh will be automatically set in readOnly mode, when the cluster topology changes, which will let reading requests pass and writing requests fail (immediately), instead of blocking all requests, which happens when the cluster.topologyLockTimeout is set to a positive value.

Plugins: If plugin initialization fails due to topology changes (e.g. the OrientDB needs to be synchronized from another node), the plugin will be set to status FAILED_RETRY and initialization will be retried as soon as OrientDB becomes available again.

Clustering: The timeout for waiting to join the cluster (which includes the time for synchronizing the graphdb storage), which was hardcoded to 500_000 milliseconds, can now be configured with the setting storage.clusterJoinTimeout or the environment variable MESH_GRAPH_CLUSTER_JOIN_TIMEOUT.

1.6.6 (11.11.2020)

GraphQL: The breadcrumb field now accepts the lang parameter which will be used for additional fallback languages.

1.6.5 (04.11.2020)

Upload: A potential error within the PDF parsing code has been patched.

1.6.4 (27.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.4.

Clustering: The coordination feature will now be automatically disabled whenever clustering is disabled.

Core: The link renderer now tries to use url fields to render the link if it cannot be constructed using segment fields.

1.6.3 (21.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.3.

Clustering: Internal caches will now be cleared when cluster topology changes occur.

Backup: The ?consistencyCheck query parameter was added to the /api/v2/admin/backup endpoint. When set to true it will run the consistency check before invoking the backup. The call will fail when inconsistencies were detected.

Clustering: An additional check has been added which will prevent nodes from joining a cluster which contains an outdated database. The -initCluster flag needs to be used for a single instance to migrate the cluster. This is done to prevent concurrency issues during changelog execution and cluster formation.

Tests: The path handling for the MeshContainer test container class has been updated. Container data will now be placed in the target/mesh-containers folder.

1.6.2 (06.10.2020)

Additional log output and checks have been added to the auth plugin mapping code. This fix also addresses the Null keys are not supported error which was thrown when handling mappings which provide no group and role names. #1138

OrientDB: The included OrientDB version has been updated to version 3.0.34.

Rest: The webroot cache error handling has been improved.

1.6.1 (24.09.2020)

Search: The memory footprint of the differential sync mechanism has been reduced. The sync operations will now be split into buckets. The size of the buckets can be influenced via the search.syncBatchSize setting.

The new sync mechanism requires a reindex of all documents. The Elasticsearch indices will be automatically cleared and re-synced during the first startup of this version.

Core: Fixed a bug that which prevented to update a node reference of a user if the user already had one set. #1114

Core: It is now possible to disable extracting of metadata or content from binaries on a per-field basis. See schema field types documentation for more information.

Plugins: The default plugin timeout has been increased from 15 seconds to two minutes.

Monitoring: The readiness probe will now also check for plugin status. Failed plugin deployments will let the readiness probe fail.

Monitoring: The readiness probe will now no longer fail when a plugin is not registered. Instead it will only fail when a plugin deployment has failed.

Monitoring: The liveness probe will now check for plugin status. Failed plugin deployments will let the liveness probe fail.

Clustering: The webroot handler no longer uses the cluster-wide write lock.

Logging: Failing readiness checks are now logged using the WARN level.

1.5.17 (23.09.2021)

GraphQL: The wait parameter will now only wait for elasticsearch to be ready when a query option in nodes is actively used. Previously it would wait for elasticsearch even if it wasn’t needed.

1.5.16 (22.09.2021)

Clustering: When recovering from a split-brain situation, the topology lock (which was raised, because nodes rejoined the cluster) was not always removed. This has been fixed, and some info log about the reason for the topology lock has been added.

1.5.15 (26.08.2021)

Core: The included Mesh UI has been updated to version 1.3.0, containing the stability improvements, as well as the new feature of the node status (draft/updated/published/archived etc) filtering.

1.5.14 (10.08.2021)

Core: A bug preventing the string schema field restrictions from being cleared, has been fixed.

1.5.13 (21.06.2021)

Core: The included Hazelcast-Kubernetes library has been updated to version 1.5.6, containing a DNS resolving fix.

1.5.12 (02.06.2021)

Clustering: The cluster.topologyChangeReadOnly setting and MESH_CLUSTER_TOPOLOGY_CHANGE_READONLY environment setting have been added. By enabling this flag, Mesh will be automatically set in readOnly mode, when the cluster topology changes, which will let reading requests pass and writing requests fail (immediately), instead of blocking all requests, which happens when the cluster.topologyLockTimeout is set to a positive value.

Plugins: If plugin initialization fails due to topology changes (e.g. the OrientDB needs to be synchronized from another node), the plugin will be set to status FAILED_RETRY and initialization will be retried as soon as OrientDB becomes available again.

Clustering: The timeout for waiting to join the cluster (which includes the time for synchronizing the graphdb storage), which was hardcoded to 500_000 milliseconds, can now be configured with the setting storage.clusterJoinTimeout or the environment variable MESH_GRAPH_CLUSTER_JOIN_TIMEOUT.

1.5.11 (12.05.2021)

OrientDB: The included OrientDB version has been updated to version 3.1.11.

1.5.10 (27.04.2021)

Plugins: An issue in the plugin environment has been fixed which prevents plugin REST handler starting over 0.0.0.0 host IP address, when the OS disallows it.

OrientDB: The included OrientDB version has been updated to version 3.1.10.

Upload: The document processing library tika has been updated to version 1.26 to fix the PDF parser failing on files with some Adobe fonts.

1.5.9 (18.12.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.6.

OrientDB: A bug in the startup order has been fixed which prevented opening of databases via OrientDB Studio.

Core: Binary upload processing failed for binaries with brackets in the metadata key. This has been fixed now.

GraphQL: Queries, that take longer than the configured threshold will be logged now. See GraphQL Slow Query Log for details.

1.5.8 (20.11.2020)

Jobs: A race condition within the job processing mechanism has been fixed. In some cases newly created jobs would not be automatically invoked. This has been fixed now.

1.5.7 (13.11.2020)

Search: Fixed potential NullPointerException that could occur during search index synchronization.

1.5.6 (22.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.4.

Clustering: The coordination feature will now be automatically disabled whenever clustering is disabled.

Clustering: Internal caches will now be cleared when cluster topology changes occur.

Backup: The ?consistencyCheck query parameter was added to the /api/v2/admin/backup endpoint. When set to true it will run the consistency check before invoking the backup. The call will fail when inconsistencies were detected.

Clustering: An additional check has been added which will prevent nodes from joining a cluster which contains an outdated database. The -initCluster flag needs to be used for a single instance to migrate the cluster. This is done to prevent concurrency issues during changelog execution and cluster formation.

1.5.5 (06.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.0.34.

Rest: The webroot cache error handling has been improved.

1.5.4 (24.09.2020)

Core: It is now possible to disable extracting of metadata or content from binaries on a per-field basis. See schema field types documentation for more information.

Monitoring: The readiness probe will now no longer fail when a plugin is not registered. Instead it will only fail when a plugin deployment has failed.

Monitoring: The liveness probe will now check for plugin status. Failed plugin deployments will let the liveness probe fail.

Clustering: The webroot handler no longer uses the cluster-wide write lock.

Logging: Failing readiness checks are now logged using the WARN level.

1.4.23 (21.06.2021)

Core: The included Hazelcast-Kubernetes library has been updated to version 1.5.6, containing a DNS resolving fix.

1.4.22 (02.06.2021)

Clustering: The cluster.topologyChangeReadOnly setting and MESH_CLUSTER_TOPOLOGY_CHANGE_READONLY environment setting have been added. By enabling this flag, Mesh will be automatically set in readOnly mode, when the cluster topology changes, which will let reading requests pass and writing requests fail (immediately), instead of blocking all requests, which happens when the cluster.topologyLockTimeout is set to a positive value.

Plugins: If plugin initialization fails due to topology changes (e.g. the OrientDB needs to be synchronized from another node), the plugin will be set to status FAILED_RETRY and initialization will be retried as soon as OrientDB becomes available again.

Clustering: The timeout for waiting to join the cluster (which includes the time for synchronizing the graphdb storage), which was hardcoded to 500_000 milliseconds, can now be configured with the setting storage.clusterJoinTimeout or the environment variable MESH_GRAPH_CLUSTER_JOIN_TIMEOUT.

1.4.21 (12.05.2021)

OrientDB: The included OrientDB version has been updated to version 3.1.11.

1.4.20 (27.04.2021)

Plugins: An issue in the plugin environment has been fixed which prevents plugin REST handler starting over 0.0.0.0 host IP address, when the OS disallows it.

OrientDB: The included OrientDB version has been updated to version 3.1.10.

Upload: The document processing library tika has been updated to version 1.26 to fix the PDF parser failing on files with some Adobe fonts.

1.4.19 (17.12.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.6.

OrientDB: A bug in the startup order has been fixed which prevented opening of databases via OrientDB Studio.

Core: Binary upload processing failed for binaries with brackets in the metadata key. This has been fixed now.

GraphQL: Queries, that take longer than the configured threshold will be logged now. See GraphQL Slow Query Log for details.

1.4.18 (18.11.2020)

Jobs: A race condition within the job processing mechanism has been fixed. In some cases newly created jobs would not be automatically invoked. This has been fixed now.

1.4.17 (27.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.1.4.

Clustering: The coordination feature will now be automatically disabled whenever clustering is disabled.

Clustering: Internal caches will now be cleared when cluster topology changes occur.

Backup: The ?consistencyCheck query parameter was added to the /api/v2/admin/backup endpoint. When set to true it will run the consistency check before invoking the backup. The call will fail when inconsistencies were detected.

Clustering: An additional check has been added which will prevent nodes from joining a cluster which contains an outdated database. The -initCluster flag needs to be used for a single instance to migrate the cluster. This is done to prevent concurrency issues during changelog execution and cluster formation.

1.4.16 (06.10.2020)

OrientDB: The included OrientDB version has been updated to version 3.0.34.

Rest: The webroot cache error handling has been improved.

1.4.15 (23.09.2020)

Monitoring: The readiness probe will now no longer fail when a plugin is not registered. Instead it will only fail when a plugin deployment has failed.

Monitoring: The liveness probe will now check for plugin status. Failed plugin deployments will let the liveness probe fail.

Clustering: The webroot handler no longer uses the cluster-wide write lock.

Logging: Failing readiness checks are now logged using the WARN level.

1.4.14 (02.09.2020)

Core: Fixed a bug that which prevented to update a node reference of a user if the user already had one set. #1114

1.4.13 (26.08.2020)

Plugins: The default plugin timeout has been increased from 15 seconds to two minutes.

Monitoring: The readiness probe will now also check for plugin status. Failed plugin deployments will let the readiness probe fail.

1.4.12 (17.07.2020)

Clustering: The cluster coordinator will now detect changes caused by the OAuth token mapping and will redirect the request if necessary. Thus this change allows the use of the CUD mode when using request coordination in combination with authentication plugins.

Clustering: When using the cluster coordinator, forwarded requests will now contain the X-Mesh-Forwarded-From header.

1.4.11 (23.06.2020)

Plugins: A potential resource leak could cause thread exhaustion when using new REST Clients for each request. This has been fixed now.

1.4.10 (12.05.2020)

Plugins: Fixed an error which was triggered when trying to un-deploy a not yet deployed plugin.

Plugins: Fixed a bug in the plugin registration process in which plugin deployments would fail due to timeouts in clustered environments.

1.4.9 (07.05.2020)

Plugins: The plugin registration process was changed. Plugins will now no longer be directly registered when deployed. Instead the plugins will remain in a pre-registration status util Gentics Mesh is able to deploy them. This is especially useful when running plugins in clustered mode. Plugins will only be registered once the write quorum has been reached. Additionally the plugin deployment process will now utilize a lock in clustered mode to prevent concurrent deployments of plugins. The plugin status was added to the plugin endpoint response.

Clustering: The write lock was removed from the DELETE /api/v2/admin/plugins/:id and POST /api/v2/admin/plugins endpoints to prevent potential deadlocks.

1.3.4 (11.05.2020)

Microschema migrations since version 1.2.0 are very likely to cause a loss of data in nodes that contain micronodes of the migrated schema. This bug has been fixed in this version. At the first start with this version or higher, Gentics Mesh will try to restore affected nodes in projects with a single branch. However, because some data cannot be restored, we advise to restore a backup of a moment before the microschema migration, if possible. We apologize for the inconvenience.