catalog.entities.update
Update an entity in your software catalog.
Facts
| Method | POST https://api.getdx.com/catalog.entities.update |
| Required scope | catalog:write:entities |
Arguments
Required arguments
| Name | Type | Description |
|---|---|---|
token |
Token |
Auth token passed as an HTTP header. |
identifier |
Text |
The user defined unique identifier for the entity. |
Optional arguments
| Name | Type | Description |
|---|---|---|
name |
Text |
The name of the entity. |
description |
Text |
The description of the entity. |
owner_team_ids |
Array<Text> |
The IDs of teams assigned as entity owners. |
owner_user_ids |
Array<Text> |
The DX user IDs assigned as entity owners. |
owner_user_emails |
Array<Text> |
The email addresses assigned as entity owners. Each email must match a user in the account. |
properties |
Entity Properties |
Key/Value object of the entity properties and their values on the entity. |
aliases |
Aliases |
Key/Value object of the aliases assigned to the entity. Each alias entry can use identifier or lookup. |
Example request
This is a typical request:
curl -X POST https://api.getdx.com/catalog.entities.update \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer xxxx-xxxxxxxxx-xxxx' \
--data '{
"identifier": "www",
"name": "Marketing Site",
"description": "The main DX marketing site",
"owner_team_ids": ["MzI1NTk"],
"owner_user_emails": ["ada@example.com"],
"properties": {
"language": ["Ruby", "HTML", "Shell"]
},
"aliases": {
"github_repo": [
{"lookup": "get-dx/www"}
]
}
}'
Example response
This is a typical success response:
{
"ok": true,
"entity": {
"identifier": "www",
"created_at": "2025-01-02 20:48:45.77969",
"updated_at": "2025-01-02 20:48:45.77969",
"type": "service",
"name": "Marketing Site",
"description": "The main DX marketing site",
"owner_teams": [{ "id": "MzI1NTk", "name": "Front end" }],
"owner_users": [{ "id": "MzI1NYn", "email": "ada@example.com" }],
"properties": {
"language": ["Ruby", "HTML", "Shell"]
},
"aliases": {
"github_repo": [
{
"identifier": "671150935",
"name": "get-dx/www",
"url": "https://github.com/get-dx/www"
}
]
}
}
}
Setting user owners by email
Use owner_user_emails to assign user owners by email address instead of DX user ID. The value must be an array of strings. Emails are matched case-insensitively after trimming surrounding whitespace, and each email must match a user in the account.
When you send owner_user_emails or owner_user_ids, the provided users become the full set of user owners for the entity. Omit both fields to preserve existing user owners. You can combine owner_user_emails with owner_user_ids; duplicate owners are stored once.
Removing Entity Properties
To remove an entity property, 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
}
Setting Aliases
When setting aliases, each alias entry must include either identifier or lookup. Use identifier when you know the external system’s unique identifier. Use lookup when you want the API to find a single matching alias entry by name or identifier from Data Cloud.
Example Request
{
"github_repo": [
{
"lookup": "get-dx/payment-processing"
}
]
}
Example Response
{
"github_repo": [
{
"identifier": "671150935",
"name": "get-dx/payment-processing",
"url": "https://github.com/get-dx/payment-processing"
}
]
}
Errors
This table lists the expected errors that this method could return. However, other errors can be returned in the case where the service is down or other unexpected factors affect processing. Callers should always check the value of the ok param in the response.
| Error | Description |
|---|---|
not_authed |
No authentication token provided. |
invalid_auth |
Some aspect of authentication cannot be validated. |
alias_lookup_ambiguous |
An alias lookup matched multiple entries for the alias type. Use a more specific lookup. |
owner_user_validation_error |
An owner_user_ids value is malformed, or an owner_user_emails value is not an array of non-empty strings or cannot be matched to users in the account. |
Legacy path
This method is temporarily still available at the following legacy path:
POST https://api.getdx.com/entities.update