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
}