Configuration Change Audit API

Learn about the Configuration Change Audit Application Programming Interface (API) in Cloudera Manager, including its operational capabilities, query parameters, authorization model, and behavioral semantics. Understand the business purpose and high-level architecture of the Configuration Change Audit REST API in Cloudera Manager.

Overview

Cloudera Manager maintains configuration change history through its existing revision and audit infrastructure. Historically, administrators accessed this history through the Config History user interface (UI). External security, governance, and compliance systems lacked a supported Representational State Transfer (REST) API to query configuration differences programmatically.

The Configuration Change Audit API introduces a dedicated REST endpoint:
GET /api/v58/audits/configChanges
The API exposes configuration change records in a structured, filterable format that includes the following details:
  • The user who made the change

  • The timestamp when the change occurred

  • The revision identifier (revisionId)

  • The affected cluster, service, or role

  • The configuration parameter name

  • The previous configuration value

  • The new configuration value

Key Benefits

Understand the evolution of configuration change tracking in Cloudera Manager and how the dedicated Configuration Audit API simplifies integration with enterprise security and automation platforms.

Legacy Configuration racking

Cloudera Manager recorded configuration changes using Hibernate Envers and dedicated revision tables. While the Cloudera Manager Admin Console consumed this information in the Config History UI, external consumers had to assemble configuration audit details indirectly. External tools had to combine raw event streams with low-level audit records, which created maintenance overhead and led to inconsistent parsing.

How the API Resolves Integration Challenges
The new API provides a supported, programmatic interface that allows external security and automation tools to extract configuration audit records directly. The API addresses several core operational use cases, including the following scenarios:
  • Compliance audits: Query all configuration changes made across managed clusters within the past 30 days.

  • Security investigations: Determine which user changed sensitive configuration parameters, such as dfs.replication.

  • Security Information and Event Management (SIEM) integration: Poll configuration changes regularly and correlate configuration modifications with external security events.

  • Incident investigation: Inspect previous configuration values before an outage or regression occurred.

Key Features and Functional Capabilities

Understand the core design objectives, query parameters, and security features supported by the Configuration Change Audit API.

The Configuration Change Audit API provides the following core capabilities:
  • Stable REST endpoint: Access configuration audit events programmatically through GET /api/v58/audits/configChanges.

  • Hierarchical data model: Organizes change records logically across revisions, clusters, services, and modified entities.

  • Timestamp-based filtering: Enables precise historical windowing using standardized ISO timestamps.

  • Granular resource scoping: Restricts queries to target clusters, specific services, or individual configuration parameters.

  • FIQL query syntax: Leverages Feed Item Query Language (FIQL) expressions to execute complex, multi-attribute searches.

  • Revision-level pagination: Groups response pages by complete revision boundaries to preserve transaction integrity.

  • Role-based access control (RBAC): Restricts access to audit history using dedicated Cloudera Manager user authorities.

  • Sensitive data redaction: Automatically masks passwords and secret parameters in parity with Config History UI redaction policies.

  • Direct revision lookup: Fetches specific change events directly using unique revisionId identifiers.

API Query Parameters

Review the supported query parameters, their default values, and available filtering options.

Every query parameter for GET /api/v58/audits/configChanges is optional and includes a default value.
Parameter Default Value Description
revisionId None Point lookup for a specific revision ID. When you specify this parameter, Cloudera Manager prioritizes it and ignores all other query filters.
clusterName None Filters by exact match on the cluster immutable name or display name.
serviceName None Filters by exact match on the service immutable name or display name.
configParameter None Filters by exact match on the configuration parameter name.
startTime 1 day before endTime Defines the start of the query window in ISO 8601 format (inclusive).
endTime Current time (now) Defines the end of the query window in ISO 8601 format (exclusive).
limit 100 Specifies the maximum number of revision records returned. The minimum value is 1 and the maximum value is 1000.
beforeRevisionId None Acts as a pagination cursor. Returns revisions with an ID strictly less than the specified value.
query None Accepts a FIQL query expression to filter changes by user, role, source, parameter, or values.

Paginating Audit Results

Understand cursor-based navigation using beforeRevisionId to retrieve large audit trails safely without splitting change sets.

The Configuration Change Audit API uses revision-level pagination rather than record-level offsets. When an administrator saves a configuration change in Cloudera Manager, that single transaction can update multiple parameters under one revision ID. Paginating strictly across revision boundaries ensures that Cloudera Manager never fragments a single logical save operation across separate API response pages.
Request 1: GET .../configChanges?limit=100
           (Returns revisions 500 down to 401. Smallest revisionId = 401)
     ↓
Request 2: GET .../configChanges?limit=100&beforeRevisionId=401
           (Returns revisions 400 down to 301. Smallest revisionId = 301)
     ↓
Request 3: GET .../configChanges?limit=100&beforeRevisionId=301
           (Returns revisions 300 down to 201)
How to Paginate Through Results
To paginate through audit results:
  1. Send an initial GET request without the beforeRevisionId parameter.

  2. Identify the lowest revisionId value in the returned response list.

  3. Pass that value as the beforeRevisionId query parameter in your subsequent request.

  4. Repeat this process until the API returns an empty list.

Security Governance and Redaction

Review the authentication privileges, role requirements, and automated credential redaction policies enforced by the endpoint.

Role-Based Access Control (RBAC)
Cloudera Manager controls access to this endpoint through the dedicated AUTH_AUDITS permission authority.
Cloudera Manager User Role Has AUTH_AUDITS Authority Endpoint Access
ROLE_ADMIN Yes Allowed
ROLE_AUDITOR Yes Allowed
ROLE_USER and lower roles No Denied (HTTP 403 Forbidden)

If a user without the AUTH_AUDITS authority submits a request to the endpoint, Cloudera Manager rejects the request with an HTTP 403 Forbidden response.

Sensitive Data Redaction

To prevent credential leaks, the API enforces the same redaction rules as the Config History UI. Sensitive values such as passwords, private keys, Kerberos keytab contents, and confidential credentials, automatically appear as masked strings in both the oldValue and newValue fields.

Configuration Audit Scope

Identify the configuration objects included in the audit stream and the administrative settings excluded from this endpoint.

Supported Configuration Objects
The API audits configuration changes associated with the following resources:
  • Service-level configurations: Global service properties, such as default HDFS replication settings and YARN cluster memory allocations.

  • Role-level configurations: Process-specific parameters, such as NameNode Java Virtual Machine (JVM) heap limits.

  • Role Config Groups (RCG): Specialized configuration group property overrides.

  • Host-level configurations: Host-specific Cloudera Manager Agent parameters.

Excluded Configuration Objects
The following configuration resources fall outside the scope of this endpoint:
  • Cloudera Manager server settings: Internal Cloudera Manager administrative configurations use a separate auditing path.

  • External account configurations: External authentication and third-party credential associations fall outside cluster configuration auditing.

API Behavior and Validation Rules

Learn how the API evaluates query parameters, handles boundary conditions, parses parameter changes, and validates input requests.

Parameter Precedence (revisionId)

When you specify revisionId, Cloudera Manager treats it as the highest-priority filter. The API ignores all additional filtering parameters in the request (such as clusterName, serviceName, startTime, endTime, limit, beforeRevisionId, or query) without returning an error.

Handling Empty Query Parameters
The API treats empty parameter keys or empty assigned values as omitted parameters. The following requests produce identical results:
  • GET /api/v58/audits/configChanges?clusterName

  • GET /api/v58/audits/configChanges?clusterName=

  • GET /api/v58/audits/configChanges

Half-Open Time Range Evaluation
The API calculates time boundaries using a standard half-open interval:
[startTime,endTime)
Cloudera Manager includes revisions where:
timestamp ≥ startTimeANDtimestamp < endTime
Deletion and Reset Semantics
When an administrator removes an explicit role-level or service-level configuration override, the audit record returns an oldValue without a corresponding newValue:
{
  "configParameter": "dfs.datanode.data.dir",
  "oldValue": "/data/dfs/dn"
}

This payload indicates that the administrator deleted an override at that specific configuration level, causing the parameter to inherit its default value from the parent level.

Addition and Override Semantics
When an administrator sets an explicit value for a parameter that previously had no custom value, the audit record returns a newValue without an oldValue:
{
  "configParameter": "dfs.replication",
  "newValue": "3"
}

This payload indicates that the administrator added a new, explicit configuration value at the audited hierarchy level.

Duplicate Parameter Validation
The API allows each supported query parameter to appear only once per request. Supplying the same query parameter multiple times causes Cloudera Manager to reject the call with an HTTP 400 Bad Request status:
GET /api/v58/audits/configChanges?clusterName=ClusterA&clusterName=ClusterB

HTTP/1.1 400 Bad Request