# carlaau/aardio-erp architecture

> Architecture diagram of the GitHub repository carlaau/aardio-erp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/carlaau/aardio-erp
- Repository: https://github.com/carlaau/aardio-erp

## Overview

Aardio ERP is an Aardio enterprise-application framework combining an ERP client, CGI and RPC services, shared libraries, database support, and online updates. Its principal workflow is to configure and deploy the server and database, build business applications on the modular client, and let deployed clients check for and apply updates. The README documents these capabilities and deployment relationships; no source excerpts were provided, so internal calls and detailed request flow are not asserted.

Main entry points: [`aardio-erp/default.main.aardio`](https://github.com/carlaau/aardio-erp/blob/master/aardio-erp/default.main.aardio) (ERP client framework), [`aardio-erp/rpc/wwwroot/system`](https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/rpc/wwwroot/system) (Web RPC endpoint), [`lib/carl/mssql.aardio`](https://github.com/carlaau/aardio-erp/blob/master/lib/carl/mssql.aardio) (MSSQL support), [`lib/carl/mysql.aardio`](https://github.com/carlaau/aardio-erp/blob/master/lib/carl/mysql.aardio) (MySQL support)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["ERP client"]
  node_client_app["ERP client framework"]
  node_client_config["Client configuration<br/>[config.aardio]"]
  node_ui["Layouts and screens"]
  node_permissions["User and permissions"]
end

subgraph group_services["Server services"]
  node_cgi["CGI service<br/>[main.aardio]"]
  node_rpc_server["RPC service<br/>[main.aardio]"]
  node_web_rpc["Web RPC endpoint"]
  node_service_config["Server configuration<br/>[config.aardio]"]
end

subgraph group_shared["Shared framework"]
  node_shared_lib["Shared base library"]
  node_rpc_lib["RPC library"]
  node_mvc_lib["MVC library"]
  node_report_lib["Reporting library"]
end

subgraph group_data["Data and access"]
  node_sql_lib["SQL library<br/>[sql.aardio]"]
  node_mssql_driver["MSSQL support<br/>[mssql.aardio]"]
  node_mysql_driver["MySQL support<br/>[mysql.aardio]"]
  node_database[("Database")]
end

subgraph group_updates["Online updates"]
  node_updater["Automatic updater<br/>[update.aardio]"]
  node_update_host["Update hosting"]
end

node_operator(("Deployer"))
node_business_user(("Business user"))

node_operator -->|"deploys via"| node_cgi
node_operator -->|"deploys"| node_web_rpc
node_operator -->|"initializes"| node_database
node_business_user -.->|"uses"| node_client_app
node_client_app -.->|"uses RPC"| node_web_rpc
node_client_config -->|"configures"| node_client_app
node_service_config -->|"configures"| node_web_rpc
node_operator -->|"publishes package"| node_update_host
node_client_app -->|"checks updates"| node_updater
node_updater -->|"fetches update"| node_update_host
node_operator -->|"chooses database"| node_mssql_driver
node_operator -->|"chooses database"| node_mysql_driver
node_mssql_driver -->|"supports"| node_database
node_mysql_driver -->|"supports"| node_database

click node_client_app "https://github.com/carlaau/aardio-erp/blob/master/aardio-erp/default.main.aardio"
click node_client_config "https://github.com/carlaau/aardio-erp/blob/master/aardio-erp/lib/config.aardio"
click node_ui "https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/res"
click node_permissions "https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/res/System"
click node_cgi "https://github.com/carlaau/aardio-erp/blob/master/aardio-cgi/main.aardio"
click node_rpc_server "https://github.com/carlaau/aardio-erp/blob/master/aardio-rpc/main.aardio"
click node_web_rpc "https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/rpc/wwwroot/system"
click node_service_config "https://github.com/carlaau/aardio-erp/blob/master/aardio-erp/rpc/wwwroot/system/config.aardio"
click node_shared_lib "https://github.com/carlaau/aardio-erp/tree/master/lib/carl"
click node_rpc_lib "https://github.com/carlaau/aardio-erp/tree/master/lib/carl/rpc"
click node_mvc_lib "https://github.com/carlaau/aardio-erp/tree/master/lib/carl/mvc"
click node_report_lib "https://github.com/carlaau/aardio-erp/tree/master/lib/carl/report"
click node_sql_lib "https://github.com/carlaau/aardio-erp/blob/master/lib/carl/sql.aardio"
click node_mssql_driver "https://github.com/carlaau/aardio-erp/blob/master/lib/carl/mssql.aardio"
click node_mysql_driver "https://github.com/carlaau/aardio-erp/blob/master/lib/carl/mysql.aardio"
click node_updater "https://github.com/carlaau/aardio-erp/blob/master/lib/carl/update.aardio"
click node_update_host "https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/rpc/wwwroot"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_client_app,node_client_config,node_ui,node_permissions,node_business_user toneBlue
class node_cgi,node_rpc_server,node_web_rpc,node_service_config toneAmber
class node_shared_lib,node_rpc_lib,node_mvc_lib,node_report_lib toneMint
class node_sql_lib,node_mssql_driver,node_mysql_driver,node_database toneRose
class node_updater,node_update_host,node_operator toneIndigo
```

## Components

### ERP client

- [ERP client framework](https://github.com/carlaau/aardio-erp/blob/master/aardio-erp/default.main.aardio): `aardio-erp/default.main.aardio`
- [Client configuration](https://github.com/carlaau/aardio-erp/blob/master/aardio-erp/lib/config.aardio): `aardio-erp/lib/config.aardio`
- [Layouts and screens](https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/res): `aardio-erp/res`
- [User and permissions](https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/res/System): `aardio-erp/res/System`

### Server services

- [CGI service](https://github.com/carlaau/aardio-erp/blob/master/aardio-cgi/main.aardio): `aardio-cgi/main.aardio`
- [RPC service](https://github.com/carlaau/aardio-erp/blob/master/aardio-rpc/main.aardio): `aardio-rpc/main.aardio`
- [Web RPC endpoint](https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/rpc/wwwroot/system): `aardio-erp/rpc/wwwroot/system`
- [Server configuration](https://github.com/carlaau/aardio-erp/blob/master/aardio-erp/rpc/wwwroot/system/config.aardio): `aardio-erp/rpc/wwwroot/system/config.aardio`

### Shared framework

- [Shared base library](https://github.com/carlaau/aardio-erp/tree/master/lib/carl): `lib/carl`
- [RPC library](https://github.com/carlaau/aardio-erp/tree/master/lib/carl/rpc): `lib/carl/rpc`
- [MVC library](https://github.com/carlaau/aardio-erp/tree/master/lib/carl/mvc): `lib/carl/mvc`
- [Reporting library](https://github.com/carlaau/aardio-erp/tree/master/lib/carl/report): `lib/carl/report`

### Data and access

- [SQL library](https://github.com/carlaau/aardio-erp/blob/master/lib/carl/sql.aardio): `lib/carl/sql.aardio`
- [MSSQL support](https://github.com/carlaau/aardio-erp/blob/master/lib/carl/mssql.aardio): `lib/carl/mssql.aardio`
- [MySQL support](https://github.com/carlaau/aardio-erp/blob/master/lib/carl/mysql.aardio): `lib/carl/mysql.aardio`
- **Database**

### Online updates

- [Automatic updater](https://github.com/carlaau/aardio-erp/blob/master/lib/carl/update.aardio): `lib/carl/update.aardio`
- [Update hosting](https://github.com/carlaau/aardio-erp/tree/master/aardio-erp/rpc/wwwroot): `aardio-erp/rpc/wwwroot`

### Other components

- **Deployer**
- **Business user**

## Connections

- Deployer → CGI service: deploys via (evidence: `README.md`)
- Deployer → Web RPC endpoint: deploys (evidence: `README.md`)
- Deployer → Database: initializes (evidence: `README.md`)
- Business user → ERP client framework: uses
- ERP client framework → Web RPC endpoint: uses RPC
- Client configuration → ERP client framework: configures (evidence: `README.md`)
- Server configuration → Web RPC endpoint: configures (evidence: `README.md`)
- Deployer → Update hosting: publishes package (evidence: `README.md`)
- ERP client framework → Automatic updater: checks updates (evidence: `README.md`)
- Automatic updater → Update hosting: fetches update (evidence: `README.md`)
- Deployer → MSSQL support: chooses database (evidence: `README.md`)
- Deployer → MySQL support: chooses database (evidence: `README.md`)
- MSSQL support → Database: supports (evidence: `README.md`)
- MySQL support → Database: supports (evidence: `README.md`)
