CI Lifecycle
Walk a CI through all 11 OOB lifecycle stages (CSDM 4.0 vocabulary). Pick a target stage, choose a status, and see what ServiceNow enforces — and what it doesn't.
CI Record
Transition History
Key Insight
A reference field pointing at the 11-row life_cycle_stage table. Not a choice, not a state machine — transitions are pure convention.
A reference to the 46-row life_cycle_stage_status table. The table is flat — only name + sys_id, no FK to the stage. Stage↔status groupings are documentation only.
CI Lifecycle Cheatsheet
CI-side lifecycle fields across the two tables the lab touches. Each field is tagged with the CSDM era it belongs to — CSDM 4+ was added in CSDM 4.0 to unify asset + CI lifecycle under one vocabulary (still current in CSDM 5.0); Pre CSDM 4.0 is the traditional vocabulary, still in active use — not deprecated. cmdb_ci_hardware extends cmdb_ci (via cmdb_ci_computer), so every field defined on the base table is visible on the child via table inheritance — shown as “inherited” cells.
Field | cmdb_ciBase CI table — all CI-side lifecycle fields are defined here | cmdb_ci_hardwareHardware CI — inherits from cmdb_ci (via cmdb_ci_computer) |
|---|---|---|
life_cycle_stage | ✓CSDM 4+Reference → life_cycle_stage CSDM 4.0+ unified lifecycle stage on the CI record. Added alongside install_status — it does NOT replace it. Real column name uses underscores: life_cycle_stage. Ideation, Design, Purchase, Deploy, Inventory, Operational, End of Life, End of Operation, Missing, Defective, To Be Determined (11 OOB rows) | ✓CSDM 4+Reference → life_cycle_stage Inherited from cmdb_ci.life_cycle_stage. Same 11 OOB stage rows. Ideation, Design, Operational, End of Life, Missing, … |
life_cycle_stage_status | ✓CSDM 4+Reference → life_cycle_stage_status CSDM 4.0+ granular status, CI-side. IMPORTANT: the reference table is FLAT — it has only name + sys_id columns, no FK to life_cycle_stage. Stage↔status groupings come from ServiceNow documentation, not from any DB constraint. In Use, In Stock, In Maintenance, Retired, Disposed, Pending Retirement, On Order, Build, Test, Lost, Stolen, To Be Determined (46 OOB rows total) | ✓CSDM 4+Reference → life_cycle_stage_status Inherited from cmdb_ci.life_cycle_stage_status. Same 46 flat rows. In Use, In Stock, Retired, Pending Disposal, Lost, Stolen, … |
install_status | ✓Pre CSDM 4.0Choice (integer) Pre-CSDM 4.0 CI lifecycle state. Populated by IRE from alm_hardware.install_status for hardware CIs; set directly on virtual/application CIs. Installed (1), On Order (2), In Maintenance (3), Pending Install (4), Pending Repair (5), In Stock (6), Retired (7), Stolen (8), Absent (100) | ✓Pre CSDM 4.0Choice (integer) Inherited from cmdb_ci.install_status via table inheritance. No separate sys_choice rows. Installed (1), On Order (2), In Maintenance (3), Pending Install (4), Pending Repair (5), In Stock (6), Retired (7), Stolen (8), Absent (100) |
operational_status | ✓Pre CSDM 4.0Choice (integer) Readiness signal for reporting, service maps, and dashboards. Integer choice separate from install_status — drives whether the CI counts as active. Operational (1), Non-Operational (2), Repair in Progress (3), DR Standby (4), Ready (5), Retired (6) | ✓Pre CSDM 4.0Choice (integer) Inherited from cmdb_ci.operational_status via table inheritance. Operational (1), Non-Operational (2), Repair in Progress (3), Retired (6) |
hardware_status | — | ✓Pre CSDM 4.0Choice (string) Hardware-specific status only on cmdb_ci_hardware — does NOT exist on the base cmdb_ci table. Independent of install_status; often populated by Discovery. Installed, In Maintenance, In Stock, Out of Stock, In Transit, Defective, In Disposition, Retired, On Order, Pending Install, Pending Repair, Pending Transfer, Stolen (13 OOB rows) |