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_size parameter 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, and relation_chunk_size to 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 internal Target 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., COMPUTERSYSTEM to pc-case, DATABASE to database, and ORGANIZATION to building).
  • relationColors: A dictionary associating Relationship Class Names to specific HEX color codes, allowing you to visually distinguish infrastructure paths. By default, BASE_RELATIONSHIP is Blue (#3b82f6), RUNS_ON is Yellow (#dbc60a), and DEPENDENCY is 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_status attribute.
    • topRight: Monitors the incident_status attribute.
    • bottomLeft: Monitors the change_status attribute.
    • bottomRight: Monitors the vulnerability attribute.
  • statusColors: A nested dictionary that assigns semantic HEX colors to the specific values returned by the attributes above. It supports a default fallback for unmapped values. For example:
    • ci_status: UP evaluates to Green (#22c55e), DOWN to Red (#ef4444), MAINTENANCE to Orange (#f97316), and RETIRED to Grey (#94a3b8).
    • incident_status / vulnerability: A value of Yes evaluates to Red, while No evaluates to Green.