Overview
The Basic CMDB Schema is your minimum viable Configuration Management Database - perfect for small teams getting started with IT asset tracking. With just 3 object types (Person, Server, Application), you can establish foundational visibility into your infrastructure without complexity overhead.
Who Is This For?
- Small IT teams (1-10 people)
- Startups building their first CMDB
- Organizations piloting JSM Assets
- Teams transitioning from spreadsheets
What You Get
- Track servers and who owns them
- Document applications and where they run
- See who is responsible for what
- Foundation for future growth
Schema Overview
Why Start Basic
| Benefit | Description |
|---|---|
| Fast Implementation | Deploy in under an hour |
| Low Maintenance | Minimal ongoing data entry |
| Easy Adoption | Team learns quickly |
| Clear Value | Immediate visibility gains |
| Smooth Growth | Natural upgrade path |
Object Type Summary
| Object Type | Purpose | Record Count Target |
|---|---|---|
| Person | IT team members and stakeholders | 5-50 records |
| Server | Physical and virtual servers | 10-100 records |
| Application | Business applications | 5-50 records |
Relationship Architecture
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β Person βββββββββ Server βββββββββ Application β
β βManagedβ βRuns Onβ β
β (IT Team) β By β(Infrastructure) β (Software) β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
Key Relationships:
- Server β Person (Managed By): "Who manages this server?"
- Application β Server (Runs On): "Where does this app run?"
- Application β Person (Managed By): "Who manages this application?"
Object Type 1: Person
The Person object type represents individuals who own, manage, or are responsible for IT assets. Start with your IT team members, then expand to include application owners from the business.
Attribute Reference
| Attribute | Type | Required | Description |
|---|---|---|---|
| Full Name | Text | Yes | Full name of the person |
| Text | Yes | Work email address | |
| Department | Text | No | Department or team name |
| Active | Select | Yes | Active, Inactive |
Active Values
| Value | Meaning | When to Use |
|---|---|---|
| Active | Currently employed/engaged | Default for all active team members |
| Inactive | No longer with organization | When person leaves or role ends |
Best Practices
Do:
- Use official work email addresses
- Keep Department consistent across records
- Update Active status when people leave - don't delete records
Don't:
- Use personal email addresses
- Create multiple records for the same person
- Delete records when people leave (set to Inactive instead)
Real-World Example
Full Name: Sarah Chen
Email: sarah.chen@acme.com
Department: IT Operations
Active: Active
Object Type 2: Server
The Server object type represents physical servers, virtual machines, and cloud instances that host your applications. This is the core of your infrastructure inventory.
Attribute Reference
| Attribute | Type | Required | Description |
|---|---|---|---|
| Hostname | Text | Yes | Server hostname (unique identifier) |
| IP Address | Text | No | Primary IP address |
| Server Type | Select | Yes | Physical, Virtual, Cloud |
| Operating System | Text | No | OS name and version |
| Environment | Select | Yes | Production, Test, Development |
| Status | Select | Yes | Operational, Non-Operational, Maintenance |
| Managed By | Object (Person) | No | Person responsible for this server |
Server Type Values
| Type | Description | Examples |
|---|---|---|
| Physical | Bare metal hardware | Dell PowerEdge, HP ProLiant |
| Virtual | VM on hypervisor | VMware VM, Hyper-V VM |
| Cloud | Cloud provider instance | AWS EC2, Azure VM, GCP Compute |
Environment Values
| Environment | Description | Typical Use |
|---|---|---|
| Production | Live business systems | Customer-facing apps |
| Test | Pre-production testing | QA and UAT |
| Development | Developer workloads | Dev and test |
Hostname Naming Convention
Use a consistent naming pattern:
Format: [purpose]-[environment]-[number]
Examples:
web-prod-01 Web server, production, first
db-prod-01 Database server, production
app-dev-01 Application server, development
Best Practices
Do:
- Use consistent hostname naming conventions
- Assign Managed By for every Production server
- Keep Operating System current (e.g., "Ubuntu 22.04 LTS")
- Update Status when servers are retired
Don't:
- Use spaces in hostnames
- Leave Production servers without a manager
- Keep non-operational servers as Operational
Real-World Example
Hostname: web-prod-01
IP Address: 10.0.1.50
Server Type: Cloud
Operating System: Ubuntu 22.04 LTS
Environment: Production
Status: Operational
Managed By: Sarah Chen
Object Type 3: Application
The Application object type represents business applications that run on your servers. This connects your infrastructure to business value.
Attribute Reference
| Attribute | Type | Required | Description |
|---|---|---|---|
| Application Name | Text | Yes | Application identifier |
| Version | Text | No | Current version number |
| Environment | Select | Yes | Production, Test, Development |
| Status | Select | Yes | Operational, Non-Operational |
| Managed By | Object (Person) | No | Business owner of the application |
| Runs On | Object (Server) | No | Server(s) where app runs |
Environment Values
| Environment | Description |
|---|---|
| Production | Live application serving users |
| Test | Testing environment |
| Development | Development version |
Status Values
| Status | Meaning |
|---|---|
| Operational | Application is running and available |
| Non-Operational | Application is offline or unavailable |
Naming Applications
Use business-friendly names that users recognize:
Good: Customer Portal, Inventory System, HR Platform
Bad: app1, legacy_system_v2, test123
Best Practices
Do:
- Use names that business users recognize
- Link every Production app to at least one server via Runs On
- Assign business owners via Managed By
- Track version numbers for change management
Don't:
- Use technical project codes as names
- Leave Production apps without a manager
- Keep non-operational applications as Operational
Real-World Example
Application Name: Customer Portal
Version: 2.4.1
Environment: Production
Status: Operational
Managed By: Mike Johnson
Runs On: web-prod-01
Getting Started
Step 1: Plan Your Data (15 minutes)
Before creating records, make a quick inventory:
People to add:
- IT team members
- Key application owners from the business
- Start with 5-10 people
Servers to add:
- Production servers first
- Development/staging later
- Start with 10-20 servers
Applications to add:
- Business-critical applications
- Customer-facing systems
- Start with 5-10 applications
Step 2: Create Person Records (10 minutes)
Start with your IT team:
- Navigate to Assets β Basic CMDB β Person
- Click "Create"
- Enter Full Name, Email, Department
- Set Active to "Active"
- Save
Tip: Do IT team first, then add business application owners.
Step 3: Create Server Records (20 minutes)
Add your production servers:
- Navigate to Assets β Basic CMDB β Server
- Click "Create"
- Enter Hostname, Server Type, OS, IP Address
- Select Environment = "Production"
- Link Managed By to a Person
- Set Status to "Operational"
- Save
Tip: Start with production, add test/dev later.
Step 4: Create Application Records (15 minutes)
Document your key applications:
- Navigate to Assets β Basic CMDB β Application
- Click "Create"
- Enter Application Name, Version
- Link Managed By to a Person
- Link Runs On to Server(s)
- Select Environment
- Set Status to "Operational"
- Save
Tip: Link applications to servers to enable impact analysis.
Step 5: Verify Relationships (5 minutes)
Check that your data is connected:
- Open a Server record
- View the "References" section
- Confirm Managed By is linked
- Confirm Applications are linked
Quick Verification Query:
objectType = "Application" AND "Runs On" IS EMPTY AND Status = "Operational"
This should return zero results for a well-linked CMDB.
Relationship Patterns
Pattern 1: Single Server, Single Application
The simplest setup - one application on one server.
Customer Portal (App) β web-prod-01 (Server) β Sarah Chen (Owner)
Pattern 2: Single Server, Multiple Applications
Multiple lightweight apps sharing a server.
Inventory System (App) ββ
Order Tracker (App) ββΌβ app-prod-01 (Server) β Sarah Chen (Owner)
Reporting Tool (App) ββ
Pattern 3: Load-Balanced Application
Application running on multiple servers.
ββ web-prod-01 (Server)
Customer Portal (App) βββΌβ web-prod-02 (Server)
ββ web-prod-03 (Server)
Pattern 4: Environment Separation
Same application in different environments.
Customer Portal (Production) β web-prod-01
Customer Portal (Staging) β web-stg-01
Customer Portal (Development)β web-dev-01
Growing Beyond Basic
When to Upgrade
Consider upgrading to a larger schema when:
| Trigger | Upgrade To |
|---|---|
| More than 100 servers | Standard CMDB |
| Need database tracking | Standard CMDB |
| Compliance requirements | Enterprise IT CMDB |
| Multiple teams/locations | Standard CMDB |
| Cloud resource tracking | Cloud Native CMDB |
| Service desk integration | Standard CMDB |
Upgrade Path
- Export your data - CSV export of all objects
- Deploy new schema - Standard or Enterprise CMDB
- Import existing data - Map to new object types
- Add new object types - Database, Location, Team, etc.
- Extend relationships - More detailed dependency mapping
What Carries Forward
Your Basic CMDB data maps directly to larger schemas:
- Person β Person (with additional attributes)
- Server β Server (with additional attributes)
- Application β Application (with additional attributes)
Troubleshooting
Common Issues
| Issue | Cause | Resolution |
|---|---|---|
| Can't find a server | Hostname typo | Search with partial match |
| Owner not appearing | Person not created | Create Person record first |
| Application has no server | Relationship not set | Edit app, link to server |
| Duplicate records | Multiple entries | Merge or delete duplicate |
Useful AQL Queries
Find all operational servers:
objectType = "Server" AND Status = "Operational"
Find servers without managers:
objectType = "Server" AND "Managed By" IS EMPTY AND Environment = "Production"
Find applications without servers:
objectType = "Application" AND "Runs On" IS EMPTY AND Status = "Operational"
Find inactive people who still manage assets:
objectType = "Person" AND Active = "Inactive"
Then check if they're still referenced by servers or applications.
Quick Reference
Essential AQL Queries
| Purpose | Query |
|---|---|
| All production servers | objectType = "Server" AND Environment = "Production" |
| Servers by manager | objectType = "Server" AND "Managed By" = "Sarah Chen" |
| Operational applications | objectType = "Application" AND Status = "Operational" |
| Apps on specific server | objectType = "Application" AND "Runs On" = "web-prod-01" |
Health Check
Run these weekly:
- All production servers have managers assigned
- All operational apps link to servers
- No inactive people manage active assets
- No duplicate hostnames or app names
Schema Forge