Assets Data Model
Assets in Jira Service Management is a feature within Jira Service Management that allows team to track their assets, configuration items, and resources to understand and visualize the critical relationships between applications, services, their underlying infrastructure, and other key dependencies.
Assets Data Model Diagram
Core Elements:
Place of Assets within Entire Jira Platform Data Model
Here’s what it looks like in Assets Admin View
Object schema: It works like a map that holds all of it together. In the Jira world, that would be a project.
Object types: Containers for your objects (assets), each with its own characteristics, like specific issue types (Computers, Mobile phones).
Objects: Your actual assets, whatever they are. Similar to Jira issues or requests. Put them into object types, and get going (MacBook MBP M1, Latitude 7480).
Attributes: What defines your object types (objects inherit them). Like fields or custom fields (Name, RAM, Storage).
References: Relations and dependencies between objects. If you own a laptop, you have a reference to it (you own it). Like issue links, though they serve a different purpose.
Asset Object Schema
An object schema is a collection of information in Assets used to track assets, configuration items, and resources, and to understand and visualize the critical relationships between them.
Each object schema is distinct and holds unique information in the form of
object types,
objects,
attributes,
icons,
references,
and statuses.
🔷 Object schemas can be set up fully isolated from each other. Alternatively, you can allow some schemas to cross-reference objects from other schemas → combine individual object schemas into a larger data structures.
Sample Asset_object_schema
table
describes the names, descriptions, unique identifiers, and creation metadata for all object schemas defined within asset and configuration management.
The table uses the following columns:
Created at
The date and time (UTC time zone) when the schema was created.
SQL name | created_at
|
---|
Data type | Datetime |
---|
Description*
The description of the object schema.
SQL name | description
|
---|
Data type | String |
---|
Key*
The key associated with the object schema.
SQL name | key
|
---|
Data type | String |
---|
Name*
The name of the object schema.
SQL name | name
|
---|
Data type | String |
---|
Object schema ID
The unique identifier of object schema. Use this as the primary key for object schema data.
SQL name | object_schema_id
|
---|
Data type | String |
---|
Object schema reference*
The identifier of the object schema used at the instance level.
SQL name | object_schema_ref
|
---|
Data type | String |
---|
Updated at
The date and time (UTC time zone) when the object schema was last updated.
SQL name | updated_at
|
---|
Data type | Datetime |
---|
Workspace ID
The unique identifier of the asset and configuration management workspace.
SQL name | workspace_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the workspace table in the schema for organization data. |
---|
* Services Object Schema
probably not a part of this research...
The Services object schema is a special case – it contains services that your site uses across multiple projects. The Services object schema is created automatically by Jira Service Management and is read-only.
Asset Object Type
All object types will have four mandatory attributes:
Name
Key
Created Date
Last Updated Date
The last three are set automatically and can not be edited.
Sample asset_type
table
describes the names, descriptions, unique identifiers, and creation metadata for all object types defined within asset and configuration management.
The table uses the following columns:
Created at
The date and time (UTC time zone) when the object type was created.
SQL name | created_at
|
---|
Data type | Datetime |
---|
Description*
The description of the object type in the schema.
SQL name | description
|
---|
Data type | String |
---|
Does pass attributes to child objects*
Indicates whether the object type passes its attributes to child objects.
The value is true
if does; otherwise, it is false
.
SQL name | does_pass_attributes_to_child_objects
|
---|
Data type | Boolean |
---|
Is abstract*
Indicates whether the object is abstract or not.
The value is true
if the object is abstract; otherwise, it is false
.
SQL name | is_abstract
|
---|
Data type | Boolean |
---|
Name*
The name of the object type in the schema.
SQL name | name
|
---|
Data type | String |
---|
Parent type ID
The unique identifier of the parent object type.
SQL name | parent_type_id
|
---|
Data type | String |
---|
Foreign key | Links to another record in this table. |
---|
Type ID
The unique identifier of the object type. Use this as the primary key for object type data.
SQL name | type_id
|
---|
Data type | String |
---|
Type reference*
The identifier of the object type.
SQL name | type_ref
|
---|
Data type | String |
---|
Updated at
The date and time (UTC time zone) when the object type was last updated.
SQL name | updated_at
|
---|
Data type | Datetime |
---|
Workspace ID
The unique identifier of the asset and configuration management workspace.
SQL name | workspace_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the workspace table in another schema doe organization data |
---|
Asset Object
describes individual objects defined under the object types and object schemas.
Sample asset_object
table
uses the following columns:
Created at
The date and time (UTC time zone) when the object was created.
SQL name | created_at
|
---|
Data type | Datetime |
---|
Key*
The key associated with the object.
SQL name | key
|
---|
Data type | String |
---|
Label*
The name of the object.
SQL name | label
|
---|
Data type | String |
---|
Object ID
The unique identifier of the object. Use this as the primary key for object data.
SQL name | object_id
|
---|
Data type | String |
---|
Object reference*
The identifier of the object type.
SQL name | object_ref
|
---|
Data type | String |
---|
Object schema ID
The unique identifier of the object schema.
SQL name | object_schema_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_object_schema table. |
---|
Type ID
The unique identifier of the object type that the object belongs to.
SQL name | type_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_type table. |
---|
Updated at
The date and time (UTC time zone) when the object was last updated.
SQL name | updated_at
|
---|
Data type | Datetime |
---|
Workspace ID
The unique identifier of the asset and configuration management workspace.
SQL name | workspace_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the workspace table in the schema for organization data. |
---|
Asset Object Attribute
Attributes can comprise of many different data types including text, dates, numerics, URLs, etc. Details in dropdown .
Types of Attribute Data
Attribute type | Type value | Additional value | Description |
---|
Default | Text | - | Data type with text representation, often used to show normal text. Max 450 characters. |
---|
Boolean | - | Data type with only two possible values: true or false. |
Integer | - | Commonly known as a "whole number", is a number that can be written without a fractional component. For example, 21, 4, and −2048 are integers. This Attributes supports the Long Integer and will allow numbers that range from -2,147,483,648 to +2,147,483,647 |
Float | - | Data type representing numbers with decimals. |
Date | - | Data type representing a Date field. |
DateTime | - | Data type representing a Date and Time field. |
URL | - | Data type representing an URL field. May be used for URL Ping service that pings the address every 5 minutes from the server side. Watch object to get email notifications on URL Ping Up/Down. |
Email | - | Data type representing an email field. |
Textarea | - | Data type with text representation, often used when showing large text. Use Assets rich editor to customize the content. Unlimited characters in comparison to the Text attribute. For developers: Missing attribute beans Here’s some info for developers trying to retrieve beans for this attribute using Java API. |
Select | - | Data type to represent text values, predefined as options. |
IP Address | - | Data type to represent IP Addresses (IPv4) |
Object | Assets object | Reference Type | This type enables a reference to another object. |
---|
User | Jira group | Show on Profile | This type makes it possible to select a user from the selected Jira group and connect objects with users. |
---|
Confluence | Confluence instance | Confluence page | This type enables a link to a Confluence page. |
---|
Group | - | Show on Profile | This type makes it possible to select a Jira group and connect object(s) with user(s) in specified groups. |
---|
Version | Jira Project | - | This type makes it possible to reference a Jira Version from a specific Jira Project to your object(s). |
---|
Project | None | - | This type makes it possible to reference a Jira Project to your object(s). |
---|
Status | Allowed Statuses | - | This type is used to set a Status of an object. Define the statuses that should be allowed, and left empty means all statuses allowed. |
---|
🔷 Most notable attribute type which enables the whole network to build up is referencing another object with a custom link.
Sample asset_object_attribute
table
describes the attributes of each object and stores the value of those attributes.
When the attribute is a string (for example, an address), it is stored in attribute_value_string
. When the attribute is another object, the object_id
of that object is stored in attribute_value_object_id
.
The table uses the following columns:
Attribute value object ID
The object_id
that’s stored in the value of an attribute.
SQL name | attribute_value_object_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_object table. |
---|
Attribute value string*
The string value of the attribute.
The value is NULL
if the attribute type is OBJECT
.
SQL name | attribute_value_string
|
---|
Data type | String |
---|
Object ID
The unique identifier of the object.
SQL name | object_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_object table. |
---|
Type attribute ID
The unique identifier of the object attribute.
SQL name | type_attribute_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_type_attribute_metadata table. |
---|
Workspace ID
The unique identifier of the asset and configuration management workspace.
SQL name | workspace_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the workspace table in the schema for organization data. |
---|
Sample asset_object_issue_mapping
table
maps objects to Jira issues. The table uses the following columns:
Field ID
The unique identifier of the field in which the object is stored.
SQL name | field_id
|
---|
Data type | String |
---|
Issue ID
The unique identifier of the Jira issue.
SQL name | issue_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the jira_issue table in the schema for Jira family of products. |
---|
Object ID
The unique identifier of the object.
SQL name | object_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_object table. |
---|
Workspace ID
The unique identifier of the asset and configuration management workspace.
SQL name | workspace_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the workspace table in the schema for organization data. |
---|
Attribute Configurations
Cardinality
You can specify a minimum and maximum of number of attributes values that can be associated to the attribute. This is common when you need to set an attribute multiple choices or required / mandatory.
For attributes of type "Default" you can only set maximum cardinality to 1, except "URL" and "Email" where you may space separate.
Validation
You may validate attributes of default type "Text", "Email" & "URL" with regular expressions. This can be handy if you want to validate specific information, like an IP address, a domain name, a phone number, or anything else that may require validation.
Options
You may add multiple Options to a "Select" Type Attribute by adding them here.
Filter objects
For attribute of type "Object" you may filter objects to be selected by AQL. By using this filter it is possible to create dependencies to other fields when creating/editing objects.
The following examples shows how to configure an object reference attribute on the object type Employee to reference a Laptop. If a value is entered in the Manufacturer textbox only Laptops with the corresponding Vendor will be choosable. It is possible to combine multiple fields in the AQL to get multiple dependencies.
More configurations
Option | Description |
---|
Suffix | For default type "Integer" and "Float" you can set a suffix for the attribute. Example is "$" for an attribute "Salary". |
---|
Hidden | Hide the attribute from users in the "assets-users" role. |
---|
Include children | Include objects from a child object type(s). |
---|
Unique | Validate attribute values to be unique within the object type. |
---|
Show Sum | For default type "Integer" and "Float" you can choose to add the values and display the sum of the attribute values |
---|
Indexed | This is a checkbox and you can use this to determine if you want to index this attribute or not. The Indexed feature on every attribute essentially helps you to retrieve your search results faster when you do a basic search or an advanced search using AQL anywhere (e.g, post functions, imports, custom fields etc). So the recommended practice is that for all AQL queries used at these multiple places, you should index your attributes. If your attribute is indexed, Assets will not retrieve results from the database every time but instead retrieve them from an index/cache which yields results quicker. However, this comes at the cost of a higher memory consumption. For non-indexed attributes, memory consumption will be lower. If you index an attribute, a small icon () precedes the Name of the attribute as shown below. This icon will not be visible when you uncheck the Indexed checkbox. Additionally, for the label attribute, the indexed icon will appear adjacent to the icon for the label () as shown below. By default, Assets will index all attributes on an object type, but the "Textarea" attribute is an exception to this rule. The Key, Label, Created, and Updated attributes will always be indexed, as will any attributes of the type Reference. |
---|
provides the metadata for object attributes. The table uses the following columns:
Created at
The date and time (UTC time zone) when the attribute was created.
SQL name | created_at
|
---|
Data type | Datetime |
---|
Description*
The description of the attribute.
SQL name | description
|
---|
Data type | String |
---|
Name*
The name of the attribute.
SQL name | name
|
---|
Data type | String |
---|
Type*
The type of the attribute.
SQL name | type
|
---|
Data type | String |
---|
Type attribute ID
The unique identifier of the object attribute.
SQL name | type_attribute_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_object_attribute table. |
---|
Type attribute reference*
The identifier of the attribute.
SQL name | type_attribute_ref
|
---|
Data type | String |
---|
Updated at
The date and time (UTC time zone) when the attribute was last updated.
SQL name | updated_at
|
---|
Data type | Datetime |
---|
Workspace ID
The unique identifier of the asset and configuration management workspace.
SQL name | workspace_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the workspace table in the schema for organization data. |
---|
Sample asset_type_attribute_type_mapping
table
maps object types to object type attributes. The table uses the following columns:
Type attribute ID
The unique identifier of the object attribute. Use this as the primary key for this mapping.
SQL name | type_attribute_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_type_attribute_metadata table. |
---|
Type ID
The unique identifier of the object type.
SQL name | type_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_type table. |
---|
Workspace ID
The unique identifier of the asset and configuration management workspace.
SQL name | workspace_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the workspace table in the schema for organization data. |
---|
Sample asset_type_schema_mapping
table
provides links between object types and the object schemas to which they belong. The table uses the following columns:
Object schema ID
The unique identifier of the object schema.
SQL name | object_schema_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_object_schema table. |
---|
Type ID
The unique identifier of the object type.
SQL name | type_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the asset_type table. |
---|
Workspace ID
The unique identifier of the asset and configuration management workspace.
SQL name | workspace_id
|
---|
Data type | String |
---|
Foreign key | Links to a record in the workspace table in the schema for organization data. |
---|
Add Comment