# Eximee Core modules

**Eximee Core** constitutes the technological foundation of the Eximee Platform.\
It contains components responsible for data durability, process execution, document generation, central configuration management, and repository storage of application artifacts.\
These modules are shared by all low-code applications built in the Eximee environment.

## Eximee FormStore

### **General description**

`Eximee FormStore` is a high-performance repository for documents and data structures created during the execution of business processes (applications, instructions, contracts).\
It is a key element ensuring **data durability** in Eximee Platform and integration with external systems in the area of document storage and sharing.

### **The functionality**

* Storage:
  * files generated by users or automatically (e.g. PDF, XML, CSV),
  * data structures (e.g. JSON) created in low-code processes,
  * metadata and object versioning.
* Data sharing through a unified API.
* Integration with Eximee Document Generator, Eximee BPMS, and Eximee Case Management.
* Possibility of storing documents:
  * locally (internal repository),
  * in external ECM/DMS systems (e.g. a bank repository),
  * on permanent storage media (compliant with KNF requirements).

### **Technical features**

* Performance- and scalability-oriented optimization (binary storage + metadata cache).
* Ability to configure namespaces and separate environment data.
* REST API providing access controlled by domain permissions.

## Eximee Document Generator

### **General description**

`Eximee Document Generator` is a component responsible for automatically creating PDF documents based on templates prepared in `Document Generator Tools`.\
Its task is **consistent and repeatable document generation** in customer processes – from applications, through contracts, to confirmations and reports.

### **The functionality**

* Document generation in three contexts:
  * **at the end of the form** (e.g. application summary),
  * **during the process** (e.g. contract draft),
  * **as part of an automatic task** in BPMS.
* Use of dynamic templates (with conditional section visibility).
* Support for barcodes and QR codes.
* Ability to sign the document (bank seal, qualified signature).
* Saving documents in:
  * Eximee FormStore,
  * external ECM,
  * permanent storage system.

### **Integrations**

* With `Eximee Model Runtime` (retrieving application model data),
* With `Eximee Configuration Server` (retrieving environment parameters, branding),
* With external systems via API (e.g. email document sending, Contact Center).

## EximeeBPMS

### **General description**

`EximeeBPMS` (Business Process Management System) is a business process engine based on the notation **BPMN 2.0**, enabling the modeling, execution, and monitoring of business processes.\
It has been extended with components supporting **Case Management**, integration with Eximee Forms, and case and task lifecycle management.

### **The functionality**

* Running BPMN processes (engine derived from *Camunda 7* or an alternative).
* Defining user tasks and service tasks from the Process Designer level.
* Integration with:
  * Eximee Forms – as the process user interface,
  * Eximee Model Runtime – as the source of business data,
  * Eximee Document Generator – as the service generating documents during the process.
* Aggregation of process data and history for Case Management purposes.
* Handling system events (Event-Based Architecture).

### **Technical features**

* Modular architecture with the ability to replace the process engine (BPMN 2.0 compliant).
* Storage of a minimal scope of data in the engine (lightweight BPMS).
* Integration with external event brokers (Kafka, RabbitMQ).

## Eximee Data Model Runtime

### **General description**

`Eximee Data Model Runtime` is a central component storing data for applications created in the low-code model.\
It enables access to data from forms, processes, and application services alike.

### **The functionality**

* Storing data according to the structure designed in *Data Model Designer*.
* Support for relationships, validation, and TTL rules.
* API for form components, processes, and handlers.
* Support for real-time data updates.
* Management of dynamic and temporary data (cache, in-memory).

### **Technical features**

* Data structure independent of the BPMS engine.
* Data security mechanisms (masking, access control).
* Ability to be used as an integration layer with external databases.

## Eximee Configuration Server

### **General description**

`Eximee Configuration Server` is a centralized service providing configuration parameters for Eximee applications.\
It allows defining global, environment, and secret values (secrets).

### **The functionality**

* Storage and sharing of configuration:
  * default (application),
  * environmental (e.g. test, prod),
  * secret (through integration with Vault).
* Support for dynamic configuration changes (hot reload).
* GUI for configuration management (module `Eximee Dashboard`).
* Validation of the correctness of configuration structures.

### **Technical features**

* Compliance with the structure of low-code application configuration.
* Ability to version configuration sets.
* REST API for client applications.

## Eximee Repository

### **General description**

`Eximee Repository` is a secure repository of platform artifacts, storing all definitions of Eximee applications created (forms, processes, templates, data models, configurations).\
It provides version control, migrations between environments, and publication of artifacts for client systems.

### **The functionality**

* Storage of application artifacts with full versioning.
* Building complex artifacts from constituent components (composition).
* Migration of applications between environments (export/import with dependency control).
* Access control and permissions for artifacts.
* Publishing definitions for external clients (e.g. Eximee Forms).

### **Technical features**

* Support for integration with AD/LDAP for user authorization.
* Change logging and version history.
* API for automating CI/CD migrations.
