CKEditor Collaboration Server On-Premises
# 4.20.1 (2024-10-08)
# Other
-
Improved reliability of the license module
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.20.0 (2024-08-27)
# Features
-
Added REST API to the GET business logs
The new
GET /insights/business-logs
REST API endpoint allows to fetch business logs.
It allows for fetching logs and share them in a form of JSON, making sharing logs easier.You can find more information in the REST API documentation available under
/api/v5/docs#tag/Insights/paths/~1insights~1business-logs/get
.
# Other
-
Improved validation of the Pagination cursor
Now the pagination cursor is validated properly.
-
Improved reliability of the license module
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.19.2 (2024-07-24)
# Other
-
Improved reliability of the license module
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.19.1 (2024-07-18)
# Fixes
-
Fixed a bug where the
unlinkedAt
property was lost after a comment was resolved or reopened.Before the fix, the
unlinkedAt
property was lost after a comment was resolved or reopened.
This resulted in the comment thread disappearing from the comment archive after a reconnection or page refresh.
Now the property is set to its previous value.
# 4.19.0 (2024-07-16)
# Features
-
Extend the
GET /collaborations/{document_id}/exists
endpoint with the Document storage statusThe
GET /collaborations/{document_id}/exists
accepts now additionalinclude_storage
query parameter. After the parameter is set, the response includes theexists_in_storage
property, that indicates if the given document is stored in the Document storage or not.You can find more information in the REST API documentation available under
/api/v5/docs#tag/Collaboration/paths/~1collaborations~1%7Bdocument_id%7D~1exists/get
. -
Extend the
GET /storage/{document_id}
endpoint with a status of stored documentThe
GET /storage/{document_id}
returns now the information if the document in Document storage is stored properly.
When the?details=true
query parameter is set, then the response will include theis_stored_properly
property.You can find more information in the REST API documentation available under
/api/v5/docs#tag/Storage/paths/~1storage~1%7Bdocument_id%7D/get
. -
Extend the
GET /storage
endpoint with a status of stored documentsThe
GET /storage
returns now the information if each document from the Document storage is stored properly.
The response will include theis_stored_properly
property for every document on the lists.You can find more information in the REST API documentation available under
/api/v5/docs#tag/Storage/paths/~1storage/get
. -
Filter the
GET /storage
response by the status of documentsThe
GET /storage
accepts now an additional parameteris_stored_properly
that indicates if all,
correctly stored or only corrupted documents should be returned.You can find more information in the REST API documentation available under
/api/v5/docs#tag/Storage/paths/~1storage/get
.
# Fixes
-
Fixed a bug where corrupted document could be copied by using the Copy API
Now, copying corrupted documents is blocked to prevent a case where corrupted document is duplicated without any notice.
It will help to detect cases of currupted document earlier. -
Fixed a bug where
last_updated_at
andlast_updated_by
were not updated after document was imported.Now, after a document is removed and imported again, the
last_updated_at
will be set to a date of document import.
Thelast_updated_by
will be set tonull
.
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.18.0 (2024-06-04)
# Features
-
Triggerring the document storage
A new
PUT /api/v5/collaborations/{document_id}/save
method allows for manually
triggerring a process of saving a document to the document storage without removing
a collaboration session.You can find more information in the REST API documentation available under
/api/v5/docs#tag/Collaboration/paths/~1collaborations~1%7Bdocument_id%7D~1save/put
.
# Fixes
-
Fixed validation for comment’s type
While using the
POST /api/v5/{environment_id}/documents
endpoint,
only comments havingtype
with value1
or2
will be accepted.
The validation was introduced as no other types exists.You can find more information in the REST API documentation available under
/api/v5/docs#tag/Documents/paths/~1documents/post
.
# Other changes
-
Improved Document Storage to avoid breaking documents while connecting
A process of creating a collaborative session from a document stored in a Document Storage will be blocked
if an editor bundle will be not uploaded. To create a collaborative session from a document from a Document Storage
the document needs to be processed by the editor bundle.
Now, an attempt of creating collaborative session without editor bundle will be blocked to prevent document corruption. -
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.17.3 (2024-04-23)
# Fixes
-
Fixed displaying the Webhooks tab in the Management Panel
The Webhooks tab is now displayed correctly in the Management Panel.
# Other changes
-
Improve the Copy method from the Documents REST API
The
POST /api/v5/{environment_id}/documents/{source_document_id}
method accepts
thebundle_version
parameter now. Thanks to the parameter, thebundle_version
that will be used to run a new session of a copied document can be set explicitly. -
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.17.2 (2024-03-12)
# Fixes
-
Fixed support for the
|
character in the document IDBefore, using the pipe
|
character in the document ID could cause problems with applying correct
document privileges. Now the pipe character is supported and can be used in a document ID.
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.17.1 (2024-01-23)
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.17.0 (2023-12-19)
# Features
-
Added REST API endpoints for the API Secret and Access Key management
The new REST API allows you to get, create, and remove API Secrets and Access Keys.
You can find more information in the REST API documentation available under/api/v5/docs#tag/Environments
. -
Added possibility to disconnect a user from a particular collaboration session or a set of collaboration sessions
Introduced a new query parameter,
document_ids
to the/api/v5/{environment_id}/users/{user_id}/collaborations
endpoint which takes a list of collaboration session IDs separated by a comma.The new parameter makes it possible to provide a list of documents from which the user should be disconnected.
# Fixes
-
Increased the number of available connections to a PostgreSQL database, in a connection pool
Before, the number of connections could be insufficient while the application was handling higher traffic, depending on a use-case.
Now the number of available connections has been increased, to cover the case.
# Other changes
-
Extended the collaboration details response with properties related to the last update
The new fields are
lastUpdatedAt
andlastUpdatedBy
and will contain the date of the last update and the ID of the user performing it respectively. It will be returned for the below REST API endpoints:GET /api/v5/collaborations/{collaboration_id}/details
GET /api/v5/collaborations/{collaboration_id}?details=true
-
Extended the document storage details response with the date of the last save in the storage
When exporting the content of the document from the storage with details using the
GET api/storage/{document_id}?details=true
endpoint, the date of the last save will also be included in the response. -
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.16.2 (2023-11-07)
# Other changes
-
Improved performance of the license module
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.16.1 (2023-10-06)
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
The above update patches the security vulnerability related to the heap buffer overflow risk.
# 4.16.0 (2023-09-27)
The newest version of CKEditor Cloud Services On-Premises introduces a three-month webhook request retention.
Thanks to this, the increasing number of webhook requests will not take up too much space as time goes by.
To allow the removal of outdated requests without introducing any interruptions or blocking the application the old
requests have been archived. Note that the data will not be deleted permanently. If you want to restore your
old webhook requests, please contact our support - https://ckeditor.com/contact/.
All webhooks behaviors stay unchanged.
# Features
-
Added REST API for Revision History
The new REST API allows you to get, create, and remove revisions of the document.
You can find more information in the REST API documentation available under/api/v5/docs#tag/Revisions
. -
Added REST API endpoint to disconnect a single user from all active editing sessions
The
DELETE:/users/{user_id}/collaborations
endpoint can be used to force a user to disconnect from all documents in case of e.g. privileges update.
You can find more information in the REST API documentation available under/api/v5/docs#tag/Collaboration/paths/~1users~1%7Buser_id%7D~1collaborations/delete
. -
Added a possibility to flush specific documents by providing a list of their IDs or IDs containing wildcards
The
DELETE:/collaborations
method has been extended with thedocumentIdPatterns
query parameter. A list of document IDs or ID patterns is accepted.
You can find more information in the REST API documentation available under/api/v5/docs#tag/Collaboration/paths/~1collaborations/delete
. -
Added support for MySQL 8
From this version, the CKEditor Collaboration Server On-premises will be tested with MySQL in version 8.
-
Added support for PostgreSQL 14
From this version, the CKEditor Collaboration Server On-premises will be tested with PostgreSQL in version 14.
# Fixes
-
Fixed a problem while connecting with a database thru the TLS connection
The TLS connection wasn’t possible, now TLS can be used properly.
# Other changes
-
Improved licensing mechanism
A race condition while quick connecting and disconnection was solved.
-
Improved mechanism to release unused database connections
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.15.1 (2023-08-22)
# Fixes
-
Fixed support for the CKEditor Nightly releases
CKEditor Collaboration Server now fully supports the CKEditor Nightly releases.
-
Fixed validation for authentication tokens
JWT tokens with
-
are now accepted. -
Fixed usage of the
force
flag with theDELETE:/collaborations/{document_id}
REST API endpointNow, when the
force
flag is set totrue
, connected users are properly disconnected from the editing session while flushing the document.
You can find more information in the REST API documentation available under/api/v5/docs#tag/Collaboration/paths/~1collaborations~1%7Bdocument_id%7D/delete
.
# Other changes
-
Improved error handling for SQL databases
Some errors from the SQL database are now handled and solved by default without throwing them.
Other errors are now more readable. -
Extended the
GET:/users
REST API endpoint responseThe response now contains
first_connected_at
andlast_connected_at
properties.
You can find more information in the REST API documentation available under/api/v5/docs#tag/Users/paths/~1users/get
. -
Simplified the
POST:/documents
REST API endpoint requestNow, the
requestId
for revisions anddocumentId
for comments and suggestions are not required anymore while using thePOST:/documents
endpoint.
You can find more information in the REST API documentation available under/api/v5/docs#tag/Documents/paths/~1documents/post
. -
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.15.0 (2023-07-11)
# Features
-
Added support for synchronous document import
A document can now be imported directly into the document storage without initializing a new editing session.
It can be done in the REST API through the POST method from the/storage
endpoint.
You can find more information in the REST API documentation available under/api/v5/docs#tag/Storage/paths/~1storage/post
. -
Added support for revision history in the
/documents
REST APIDocument revisions can be imported and exported through the
/documents
REST API.
You can find more information in our online documentation or the REST API documentation available under/api/v5/docs#tag/Documents/
. -
Extended support for multi-root editors
Added the possibility to preserve, export, and initiate the attributes for multi-root documents through webhooks and REST API.
You can find more information in our online webhooks documentation or the REST API documentation available under/api/v5/docs#tag/Collaboration
and/api/v5/docs#tag/Documents
. -
Added support for the
MIGRATE_ONLY
modeThe application can be run now in a mode, where only database migrations will run, after migration the instance will be stopped. It gives more flexibility to the CKEditor Collaboration Server On-premises upgrade process.
You can find more information in our online documentation. -
Added support for multiple API secrets
A single environment can include multiple API secrets, it allows for rotation of the API secrets without any downtime.
The new API secrets can be managed from the “API secrets” tab in the Management Panel.
You can find more information in our online documentation.
# Fixes
-
Fixed support for special characters in IDs
Special characters are now fully supported in the document, comment, suggestion, user, and other IDs.
-
Fixed performance issues with database connections under heavy load
User connection peaks do not cause application performance degradation.
-
Fixed problem with failing heartbeat
The heartbeat mechanism was reworked to be more reliable.
# Other changes
-
Improved notifications and errors in the license mechanism
The notifications and errors are now more verbose.
-
Improved mechanism to manage database connections
Idle and stale connections from a pool are now closed earlier.
The number of connections in a single pool has been increased to handle more traffic. -
Optimized the memory usage by the real-time collaboration feature
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.14.0 (2023-05-30)
# Features
-
Added support for the
REDIS_USER
variableThe new environmental variable allows for setting the user while connecting to a Redis instance.
More details can be found in the online documentation.
# Fixes
-
Fixed memory leak while using the Easy Image feature
Memory was not released after getting an image under some circumstances.
-
Fixed a problem with application performance while connecting thousands of users in a period of time
When user connected thousands of unique users in a period of time application was restarting or freezing.
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.13.0 (2023-04-18)
# Features
-
Added support for the comments archive feature
The new CKEditor 5 comments archive feature is now supported.
-
Added the
collaboration.document.update.exported
webhook eventThe new webhook is triggered whenever a collaboration session is updated, has ended, or when the last user disconnects.
The webhook’s payload contains the document content.
You can find more information about it in our online documentation. -
Added support for the
comment:modify_all
privilegeThe new privilege allows to remove or modify a single comment of another user.
-
Added support for case sensitive ids in new installations
The case of letters used in identifiers is now distinguished. Eg.,
userId-1
is now different fromUserId-1
.
# Fixes
-
Improved logs printed when a database migration fails
The logs provide more information about the failed migration. It will make it easier to debug such cases.
-
Improved the migrations script
The script to run migrations is now insensitive to restarts and shutdowns of the application during database upgrades.
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.12.1 (2023-02-28)
# Fixes
- Fixed minor UI bugs in the Management Panel
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.12.0 (2023-01-24)
# Features
-
Added possibility to omit comments and suggestions while using
/documents
APIIt allows skiping exporting comments or/and suggestions while exporting and importing documents using the
/documents
API.
This would allow importing the document without comment and/or suggestions and their respective markers. -
Added filters to the Webhooks Requests view in the Management Panel
Filters allow checking requests related to selected events with a chosen status code.
-
Improved UX of the Insight Panel view in the management panel
It is now possible to set a relative time frame for logs, so e.g. logs from the last hour can be checked.
# Fixes
-
Fixed random timeouts while processing documents stored in the Document Storage
-
Fixed date parsing in the
/documents
APIThe date in comments added along with a document can now be provided as a Date ISO8601 String and as a timestamp.
-
Fixed problem with CORS restrictions
Now all necessary to communicate headers are allowed by the
Access-Control-Allow-Headers
header. -
Fixed returning the correct version of a document after the session flushing
Previously the incorrect document version was returned after the document session was flushed.
The bug affected the following REST API’s endpoints:- GET
collaboration/:documentId?details=true
- GET
documents/:documentId
and webhooks:
collaboration.document.exported
collaboration.document.export.failed
collaboration.document.recovered
- GET
# Other changes
-
Updated Node to Node 18
-
Improved performance and stability of Documents workers
It will affect all features that use the Editor Bundle.
The mechanism which runs the Editor Bundle inside of the Server has been refactored and optimized. -
Improved socket refresh mechanism
Every instance of the CKEditor Collaboration On-premises service now only refreshes its own connections instead of all.
-
Added version of the CKEditor Collaboration On-premises to logs
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.11.0 (2022-11-29)
# Features
-
Added the Users REST API
The new REST API allows adding new user data to and getting the data from the CKEditor Collaboration Server.
You can find more information in our online documentation or in the REST API documentation available under/api/v5/docs#tag/Users
. -
Added the documents
version
field to selected webhooksThe new field contains the version of the document which is included in a webhook payload.
It can be used to ensure that a stored document will not be overwritten with an older version.
Theversion
field has been added to:collaboration.document.exported
collaboration.document.export.failed
collaboration.document.recovered
-
Added documents
version
field to REST API responsesThe new field contains the version of a document that was requested.
It can be used to ensure that a stored document will not be overridden with an older version.
Theversion
field has been added to:- GET
collaboration/:documentId?details=true
- GET
documents/:documentId
- GET
# Fixes
-
Fixed random
Connection hasn't been authenticated in a period of time
errorsThe error occurred when a computer with a document opened in a browser was put into sleep mode for a few hours.
After waking up the device the collaboration was still possible, however, numerous errors in the browser console were prompted.
The fix requires CKEditor 5 in version v35.3.0 or newer.
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.10.1 (2022-11-07)
# Other changes
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.10.0 (2022-10-18)
# Features
-
Added ability of import, export and remove documents with all related data
With the new feature a document can be imported, exported or removed with all assigned data, such as comments and suggestions.
You can find more information in our on-line documentation or in the REST API documentation available under/api/v5/docs#tag/Documents
.
# Other changes
-
Improved performance of document export
Exporting documents takes less time for environments with
Connection optimization
enabled. -
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.9.0 (2022-09-06)
# Features
-
Added the Copy feature
The new feature allows to copy documents with their data by using the REST API method
/api/v5/{environment_id}/documents/{source_document_id}
.
More information can be found in the online documentation.
# Fixes
-
Fixed urls in the management panel
Links containing details of connecting CKEditor Collaboration Server with the CKEditor 5 point to the latest version of documentation now.
-
Fixed urls in returned errors
Links placed in the error messages, action and explaination field points to the latest REST API endpoints version.
-
Fixed support for regular expressions in the editor config
The regular expression will be now interpreted correctly while using the GHS plugin in the editor bundle.
# Other changes
-
Increased size limit for attributes in suggestions and comments
While using MySQL there was a limit of 64 kB of attributes. It has been changed to 16 MB.
The change allows to store more attributes. The value for PostgreSQL stays without changes, 1 MB. -
Increased default ping interval and timeout for socket communication
The increased value stabilizes the pings mechanism in case of a slow internet connection or when documents in the editor are processed slowly.
-
Improved application performance
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.8.0 (2022-07-26)
# Features
-
Added support for multi-root editor bundles
Multi-root editor bundles can be now used with the CKEditor Collaboration Server On-Premises.
-
Added support for revision resuming
The revision resuming feature now works for Real Time Collaboration features that use an editor bundle uploaded to the Cloud Services server.
-
Added
collaboration.document.exported
webhook eventThe new webhook is triggered whenever a collaboration session has ended and the document data has been successfully exported while the document storage is disabled.
-
Added
collaboration.document.export.failed
webhook eventThe new webhook is triggered whenever the system cannot convert document operation after a collaboration session has ended. It works only when the editor bundle is uploaded and the document storage is disabled.
-
Added
GET:/collaboration/{document_id}/sockets
REST API methodThe new endpoint returns a list of sockets IDs connected to a document with the provided ID.
-
Extended
GET:/collaboration/{document_id}/users
REST API methodNow the endpoint returns a list of user IDs along with sockets IDs when the
?details=true
query parameter is passed.
# Other changes
-
Improved performance
Parts of the application were reviewed and optimized.
As a result, the time needed to fully process requests has been reduced. -
Added server version to Management Panel and Info Page
The version of the currently running CKEditor Collaboration Server On-Premises is now displayed in the Management Panel and on the Info Page.
The version can be now checked by visiting/panel
and/
in the browser. -
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.7.0 (2022-06-14)
Legacy REST API versions (v1, v2) have been removed
Due to the changes in the license key validation for Revision History, in order to use the latest version of Collaboration Server On-Premises, please make sure that you provide the correct (latest) license key that you can find in the CKEditor Ecosystem Dashboard.
# Features
-
Enabled support for Revision History with editor bundle
Using the Revision History feature with an editor bundle allows to limit data transferred between CKEditor and the Collaboration Server.
-
Introduced REST API v5
The new version of the REST API contains more consistent requests and response payloads.
Version 4 has been deprecated.
The documentation for the new version 5 was reviewed and improved by adding missing information and rephrasing
parts of the already existing content.Version 5 contains one breaking change: the
/documents
resource was renamed to/storage
.
# Bug fixes
-
Fixed removing comments and suggestions in imported documents
Previously, importing a document collaboration session with suggestion and comment markers resulted in an incorrect database state. As a result, an attempt to delete such comments or suggestions would not mark them as deleted. Moreover, corresponding webhooks would not be sent. Now, the delete mechanism works correctly.
-
Fixed removing documents with active sessions from document storage
Now, as long as there is an active editing session, an attempt to remove a document from the document storage will result in a 409 error.
This prevents breaking a currently edited document. To remove a stored document that has an active editing session,
flush it manually or wait for the session to expire.
# Other changes
-
Increased maximum size of Web Socket message to 100 MB
Increasing the limit allows to initialize collaboration sessions with bigger documents.
-
Increased maximum length of webhooks URL to 512 characters
-
Increased history compression threshold to 15k operations
It improves the performance of CKEditor 5 and Revision History by limiting auto-save usage.
-
Improved webhooks retries mechanism
The webhooks mechanism has been optimized. The reliability of retries has been also improved.
-
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
-
Added support for Revision History licensing
# 4.6.0 (2022-05-05)
Legacy REST API versions (v1, v2) of selected endpoints have been removed
The change affects:
- all
/comments
endpoints /documents/{document_id}/users
# Features
-
Added Insights Panel
The new tool allows to access the logs of CKEditor Collaboration Server On-Premises.
The Insights Panel can be found in the Management Panel after selecting an environment. -
Added support for ARM64v8 CPU architecture
CKEditor Collaboration Server On-Premises can now be run on machines with the ARM64v8 CPU architecture.
# Bug fixes
-
Fixed adding suggestion to tables
Previously, adding a suggestion for inserting a row and a suggestion for inserting a column that was crossing
the suggested row resulted in inappropriate behavior. Deleting the row suggestion would also delete
the column suggestion. Now, suggestions can be applied to tables correctly. -
Fixed
Content-Type
HTTP header inGET:/collaborations/{document_id}
The returned header was changed from
application/json
totext/html
as the endpoint returns data
in the HTML format. -
Fixed user count returned from
/organization-statistics
The
/organization-statistics
endpoint used to count the same user from different environments as one user,
while the licensing mechanism treats such users as distinct ones. Now, the number returned from the endpoint
matches the current license usage. -
Fixed server error while adding comments without
user
via REST APIThe
user
field is now handled correctly and a meaningful error (status 400) will be returned if the provided
value is invalid.
# Other changes
-
Improved licensing mechanism
The licensing mechanism is now more stable and reliable. The details about the license are now displayed in
the Management Panel. The problem with counting concurrent users has been fixed. Now, the limits are checked
immediately upon connection to the server. -
Updated dependencies
Selected dependencies have been updated to the latest versions, improving performance and security.
# 4.5.0 (2022-03-22)
# Features
-
Added support for the Real-time Revision History feature
-
Added mechanism for soft delete in comments and suggestion
The removal mechanism for comments and suggestion has been changed. Now the comments and suggestions are marked as removed
instead of removing them permanently. More information can be found in our online documentation.
Comments and suggestions can be removed permanently via the REST API. -
Added a default page for the root address
Now the root address of CKEditor Collaboration Server On-Premises shows a page with useful links.
Before the change, nothing was displayed. -
Added the
/collaborations/{document_id}/details
endpoint to the REST APIThe new endpoint returns details about the active collaboration session assigned to a given document.
It returns the ID of the session, the bundle version which was used to create the session, and the version of the document.
In addition, the response contains data about the previous session: its ID and the ID of the last operation.
More information can be found in the REST API documentation.
# Bug fixes
-
Fixed a support for editor bundles containing CKEditor 5 v33.0.0
It is now possible to upload editor bundles with collaboration plugins in version 33.0.0 without any errors.
-
Fixed the
Cannot find suggestion
andtrack-changes-user-not-found
errors while using Track Changes feature with tablesThe errors occurred in the CKEditor while removing suggestions related to tables.
# Other changes
-
Improved socket ping mechanism
The ping mechanism has been improved, it provides better stability of a connection and improves compatibility with different browsers.
-
Updated dependencies
Updated selected dependencies to the latest versions, improving performance and security.
-
Improved error messages
Some of the errors contain more detailed messages. Updated errors include explanations and possible actions to solve the problem.
# 4.4.0 (2022-02-08)
# Features
-
Added support for IPv6
Connection over IPv6 is now supported for Redis databases.
Given an IP address, the server will detect if IPv6 or IPv4 has been used.
However, when a domain is provided, IPv6 must be forced by
setting theREDIS_IP_FAMILY=6
environment variable when running the server.
More information can be found in our on-line documentation.
# Bug fixes
-
Reduced the number of emitted
storage.document.saved.failed
eventsThe event was emitted multiple times when an editor bundle was missing.
-
Fixed removing comments and suggestions from the database when the PostgresSQL is used
Comments and suggestions were not removed after accepting or rejecting suggestions.
As a result, accepted suggestions and related comments were returned by the REST API.
Now, after accepting or rejecting a suggestion, the data is removed from the database.
The webhook events related to removing and restoring comments or suggestions are also correctly emitted.
# Other changes
-
Updated dependencies
Updated selected dependencies to the latest versions, improving performance and security.
# 4.3.0 (2022-01-18)
# Features
-
Added a new webhook event
collaboration.document.updated
The new event is emitted:
- every 5000 versions of the document, or
- every 10 minutes while the document is being edited, or
- when the last user disconnects from the collaboration session.
-
Added the
wait
parameter to[DELETE] v4/collaborations/:document_id
The parameter allows to flush a document synchronously.
By default the document is flushed asynchronously.
The synchronous request can be useful for cases when documents needs to be saved or when preparing a collaboration session. -
Renamed webhooks
Currently the names of events indicate whether the event is a real-time collaboration event or a document storage event.
Backward compatibility has been kept.document.user.connected
->collaboration.user.connected
document.user.disconnected
->collaboration.user.disconnected
document.removed
->collaboration.document.removed
# Bug fixes
-
Fixed the webhook retry mechanism
The webhook retry mechanism was not working, so failed webhook requests were not sent again.
Now it has been fixed and works as expected.
Webhook requests that return statuses other than 2xx are resent as configured in the management panel. -
Improved the reconnection mechanism
The changes introduce an improved reconnection mechanism, included in CKEditor 5 version
31.1.0
, which now handles more reconnection cases. -
Added a
Content-Length
header to webhooks requestsThe header fixes the errors during receiving webhooks request on the Microsoft Azure Cloud Platform.
-
Fixed an issue with using both the document storage and the import-export features at the same time
-
Fixed the problem with using a database as a storage
# Other changes
-
Changed the default collaboration session duration to 24 hours
It helps to prevent problems during longer disconnections.
The time can be changed manually by setting the amount of milliseconds in the environment variables:
COLLABORATION_EXPIRATION_TIME_STORAGE
- for environments with the document storage feature enabledCOLLABORATION_EXPIRATION_TIME
- for environments without the document storage feature
-
Updated Node.js to version 16
-
Updated dependencies
Updated selected dependencies to the latest versions, improving performance and security.
# 4.2.0 (2021-11-16)
# Features
-
Added a new method for the Webhooks in Cloud Services Management REST API
Added a new method
/webhooks/{webhooks_id}/requests/metadata
.
The new method fetches webhook’s requests list without requests body. -
Optimized a way of fetching a webhook’s requests in the CKEditor Management Panel
The webhook’s requests are now fetched using a new, more lightweight method.
# Bug fixes
-
Fixed race condition in suggestions and comments
While quick removing and restoring suggestions and comments, a race condition occasionally occurred.
-
Fixed memory leak in the Easy Image
Downloading images from Easy Image could lead to memory leaks.
-
Fixed decryption in webhooks requests
Huge webhook’s request’s payloads stored in a database couldn’t be decrypted.
# Other changes
-
Updated dependencies
Updated selected dependencies to the latest versions - improved the performance and security.
From this version on, the Docker Engine 20.10 or higher is recommended. -
Updated base docker image (Alpine Linux) from version 3.12 to 3.14
# 4.1.0 (2021-10-05)
# Features
- Add POST method to Suggestions REST API
The method allows to add a suggestion data using REST API.
- Add PUT method to Suggestions REST API
The method allows to update a suggestion data using REST API.
# Bug fixes
-
Fixed removing collaboration session after expiration time for imported documents without connected users
The documents which were imported using REST API will now start a collaboration session.
Thanks to this, imported documents will be processed even if no user connects to them. -
Fixed a problem with washout colours in PNG files processed using the Easy Image
The quality for PNG files has been increased; thanks to that the colours in PNG images will stay the same as in the original file.
# Other changes
-
Updated dependencies
Updated selected dependencies to the latest versions - improved the performance and security.
# 4.0.0 (2021-08-24)
The internal process of testing new releases has been improved.
Starting from version 4.0.0, the new testing process will be applied. This allows us to improve the quality and reliability of the following releases.
This change does not affect the CKEditor OnPremises Collaboration Server behaviour.
# Features
-
Increased the maximum length of comments’ content
The limit of comments contents’ length has been increased to 65000 chars.
# Bug fixes
-
Fixed a bug related to restoring formatting suggestions
User will be able to restore formatting suggestions.
-
Fixed a bug that causes occasional deadlocks while inserting into the SQL database
In case of deadlock the insert operation will be retried.
-
Fixed a bug related to pending operations
During document load, the document is saved. It fixes documents after a previous interrupted save.
-
Fixed the GET
/organization-statistics
methodThis method returns correct number of users connected to the Collaboration Server.
# Other changes
-
Updated dependencies
Updated selected dependencies to the latest versions - improved the performance and security.
-
Added more readable information about API secret to the management panel
Updated information describing the API secret
# 3.13.0 (2021-07-05)
# Features
-
Added metrics logs
The new logs allow to monitor the performance and stability of the Collaboration Server On-Premises.
More information can be found in the online documentation. -
Added a mechanism to prevent accidental disabling of the document storage feature in the Management Panel
Before disabling the document storage feature in the Management Panel, the user will be asked for confirmation.
-
Added the current license information to the Management Panel
The possibility of checking the current users’ limit and expiration time has been added to the Management Panel.
-
Added support for Redis TLS
Support for TLS connection with Redis databases has been added. More information can be found in our online documentation.
# Bug fixes
-
Added the
attributes
field to the comment’s webhooksThe field was missing in the payloads of webhooks related to the
comment.added
andcomment.updated
events.
# Other changes
-
Updated dependencies
Updated a part of the dependencies to the latest versions - improved the performance and security.
# 3.12.0 (2021-05-31)
# Features
-
Added support for a TLS connection to PostgreSQL
Added new configuration to enable connecting to a PostgreSQL database using a TLS connection without passing additional CA. Added an option to establish the connection to the server with an unverified certificate as well.
# Bug fixes
-
Added protection against loading incomplete document
Document loading now waits for the completion of processing the most recent save operation. It fixes a problem with loading documents containing incomplete data.
-
Removed false-positive log entries about connection timeout
A closed browser tab or an exceeded user limit no longer result in a
Disconnect a socket. A connection hasn't been authenticated in a period of time
log entry. -
Fixed setting the
created_at
property in comments REST APISetting the
created_at
property while creating comments through REST API is no longer ignored.
# Other changes
-
Introduced new E2E tests
New E2E tests have better stability and performance than the previous ones.
# 3.11.0 (2021-04-28)
# Features
-
Added a new implementation of Easy Image
The new implementation of Easy Image focuses on performance improvements.
# Bug fixes
-
Added a few fixes related to the document storage feature
Improved stability and reliability of the feature and fixed issue with saving comment markers after compressing already compressed document.
# Other changes
-
Increased document data expiration time for documents with enabled document storage feature
Thanks to this, collaboration sessions for documents that use the Document Storage feature are not removed after 1h and are loaded faster. Additionally, it resolves problems with connecting to non-existing documents - documents removed because of some time of the inactivity - for example, night break.
-
Updated dependencies
Updated a part of the dependencies to the latest versions - improved the performance and security.
# 3.10.0 (2021-03-31)
# Features
-
Added REST API endpoint
/v4/environment-statistics
which can be used to check environments statisticsCurrently this endpoint returns number of connected users to the particular environment with division into anonymous and non-anonymous.
-
Added sorting option for Webhooks and Webhooks requests view in the Management Panel
A list of Webhooks and Webhooks requests can be sorted by creation/sent data.
# Bug fixes
-
Stabilized the collaboration features
Stabilized the connection optimization and document storage features. Resolved the issue with missing content during document compression.
# Other changes
-
Reduced the number of logs
Stopped logging 4xx status code responses and error stack-traces.
# 3.9.1 (2021-02-22)
# Bug fixes
-
Displayed the proper REST API version in the Management Panel
The REST API link in the API Configuration section points to the latest version.
-
Stabilized the collaboration features
Stabilized the connection optimization and document storage features. Resolved the issue with missing content during document compression.
-
Reduced the number of logs
Remove non-meaningful logs such as:
- “Type comments-v2 doesn’t match to the service”
- “Skip sending changes to documents service”
# 3.9.0 (2021-01-28)
# Features
-
Added REST endpoint for checking if editor bundle exists
Added a new REST API endpoint
/v4/editors/{ bundleVersion }/exists
which can be used to check if the editor bundle with the specificbundleVersion
has been uploaded.
# Bug fixes
-
Stabilization of collaboration features
Stabilized document storage and connection optimization features for editors with EasyImage and PasteFromOffice plugins.
# 3.8.0 (2020-12-15)
# Features
-
Introduced webhooks retries
The retries system allows receiving webhooks that were unsuccessfully sent.
Such a case can occur when the customer application is not able to receive webhooks sent by On-Premises server properly.
Webhooks retries configuration has been added to the Management Panel. -
Added document restore feature
Added new REST API endpoint
/v4/collaborations/{document_id}/restore
which can be used when access to the document has been blocked due to the inability to save new operations in the document.
Such situation can only occur when the documents storage is turned on and unexpected error occur caused by custom plugins added with the uploaded editor. -
Added immediate document save in the storage after disconnecting all users
Previously, to get the final version of the document saved in storage, the collaboration session had to expire (1 hour) or be manually removed (by REST API).
Now, when all users disconnect from the document, it is immediately saved in the storage.
# Bug fixes
-
Fixed errors related to collaboration features
Errors:
track-changes-adapter-missing-getsuggestion: Adapter not set or is missing 'getSuggestion()' method.
,invalid-license-key: Invalid license key.
that occurred during saving a document in the storage or compressing operations have been fixed.
-
Allowed to upload and use editor bundle with EasyImage plugin by collaboration features
Previously, it was not possible to upload and use the editor that contained
EasyImage
plugin.
# Other changes
-
Improved the mechanism of saving document changes in the document storage
The improvements made allow to save all operations in the document until the operation causing the save error occurs.
These changes reduce data loss to a minimum in case of document saving error. -
Improved race-condition mechanism for operations applied to the documents in the collaborative session
-
Improved the performance for checking the existence of the editor bundle
-
Remove characters limit for attributes in Track Changes feature
The size limit of objects that can be stored in suggestion attributes (1024 characters) has been removed.
# 3.7.1 (2020-11-02)
# Bug fixes
-
Fixed errors related to collaboration features
Errors:
split-operation-graveyard-position-invalid: Graveyard position invalid.
,move-operation-nodes-do-not-exist: The nodes which should be moved do not exist
,Cannot read property 'is' of undefined
that occurred during saving a document in the storage or compressing operations have been fixed.
# Other changes
-
Added detailed error about requests restrictions for editor bundle
-
Improved stability of collaboration worker by preventing unnecessary retries during failed processing and by skipping requests with empty data.
# 3.7.0 (2020-10-06)
# Features
-
Added support for CKEditor 5 in version 23.0.0
-
Added collaboration documents REST endpoint
Added new REST endpoint ( GET
/collaborations
) for getting list of documents ids for the specified environment that are being edited. -
Added flush all documents data REST endpoint
Added a new REST API method ( DELETE
/collaborations
) for flushing all documents for the environment (by default, the flush will succeed if there are no connected users to document). -
Added possibility to test editor bundle using document content sent by customer
-
Added mechanism to block the collaboration writing when a document can’t be saved in the storage
Collaboration can be blocked when the document storage is turned on and document save in the storage fails. It prevents from adding new operations by users because there is no sense to store new operations which can’t be applied to the document. When the document is marked as stored not properly, connection to them is blocked too.
# Bug fixes
-
Improved performance for bigger documents
Working with large documents could have a negative impact on working with other smaller documents. Now, this problem should not generate an impact on other documents.
-
Fixed REST API versioning
Improved error handling when the endpoint does not exist and improved documentation for endpoints with multiple versions.
-
Improved editor bundle validation
Returned an original error from the browser during editor bundle validation.
# Other changes
-
Reduce the number of tests
The execution of all tests took about 13 minutes but they checked various extreme edge cases, which are tested many times by us. For this reason, we have reduced the number of tests.
The main components/features of the application are tested by the current set of tests to confirm that the application is working properly.
# 3.6.2 (2020-09-02)
# Bug fixes
-
Added support for using other editors than
ClassicEditor
by collaboration features like: document storage, import/export, and connection optimization.Previously, collaboration features could only be used when the uploaded editor bundle based on
ClassicEditor
.
Currently, it is possible to use editors like:InlineEditor
,BalloonEditor
,BalloonBlockEditor
, andDecoupledDocumentEditor
as the basis for the uploaded editor bundle. -
Added support for collaboration plugins.
Currently, it is possible to upload editor bundle which contains plugins such as:
RealTimeCollaborativeEditing
,RealTimeCollaborativeComments
,RealTimeCollaborativeTrackChanges
,PresenceList
orAutosave
. -
Allowed to pass SSL certificates to database driver used by collaboration features.
When the
database
was used asCOLLABORATION_STORAGE_DRIVER
, there was a problem to run the On-Premises server properly. -
Fixed tooltips display in Management Panel.
# Other changes
-
Allowed to pass database SSL certificate using
base64
encoded string.For some cloud hosting providers like
Azure
orAWS
, there was a problem with passing database SSL certificate as a one-liner where new lines was represented by a newline character\n
.
Therefore, support for SSL certificates provided inbase64
format has been added.Encode certificate to
base64
string usingNode.js
example:const fs = require( 'fs' ); const certificate = fs.readFileSync( 'path/to/certificate.pem' ); console.log( 'base64 encoded certificate:', certificate.toString( 'base64' ) );
You can also encode certificate to
base64
format using online tools. -
Improved token validation error messages.
# 3.6.1 (2020-08-19)
# Bug fixes
- Set
DATABASE_DRIVER
configuration variable as optional withmysql
as default value.
# 3.6.0 (2020-08-13)
Due to the change in the structure of the application file tree, for customers who run applications using Node.js instead of Docker images,
we highly recommend using the “Very safe” method of upgrading to a new version of On-Premises server.
See Upgrading to a new version - very safe for more details.
For customers who run applications using Node.js instead of Docker images, please make sure you installed dependencies for Chrome.
See Software prerequisites for more details.
# Features
-
Added import and export feature as an alternative to the autosave plugin.
This feature allows saving and loading the current collaboration data using server to server communication.
-
Added documents storage feature as the next alternative to the autosave plugin.
This feature allows permanently save the collaboration data in the On-Premises server.
-
Added operation history compression as optimization for connection to collaboration.
This feature can be enabled or disabled for the selected environment using Management Panel.
-
Added REST API for Track Changes feature.
-
Added queues system based on Redis.
In queues built on Redis approach, events are emitted to the Redis so other On-Premises server instances can receive events.
This feature has been added to ensure correct queuing of demanding operations such as document storage or import and export features. -
Improved performance of token validation.
-
Improved the performance of user session refreshing.
-
Allowed updating names of environments and access keys using Management REST API.
# Bug fixes
-
Fixed communication protocol used in Management Panel.
If
APPLICATION_EXTERNAL_ENDPOINT
has been specified then is used for base API address in Management Panel, otherwise, protocol fromx-forwarded-proto
header is used.
It fixesCould not establish connection.
error which occurs when connection to Management Panel has been established using HTTPS protocol. -
Increased time for authentication.
Fixed
Connection hasn't been authenticated in a period of time
error.
Due to different CKEditor usage on client-side sometimes there was a situation where the client-side was not able to send authentication request in a specific period of time because of a lack of resources like CPU.
There may also be delays in communicating with the database on server-side.
To avoid failing to authenticate, this time has been increased. -
Added token refreshing on reconnecting to collaboration.
Fixed
Connection hasn't been authenticated in a period of time.
error which happens after the browser has been idle for some time.
This fix is available in the new version of the client API library. -
Shortened connect time for documents with huge
initOperations
data.This fix is available in the new version of the client API library.
-
Fixed
Cannot access '_0x104788' before initialization
error which was thrown when a problem with the connection to the database occurs. -
Introduced comments deletion which were added to the removed suggestion.
-
Fixed performance problem with logging large data/buffers.
-
Allowed for graceful Redis failover.
-
Added reconnect on MySQL failover.
This is useful especially when the MySQL failover (e.g. Amazon RDS) is based on DNS and the Writer address needs to be resolved again.
-
Added error handling for errors that can occur during GIFs upload.
# Other changes
-
Added minor UI improvements and fixes for Management Panel.
-
Added to Management Panel new view which allows users to manage such features as document storage and history compression.
# 3.5.0 (2020-04-01)
# Features
-
Added UI improvements to the management panel.
Changed the misleading green color of buttons to red while prompting for removing. Added spinners to indicate long API requests.
-
Added checking of database privileges.
At start-up, the application checks if it has all the database permissions to eliminate all situations when some scripts cannot be executed due to the lack of permissions which may cause a problem with data inconsistencies and errors.
-
Added a database reporter.
Added the ability to generate reports with the database status. Reports are useful for diagnosing database-related problems. MySQL reports include states of migrations, database schema (tables, columns, and indexes), privileges of the current user and system variables. PostgreSQL reports include only migration states.
The command to generate the report:
docker run \ --network=docker_default \ -e DATABASE_DRIVER=mysql \ -e DATABASE_HOST=mysql-database \ -e DATABASE_USER=root \ -e DATABASE_PASSWORD=password \ docker.cke-cs.com/cs:3.5.0 \ node ./dist/index.js --database-report > report.md
# Bug fixes
-
Disabled rate limiter.
Disabled rate limiter which in some cases generated the “Too many requests” error.
For on-premises installations, rate limiter is not very useful because the number of users is usually known.
By default, rate limiter is disabled but it can be set up using these configuration variables:-
RATE_LIMITER_LIMIT
- The number of tokens at the beginning and the maximum number of tokens which can be collected. -
RATE_LIMITER_RENEW_AMOUNT
- The number of tokens that will be added to the pool everyRATE_LIMITER_RENEW_TIME
. -
RATE_LIMITER_RENEW_TIME
- The time of renewing tokens.
Rate limiter is based on the leaky bucket algorithm and is separate for each user and connection.
-
-
Fixed a problem with connecting anonymous users.
It is possible for users to connect to the system without a given ID. In this case, every user is treated as anonymous.
-
Improved token validation user experience.
In the event of problems with the token validation, more accurate error information is returned.
-
Fixed an internal problem with serializing messages.
In quite rare situations, there were internal errors related to message serialization.
# Other changes
- Removed unused triggers and columns from the comments table.
# 3.4.1 (2020-02-17)
# Bug fixes
-
Fixed performance.
Fixed the significant performance decrease from version 3.4.0.
-
Improved backward compatibility for JWT tokens that match RFC 7519.
# 3.4.0 (2020-02-13)
# Features
-
Added support for SSL SQL connections.
CKEditor Cloud Services now supports secure connections to SQL databases. It is possible to connect to databases using an SSL connection with custom SSL certificates.
-
Added support for JWT tokens that match RFC 7519.
The JWT standard specifies some predefined claims like
aud
(audience),exp
(expiration time),sub
(subject) oriat
(issued at). CKEditor Cloud Services usesaud
for identifying environments,iat
for checking if the token has not expired andsub
for identifying users. -
Simplified REST API for comments (v3).
Endpoints for REST API are unified. You can now filter comments to get or delete by filters in request query parameters like
document_id
orthread_id
. -
Changed the URL endpoint in REST API for sessions (v3).
Changed
/documents/{document_id}/users
to/collaborations/{document_id}/users
. -
Added improvements to the management panel login view.
# Bug fixes
-
Fixed a problem with numeric user ID.
Previously, the user ID had to be specified in the token as a string. This problem was resolved and the user ID can also be a number.
-
Improved the mechanism for hiding the access key in the management panel.
-
Fixed a bug with sending the restore event on a comment or suggestion creation.
-
Updated the UI of the REST API documentation.
# Other changes
-
Added support for Python 3.
Python 2.7 is no longer maintained. Added support for Python 3. This change applies only to applications launched with Node.js, not Docker.
# 3.3.0 (2020-01-15)
# Features
-
Added support for Node 12.
CKEditor Cloud Services now works with Node 12, which significantly improved the application performance and security. Image Docker uses Node 12.
-
Added support for PostgreSQL database.
CKEditor Cloud Services On-Premises can work with a MySQL or PostgreSQL database.
-
Added support for a few new drivers to store images in different locations.
Added support for a few drivers to store images in different locations (AWS S3, Azure Blob Storage, file system, MySQL) for Easy Image.
-
Introduced REST API v2.
Changed the endpoint addresses and introduced the new REST API documentation. Merged separated documentation into one OpenAPI definition and into one UI. Replaced Swagger UI with Redoc. Introduced versioning to the REST API documentation.
-
Introduced a mechanism to remove data related to a removed environment.
When the environment is removed, all data related to it is removed from databases.
-
Improvements in the dashboard.
Added a message about generating the API Secret. Added a redirect on a wrong or missing signature. A spinner is now shown in the management panel when resending a webhook request lasts long. Added support for webhook responses without a status.
-
Added support for new features from the new version of the JavaScript API.
Added a mechanism for getting information about users connected to the comments service. Added support for removing a comment thread via the client JavaScript API.
-
Encrypted webhook requests history.
All data related to sent webhook requests is stored in an encrypted form in the database.
# Bug fixes
-
Improved the performance and stability of the REST API.
-
Added cluster connection timeout.
-
Mitigated the problem with an anonymous session.
Improved the mechanism for storing information about users connected to the document.
# Other changes
-
Removed the
environments-management
console application.All management should be done via the web panel or REST API.
-
Stored comment content, email and user data in a binary form.
The data is stored in a binary form, which has improved performance.
-
Changed the pagination mechanism for comments and webhooks REST APIs.
Introduced the pagination method with a cursor.
# 3.2.0 (2019-10-29)
# Features
-
Added the
Management Panel
as a replacement for theEnvironments Management
console application.See CKEditor Cloud Services Management Panel.
The
Environments Management
console application is deprecated and will be removed in the next version. -
Added the Webhooks feature.
Webhooks resemble a notification mechanism that can be used to build integrations with CKEditor Cloud Services.
-
Added REST APIs.
CKEditor Cloud Services provides full-featured Restful APIs that you can use to create a server-to-server integration.
-
Added an API for CKEditor Cloud Services management (Environments and Webhooks).
-
The Comments and Suggestions data is now removed permanently when a collaboration session expired.
-
The Users and Comments data is now removed permanently during the Environment deletion.
# Bug fixes
- Fixed the number validation message for the received data.
# Other changes
-
Reduced the number of libraries installed required to run CKEditor Cloud Services.
-
Improved the data security by adding an initial vector to encrypted data.
-
Unified the API request signature.
-
Removed the README.md file from the package.
From now, the documentation will be available on CKEditor Ecosystem Documentation - On-Premises.
# 3.1.2 (2019-09-02)
# Features
-
Added features which are available in the new version of the client API library.
Every operation has a metadata object that contains additional information about an operation like information about its author or type.
-
Add JWT Token validation.
Added the token size and token user validation. A more detailed error about token validation failure is now returned. Max token payload size is 2048 bytes. User payload validation rules:
id - required (minLength:1, maxLength: 96), name - optional (minLength:1, maxLength: 100), email - optional (minLength:3, maxLength: 480),
# Bug fixes
-
Fixed the security E2E tests run from a remote machine.
-
Fixed the duplicated entry error in track changes.
-
Fixed an error with re-adding a comment with the same ID.
# Other changes
-
Reduced the number of libraries installed required to run CKEditor Cloud Services.
-
Add documentation about Docker hardware requirements to README.md.
-
Added the expiration time to encryption keys cache.
# 3.1.1 (2019-08-01)
# Bug fixes
- Set the UTC timezone in the database driver configuration.
# Other changes
- Added the
COLLABORATION_EXPIRATION_TIME
variable to the application configuration to allow changing the time after which the document will be deleted when the last user disconnects.
# 3.1.0 (2019-07-30)
# Features
-
Reduced the number of active SQL connections used by the CKEditor Cloud Services application to a single pool of connections.
-
Optimized database indices.
Improved the performance of queries to the SQL database by optimizing table indices after queries execution plan analysis.
-
Add the
/health
endpoint to the CKEditor Cloud Services application.The
/health
endpoint can be used by a load balancer to discover the availability of your application instances. -
Add input parameters validation.
Input parameters in a request such as
environmentId
,userId
,userEmail
,sessionId
,socketId
,apiVersion
,documentId
etc. are now validated. -
Added the
application/json
content type as the default header of the HTTP responses. -
Improved the security of the document comments management.
-
Added features which will be available with a new version of the client API library.
The new features will include the possibility to initialize a document as a reader or a commentator as well as will let you assign
authorId
to every document operation made in CKEditor Cloud Services.
# Bug fixes
-
Fixed errors that occured if a user was disconnected when a document operation was being processed.
-
Improved the stability of the event emitting system.
# Other changes
-
Increased the possible length of
userId
to 96. -
Deleted files that allow for building the Docker image manually.
Since our Docker images distribution system is ready, we do not recommend to build Docker images manually.
# 3.0.0 (2019-06-28)
# Features
-
Added support for Redis Cluster.
Increased the ability to scale the application. Added the
REDIS_CLUSTER_NODES
variable to configure the application to use Redis Cluster. See the application configuration or Docker container environment variables.An example of the
REDIS_CLUSTER_NODES
variable:[ { "host": "127.0.0.1", "port": 7000, "password": "" // optional } ]
-
Added the
MYSQL_PORT
variable to change the default port for MySQL. -
Introduced a new logging system to improve the readability and utility of logs.
Unified the logs format and introduced a
traceId
to add the possibility to aggregate logs for a specific situation. Improved the performance of the logging system.
# Bug fixes
-
Fixed token validation.
Added a clock tolerance (60 seconds) when checking the creation date of the token. This problem occured when a token was created on a server with an unsynchronized server date.
-
Allowed the resizing of images above their original dimensions in Easy Image.
-
The EXIF metadata rotation is no longer ignored by Easy Image.
# Other changes
-
Added the possibility to change the protocol to HTTPS in links returned for an uploaded file.
If the HTTPS protocol is used for uploading and if there is no possibility to configure a load balancer to forward the
X-Forwarded-Proto
andHost
headers, the application returns URLs with an incorrect protocol.Add
APPLICATION_EXTERNAL_ENDPOINT
to the application configuration to force using the HTTPS protocol in links returned for an uploaded file. See SSL communication. -
Improved error handling.
Unified the structure of errors. At this moment, every error has the following fields:
statusCode
,message
,data
andtraceId
. -
Optimized the data management algorithm in Redis by replacing
Redis Keyspace Notifications
to a custom implementation.The
Redis Keyspace Notifications
feature uses some CPU power which has a huge impact on the application when the number of connected users increases. Also, this solution is not reliable, because it is vulnerable on server restarts.At this moment a new, more reliable solution based on a custom implementation of Redis queues was introduced to the application. This solution does not require the
Redis Keyspace Notifications
mechanism. -
Added a cache for Redis scripts.
Used loaded scripts instead of sending Redis scripts for every operation.
# BREAKING CHANGES
-
Added the possibility to manage the application from a remote host.
Added
APPLICATION_ENDPOINT
, removedCS_CONFIG_PATH
and removedAPPLICATION_HTTP_PORT
variables inEnvironments Management
. See Environments Management.The current command to run the
Environments Management
:APPLICATION_ENDPOINT=[your_app_endpoint] ENVIRONMENTS_MANAGEMENT_SECRET_KEY=[your_env_management_secret_key] node app.js
-
Added the possibility to launch tests for the application from a remote host.
Added
APPLICATION_ENDPOINT
and removedAPPLICATION_HTTP_PORT
variables. See Testing the application.The current command to run tests:
APPLICATION_ENDPOINT=[your_app_endpoint] ENVIRONMENTS_MANAGEMENT_SECRET_KEY=[your_env_management_secret_key] CS_ENV_ID=[environmentId] CS_SECRET_KEY=[secretKey] npm run test
-
Removed support for
@ckeditor/ckeditor5-collaboration
version12.0.1
or older.