Entity Properties
Entity Properties are key-value pairs where the key is the identifier of the property, and the value is a dynamic type based on the configured catalog Property object. The contents of the value is specific to the entity.
Property identifiers can easily be found in the catalog admin section under each entity type, next to the property name.
Example
Example where language is the property identifier for a multi-select property:
{
"language": ["Ruby", "HTML", "Shell"]
}
Types of Properties
See the Property object type for more information about supported types and how to configure them.
Single field
URL
A string which is a URL.
type: url
{ "slack-team": "https://company.slack.com/archive/2394kfl3" }
Text
Simple open-ended text value.
type: text
{ "note": "Do not deploy" }
Boolean
Simple true/false value.
type: boolean
{ "approved": true }
Number
Simple integer value.
type: number
{ "q3-incidents": 12 }
Date
A string which is a date.
type: date
{ "reviewed_on": "2025-01-12" }
Multiple fields
Single-select
Has a distinct set of possible values. One value allowed.
type: select
{ "service-tier": "Tier-1" }
Multi-select
Has a distinct set of possible values. Multiple values allowed.
type: multi_select
{ "languages": ["Ruby", "Javascript"] }
List
An ordered list of free-form string values.
type: list
{ "frameworks": ["React", "Rails", "GraphQL"] }
JSON
A nested JSON object.
type: json
{ "json_config": { "key1": "value1", "array": [0, 1, 2] } }
Communication
User
A user identified by their email address.
type: user
{ "on-call-owner": "jane@example.com" }
An email address used as a notification destination for entity-level alerts.
type: email
{ "alert-email": "team@example.com" }
Note: This property type is only available if your account has email notifications configured.
Slack Channel
A Slack channel used as a notification destination for entity-level alerts.
type: slack_channel
{
"alert-channel": {
"channel_id": "C012AB3CD",
"channel_name": "platform-alerts"
}
}
Note: This property type is only available if your account has a Slack integration configured.
Microsoft Teams Channel
A Microsoft Teams channel used as a notification destination for entity-level alerts.
type: msteams_channel
{
"alert-channel": {
"channel_id": "19:abc123@thread.tacv2",
"channel_name": "platform-alerts"
}
}
Note: This property type is only available if your account has a Microsoft Teams integration configured.
OpenAPI Spec
A JSON object containing an OpenAPI or Swagger spec.
type: openapi
{
"api-docs": {
"openapi": "3.0.0",
"info": {
"title": "My API",
"version": "1.0.0"
},
"paths": {}
}
}
System
Computed
Has a SQL query to compute the value.
type: computed
{ "open-prs": 2 }
File matching rule
Pattern matches from repository file contents.
type: file_matching_rule
Example value:
{
"console-log-statements": {
"status": "FOUND_MATCHES",
"match_count": 2,
"matches": [
{
"file_path": "src/main.js",
"line": 5,
"output": "console.log(\"Hello world\")",
"reference_url": "https://example.com/path/to/src/main.js#line-5"
}
{
"file_path": "src/main.js",
"line": 10,
"output": "console.log(\"Other log statement\")",
"reference_url": "https://example.com/path/to/src/main.js#line-10"
}
]
}
}
The status field can be one of these values:
| Value | Description |
|---|---|
FOUND_MATCHES |
One or more matches were found in the file |
NO_MATCHES |
The file was found but no matches were present |
FILE_NOT_FOUND |
The file path did not exist in the repository |
If an entity does not have a repo alias covered by a repository integration, the entity property will not be present.
Fields
Entity Properties are stored as key-value pairs where:
| Key | Type | Description |
|---|---|---|
<property_identifier> |
varies | The value of the entity property. The type depends on the property configuration (boolean, string, number, array, object, etc.). |
Removing Entity Properties
To remove an entity property, simply update or upsert a catalog entity with the desired property to remove and set null as the value. Omitted properties will not be affected.
Example:
{
"language": null
}