Likpi CMDB Configuration¶
This guide covers the core configuration of the Likpi CMDB application, split into backend initialization settings and runtime system settings managed via the user interface.
Backend Initialization (config.json)¶
The config.json file contains the critical infrastructure parameters required for the Java Vert.x backend to establish database connections and bind to the correct network port. Access to this file must be secured (e.g., chmod 600).
{
"server": {
"port": 8888
},
"gitops": {
"webhook_secret": ""
},
"database": {
"port": 5432,
"host": "localhost",
"database": "cmdb",
"user": "cmdbdba",
"password": "db_password",
"pool_size": 20
}
}
- Database Pool Size: The
pool_sizeparameter defines the maximum number of concurrent connections to PostgreSQL. For large environments, increasing this value improves API throughput but consumes more database memory.
System Configuration via UI¶
Once the system is running, administrators can access the System Configuration module via the frontend UI to finetune operational behavior. The UI is divided into Core Configuration and LDAP Mappings.
Core Configuration (Tab 1)¶
Security & Identity
- LDAP / Active Directory Engine: Configure your LDAP URL, Bind DN, and Base DNs to enable directory synchronization and authentication.
- Security: Define the JWT session timeout duration (in minutes) and securely rotate the secret key used to sign authentication tokens.
- Access Logs: Set the retention period (in days) for authentication records before they are automatically purged.
System Timers & Notifications
- Timers & Polling (ms): Adjust background system timers in milliseconds, including standard queue polling, Sandbox fast-lane polling, log cleanup routines, and WebSocket keep-alive pings.
- SMTP & Email Settings: Enable global outbound notifications and configure your SMTP host, port, TLS strategy (NONE, STARTTLS, SSL/TLS), and authentication credentials to allow the CMDB to send alerts.
- Job Scheduler: Configure the stale timeout (in minutes) interval before a hanging background job is marked as failed.
Data Processing & Performance
- Data Processing & Merge: Tune the
ci_batch_size,relation_batch_size, andrelation_chunk_sizeto control memory consumption and parallelization during massive integrations. - Graph Traversal: Set the max graph depth limit (e.g., 15) to prevent infinite loops and optimize performance during recursive topological queries.
- UI Display Limits: Configure the History Timeline Limit to cap the maximum number of audit logs fetched and displayed on the frontend, preventing browser memory exhaustion.
Data Lifecycle & Multi-Tenancy
- Audit History: Enable comprehensive CI tracking globally, or exclude specific noisy classes from being audited to save database storage.
- Aging Policy: Specify classes that are immune to automated stale-data retirement.
- Orphan Detection: Set the maximum rows to scan per sweep and protect specific classes from being flagged in the orphans dashboard.
- Visibility Profiles: Create restrictive profiles that exclude specific CI classes or CTIM (Class, Category, Type, Item, Model) rules from being viewed by assigned tenant groups.
- Multi-Tenancy: Control the cache refresh interval to balance real-time RBAC updates with backend CPU load.
Identity Synchronization (Tab 2)¶
The LDAP Mappings tab allows administrators to seamlessly translate external directory groups into internal CMDB roles.
- Create Mapping: Map an external
LDAP Group DN(e.g., CN=AppAdmins,OU=Groups,DC=company,DC=com) to an existing internalTarget CMDB Group. When users log in, the CMDB will automatically evaluate their LDAP memberships against this table to provision their access levels (Admin, Editor, Viewer) dynamically.
Frontend UI Customization (config.ts / config.js)¶
The Likpi CMDB React frontend allows administrators to customize visual semantics, AI limits, and graph behaviors without having to recompile the application (Zero-Rebuild Theming). This is managed via the global window.APP_CONFIG object, typically injected through a config.js file located in the web server’s public root directory.
Global Limits & Thresholds¶
- maxVisibleCIs: The maximum number of Configuration Items allowed on the Graph Explorer canvas before blocking further additions. This acts as a circuit breaker to prevent browser memory exhaustion (Default: 300).
- groupingThreshold: The threshold used by the layout engine to determine when densely packed adjacent nodes should be automatically collapsed into a cluster (Default: 5).
- customAttributesPerTab: Defines how many custom attributes are displayed per column/tab in the CI Editor panel before wrapping (Default: 10).
- maxAiChatMessages: Limits the length of the conversational memory passed to the AIOps/NL2SQL engine to conserve tokens and reduce external API costs (Default: 10).
Visual Ontology Mapping¶
These settings map your CMDB data dictionary directly to visual assets on the frontend.
- defaultIcon: The fallback Lucide-React icon applied to a CI if its class is not explicitly mapped (Default: “Circle”).
- classIcons: A dictionary mapping exact CI Class Names to Lucide icon names. By default, the system maps over 20 standard classes (e.g.,
COMPUTERSYSTEMtopc-case,DATABASEtodatabase, andORGANIZATIONtobuilding). - relationColors: A dictionary associating Relationship Class Names to specific HEX color codes, allowing you to visually distinguish infrastructure paths. By default,
BASE_RELATIONSHIPis Blue (#3b82f6),RUNS_ONis Yellow (#dbc60a), andDEPENDENCYis Red (#ef4444).
Health & Status Indicators¶
These settings define the interactive status badges that float on the corners of CI nodes within the Graph Explorer.
- statusIndicators: Maps the physical corners of a node to specific JSON attributes in the CI payload. By default:
- topLeft: Monitors the
ci_statusattribute. - topRight: Monitors the
incident_statusattribute. - bottomLeft: Monitors the
change_statusattribute. - bottomRight: Monitors the
vulnerabilityattribute.
- topLeft: Monitors the
- statusColors: A nested dictionary that assigns semantic HEX colors to the specific values returned by the attributes above. It supports a
defaultfallback for unmapped values. For example:- ci_status:
UPevaluates to Green (#22c55e),DOWNto Red (#ef4444),MAINTENANCEto Orange (#f97316), andRETIREDto Grey (#94a3b8). - incident_status / vulnerability: A value of
Yesevaluates to Red, whileNoevaluates to Green.
- ci_status: