update-datahub-dataset
dci update-datahub-dataset <name> [body]
Updates an existing DataHub dataset's metadata. The description, displayName and logoName fields can be updated.
Only the fields present in the request body are changed; an omitted field keeps its stored value, and an empty string clears it.
The dataset name is immutable and serves as the resource identifier and the ingest provider value. To change how a dataset is displayed in the console and in report results, set displayName; saved reports, budgets, alerts and filters keep working because they reference name.
If name is included in the request body, it must match the dataset name in the URL path. A mismatched name will be rejected with a 400 error.
name— Dataset name as shown bydci list-datahub-datasets. The name is the dataset's identifier and the ingestprovidervalue, and cannot be changed; setdisplayNameto change how the dataset is labelled in the console and in report results.
Pass the request body as name: value arguments or pipe JSON on stdin — see Command structure.
Only the fields present in the request body change: an omitted field keeps
its stored value, and an empty string clears it. Include name only to
make the request fail loudly if it does not match the dataset in the path —
it can never rename the dataset.
displayNameis what the console and report results show instead ofname. Saved reports, budgets, alerts and filters keep working across a display rename because they all referencename.dci list-datahub-datasetsshows a display name column whenever at least one dataset has one, so a display rename is visible in the CLI too.- Unknown body fields are rejected before the request is sent; the accepted
fields are
description,displayName,logoNameandname.
Examples
# Change the description; omitted fields keep their stored values.
dci update-datahub-dataset <dataset-name> description: "Token spend exported nightly from LiteLLM"
# Label the dataset for the console and report results without renaming it.
dci update-datahub-dataset <dataset-name> displayName: "Datadog prod"
# Set the preset logo shown in the DoiT console.
dci update-datahub-dataset <dataset-name> logoName: litellm
# Clear the description, display name and logo by sending empty strings.
dci update-datahub-dataset <dataset-name> description: "", displayName: "", logoName: ""
Request
Content-Type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Must match the dataset name in the URL path. Included for idempotency; the name cannot be changed. | |
description | string | The new description for the dataset. Omit to keep the current description; send an empty string to clear it. | |
displayName | string | Human-readable name shown in the DoiT console and in report results instead of name. 1-64 characters after trimming; must not be unique. Omit to keep the current display name; send an empty string to clear it and fall back to name. | |
logoName | string | The preset logo shown next to the dataset in the DoiT console. Omit to keep the current logo; send an empty string to clear it. One of: "", "anthropic", "atlassian", "aws", "azure", "chatgpt", "cloudflare", "copilot", "figma", "gcp", "github", "gitlab", …. |
Raw JSON schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Must match the dataset name in the URL path. Included for idempotency; the name cannot be changed.",
"example": "My Custom Dataset"
},
"description": {
"type": "string",
"description": "The new description for the dataset. Omit to keep the current description; send an empty string to clear it.",
"example": "Updated description for the dataset"
},
"displayName": {
"type": "string",
"description": "Human-readable name shown in the DoiT console and in report results instead of `name`. 1-64 characters after trimming; must not be unique. Omit to keep the current display name; send an empty string to clear it and fall back to `name`.",
"example": "Datadog (prod)",
"maxLength": 64
},
"logoName": {
"type": "string",
"description": "The preset logo shown next to the dataset in the DoiT console. Omit to keep the current logo; send an empty string to clear it.",
"example": "litellm",
"enum": [
"",
"anthropic",
"atlassian",
"aws",
"azure",
"chatgpt",
"cloudflare",
"copilot",
"figma",
"gcp",
"github",
"gitlab",
"hotjar",
"jira",
"litellm",
"miro",
"notion",
"slack",
"wordpress"
]
}
}
}
Output
OK - Dataset updated successfully.
By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.
| Field | Type | Description |
|---|---|---|
name | string | The name of the dataset. |
description | string | The description of the dataset. |
records | integer (int64) | The number of records in the dataset. |
updatedBy | string | The email of the user who last updated the dataset. |
lastUpdated | string | The timestamp of the last update. |
displayName | string | Human-readable name shown in the DoiT console and in report results instead of name. Absent when the dataset is displayed by its name. Does not affect ingest, which always uses name as the provider. |
logoName | string | The preset logo shown next to the dataset in the DoiT console. Absent when the dataset has no preset logo. |
Raw JSON schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the dataset.",
"example": "My Custom Dataset"
},
"description": {
"type": "string",
"description": "The description of the dataset.",
"example": "Updated description for the dataset"
},
"records": {
"type": "integer",
"format": "int64",
"description": "The number of records in the dataset.",
"example": 1500,
"nullable": true
},
"updatedBy": {
"type": "string",
"description": "The email of the user who last updated the dataset.",
},
"lastUpdated": {
"type": "string",
"description": "The timestamp of the last update.",
"example": "2024-03-10T23:00:00Z"
},
"displayName": {
"type": "string",
"description": "Human-readable name shown in the DoiT console and in report results instead of `name`. Absent when the dataset is displayed by its `name`. Does not affect ingest, which always uses `name` as the provider.",
"example": "Datadog (prod)"
},
"logoName": {
"type": "string",
"description": "The preset logo shown next to the dataset in the DoiT console. Absent when the dataset has no preset logo.",
"example": "litellm"
}
}
}
Errors
On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.
HTTP status to exit code mapping
| HTTP status | Exit code | Error code | Meaning |
|---|---|---|---|
| 400 | 30 | VALIDATION_ERROR | The arguments or request body were rejected. Review the command's flags and payload. |
| 401 | 10 | AUTHENTICATION_FAILED | Not signed in, or the API token is invalid. Run dci login or check DCI_API_KEY. |
| 403 | 11 | PERMISSION_DENIED | The DoiT user or the active customer context does not have access. |
| 404 | 20 | RESOURCE_NOT_FOUND | The requested resource does not exist. Check the identifier argument. |
| 500 | 40 | API_SERVER_ERROR | The API failed to process the request. Retryable; contact DoiT support if it persists. |
Related
- get-datahub-dataset — Retrieve a dataset
- list-datahub-datasets — List datasets
- create-datahub-dataset — Create dataset
- delete-datahub-dataset — Delete a dataset
- export-datahub-dataset-records — Export dataset records
- API reference: PATCH /datahub/v1/datasets/{name}
Aliases: updatedatahubdataset