- Reference
- Version · 6.0
- Change Automation Reference
checks describe
Last updated: September 29, 2026
The checks describe command generates a JSON file describing the checks in your checks settings file, including each check's current configuration and any configurable parameters. It is intended primarily for programmatic consumption.
Uses
By default, checks describe describes every check in your checks settings file. Pass --check-name to describe a single check instead. The output defaults to compact JSON; pass --format=JSON_PRETTY for indented output. The output filename defaults to liquibase.checks-descriptions.json, or liquibase.checks-descriptions-<checkname>.json when --check-name is set.
Note: If no checks settings file exists yet in your working directory, checks describe prompts you to choose one of the following before it can continue:
Create and use a default checks settings file in the current working directory
Create and use a default checks settings file at a path you specify
Create a default checks settings file in the current working directory without using it, and exit
Decline, and exit without creating anything
Pass --force to skip this prompt and create and use the default checks settings file immediately, useful for running non-interactively (for example, in CI). Combine it with --exit to create the settings file (and its example checks package files) without also generating a check descriptions file in that same run. Once a checks settings file already exists, this prompt does not appear on later runs, and --force has no effect.
Syntax
Run the command specifying your values:
liquibase checks describe --check-name=TableColumnLimit --format=JSON_PRETTY
Parameters
Global parameters
Parameter | Description | Requirement |
--license-key=<string> | Your Liquibase Pro license key | Required |
Command parameters
Parameter | Description | Requirement |
--check-name=<string> | Short name of the check to describe. If not specified, all checks are described. | Optional |
--format=<string> | Output format: JSON (compact) or JSON_PRETTY (indented). Default: JSON. | Optional |
--filename=<string> | Output filename. Defaults to liquibase.checks-descriptions.json, or liquibase.checks-descriptions-<checkname>.json if --check-name is specified. | Optional |
--force=<string> | Skips the interactive checks-settings-file creation prompt shown on a first run (no checks settings file exists yet), creating and using the default file immediately. Has no effect once a checks settings file already exists. | Optional |
--exit=<string> | Used with --force on a first run: creates the checks settings file and its example checks package files, then stops, without generating a check descriptions file. | Optional |
--auto-enable-new-checks=<string> | Automatically enable new policy checks in the liquibase.checks.conf file when they become available. Valid values: true, false. Default: false. | Optional |
--auto-update=<string> | Allows automatic backup and updating of the liquibase.checks.conf file when new policy checks or checks-settings-file changes are available. Not specific to checks describe — the same parameter applies to any checks command (run, show, etc.). Every checks command checks for available updates when it runs, but does not apply them automatically, since doing so could change your checks-settings.conf or other checks files; you must opt in explicitly. Valid values: true, false. Default: false. | Optional |
--checks-packages=<string> | If using a checks packages file, optionally specify which packages should be run from the file, as a comma-separated list. Alias: --package-names. | Optional |
--checks-settings-file=<string> | Relative or fully qualified path to a checks settings or checks package file. Alias: --checks-package-file. | Optional |
Global parameters
Parameter | Description | Requirement |
globalArgs: { license-key: "<string>" } | Your Liquibase Pro license key | Required |
Command parameters
Parameter | Description | Requirement |
cmdArgs: { check-name: "<string>" } | Short name of the check to describe. If not specified, all checks are described. | Optional |
cmdArgs: { format: "<string>" } | Output format: JSON (compact) or JSON_PRETTY (indented). Default: JSON. | Optional |
cmdArgs: { filename: "<string>" } | Output filename. Defaults to liquibase.checks-descriptions.json, or liquibase.checks-descriptions-<checkname>.json if --check-name is specified. | Optional |
cmdArgs: { force: "<string>" } | Skips the interactive checks-settings-file creation prompt shown on a first run (no checks settings file exists yet), creating and using the default file immediately. Has no effect once a checks settings file already exists. | Optional |
cmdArgs: { exit: "<string>" } | Used with --force on a first run: creates the checks settings file and its example checks package files, then stops, without generating a check descriptions file. | Optional |
cmdArgs: { auto-enable-new-checks: "<string>" } | Automatically enable new policy checks in the liquibase.checks.conf file when they become available. Valid values: true, false. Default: false. | Optional |
cmdArgs: { auto-update: "<string>" } | Allows automatic backup and updating of the liquibase.checks.conf file when new policy checks or checks-settings-file changes are available. Not specific to checks describe — the same parameter applies to any checks command (run, show, etc.). Every checks command checks for available updates when it runs, but does not apply them automatically, since doing so could change your checks-settings.conf or other checks files; you must opt in explicitly. Valid values: true, false. Default: false. | Optional |
cmdArgs: { checks-packages: "<string>" } | If using a checks packages file, optionally specify which packages should be run from the file, as a comma-separated list. Alias: --package-names. | Optional |
cmdArgs: { checks-settings-file: "<string>" } | Relative or fully qualified path to a checks settings or checks package file. Alias: --checks-package-file. | Optional |
Global parameters
Parameter | Description | Requirement |
liquibase.licenseKey: <string> | Your Liquibase Pro license key | Required |
Command parameters
Parameter | Description | Requirement |
liquibase.command.checks.describe.checkName: <string> | Short name of the check to describe. If not specified, all checks are described. | Optional |
liquibase.command.checks.describe.format: <string> | Output format: JSON (compact) or JSON_PRETTY (indented). Default: JSON. | Optional |
liquibase.command.checks.describe.filename: <string> | Output filename. Defaults to liquibase.checks-descriptions.json, or liquibase.checks-descriptions-<checkname>.json if --check-name is specified. | Optional |
liquibase.command.checks.describe.force: <string> | Skips the interactive checks-settings-file creation prompt shown on a first run (no checks settings file exists yet), creating and using the default file immediately. Has no effect once a checks settings file already exists. | Optional |
liquibase.command.checks.describe.exit: <string> | Used with --force on a first run: creates the checks settings file and its example checks package files, then stops, without generating a check descriptions file. | Optional |
liquibase.command.checks.describe.autoEnableNewChecks: <string> | Automatically enable new policy checks in the liquibase.checks.conf file when they become available. Valid values: true, false. Default: false. | Optional |
liquibase.command.checks.describe.autoUpdate: <string> | Allows automatic backup and updating of the liquibase.checks.conf file when new policy checks or checks-settings-file changes are available. Not specific to checks describe — the same parameter applies to any checks command (run, show, etc.). Every checks command checks for available updates when it runs, but does not apply them automatically, since doing so could change your checks-settings.conf or other checks files; you must opt in explicitly. Valid values: true, false. Default: false. | Optional |
liquibase.command.checks.describe.checksPackages: <string> | If using a checks packages file, optionally specify which packages should be run from the file, as a comma-separated list. Alias: --package-names. | Optional |
liquibase.command.checks.describe.checksSettingsFile: <string> | Relative or fully qualified path to a checks settings or checks package file. Alias: --checks-package-file. | Optional |
Global parameters
Parameter | Description | Requirement |
JAVA_OPTS=-Dliquibase.licenseKey=<string> | Your Liquibase Pro license key | Required |
Command parameters
Parameter | Description | Requirement |
JAVA_OPTS=-Dliquibase.command.checks.describe.checkName=<string> | Short name of the check to describe. If not specified, all checks are described. | Optional |
JAVA_OPTS=-Dliquibase.command.checks.describe.format=<string> | Output format: JSON (compact) or JSON_PRETTY (indented). Default: JSON. | Optional |
JAVA_OPTS=-Dliquibase.command.checks.describe.filename=<string> | Output filename. Defaults to liquibase.checks-descriptions.json, or liquibase.checks-descriptions-<checkname>.json if --check-name is specified. | Optional |
JAVA_OPTS=-Dliquibase.command.checks.describe.force=<string> | Skips the interactive checks-settings-file creation prompt shown on a first run (no checks settings file exists yet), creating and using the default file immediately. Has no effect once a checks settings file already exists. | Optional |
JAVA_OPTS=-Dliquibase.command.checks.describe.exit=<string> | Used with --force on a first run: creates the checks settings file and its example checks package files, then stops, without generating a check descriptions file. | Optional |
JAVA_OPTS=-Dliquibase.command.checks.describe.autoEnableNewChecks=<string> | Automatically enable new policy checks in the liquibase.checks.conf file when they become available. Valid values: true, false. Default: false. | Optional |
JAVA_OPTS=-Dliquibase.command.checks.describe.autoUpdate=<string> | Allows automatic backup and updating of the liquibase.checks.conf file when new policy checks or checks-settings-file changes are available. Not specific to checks describe — the same parameter applies to any checks command (run, show, etc.). Every checks command checks for available updates when it runs, but does not apply them automatically, since doing so could change your checks-settings.conf or other checks files; you must opt in explicitly. Valid values: true, false. Default: false. | Optional |
JAVA_OPTS=-Dliquibase.command.checks.describe.checksPackages=<string> | If using a checks packages file, optionally specify which packages should be run from the file, as a comma-separated list. Alias: --package-names. | Optional |
JAVA_OPTS=-Dliquibase.command.checks.describe.checksSettingsFile=<string> | Relative or fully qualified path to a checks settings or checks package file. Alias: --checks-package-file. | Optional |
Output
Example output for a single configurable check, generated with:
liquibase checks describe --check-name=TableColumnLimit --format=JSON_PRETTY
{
"checks" : [ {
"shortName" : "TableColumnLimit",
"name" : "Check Table Column Count",
"description" : "Enforces a maximum TABLE COLUMN LIMIT to maintain database design quality and prevent overly wide tables that can indicate poor normalization, hurt query performance, and make the schema difficult to understand and maintain over time.",
"id" : "2abde5de-a71d-3ead-8fd6-e13a743c0aec",
"enabled" : true,
"severity" : 0,
"severityName" : "INFO",
"enabledOptions" : [ true, false ],
"severityOptions" : [ 0, 1, 2, 3, 4 ],
"severityNameOptions" : [ "INFO", "MINOR", "MAJOR", "CRITICAL", "BLOCKER" ],
"scope" : [ "changelog", "database" ],
"supportedFormats" : [ "sql", "xml", "yaml", "json" ],
"tags" : [ ],
"priority" : 70,
"configurable" : true,
"category" : "Data Protection",
"parentRuleId" : null,
"parameters" : [ {
"name" : "MAX_COLUMNS",
"description" : "The maximum number of allowed columns.",
"type" : "INTEGER",
"defaultValue" : "50",
"currentValue" : "50",
"options" : "positive numeric value",
"required" : true
} ],
"configureOptions" : {
"newCheckName" : {
"description" : "Optional custom short name for the new check copy. If not provided, an auto-incremented name is generated (e.g., TableColumnLimit1).",
"type" : "STRING",
"required" : false,
"validation" : "alphanumeric characters only, must be unique",
"validationPattern" : "^[a-zA-Z0-9]+$"
},
"severity" : {
"description" : "Severity level for the check.",
"type" : "ENUM",
"required" : false,
"options" : "INFO, MINOR, MAJOR, CRITICAL, BLOCKER (or 0-4)"
}
}
} ],
"checksCount" : 1,
"generatedAt" : "2026-08-20T21:11:00.926065Z",
"categories" : [ "Advanced Policies", "Authorization and Access", "Data Protection", "Database Compatibility", "Metadata Content", "Scripting Standards", "Sensitive Data" ]
}
Option fields
enabledOptions, severityOptions, severityNameOptions, and categories list the values a check accepts rather than the values it currently has, so you can build a configuration interface from a single checks describe run. The three per-check lists are identical for every check, and categories is always the complete set, whether you describe one check or all of them.
enabledOptions: The valuesenabledaccepts.severityOptions: The valuesseverityaccepts.severityNameOptions: The valuesseverityNameaccepts, in the same order asseverityOptions.categories: Every category name Liquibase recognizes. A check's own category is in itscategoryfield.