All Cerebro client applications connect to a central database. The database stores tasks and links between them, user information (including password hashes) and hashes of all attached files (files themselves are stored elsewhere, in decentralized storages, and are handled by Cargador service).
The central database is named Memoria. It runs on the PostgreSQL DBMS. Memoria consists of interconnected tables, accessed through stored procedures. Also, Memoria has an additional plugin for PostgreSQL to handle Gantt charts, user permissions and licence management – malosol.dll/so.
Cerebro users don’t have direct access to data tables. Access is provided by the client application, which calls a stored procedure. The procedure verifies user’s access rights and returns data accordingly. Thus, data is prevented from unauthorized access of low-level DBMS access utilities.
Also, stored procedures handle server-side “Business Logic”, modify data tables according to users’ queries, form statistics reports, etc.