Cockpit · architecture
How Cockpit is built, drawn from the repository alone: who and what it talks to, the areas the code is made of and what in them breaks the agreed boundaries, and where it runs.
Since the commit the live report was drawn from, 8bc1abf (2026-10-12), to d533189 (2026-10-12). Both are drawn by this generator, so a change to the generator alone is not listed.
Nothing changed.
Who uses Cockpit and the outside services it depends on, as tools/architecture/description.yml declares them.
Every area of the web app, the API and the packages, each on the row below everything that imports it, and a box per connector the description file declares. Only the shortest chain of imports is drawn, each arrow labelled with the files that make it. The marks are shown and nothing fails on them.
Each cell counts the files in the row's area importing the column's area, in dependency-chain order: each area stands above what it imports. The number beside a row is that area's source lines, tests excluded.
env.ts, worker.ts
The order is exact: every order of the 18 areas was weighed, up to 18. 0 import files point up.
| web | http | mcp | jobs | engines | connectors | auth | ai | accounts | embeddings | gateway | domain | db | connectors/teams | connectors/gmail | connector-sdk | shared | config | env.ts, worker.ts | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| web 37,714 | 67 | ||||||||||||||||||
| http 2,640 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||
| mcp 1,011 | 1 | 4 | 2 | 1 | 1 | 3 | 6 | ||||||||||||
| jobs 1,811 | 1 | 1 | 1 | 5 | 2 | 2 | 3 | 1 | 5 | ||||||||||
| engines 310 | 1 | 1 | 1 | ||||||||||||||||
| connectors 1,118 | 2 | 3 | 2 | 1 | 1 | 1 | 5 | 6 | |||||||||||
| auth 2,248 | 3 | 2 | 2 | 5 | |||||||||||||||
| ai 1,166 | 1 | 3 | 2 | 1 | |||||||||||||||
| accounts 18,529 | 1 | 9 | 2 | 6 | 14 | 5 | |||||||||||||
| embeddings 219 | 1 | 1 | |||||||||||||||||
| gateway 317 | 1 | 2 | |||||||||||||||||
| domain 2,419 | 12 | ||||||||||||||||||
| db 398 | 1 | ||||||||||||||||||
| connectors/teams 600 | 3 | ||||||||||||||||||
| connectors/gmail 1,288 | 4 | ||||||||||||||||||
| connector-sdk 385 | 1 | ||||||||||||||||||
| shared 3,498 | |||||||||||||||||||
| config 7 | |||||||||||||||||||
| env.ts, worker.ts 404 | 1 | 1 | 2 | 1 | 1 | 2 | 1 | 2 |
No two areas import each other.
Highlighted workflows deploy; the arrow goes to the environment they deploy. Each environment lists what it binds, under its own names; inherited marks a setting taken from the top of the Worker config.