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.
GET /api/v58/audits/configChanges-
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.
-
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.
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.
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:
-
Send an initial
GETrequest without thebeforeRevisionIdparameter. -
Identify the lowest
revisionIdvalue in the returned response list. -
Pass that value as the
beforeRevisionIdquery parameter in your subsequent request. -
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_AUDITSpermission authority.Cloudera Manager User Role Has AUTH_AUDITSAuthorityEndpoint 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_AUDITSauthority submits a request to the endpoint, Cloudera Manager rejects the request with anHTTP 403 Forbiddenresponse. - 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
oldValueandnewValuefields.
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 asclusterName,serviceName,startTime,endTime,limit,beforeRevisionId, orquery) 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
oldValuewithout a correspondingnewValue:{ "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
newValuewithout anoldValue:{ "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 Requeststatus:GET /api/v58/audits/configChanges?clusterName=ClusterA&clusterName=ClusterB HTTP/1.1 400 Bad Request
