mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-18 13:32:04 +02:00
The diagram had a cycle where node 'CLI' was inside subgraph 'CLI', creating: 'Setting CLI as parent of CLI would create a cycle' Fixed by renaming the node to 'CLIEP' (CLI Entrypoints) to avoid the naming conflict. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
65 lines
1.7 KiB
Markdown
65 lines
1.7 KiB
Markdown
# Architecture
|
|
|
|
This package provides the Odoo core runtime and the `base` addon. It sits at the center of every other addon.
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
subgraph CLI
|
|
OBIN[`odoo-bin`]
|
|
CLIEP[CLI Entrypoints]
|
|
end
|
|
subgraph Core
|
|
CONF[Config Loader]
|
|
SRV[Server Service]
|
|
REG[Registry]
|
|
ORM[Models and ORM]
|
|
MOD[Modules Loader]
|
|
HTTP[HTTP Layer]
|
|
QWEB[QWeb Templates]
|
|
TOOLS[Tools misc ustr date]
|
|
end
|
|
subgraph Services
|
|
PG[(PostgreSQL)]
|
|
CRON[Cron]
|
|
BUS[Bus]
|
|
I18N[I18n]
|
|
REPORT[Reports]
|
|
FS[(Filestore)]
|
|
end
|
|
subgraph Base Addon
|
|
IRM[ir.model and ir.model.fields]
|
|
IRUI[ir.ui.menu and ir.actions]
|
|
IRSEC[ir.model.access ir.rule res.groups]
|
|
RES[res.users res.partner res.company res.currency]
|
|
IRATT[ir.attachment]
|
|
IRCONF[ir.config_parameter]
|
|
end
|
|
|
|
OBIN --> CLIEP --> CONF --> SRV --> REG
|
|
SRV --> HTTP -->|routes| BaseControllers
|
|
SRV --> CRON
|
|
REG --> ORM --> PG
|
|
MOD --> REG
|
|
QWEB --> HTTP
|
|
ORM --> FS
|
|
ORM --> REPORT
|
|
ORM --> TOOLS
|
|
|
|
BaseControllers -.import.-> HTTP
|
|
IRM --> ORM
|
|
IRUI --> HTTP
|
|
IRSEC -. enforces .-> ORM
|
|
RES --> ORM
|
|
IRATT --> ORM
|
|
IRCONF --> ORM
|
|
|
|
BUS <--> HTTP
|
|
```
|
|
|
|
Key Points
|
|
- Registry: process-wide metadata for all models, caches, and methods.
|
|
- ORM: `models.Model`, fields, environment, and caching. All addons extend here.
|
|
- HTTP: WSGI app; controllers decorated with `@http.route` handle requests.
|
|
- Modules Loader: resolves addons path, reads manifests, installs/updates.
|
|
- Base Addon: provides the essential models that enable everything else.
|
|
- Services: PostgreSQL connections, cron workers, bus long-polling, i18n.
|