# presley-rocha/glpi architecture

> Architecture diagram of the GitHub repository presley-rocha/glpi, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/presley-rocha/glpi
- Repository: https://github.com/presley-rocha/glpi

## Overview

GLPI is a web-based IT asset and service-management system. Users access its web interface to manage assets, submit and work service requests, and use related knowledge, planning, and administration features; the README documents these product capabilities, while the sampled web entry point names the application kernel. Domain modules cover assets, ITIL work, forms, knowledge, and supporting management functions, with shared persistence, session, and rendering layers. The graph combines documented capabilities with sampled runtime links; unsampled subsystem wiring is intentionally not asserted.

Main entry points: [`src/Glpi/Form/Form.php`](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Form/Form.php) (Form management), [`src/Glpi/Kernel/Kernel.php`](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Kernel/Kernel.php) (Application kernel), [`src/Glpi/Controller/Form/Condition/EngineController.php`](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Controller/Form/Condition/EngineController.php) (Condition endpoint), [`src/CommonDBTM.php`](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/CommonDBTM.php) (Common item persistence)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Web runtime"]
  node_web["Web entry point<br/>[index.php]"]
  node_kernel["Application kernel<br/>[Kernel.php]"]
  node_condition_api["Condition endpoint"]
  node_form_import["Form import preview"]
  node_console["Console application<br/>[Application.php]"]
end

subgraph group_service["Service management"]
  node_forms["Form management<br/>[Form.php]"]
  node_conditions["Form conditions<br/>[Engine.php]"]
  node_tickets["Request and ITIL work"]
  node_knowledge["Knowledge base<br/>[KnowbaseItem.php]"]
  node_planning["Intervention planning<br/>[planning.php]"]
  node_search["Search engine<br/>[SearchEngine.php]"]
  node_form_comment["Form comments<br/>[Comment.php]"]
end

subgraph group_resources["IT resources"]
  node_assets["Asset management<br/>[Computer.php]"]
  node_dcim["Data center assets<br/>[DCRoom.php]"]
  node_software["Software and licenses"]
  node_contracts["Contracts and finance<br/>[Contract.php]"]
  node_reservations["Asset reservations<br/>[Reservation.php]"]
end

subgraph group_shared["Shared services"]
  node_dbitems["Common item persistence<br/>[CommonDBTM.php]"]
  node_database[("Database access<br/>[DBmysql.php]")]
  node_session["Session and rights<br/>[Session.php]"]
  node_entity["Entity separation<br/>[Entity.php]"]
  node_groups["Groups and teams<br/>[Group.php]"]
  node_renderer["Template rendering"]
  node_html["Interface helpers<br/>[Html.php]"]
  node_plugin["Plugin integration<br/>[Plugin.php]"]
  node_marketplace["Marketplace<br/>[View.php]"]
  node_oauth["OAuth clients<br/>[OAuthClient.php]"]
  node_common_glpi["Common GLPI base<br/>[CommonGLPI.php]"]
  node_query_function["Database query functions<br/>[QueryFunction.php]"]
  node_log["Audit logging<br/>[Log.php]"]
  node_toolbox["General utilities<br/>[Toolbox.php]"]
end

node_user(("GLPI user"))

node_user -.->|"uses"| node_web
node_web -->|"boots"| node_kernel
node_kernel -.->|"routes requests"| node_forms
node_condition_api -->|"loads form"| node_forms
node_condition_api -->|"computes visibility"| node_conditions
node_form_import -->|"checks permission"| node_forms
node_conditions -->|"evaluates form items"| node_form_comment
node_forms -->|"manages comments"| node_form_comment
node_user -.->|"requests support"| node_tickets
node_user -.->|"manages assets"| node_assets
node_user -.->|"uses knowledge base"| node_knowledge
node_user -.->|"plans interventions"| node_planning
node_user -.->|"manages data center"| node_dcim
node_user -.->|"tracks licenses"| node_software
node_user -.->|"manages contracts"| node_contracts
node_user -.->|"reserves assets"| node_reservations
node_user -.->|"searches records"| node_search
node_dbitems -->|"persists records"| node_database
node_dbitems -->|"records history"| node_log
node_session -->|"loads entity"| node_entity
node_session -->|"loads groups"| node_groups
node_oauth -->|"renders form"| node_renderer
node_renderer -->|"loads plugin templates"| node_plugin
node_console -->|"boots"| node_kernel
node_marketplace -.->|"extends GLPI"| node_plugin

click node_web "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/public/index.php"
click node_kernel "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Kernel/Kernel.php"
click node_forms "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Form/Form.php"
click node_conditions "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Form/Condition/Engine.php"
click node_condition_api "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Controller/Form/Condition/EngineController.php"
click node_form_import "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Controller/Form/Import/Step2PreviewController.php"
click node_tickets "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/CommonITILObject.php"
click node_knowledge "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/KnowbaseItem.php"
click node_planning "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/front/planning.php"
click node_search "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Search/SearchEngine.php"
click node_assets "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Computer.php"
click node_dcim "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/DCRoom.php"
click node_software "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/SoftwareLicense.php"
click node_contracts "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Contract.php"
click node_reservations "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Reservation.php"
click node_dbitems "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/CommonDBTM.php"
click node_database "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/DBmysql.php"
click node_session "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Session.php"
click node_entity "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Entity.php"
click node_groups "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Group.php"
click node_renderer "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Application/View/TemplateRenderer.php"
click node_html "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Html.php"
click node_plugin "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Plugin.php"
click node_marketplace "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Marketplace/View.php"
click node_oauth "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/OAuthClient.php"
click node_console "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Console/Application.php"
click node_common_glpi "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/CommonGLPI.php"
click node_query_function "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/DBAL/QueryFunction.php"
click node_form_comment "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Form/Comment.php"
click node_log "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Log.php"
click node_toolbox "https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Toolbox.php"

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_web,node_kernel,node_condition_api,node_form_import,node_console,node_user toneBlue
class node_forms,node_conditions,node_tickets,node_knowledge,node_planning,node_search,node_form_comment toneAmber
class node_assets,node_dcim,node_software,node_contracts,node_reservations toneMint
class node_dbitems,node_database,node_session,node_entity,node_groups,node_renderer,node_html,node_plugin,node_marketplace,node_oauth,node_common_glpi,node_query_function,node_log,node_toolbox toneRose
```

## Components

### Web runtime

- [Web entry point](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/public/index.php): `public/index.php`
- [Application kernel](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Kernel/Kernel.php): `src/Glpi/Kernel/Kernel.php`
- [Condition endpoint](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Controller/Form/Condition/EngineController.php): `src/Glpi/Controller/Form/Condition/EngineController.php`
- [Form import preview](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Controller/Form/Import/Step2PreviewController.php): `src/Glpi/Controller/Form/Import/Step2PreviewController.php`
- [Console application](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Console/Application.php): `src/Glpi/Console/Application.php`

### Service management

- [Form management](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Form/Form.php): `src/Glpi/Form/Form.php`
- [Form conditions](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Form/Condition/Engine.php): `src/Glpi/Form/Condition/Engine.php`
- [Request and ITIL work](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/CommonITILObject.php): `src/CommonITILObject.php`
- [Knowledge base](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/KnowbaseItem.php): `src/KnowbaseItem.php`
- [Intervention planning](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/front/planning.php): `front/planning.php`
- [Search engine](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Search/SearchEngine.php): `src/Glpi/Search/SearchEngine.php`
- [Form comments](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Form/Comment.php): `src/Glpi/Form/Comment.php`

### IT resources

- [Asset management](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Computer.php): `src/Computer.php`
- [Data center assets](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/DCRoom.php): `src/DCRoom.php`
- [Software and licenses](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/SoftwareLicense.php): `src/SoftwareLicense.php`
- [Contracts and finance](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Contract.php): `src/Contract.php`
- [Asset reservations](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Reservation.php): `src/Reservation.php`

### Shared services

- [Common item persistence](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/CommonDBTM.php): `src/CommonDBTM.php`
- [Database access](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/DBmysql.php): `src/DBmysql.php`
- [Session and rights](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Session.php): `src/Session.php`
- [Entity separation](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Entity.php): `src/Entity.php`
- [Groups and teams](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Group.php): `src/Group.php`
- [Template rendering](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Application/View/TemplateRenderer.php): `src/Glpi/Application/View/TemplateRenderer.php`
- [Interface helpers](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Html.php): `src/Html.php`
- [Plugin integration](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Plugin.php): `src/Plugin.php`
- [Marketplace](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/Marketplace/View.php): `src/Glpi/Marketplace/View.php`
- [OAuth clients](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/OAuthClient.php): `src/OAuthClient.php`
- [Common GLPI base](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/CommonGLPI.php): `src/CommonGLPI.php`
- [Database query functions](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Glpi/DBAL/QueryFunction.php): `src/Glpi/DBAL/QueryFunction.php`
- [Audit logging](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Log.php): `src/Log.php`
- [General utilities](https://github.com/presley-rocha/glpi/blob/11.0/bugfixes/src/Toolbox.php): `src/Toolbox.php`

### Other components

- **GLPI user**

## Connections

- GLPI user → Web entry point: uses
- Web entry point → Application kernel: boots (evidence: `public/index.php`)
- Application kernel → Form management: routes requests
- Condition endpoint → Form management: loads form (evidence: `src/Glpi/Controller/Form/Condition/EngineController.php`)
- Condition endpoint → Form conditions: computes visibility (evidence: `src/Glpi/Controller/Form/Condition/EngineController.php`)
- Form import preview → Form management: checks permission (evidence: `src/Glpi/Controller/Form/Import/Step2PreviewController.php`)
- Form conditions → Form comments: evaluates form items (evidence: `src/Glpi/Form/Condition/Engine.php`)
- Form management → Form comments: manages comments (evidence: `src/Glpi/Form/Form.php`)
- GLPI user → Request and ITIL work: requests support
- GLPI user → Asset management: manages assets
- GLPI user → Knowledge base: uses knowledge base
- GLPI user → Intervention planning: plans interventions
- GLPI user → Data center assets: manages data center
- GLPI user → Software and licenses: tracks licenses
- GLPI user → Contracts and finance: manages contracts
- GLPI user → Asset reservations: reserves assets
- GLPI user → Search engine: searches records
- Common item persistence → Database access: persists records (evidence: `src/CommonDBTM.php`)
- Common item persistence → Audit logging: records history (evidence: `src/CommonDBTM.php`)
- Session and rights → Entity separation: loads entity (evidence: `src/Session.php`)
- Session and rights → Groups and teams: loads groups (evidence: `src/Session.php`)
- OAuth clients → Template rendering: renders form (evidence: `src/OAuthClient.php`)
- Template rendering → Plugin integration: loads plugin templates (evidence: `src/Glpi/Application/View/TemplateRenderer.php`)
- Console application → Application kernel: boots (evidence: `src/Glpi/Console/Application.php`)
- Marketplace → Plugin integration: extends GLPI
