Data models

In this article, you will get familiar with basic data structures mentioned in other articles. To find more detailed information, please check one of the linked articles.

The diagram below, shows how the mentioned data structures are organized and how are they related.

Diagram of Cloud Services basic data separation.

# Organization

Organization is the widest entity in a context of Cloud Services provided by CKSource. Organization groups environments created by a customer. Depending on a case, single customer can have multiple, totally independent, organizations.

For CKEditor Collaboration Server On-premises customers there is only one, default organization in a context of a single application installation, what is fully transparent while using the application.

# Environment

A single organization consist of multiple environments, which ensures logical data separation.

Data of each environment are still held in a single database, however there are encrypted using individual keys. It ensures that there are not any chances to fetch others environment’s data by accident. Webhooks, editor bundles, document storage and other features needs to be configured separately for each environment.

One of use-cases of having multiple environments are multiple stages of the application, e.g. “Development”, “Staging”, “QA” and “Production”.

For an On-premises installation it allows to create multitenant applications, where each end-customer utilizes separate set of data with separated secrets, keys and encryption.

Environments can be managed through the CKEditor Customer Dashboard, or through the Management Panel in case of On-premises installations.

# Document

Document is a set of data representing the most basic entity in a context of the CKEditor Collaboration Server. It is logical structure, which describes linked pieces of information. In the application it is identified by documentId or channelId. Each document can have comments, suggestions, revisions, etc., assigned to it.

Documents can be also managed through the Documents API in the REST API.

# Editing/Collaboration session

While the real-time collaboration plugin connects to a specific document on a CKEditor Collaboration Server, a new editing session is created. The editing session in an instance of a document, which is held in a temporary memory, where all content changes from the editor are applied. Each user who connects to a single document, connects to the same editing session where all changes of content are propagated to all connected users.

An editing session can be initialized in a multiple ways, which are explained in a dedicated section.

24 hours after the last user disconnects, the editing session expires and it is removed from a temporary memory. The document content can be saved using various methods, depending on a use-case.

You can read more about saving documents in a more detailed guide.

Editing sessions can be managed using the Collaboration API in the REST API.