What is a particular CMDB field for?


Description

Documentation on what some fields in the CMDB are, and are for, or how they should be used, is not always there. This may be due to our developers considering this something you don't need to know, as custom implementations that used those fields were not envisaged, or maybe because fields are not used by any code and their purpose is lost in the mists of time. Or simply an oversight. This aims to fill some gaps or at least give steps to help you figure it out.

Why do you need to know?

Where you may find this out:

If in doubt, don't re-use out-of-box fields for your own purposes. It is safer, and perfectly acceptable, to add your own custom fields to the CMDB. This will avoid your code impacting OOTB code, and vice versa.

An example:

The Dictionary record has these values

Table: cmdb_ci
Name: monitor
Label: Monitor
Type: True/False
Hint: Enable monitoring of the configuration item
Package: Configuration Management (CMDB) [com.snc.cmdb]

The main CMDB field documentation page has:
"Monitor - Indicates whether the instance is monitored"

That's different. The "instance" of what?

A search in the sys_ui_element table shows this field used in a "More Attributes" form section, and for a "CMDB Workspace application" view, and is used for many CI classes.

Is this something to do with a "Monitor Instance", or for one of the internal monitoring plugins such as the Server-Side Monitoring for instance check-in (com.glide.instance_monitor) plugin? 

Was this something to do with the obsolete SNC Component [cmdb_ci_snc_component] class, which did used to have a CI for each ServiceNow instance node? Possibly.

A quick scan through our current source code by the author doesn't appear to have any code related to it, but I can't be certain.

For this particular field, it may be best to add your own custom field instead if you need a checkbox related to whether the CI is to be monitored or not. It would certainly be safer, and quicker.