Type Unit
A Type Unit defines the unit of interpretation for a property value. It covers both numerical units like GB, USD, and ms, as well as non-numerical formats like semantic_version, status_label, or enum types with controlled vocabularies.
Type Units ensure that property values are consistently described and understood across teams and systems.
Core concepts
Numerical and non-numerical units
Type Units are not limited to traditional units of measure. They clarify how to interpret any kind of property value:
| Property | Value | Type Unit | Kind |
|---|---|---|---|
storage_capacity | 500 | GB | Numerical |
cost_per_month | 250 | USD | Numerical |
response_time | 120 | ms | Numerical |
version | 2.3.1 | semantic_version | Non-numerical |
status | active | status_label | Non-numerical |
environment | Prod | Environment (enum) | Controlled vocabulary |
Where Type Units are used
Type Units can be applied to:
- Element properties — attributes of assets like storage capacity, cost, or lifecycle status
- Edge attributes — properties of relationships like latency or connection type
- Node metadata — contextual tags or custom labels
They ensure that any value stored in the registry is semantically enriched and interpretable — a 500 without a Type Unit is ambiguous, but 500 GB is clear.
Built-in Type Units
The Asset Registry ships with a comprehensive set of built-in Type Units. These are pre-configured and cannot be edited or deleted.
Basic data types:
| Type Unit | Data type | Description |
|---|---|---|
| String | string | Human-readable text values |
| Text | string | Detailed descriptions and notes |
| String (nullable) | string | Optional string values |
| Text (nullable) | string | Optional detailed descriptions |
| UUID | string | Universally unique identifiers |
| VARCHAR(50) | string | Short strings up to 50 characters |
| VARCHAR(100) | string | Strings up to 100 characters |
| List<String> | string | Collections of related string values |
| Boolean | boolean | True or false values |
| Integer | integer | Whole numbers (counts, ports) |
| DECIMAL(5,2) | float | Decimal numbers up to 999.99 |
| DateTime | datetime | Timestamps |
| Timestamp | datetime | Record tracking timestamps |
| Duration | datetime | Time durations (e.g., RTO, RPO) |
Enum types (controlled vocabularies):
| Type Unit | Allowed values |
|---|---|
| LifecycleStatus | Active, Retired, Pending Active, Pending Retired |
| TimeClassification | Tolerate, Invest, Migrate, Eliminate |
| ApplicationType | Non Platform Application, Platform Application, Platform Host |
| InstallType | On Premise, Cloud, Hybrid, Third Party Hosted |
| ArchitectureType | Non Platform Application, Platform Application, Platform Host |
| Environment | Dev, Test, Prod, Stag |
| ComponentType | API, Plugin, Module, Interface, UI, Integration Endpoint |
| ServiceCategory | Database, Storage, Compute, Network, Backup, Monitoring |
| Status | Active, Retired, Pending, Deprecated, Deployed, InMaintenance, Failed |
| LifecyclePhase | concept, development, launch, growth, mature, decline, retired, ... |
| BusinessCriticality | missionCritical, businessOperational, administrative |
| CustomerType | enterprise, smb, consumer, partner, government, internal |
| RiskTolerance | low, medium, high |
| ImpactLevel | none, low, medium, high, critical |
| RegulatoryFramework | gdpr, hipaa, sox, pci, glba, ccpa, fedramp, epa |
| ExposureType | Internet, AuthenticatedInternet, PartnerNetwork, CorporateNetwork |
And many more, including ProductType, PricingModel, PlatformType, DeploymentModel, LicenseType, StrategicPriority, StrategicTier, AccountStatus, and others. These enum types provide dropdown options when filling in Element properties that reference them.
Creating a Type Unit
Navigate to Type Units in the top navigation bar and click + New Type Unit.
Settings
| Toggle | Default | Description |
|---|---|---|
| Active | On | Whether the Type Unit is available for use |
| Built In | Off | Marks the Type Unit as system-defined. Built-in Type Units cannot be edited or deleted |
Details
| Field | Type | Required | Description |
|---|---|---|---|
| Type Unit Name | Text | Yes | A unique name for this Type Unit. Duplicates are rejected with a validation error |
| Description | Text (multiline) | No | A brief explanation of what this unit represents |
| Data Type | Dropdown | Yes | The underlying data type. Available options: string, number, integer, float, boolean, datetime, enum. This field cannot be changed after creation |
Enum values
When Data Type is set to enum, an additional section appears where you define the allowed values:
- Click Add Value to add a new entry
- Each value appears as a text field with a delete button
- Enum values are presented as a dropdown when an Element property uses this Type Unit
Organization
| Field | Type | Required | Description |
|---|---|---|---|
| Module | Dropdown | Yes | The data source this Type Unit is associated with. See Module |
| Parent | Dropdown | No | An optional parent Type Unit for hierarchical organization. The dropdown excludes self and descendants to prevent circular references |
Viewing and editing
Click any row in the Type Units table to open it in view mode. From there:
- Click the edit icon to switch to edit mode
- Click the delete icon to remove the Type Unit (with confirmation)
The Data Type field is read-only in edit and view mode. It can only be set during creation.
Built-in Type Units display a warning banner and cannot be edited or deleted.
Supported data types
| Data type | Description | Example use |
|---|---|---|
string | Free-form text | Names, identifiers, descriptions |
number | Decimal number | Cost, percentage |
integer | Whole number | Count, port number |
float | Floating-point number | Latency, score |
boolean | True or false | Feature flags, status |
datetime | Date and time value | Created date, expiry |
enum | Predefined set of allowed values | Status (active/inactive), environment (dev/staging/prod) |
Best practices
- Apply Type Units consistently across similar Element Types — if two types both have a
storage_capacityproperty, use the sameGBType Unit - Always pair numeric properties with a unit — do not assume numbers are self-explanatory
- Use enums for controlled vocabularies to enforce consistency (e.g., environment names, risk levels)
- Choose the most specific data type — prefer
integerovernumberwhen decimal values are not meaningful - Check the built-in list first before creating a new Type Unit — the one you need may already exist