AI Import Technical Reference
This page documents how AI Import currently works in code.
Code Locations
- Backend routes:
backend/routes/import.js - Backend controller:
backend/controllers/import/importController.js - Backend service:
backend/services/import/importService.js - Import targets:
backend/services/import/targets/*.js - Import models:
backend/models/import/*.js - Frontend service:
frontend/src/services/import/importService.ts - Frontend UI:
frontend/src/components/Import/*.tsx
End-to-End Flow
- Upload file (
/analyze) or provide text description (/analyze-description). - Parse rows and infer column profile.
- Call AI for mapping suggestions against target schema.
- Save staging payload in
ImportStaging. - User edits mappings in
ImportWizard. - Preview transformed rows via
/preview. - Execute import via
/execute. - Poll
ImportJobuntil terminal status. - Optionally save mappings as template (
ImportTransformMap).
API Endpoints
Base: /api/import (auth + tenant validator applied to all routes)
POST /check-templatesPOST /analyzePOST /analyze-descriptionPOST /previewPOST /resolve-ci-typesPOST /executeGET /templatesDELETE /templates/:idGET /jobs/:idGET /historyPOST /jobs/:id/cancelGET /targetsGET /targets/:targetType/schemaGET /staging/:idDELETE /staging/:idPOST /quick-import/parse(backend-only path)POST /quick-import/execute(backend-only path)
Data Models
ImportStaging
- File metadata, profile, AI suggestions, preview rows, compressed raw rows.
- TTL index: 7 days.
- Tenant-scoped ObjectId.
ImportTransformMap
- Reusable mappings/defaults/options and source signature.
- Unique per tenant by name.
- Tenant-scoped ObjectId.
ImportJob
- Status/progress/results/errors + mapping snapshot + approval snapshot.
- TTL index: 30 days.
- Tenant-scoped ObjectId.
Target Dispatch
targetRegistry routes transformed rows to:
CILicenseAccountContact
For CI target, optional per-row type detection can run from Hardware Catalog (manufacturer+model).
Transform Support
Backend applyTransform() currently implements:
nonelowercaseuppercasetrimextractNumberparseDateparseBooleanmapValuereference
Known Behavior Notes
autoDetectTypeinImportWizardis enabled by source-column-name checks formanufacturer+model.- Quick import endpoints exist but are not used by the main wizard.
- Job progress fields are present, but row-level progress is not incremented per row in target imports.
- Approval hash is generated and verified inside the same execute request path.
Related Docs
- User guide:
documentation/docs/modules/cmdb/ai-import.md - CMDB field architecture:
docs/CMDB/CI-Fields-and-Attributes.md - Detailed internal reference:
docs/CMDB/AI-Import-Technical-Reference.md