Classes and identifiers
Classes
Every CI has a class: the kind of thing it is. Classes form a tree up to three levels deep, such as Data → Database → PostgreSQL. A data property on a class applies to the classes below it, so a PostgreSQL database has the properties of Data, of Database and of PostgreSQL.
The desk starts with a set you can change like any other:
| Class | Below it | Properties |
|---|---|---|
| Compute | Server, Virtual machine, Container | Operating system, CPU, memory, location |
| Network | Network device, Load balancer, Domain name, Certificate | Vendor, model; expires (domain names and certificates), issuer (certificates) |
| Data | Database, Storage, Cache or queue | Engine, version, size, backup policy |
| Software | Application, Integration | Version, repository, vendor |
| Cloud | Cloud account, Cloud resource | Provider, region, account id |
Under Service Configuration → Settings → CMDB → Classes (with Manage CI classes, ci.settings, for the whole
organization):
- Add class opens Design a class (below). The pencil opens it for a class that is there.
- The arrows put classes in order among their siblings.
- Archive keeps a class on the CIs that have it, but it can't be picked for others. Restore brings it back.
- A class no CI has and with nothing below it can be deleted. It is taken off the data properties that also apply to other classes; a property that applies to that class alone has to be changed first.
Names are unique among siblings, whatever the case. A move that would make the tree deeper than three levels, or put a class below itself, is refused.
Design a class
Design a class shows everything about one class on one page, with the form beside it as agents will see it when they add a CI of that class:
| Part | What |
|---|---|
| Name, Below, Description and Icon | Where it sits in the tree, and what agents see when they pick it. A new class takes its parent's icon until you pick one. |
| From above | The data properties it gets from the classes above it, and those that apply to every class. |
| Its own | The properties that apply to it already. Change or archive them under Platform → Data properties. |
| Add a property | A new property for this class (and the classes below it): its name, type, choices for a dropdown and a help text. Every type but a person, which is added under Platform → Data properties. Its name in the API is made from the name, such as replication_role. |
| Use one that is there | A property that applies to other classes, such as Version, added to this one too. |
Add class or Save saves the class first and then its properties. Adding properties needs the Data property
settings permission as well (property.settings, which Platform Administrators have); without it the page shows
the class's properties but adds none.
The properties themselves are also kept under Platform → Data properties, on the Configuration items table, with Applies to naming the classes. A property with no classes applies to every CI.
[!NOTE] Changing a CI's class keeps the values of properties that no longer apply. They are hidden, and shown again if the class changes back.
Identifiers
Identifiers say how other tools know a CI, so imports and, later, monitoring events find the right record:
| Kind | For example |
|---|---|
| Host name | db-prod-01 |
| Fully qualified name | db-prod-01.example.net |
| IP address | 10.0.4.12 |
| Serial number | The manufacturer's serial |
| Id in another tool | The tool's name (monitoring, a cloud) and its id for the CI there |
Values are kept trimmed and in lower case, so a match doesn't depend on how it was typed. No two CIs of an organization share an identifier: adding one that another CI has is refused (“Another configuration item already has Host name: db-prod-01”).
Search finds a CI by its identifiers: in the list by part of a value, and with ⌘K by the whole value, such as
10.0.4.12.