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.
Boolean
Simple true/false value.
type: boolean
{ "approved": true }
Computed
Has a SQL query to compute the value.
type: computed
{ "open-prs": 2 }
Number
Simple integer value.
type: number
{ "q3-incidents": 12 }
Relation
Relates one entity to another, like a link.
type: relation
{ "resource": ["db", "s3"] }
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"] }
Text
Simple open-ended text value.
type: text
{ "note": "Do not deploy" }
URL
A string which is a URL.
type: url
{ "slack-team": "https://company.slack.com/archive/2394kfl3" }
Date
A string which is a date.
type: date
{ "reviewed_on": "2025-01-12" }
JSON
A nested JSON object.
type: json
{ "json_config": { "key1": "value1", "array": [0, 1, 2] } }
OpenAPI Spec
A JSON object containing an OpenAPI or Swagger spec.
type: openapi
{
"api-docs": {
"openapi": "3.0.0",
"info": {
"title": "Swagger Petstore"
}
// etc.
}
}
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
}