From 466f62ed6153435c624fa5a97a906ab298a381d9 Mon Sep 17 00:00:00 2001 From: Tommy Brunn Date: Sun, 7 Feb 2021 18:34:30 +0100 Subject: [PATCH 1/2] Add ConfigSource to DescribeConfigs Fixes #1022 --- docs/Admin.md | 1 + index.js | 2 + src/protocol/configSource.js | 12 ++++ .../fixtures/v0_request_broker_config.json | 1 + .../fixtures/v0_request_topic_config.json | 1 + .../fixtures/v0_response_broker_config.json | 1 + .../fixtures/v0_response_topic_config.json | 1 + .../describeConfigs/fixtures/v1_request.json | 2 +- .../describeConfigs/fixtures/v1_response.json | 2 +- .../requests/describeConfigs/v0/response.js | 69 +++++++++++++++---- .../describeConfigs/v0/response.spec.js | 35 ++++++++++ .../describeConfigs/v1/request.spec.js | 5 +- .../requests/describeConfigs/v1/response.js | 27 +++++--- .../describeConfigs/v1/response.spec.js | 12 ++-- .../describeConfigs/v2/request.spec.js | 5 +- .../describeConfigs/v2/response.spec.js | 15 ++-- types/index.d.ts | 13 +++- 17 files changed, 163 insertions(+), 41 deletions(-) create mode 100644 src/protocol/configSource.js create mode 100644 src/protocol/requests/describeConfigs/fixtures/v0_request_broker_config.json create mode 100644 src/protocol/requests/describeConfigs/fixtures/v0_request_topic_config.json create mode 100644 src/protocol/requests/describeConfigs/fixtures/v0_response_broker_config.json create mode 100644 src/protocol/requests/describeConfigs/fixtures/v0_response_topic_config.json diff --git a/docs/Admin.md b/docs/Admin.md index f1f932827..be35916ab 100644 --- a/docs/Admin.md +++ b/docs/Admin.md @@ -363,6 +363,7 @@ Example response: configName: 'cleanup.policy', configValue: 'delete', isDefault: true, + configSource: 5, isSensitive: false, readOnly: false }], diff --git a/index.js b/index.js index e11313dbb..9a1eaa509 100644 --- a/index.js +++ b/index.js @@ -5,6 +5,7 @@ const Partitioners = require('./src/producer/partitioners') const Compression = require('./src/protocol/message/compression') const ResourceTypes = require('./src/protocol/resourceTypes') const ConfigResourceTypes = require('./src/protocol/configResourceTypes') +const ConfigSource = require('./src/protocol/configSource') const AclResourceTypes = require('./src/protocol/aclResourceTypes') const AclOperationTypes = require('./src/protocol/aclOperationTypes') const AclPermissionTypes = require('./src/protocol/aclPermissionTypes') @@ -31,4 +32,5 @@ module.exports = { AclOperationTypes, AclPermissionTypes, ResourcePatternTypes, + ConfigSource, } diff --git a/src/protocol/configSource.js b/src/protocol/configSource.js new file mode 100644 index 000000000..98f5e05bf --- /dev/null +++ b/src/protocol/configSource.js @@ -0,0 +1,12 @@ +/** + * @see https://github.com/apache/kafka/blob/1f240ce1793cab09e1c4823e17436d2b030df2bc/clients/src/main/java/org/apache/kafka/common/requests/DescribeConfigsResponse.java#L115-L122 + */ +module.exports = { + UNKNOWN: 0, + TOPIC_CONFIG: 1, + DYNAMIC_BROKER_CONFIG: 2, + DYNAMIC_DEFAULT_BROKER_CONFIG: 3, + STATIC_BROKER_CONFIG: 4, + DEFAULT_CONFIG: 5, + DYNAMIC_BROKER_LOGGER_CONFIG: 6, +} diff --git a/src/protocol/requests/describeConfigs/fixtures/v0_request_broker_config.json b/src/protocol/requests/describeConfigs/fixtures/v0_request_broker_config.json new file mode 100644 index 000000000..382125193 --- /dev/null +++ b/src/protocol/requests/describeConfigs/fixtures/v0_request_broker_config.json @@ -0,0 +1 @@ +{"type":"Buffer","data":[0,0,0,1,4,0,1,48,0,0,0,1,0,26,115,97,115,108,46,107,101,114,98,101,114,111,115,46,115,101,114,118,105,99,101,46,110,97,109,101]} \ No newline at end of file diff --git a/src/protocol/requests/describeConfigs/fixtures/v0_request_topic_config.json b/src/protocol/requests/describeConfigs/fixtures/v0_request_topic_config.json new file mode 100644 index 000000000..59556ff10 --- /dev/null +++ b/src/protocol/requests/describeConfigs/fixtures/v0_request_topic_config.json @@ -0,0 +1 @@ +{"type":"Buffer","data":[0,0,0,1,2,0,11,116,111,112,105,99,45,116,101,115,116,50,0,0,0,1,0,12,114,101,116,101,110,116,105,111,110,46,109,115]} \ No newline at end of file diff --git a/src/protocol/requests/describeConfigs/fixtures/v0_response_broker_config.json b/src/protocol/requests/describeConfigs/fixtures/v0_response_broker_config.json new file mode 100644 index 000000000..e0333f74e --- /dev/null +++ b/src/protocol/requests/describeConfigs/fixtures/v0_response_broker_config.json @@ -0,0 +1 @@ +{"type":"Buffer","data":[0,0,0,0,0,0,0,1,0,0,255,255,4,0,1,48,0,0,0,1,0,26,115,97,115,108,46,107,101,114,98,101,114,111,115,46,115,101,114,118,105,99,101,46,110,97,109,101,255,255,0,0,0]} \ No newline at end of file diff --git a/src/protocol/requests/describeConfigs/fixtures/v0_response_topic_config.json b/src/protocol/requests/describeConfigs/fixtures/v0_response_topic_config.json new file mode 100644 index 000000000..98307de75 --- /dev/null +++ b/src/protocol/requests/describeConfigs/fixtures/v0_response_topic_config.json @@ -0,0 +1 @@ +{"type":"Buffer","data":[0,0,0,0,0,0,0,1,0,0,255,255,2,0,11,116,111,112,105,99,45,116,101,115,116,50,0,0,0,1,0,12,114,101,116,101,110,116,105,111,110,46,109,115,0,9,49,50,51,52,53,54,55,56,57,0,0,0]} \ No newline at end of file diff --git a/src/protocol/requests/describeConfigs/fixtures/v1_request.json b/src/protocol/requests/describeConfigs/fixtures/v1_request.json index 5263e3e36..561e7da18 100644 --- a/src/protocol/requests/describeConfigs/fixtures/v1_request.json +++ b/src/protocol/requests/describeConfigs/fixtures/v1_request.json @@ -1 +1 @@ -{"type":"Buffer","data":[0,0,0,1,2,0,74,116,101,115,116,45,116,111,112,105,99,45,101,48,99,97,100,98,57,101,57,102,49,97,54,51,57,54,99,49,49,54,45,53,52,52,51,56,45,52,51,98,98,56,98,54,57,45,51,50,99,102,45,52,57,48,57,45,97,102,48,50,45,99,98,101,50,48,99,50,100,57,101,51,100,0,0,0,2,0,16,99,111,109,112,114,101,115,115,105,111,110,46,116,121,112,101,0,12,114,101,116,101,110,116,105,111,110,46,109,115,1]} +{"type":"Buffer","data":[0,0,0,1,2,0,11,116,111,112,105,99,45,116,101,115,116,49,0,0,0,2,0,16,99,111,109,112,114,101,115,115,105,111,110,46,116,121,112,101,0,12,114,101,116,101,110,116,105,111,110,46,109,115,1]} \ No newline at end of file diff --git a/src/protocol/requests/describeConfigs/fixtures/v1_response.json b/src/protocol/requests/describeConfigs/fixtures/v1_response.json index 8f7fd13a5..25e98ec78 100644 --- a/src/protocol/requests/describeConfigs/fixtures/v1_response.json +++ b/src/protocol/requests/describeConfigs/fixtures/v1_response.json @@ -1 +1 @@ -{"type":"Buffer","data":[0,0,0,0,0,0,0,1,0,0,255,255,2,0,74,116,101,115,116,45,116,111,112,105,99,45,101,48,99,97,100,98,57,101,57,102,49,97,54,51,57,54,99,49,49,54,45,53,52,52,51,56,45,52,51,98,98,56,98,54,57,45,51,50,99,102,45,52,57,48,57,45,97,102,48,50,45,99,98,101,50,48,99,50,100,57,101,51,100,0,0,0,2,0,16,99,111,109,112,114,101,115,115,105,111,110,46,116,121,112,101,0,8,112,114,111,100,117,99,101,114,0,5,0,0,0,0,1,0,16,99,111,109,112,114,101,115,115,105,111,110,46,116,121,112,101,0,8,112,114,111,100,117,99,101,114,5,0,12,114,101,116,101,110,116,105,111,110,46,109,115,0,9,54,48,52,56,48,48,48,48,48,0,5,0,0,0,0,0]} +{"type":"Buffer","data":[0,0,0,0,0,0,0,1,0,0,255,255,2,0,11,116,111,112,105,99,45,116,101,115,116,49,0,0,0,2,0,16,99,111,109,112,114,101,115,115,105,111,110,46,116,121,112,101,0,8,112,114,111,100,117,99,101,114,0,5,0,0,0,0,1,0,16,99,111,109,112,114,101,115,115,105,111,110,46,116,121,112,101,0,8,112,114,111,100,117,99,101,114,5,0,12,114,101,116,101,110,116,105,111,110,46,109,115,0,9,54,48,52,56,48,48,48,48,48,0,5,0,0,0,0,0]} \ No newline at end of file diff --git a/src/protocol/requests/describeConfigs/v0/response.js b/src/protocol/requests/describeConfigs/v0/response.js index a1fc2b4a1..149509c3f 100644 --- a/src/protocol/requests/describeConfigs/v0/response.js +++ b/src/protocol/requests/describeConfigs/v0/response.js @@ -1,5 +1,7 @@ const Decoder = require('../../../decoder') const { failure, createErrorFromCode } = require('../../../error') +const ConfigSource = require('../../../configSource') +const ConfigResourceTypes = require('../../../configResourceTypes') /** * DescribeConfigs Response (Version: 0) => throttle_time_ms [resources] @@ -17,21 +19,58 @@ const { failure, createErrorFromCode } = require('../../../error') * is_sensitive => BOOLEAN */ -const decodeConfigEntries = decoder => ({ - configName: decoder.readString(), - configValue: decoder.readString(), - readOnly: decoder.readBoolean(), - isDefault: decoder.readBoolean(), - isSensitive: decoder.readBoolean(), -}) - -const decodeResources = decoder => ({ - errorCode: decoder.readInt16(), - errorMessage: decoder.readString(), - resourceType: decoder.readInt8(), - resourceName: decoder.readString(), - configEntries: decoder.readArray(decodeConfigEntries), -}) +const decodeConfigEntries = (decoder, resourceType) => { + const configName = decoder.readString() + const configValue = decoder.readString() + const readOnly = decoder.readBoolean() + const isDefault = decoder.readBoolean() + const isSensitive = decoder.readBoolean() + + /** + * Backporting ConfigSource value to v0 + * @see https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/requests/DescribeConfigsResponse.java#L232-L242 + */ + let configSource + if (isDefault) { + configSource = ConfigSource.DEFAULT_CONFIG + } else { + switch (resourceType) { + case ConfigResourceTypes.BROKER: + configSource = ConfigSource.STATIC_BROKER_CONFIG + break + case ConfigResourceTypes.TOPIC: + configSource = ConfigSource.TOPIC_CONFIG + break + default: + configSource = ConfigSource.UNKNOWN + } + } + + return { + configName, + configValue, + readOnly, + isDefault, + configSource, + isSensitive, + } +} + +const decodeResources = decoder => { + const errorCode = decoder.readInt16() + const errorMessage = decoder.readString() + const resourceType = decoder.readInt8() + const resourceName = decoder.readString() + const configEntries = decoder.readArray(decoder => decodeConfigEntries(decoder, resourceType)) + + return { + errorCode, + errorMessage, + resourceType, + resourceName, + configEntries, + } +} const decode = async rawData => { const decoder = new Decoder(rawData) diff --git a/src/protocol/requests/describeConfigs/v0/response.spec.js b/src/protocol/requests/describeConfigs/v0/response.spec.js index 60b58f651..466dad87a 100644 --- a/src/protocol/requests/describeConfigs/v0/response.spec.js +++ b/src/protocol/requests/describeConfigs/v0/response.spec.js @@ -1,4 +1,5 @@ const { decode, parse } = require('./response') +const ConfigSource = require('../../../configSource') describe('Protocol > Requests > DescribeConfigs > v0', () => { test('response', async () => { @@ -17,6 +18,7 @@ describe('Protocol > Requests > DescribeConfigs > v0', () => { configValue: 'producer', readOnly: false, isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, }, { @@ -24,6 +26,7 @@ describe('Protocol > Requests > DescribeConfigs > v0', () => { configValue: '604800000', readOnly: false, isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, }, ], @@ -33,4 +36,36 @@ describe('Protocol > Requests > DescribeConfigs > v0', () => { await expect(parse(data)).resolves.toBeTruthy() }) + + describe('ConfigSource backporting', () => { + it('should be set to TOPIC_CONFIG when the altered config belongs to a topic resource', async () => { + const data = await decode(Buffer.from(require('../fixtures/v0_response_topic_config.json'))) + const { configEntries } = data.resources[0] + + expect(configEntries).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + configName: 'retention.ms', + isDefault: false, + configSource: ConfigSource.TOPIC_CONFIG, + }), + ]) + ) + }) + + it('should be set to STATIC_BROKER_CONFIG when the altered config belongs to a broker resource', async () => { + const data = await decode(Buffer.from(require('../fixtures/v0_response_broker_config.json'))) + const { configEntries } = data.resources[0] + + expect(configEntries).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + configName: 'sasl.kerberos.service.name', + isDefault: false, + configSource: ConfigSource.STATIC_BROKER_CONFIG, + }), + ]) + ) + }) + }) }) diff --git a/src/protocol/requests/describeConfigs/v1/request.spec.js b/src/protocol/requests/describeConfigs/v1/request.spec.js index d18099a5a..094092317 100644 --- a/src/protocol/requests/describeConfigs/v1/request.spec.js +++ b/src/protocol/requests/describeConfigs/v1/request.spec.js @@ -1,4 +1,5 @@ const RequestV1Protocol = require('./request') +const ConfigResourceTypes = require('../../../configResourceTypes') describe('Protocol > Requests > DescribeConfigs > v1', () => { test('request', async () => { @@ -6,8 +7,8 @@ describe('Protocol > Requests > DescribeConfigs > v1', () => { includeSynonyms: true, resources: [ { - type: 2, - name: 'test-topic-e0cadb9e9f1a6396c116-54438-43bb8b69-32cf-4909-af02-cbe20c2d9e3d', + type: ConfigResourceTypes.TOPIC, + name: 'topic-test1', configNames: ['compression.type', 'retention.ms'], }, ], diff --git a/src/protocol/requests/describeConfigs/v1/response.js b/src/protocol/requests/describeConfigs/v1/response.js index fe1f2581b..7c7e8cc2f 100644 --- a/src/protocol/requests/describeConfigs/v1/response.js +++ b/src/protocol/requests/describeConfigs/v1/response.js @@ -1,5 +1,6 @@ const Decoder = require('../../../decoder') const { parse: parseV0 } = require('../v0/response') +const { DEFAULT_CONFIG } = require('../../../configSource') /** * DescribeConfigs Response (Version: 1) => throttle_time_ms [resources] @@ -27,14 +28,24 @@ const decodeSynonyms = decoder => ({ configSource: decoder.readInt8(), }) -const decodeConfigEntries = decoder => ({ - configName: decoder.readString(), - configValue: decoder.readString(), - readOnly: decoder.readBoolean(), - isDefault: decoder.readBoolean(), - isSensitive: decoder.readBoolean(), - configSynonyms: decoder.readArray(decodeSynonyms), -}) +const decodeConfigEntries = decoder => { + const configName = decoder.readString() + const configValue = decoder.readString() + const readOnly = decoder.readBoolean() + const configSource = decoder.readInt8() + const isSensitive = decoder.readBoolean() + const configSynonyms = decoder.readArray(decodeSynonyms) + + return { + configName, + configValue, + readOnly, + isDefault: configSource === DEFAULT_CONFIG, + configSource, + isSensitive, + configSynonyms, + } +} const decodeResources = decoder => ({ errorCode: decoder.readInt16(), diff --git a/src/protocol/requests/describeConfigs/v1/response.spec.js b/src/protocol/requests/describeConfigs/v1/response.spec.js index 7c11f4283..0e06e1bec 100644 --- a/src/protocol/requests/describeConfigs/v1/response.spec.js +++ b/src/protocol/requests/describeConfigs/v1/response.spec.js @@ -1,4 +1,5 @@ const { decode, parse } = require('./response') +const { DEFAULT_CONFIG } = require('../../../configSource') describe('Protocol > Requests > DescribeConfigs > v1', () => { test('response', async () => { @@ -10,19 +11,19 @@ describe('Protocol > Requests > DescribeConfigs > v1', () => { errorCode: 0, errorMessage: null, resourceType: 2, - resourceName: - 'test-topic-e0cadb9e9f1a6396c116-54438-43bb8b69-32cf-4909-af02-cbe20c2d9e3d', + resourceName: 'topic-test1', configEntries: [ { configName: 'compression.type', configValue: 'producer', readOnly: false, - isDefault: false, + isDefault: true, + configSource: DEFAULT_CONFIG, isSensitive: false, configSynonyms: [ { configName: 'compression.type', - configSource: 5, + configSource: DEFAULT_CONFIG, configValue: 'producer', }, ], @@ -31,7 +32,8 @@ describe('Protocol > Requests > DescribeConfigs > v1', () => { configName: 'retention.ms', configValue: '604800000', readOnly: false, - isDefault: false, + isDefault: true, + configSource: DEFAULT_CONFIG, isSensitive: false, configSynonyms: [], }, diff --git a/src/protocol/requests/describeConfigs/v2/request.spec.js b/src/protocol/requests/describeConfigs/v2/request.spec.js index 86969dd23..507040781 100644 --- a/src/protocol/requests/describeConfigs/v2/request.spec.js +++ b/src/protocol/requests/describeConfigs/v2/request.spec.js @@ -1,4 +1,5 @@ const RequestV2Protocol = require('./request') +const ConfigResourceTypes = require('../../../configResourceTypes') describe('Protocol > Requests > DescribeConfigs > v2', () => { test('request', async () => { @@ -6,8 +7,8 @@ describe('Protocol > Requests > DescribeConfigs > v2', () => { includeSynonyms: true, resources: [ { - type: 2, - name: 'test-topic-e0cadb9e9f1a6396c116-54438-43bb8b69-32cf-4909-af02-cbe20c2d9e3d', + type: ConfigResourceTypes.TOPIC, + name: 'topic-test1', configNames: ['compression.type', 'retention.ms'], }, ], diff --git a/src/protocol/requests/describeConfigs/v2/response.spec.js b/src/protocol/requests/describeConfigs/v2/response.spec.js index 8eec2fe90..d0d0dee79 100644 --- a/src/protocol/requests/describeConfigs/v2/response.spec.js +++ b/src/protocol/requests/describeConfigs/v2/response.spec.js @@ -1,4 +1,6 @@ const { decode, parse } = require('./response') +const ConfigResourceTypes = require('../../../configResourceTypes') +const { DEFAULT_CONFIG } = require('../../../configSource') describe('Protocol > Requests > DescribeConfigs > v2', () => { test('response', async () => { @@ -10,20 +12,20 @@ describe('Protocol > Requests > DescribeConfigs > v2', () => { { errorCode: 0, errorMessage: null, - resourceType: 2, - resourceName: - 'test-topic-e0cadb9e9f1a6396c116-54438-43bb8b69-32cf-4909-af02-cbe20c2d9e3d', + resourceType: ConfigResourceTypes.TOPIC, + resourceName: 'topic-test1', configEntries: [ { configName: 'compression.type', configValue: 'producer', readOnly: false, - isDefault: false, + isDefault: true, + configSource: DEFAULT_CONFIG, isSensitive: false, configSynonyms: [ { configName: 'compression.type', - configSource: 5, + configSource: DEFAULT_CONFIG, configValue: 'producer', }, ], @@ -32,7 +34,8 @@ describe('Protocol > Requests > DescribeConfigs > v2', () => { configName: 'retention.ms', configValue: '604800000', readOnly: false, - isDefault: false, + isDefault: true, + configSource: DEFAULT_CONFIG, isSensitive: false, configSynonyms: [], }, diff --git a/types/index.d.ts b/types/index.d.ts index 8f6e2cd96..48cf80b2a 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -234,6 +234,16 @@ export enum ConfigResourceTypes { BROKER_LOGGER = 8, } +export enum ConfigSource { + UNKNOWN = 0, + TOPIC_CONFIG = 1, + DYNAMIC_BROKER_CONFIG = 2, + DYNAMIC_DEFAULT_BROKER_CONFIG = 3, + STATIC_BROKER_CONFIG = 4, + DEFAULT_CONFIG = 5, + DYNAMIC_BROKER_LOGGER_CONFIG = 6, +} + export enum AclPermissionTypes { UNKNOWN = 0, ANY = 1, @@ -275,6 +285,7 @@ export interface ConfigEntries { configName: string configValue: string isDefault: boolean + configSource: ConfigSource, isSensitive: boolean readOnly: boolean configSynonyms: ConfigSynonyms[] @@ -283,7 +294,7 @@ export interface ConfigEntries { export interface ConfigSynonyms { configName: string configValue: string - configSource: number + configSource: ConfigSource } export interface DescribeConfigResponse { From c294213f65f72f6ea37a52c6502f0801fc92501b Mon Sep 17 00:00:00 2001 From: Tommy Brunn Date: Sun, 7 Feb 2021 19:39:46 +0100 Subject: [PATCH 2/2] Update broker describeconfig test --- src/broker/__tests__/describeConfigs.spec.js | 83 +++++++++++++------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/src/broker/__tests__/describeConfigs.spec.js b/src/broker/__tests__/describeConfigs.spec.js index 52a3d523f..9f9a6288e 100644 --- a/src/broker/__tests__/describeConfigs.spec.js +++ b/src/broker/__tests__/describeConfigs.spec.js @@ -1,5 +1,6 @@ const { createConnection, connectionOpts, secureRandom, newLogger } = require('testHelpers') const RESOURCE_TYPES = require('../../protocol/resourceTypes') +const ConfigSource = require('../../protocol/configSource') const Broker = require('../index') const sortByConfigName = array => array.sort((a, b) => a.configName.localeCompare(b.configName)) @@ -55,7 +56,8 @@ describe('Broker > describeConfigs', () => { { configName: 'compression.type', configValue: 'producer', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [ @@ -69,7 +71,8 @@ describe('Broker > describeConfigs', () => { { configName: 'retention.ms', configValue: '604800000', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -110,7 +113,8 @@ describe('Broker > describeConfigs', () => { { configName: 'compression.type', configValue: 'producer', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -118,7 +122,8 @@ describe('Broker > describeConfigs', () => { { configName: 'message.format.version', configValue: expect.stringMatching(/^(0\.11\.0-IV2|1\.1-IV0|2\.[234]-IV1)$/), - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -126,7 +131,8 @@ describe('Broker > describeConfigs', () => { { configName: 'file.delete.delay.ms', configValue: '60000', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -134,7 +140,8 @@ describe('Broker > describeConfigs', () => { { configName: 'leader.replication.throttled.replicas', configValue: '', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -143,7 +150,8 @@ describe('Broker > describeConfigs', () => { configName: 'max.compaction.lag.ms', configSynonyms: [], configValue: '9223372036854775807', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, }, @@ -151,14 +159,16 @@ describe('Broker > describeConfigs', () => { configName: 'message.downconversion.enable', configSynonyms: [], configValue: 'true', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, }, { configName: 'max.message.bytes', configValue: '1000012', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -166,7 +176,8 @@ describe('Broker > describeConfigs', () => { { configName: 'min.compaction.lag.ms', configValue: '0', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -174,7 +185,8 @@ describe('Broker > describeConfigs', () => { { configName: 'message.timestamp.type', configValue: 'CreateTime', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -182,7 +194,8 @@ describe('Broker > describeConfigs', () => { { configName: 'min.insync.replicas', configValue: '1', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -190,7 +203,8 @@ describe('Broker > describeConfigs', () => { { configName: 'segment.jitter.ms', configValue: '0', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -198,7 +212,8 @@ describe('Broker > describeConfigs', () => { { configName: 'preallocate', configValue: 'false', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -206,7 +221,8 @@ describe('Broker > describeConfigs', () => { { configName: 'index.interval.bytes', configValue: '4096', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -214,7 +230,8 @@ describe('Broker > describeConfigs', () => { { configName: 'min.cleanable.dirty.ratio', configValue: '0.5', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -222,7 +239,8 @@ describe('Broker > describeConfigs', () => { { configName: 'unclean.leader.election.enable', configValue: 'false', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -230,7 +248,8 @@ describe('Broker > describeConfigs', () => { { configName: 'retention.bytes', configValue: '-1', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -238,7 +257,8 @@ describe('Broker > describeConfigs', () => { { configName: 'delete.retention.ms', configValue: '86400000', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -246,7 +266,8 @@ describe('Broker > describeConfigs', () => { { configName: 'cleanup.policy', configValue: 'delete', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -254,7 +275,8 @@ describe('Broker > describeConfigs', () => { { configName: 'flush.ms', configValue: '9223372036854775807', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -262,7 +284,8 @@ describe('Broker > describeConfigs', () => { { configName: 'follower.replication.throttled.replicas', configValue: '', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -271,6 +294,7 @@ describe('Broker > describeConfigs', () => { configName: 'segment.bytes', configValue: '1073741824', isDefault: expect.any(Boolean), + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -278,7 +302,8 @@ describe('Broker > describeConfigs', () => { { configName: 'retention.ms', configValue: '604800000', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -286,7 +311,8 @@ describe('Broker > describeConfigs', () => { { configName: 'segment.ms', configValue: '604800000', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -294,7 +320,8 @@ describe('Broker > describeConfigs', () => { { configName: 'message.timestamp.difference.max.ms', configValue: '9223372036854775807', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -302,7 +329,8 @@ describe('Broker > describeConfigs', () => { { configName: 'flush.messages', configValue: '9223372036854775807', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [], @@ -310,7 +338,8 @@ describe('Broker > describeConfigs', () => { { configName: 'segment.index.bytes', configValue: '10485760', - isDefault: false, + isDefault: true, + configSource: ConfigSource.DEFAULT_CONFIG, isSensitive: false, readOnly: false, configSynonyms: [],