Skip to main content

CMDB Process Mapping Modes - Detailed Guide

Overview

The CMDB Settings component (CMDBSettings.tsx) provides a Process Mapping Configuration interface that supports five different processing modes. Each mode serves a specific purpose in the software identification and mapping workflow.

Processing Modes

1. Full Process (all) - Default Mode

Purpose: Runs the complete software mapping workflow from enrichment to application.

What it does:

  1. Analyzes current mapping status (optional)
  2. Enriches software mappings with process names
  3. Applies enriched mappings to CI relationships

When to use:

  • Initial setup of process mappings
  • Regular maintenance runs
  • When you want to both discover process names AND apply them

Process Flow:

Start → Analyze Status → Enrich Mappings → Apply Mappings → Complete
(optional) (find processes) (update CIs)

Example Scenario:

  • You've imported new software data and want to:
    • Identify what processes belong to each software
    • Apply those mappings to all related CI relationships

Configuration Options:

  • family: Process only specific software family (e.g., "Databases")
  • limit: Maximum items to process
  • skipAnalysis: Skip the initial analysis for faster processing

2. Enrich Mappings Only (enrich)

Purpose: Discovers and adds process names to software mappings without applying them to relationships.

What it does:

  1. Finds software mappings without process names
  2. Attempts to discover process names using three methods:
    • Pattern Matching: Checks against known process mappings
    • Discovery: Finds processes from existing CI relationships
    • AI Identification: Uses Claude AI to identify processes

When to use:

  • Building up your software catalog with process information
  • Preparing mappings before a large-scale application
  • When you want to review process names before applying

Process Flow:

Software Mapping → Check for Process Names → Try Pattern Match
→ Try Discovery
→ Try AI
→ Update Mapping

Example Scenario:

  • You have a SoftwareMapping for "Microsoft SQL Server" but it lacks process names
  • Enrichment will:
    1. Check known patterns (finds: sqlservr.exe, SQLSERVERAGENT.exe)
    2. Check existing CI relationships for additional processes
    3. Use AI if needed to identify other processes

Enrichment Sources Explained:

  1. Pattern-Based (Fastest):

    // Known mappings include:
    - Visual C++ Redistributables → vcredist_x*.exe
    - Google Chrome → chrome.exe, Google Chrome.app
    - Microsoft SQL Server → sqlservr.exe, SQLSERVERAGENT.exe
  2. Discovery-Based (Accurate):

    • Searches CI relationships where this software is already identified
    • Extracts process names from those relationships
  3. AI-Based (Comprehensive):

    • Asks Claude AI: "What processes does Microsoft SQL Server run?"
    • Returns platform-specific processes and Windows services

3. Apply Mappings Only (apply)

Purpose: Takes existing software mappings and applies them to unmapped CI relationships.

What it does:

  1. Finds CI relationships with process names but no application info
  2. Looks up software mappings for each process
  3. Updates relationships with software and family information
  4. Creates new mappings via AI for unknown processes (if confidence ≥ 0.7)

When to use:

  • After enriching mappings, to apply them to relationships
  • When you have new CI relationships that need mapping
  • To fix relationships that lost their application data

Process Flow:

CI Relationship → Extract Process Name → Find Software Mapping
→ Update with App Info
→ Or Create New Mapping (AI)

Example Scenario:

  • You have CI relationships showing "sqlservr.exe" process
  • Apply mode will:
    1. Find the mapping for sqlservr.exe → Microsoft SQL Server
    2. Update the relationship with:
      • Application: "Microsoft SQL Server"
      • Vendor: "Microsoft"
      • Software Family: "Database Management Systems"

Special Features:

  • Can apply "Microsoft OS Services" to all Windows system processes at once
  • Groups relationships by process for efficient bulk updates
  • Creates missing mappings automatically using AI

4. Enrich Relations from Mappings (enrich-relations)

Purpose: Directly enriches CI relationships using existing software mappings, with special handling for different relationship types.

What it does:

  1. Finds relationships missing application or software family data
  2. For process-based relationships: matches by process name
  3. For "Installed On" relationships:
    • Uses direct mapping ID from Software Instance CI
    • Falls back to name-based matching

When to use:

  • Quick enrichment of relationships without full processing
  • When Software Instance CIs have mapping references
  • To fix relationships with missing application data

Process Flow:

CI Relationship → Check Type → Process-Based: Match by Process Name
→ Installed On: Check CI for mappingId
→ Or match by CI name
→ Update Relationship

Example Scenario:

  • Software Instance CI "Microsoft SQL Server 2019" has mappingId reference
  • "Installed On" relationship exists but lacks application data
  • Enrich-relations will:
    1. Look up the mapping by ID
    2. Apply the full mapping data to the relationship

Key Differences from Apply Mode:

  • Works with both process-based AND "Installed On" relationships
  • Can use direct mapping references from CIs
  • Doesn't create new mappings, only uses existing ones
  • Processes relationships in larger batches (100 vs grouped)

5. Fix Software CI Relationships (fix-relationships)

Purpose: Creates missing Software Family CIs and establishes proper hierarchical relationships in the CMDB.

What it does:

  1. Finds Software CIs with family names but no Family CI
  2. Creates Software Family CIs (one per family per tenant)
  3. Creates "Belongs To" relationships: Software → Software Family
  4. Creates "Instance Of" relationships: Software Instance → Software

When to use:

  • After importing software data that lacks proper hierarchy
  • When Software CIs have family attributes but no relationships
  • To repair broken software hierarchies
  • After bulk data migrations

Process Flow:

Software CI → Has Family Name? → Create Software Family CI
→ Create "Belongs To" relationship

Software Instance → Has Software Ref? → Find/Create Software CI
→ Create "Instance Of" relationship

Example Scenario:

  • You have Software CIs with family: "Database Management Systems"
  • But no Software Family CI exists for this family
  • Fix-relationships will:
    1. Create "Database Management Systems" Software Family CI
    2. Link all database software to this family
    3. Ensure all Software Instances link to their Software CIs

Tenant Isolation:

  • Creates separate Software Family CIs per tenant
  • Maintains data isolation in multi-tenant environments
  • Groups operations by customer and tenant

Mode Selection Guide

Choose "Full Process (all)" when:

  • Setting up initial process mappings
  • Running regular maintenance
  • You want end-to-end processing

Choose "Enrich Mappings Only" when:

  • Building your software catalog
  • You want to review process names before applying
  • Preparing for a large-scale mapping application

Choose "Apply Mappings Only" when:

  • You have enriched mappings ready to use
  • New CI relationships need mapping
  • You want to fix unmapped relationships

Choose "Enrich Relations from Mappings" when:

  • Software Instance CIs have mapping references
  • You need quick relationship enrichment
  • Working with "Installed On" relationships

Choose "Fix Software CI Relationships" when:

  • Software hierarchy is broken or incomplete
  • After bulk imports or migrations
  • Software CIs have family names but no relationships

Configuration Options

Common Options (all modes except fix-relationships):

  1. Software Family Filter:

    • Process only specific family (e.g., "Databases", "Web Servers")
    • Useful for targeted processing
    • Not available for fix-relationships mode
  2. Limit:

    • Maximum number of items to process
    • Helps control processing time
    • Default: No limit (process all)
  3. Skip Analysis (all, enrich, apply modes):

    • Skips initial status analysis
    • Faster processing
    • Use when you don't need current statistics

Mode-Specific Behaviors:

  • Full Process: Runs analysis by default
  • Enrich/Apply: Can skip analysis for speed
  • Enrich-relations: No analysis phase
  • Fix-relationships: No configurable options

Performance Considerations

Batch Sizes:

  • Enrich mode: AI processes 10 items at a time
  • Apply mode: Groups by process name (variable batch size)
  • Enrich-relations: Processes 100 relationships at a time
  • Fix-relationships: Groups by family (variable batch size)

Processing Times:

  • Pattern matching: Near instant
  • Discovery: Fast (database queries)
  • AI enrichment: ~2-5 seconds per item
  • Relationship updates: Bulk operations for efficiency

Best Practices:

  1. For Large Datasets:

    • Use limits to process in chunks
    • Skip analysis for faster processing
    • Process by family to reduce scope
  2. For Accuracy:

    • Run enrich mode first, review results
    • Then run apply mode
    • Use fix-relationships periodically
  3. For Performance:

    • Process during off-peak hours
    • Monitor AI API usage
    • Use appropriate batch sizes

Monitoring and Results

Status Display Shows:

  • Current Statistics: Mappings, relationships, coverage
  • Process Summary: Items processed, enrichment sources
  • Detailed Results: Per-process statistics
  • Process Logs: Real-time processing information

Key Metrics:

  • Enrichment Coverage: % of mappings with process names
  • Relationship Coverage: % of relationships with application data
  • Processing Success Rate: Successfully processed items
  • AI Usage: Items enriched via AI

Troubleshooting

Common Issues:

  1. No Process Names Found:

    • Check if software name is normalized correctly
    • Verify AI service is available
    • Review known process mappings
  2. Relationships Not Updated:

    • Ensure mappings exist for the processes
    • Check process name format (with/without .exe)
    • Verify relationship data integrity
  3. Fix Relationships No Effect:

    • Check if Software CIs have family attributes
    • Verify CITypes exist for Software Family
    • Ensure proper tenant configuration

Debug Tips:

  • Check process logs in the UI
  • Review specific process results
  • Monitor AI API responses
  • Verify mapping confidence scores