• Concept
  • Version ยท 6.0
  • Manage

Configure operation reporting

Last updated: September 29, 2026

Configure Liquibase Server environment variables.

The reporting extension reads its settings through Liquibase's standard configuration system. You can set each value in liquibase.properties, in a file passed with --defaults-file, as an environment variable prefixed with LIQUIBASE_PLATFORM_, or as a JVM system property (-D flag). Liquibase's normal precedence applies, so a system property overrides an environment variable, which overrides a properties file.

the server is disabled by default (opt-in).

Warning: Operation reporting is a Liquibase Secure feature and runs only on a licensed Liquibase Secure installation. On Liquibase Community the extension disables itself (your Liquibase command still runs, but no data is sent). Liquibase Community is not a supported configuration.

Configuration properties

These are the variables you need to connect to the server.

Env Variable

System Property

Default

Description

LIQUIBASE_PLATFORM_ENABLED

liquibase.platform.enabled

false

Enable/disable operation reporting (opt-in)

LIQUIBASE_PLATFORM_API_URL

liquibase.platform.apiUrl

โ€”

API root for your deployment, for example https://liquibase.example.com/api (required for HTTP mode)

LIQUIBASE_PLATFORM_API_KEY

liquibase.platform.apiKey

โ€”

API key for HTTP mode

LIQUIBASE_PLATFORM_CONNECTION_IDENTIFIER

liquibase.platform.connectionIdentifier

โ€”

Connection identifier string (e.g., conn-user-svc-prod). Links operations to a connection. See the identifier resolution note below.

LIQUIBASE_PLATFORM_CHANGELOG_IDENTIFIER

liquibase.platform.changelogIdentifier

โ€”

Changelog identifier string (e.g., user-service-changelog). Links operations to a changelog. See the identifier resolution note below.

Note: The environment name (dev, staging, prod, etc.) is resolved automatically from the connection's associated environment in the server API. There is no local environment variable to set.

Note: If you don't set an identifier, the operation is attributed to your workspace's default connection or changelog. If you set an identifier that doesn't match anything in your workspace (for example, a typo), the operation ships without that attribution instead of falling back to the default. This prevents a typo from silently attributing an operation to the wrong connection or changelog.

API root

liquibase.platform.apiUrl is the address of your server with /api on the end, not the address of a particular endpoint. Liquibase works out the rest of each URL it needs, so your value stops at /api. A trailing slash makes no difference.

Every Liquibase capability that talks to the platform reads this one setting, so enabling a second capability needs no new connection configuration.

Note: Do not end the root with a resource path such as /operations/ingest. Liquibase appends the resource path itself, so a root that already carries one produces a URL that does not exist.

Derive the root for a standard install

The server exposes its API under /api. Take the URL your team opens in a browser and add that prefix.

loading

Derive the root behind a reverse proxy

If a proxy serves the platform under a path of its own, that path belongs to you and is part of your root. Keep it, then add the API prefix after it.

loading

Minimal configuration

For most setups, you only need these variables:

loading

loading

Configuration methods

Environment variables

loading

loading

System properties

Pass as JVM -D flags (useful for Maven or Gradle builds):

loading

Properties file

Set the values in liquibase.properties, or in any file you pass with --defaults-file:

liquibase.platform.enabled=true
liquibase.platform.apiUrl=http://localhost:3000/api
liquibase.platform.apiKey=your_api_key

Note: Older releases could not read these values from liquibase.properties, because Liquibase's LogService initialized before the defaults file was loaded. That is fixed, and a properties file is now a supported way to configure the server.

Disable operation reporting

To temporarily disable operation reporting:

loading

$env:LIQUIBASE_PLATFORM_ENABLED = "false"

Advanced properties

These variables control internal behavior and are not required for normal operation. They are available for troubleshooting or for environments that need non-default tuning.

Env Variable

System Property

Default

Description

LIQUIBASE_PLATFORM_BATCH_SIZE

liquibase.platform.batchSize

10

Number of log entries batched per HTTP request

LIQUIBASE_PLATFORM_RECOVERY_FILE_PATH

liquibase.platform.recoveryFilePath

./platform-recovery.ndjson

Recovery file for failed HTTP payloads. Retry or inspect later.

LIQUIBASE_PLATFORM_CAPTURE_REPORTS

liquibase.platform.captureReports

true

Capture and upload HTML reports as artifacts

LIQUIBASE_PLATFORM_REPORTS_PATH

liquibase.platform.reportsPath

auto-detect

Override path to look for HTML reports

LIQUIBASE_PLATFORM_DEBUG

liquibase.platform.debug

false

Print verbose [LB-PLATFORM-DEBUG] output to stdout for troubleshooting

LIQUIBASE_PLATFORM_FAIL_ON_ERROR

liquibase.platform.failOnError

false

When true, Liquibase commands fail if the extension encounters an error. Only enable for CI pipelines that require hard failure on telemetry errors.

Note: The extension does not need its own report name or path. It reads whatever --report-name and --report-path resolved to for the command, so a renamed or relocated report is still uploaded. Set liquibase.platform.reportsPath only when the extension should look somewhere else. It wins over the path Liquibase resolved, and when neither is set the extension falls back to Liquibase's global report path and then to the working directory.

Note: In Liquibase Secure 6.0.0, the extension reads reports from the local file system only. If the report path is an Amazon S3 (s3://) or Azure Storage (az://) location, the report is not uploaded.

Output mode

The extension sends operation data directly to the server API via HTTP POST. Logs are batched and sent automatically after each command runs.

  • If the API is unreachable, logs are written to a local recovery file (configurable via LIQUIBASE_PLATFORM_RECOVERY_FILE_PATH)

  • The CLI command still succeeds regardless of API connectivity