Changes between Version 9 and Version 10 of Public/Docs/CinnamonArchitecture


Ignore:
Timestamp:
Dec 29, 2025, 1:30:52 PM (2 days ago)
Author:
Administrator
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Public/Docs/CinnamonArchitecture

    v9 v10  
    1111The Cinnamon Server API is based on {{{http(s)}}}/{{{XML}}}. Find the documentation here: https://github.com/dewarim/cinnamon4/blob/master/docs/api.md
    1212
    13 The API can be exposed through {{{http}}} or {{{https}}}. In the most simple case, the server listens on http, thus, client processes running on the same machine can access the server without encryption (avoiding issuing certificates for local traffix, which is convenient for test and development setups). By firewall settings, this can be restricted to local access and access from a web proxy and / or a VPN, where encryption is added. Alternatively, the server can be configured to listen only on {{{https}}} by itself. The API client supports both, including handling of self-signed certificates for internal traffic.
     13The API can be exposed through {{{http}}} or {{{https}}}. In the most simple case, the server listens on http, thus, client processes running on the same machine can access the server without encryption (avoiding issuing certificates for local traffix, which is convenient for test and development setups). By firewall settings, this can be restricted to local access and access from a web proxy and / or a VPN, where encryption is added. Alternatively, the server can be configured to listen only on {{{https}}} by itself. The API client supports both, including handling of
     14self-signed certificates for internal traffic.
     15
     16No customization of a Cinnamon system is applied to the server. The core server is a standard application under an Open Source license, and thus, can be used and distributed without license fees.
     17Rather, customization is applied by using plugins for CAE or Change Trigger, by extending the Windows desktop client CDCplus or by building a custom web frontend.
    1418
    1519=== Database
     
    3034
    3135=== Index
     36Cinnamon uses the Open Source indexing engine **Lucene** (https://lucene.apache.org/) to enable full-text, system data or metadata search on objects and folders. Index entries are associated with the ID of the indexed asset and are based on named fields, standard ones (like name, creation date, language or owner) and custom ones (like product association, target group of a DITA topic or width and height in pixels of a bitmap). The custom index items are configurable and seamlessly integrate with the standard ones in search, and the search and metadata GUI.
     37The index is fast and does not significantly slow down with very many objects in the server.
    3238
    3339=== tika
     40Index items as described before are based on {{{XPath}}}. Since metadata, XML content and system data are exposed to the index engine as XML, {{{XPath}}} is a convenient way to find all content in the XML structure to be indexed to a specific field name.
     41This would not work with binary data like Word documents, PDF files or JPG images though. Therefore, content formats that are not by themselves "machine-readable" (Cinnamon supports XML, plain text or JSON) are converted to XML by the Open Source software **tika** (https://tika.apache.org/).
     42
     43The result is {{{XHTML}}} which is stored as XML metadata in Cinnamon. From there, regular index items can pick the content up and have it indexed. This is more powerful than a flat full-text index. More specific index items can, for example, extract only content that is in tables, or in an Excel document, access only data in specific sheets, or index the dimensions in pixels for bitmap files - anything that can be expressed in {{{XPath}}}.
    3444
    3545=== CAE