Skip to Content
SourcesApache Kafka

Apache Kafka

Required
Fields required for a valid configuration.
PathTypeRequiredDescriptionDefaultConstraints
requiredobjectYes
Masked
Sensitive fields under(secrets/credentials).
PathTypeRequiredDescriptionDefaultConstraints
maskedobjectNo
Optional
Optional configuration fields.
PathTypeRequiredDescriptionDefaultConstraints
optionalobjectNono extra properties
optional.connectionobjectNoKafka client connection and security options.no extra properties
optional.connection.request_timeout_msintegerNoClient request timeout in milliseconds30000min 1000
optional.connection.rest_use_tlsbooleanNoREST proxy only: call the proxy over HTTPS. Turn off for a plain-HTTP proxy (e.g. a local Karapace).true
optional.connection.sasl_mechanismenumNoSASL mechanism used when security_protocol is SASL_* Allowed values: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512PLAIN
optional.connection.security_protocolenumNoKafka client security protocol. Leave unset to derive it from the authentication mode (SASL → SASL_SSL, Client Certificate → SSL, No Authentication → PLAINTEXT); set it only to override, e.g. SASL_PLAINTEXT for a SASL broker without TLS. Allowed values: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
optional.scopeobjectNoKafka topic selection scope.no extra properties
optional.scope.exclude_topicsarrayNoTopic denylist
optional.scope.exclude_topics[]stringNo
optional.scope.include_internalbooleanNoInclude internal topics (names starting with __)false
optional.scope.include_topicsarrayNoOptional topic allowlist
optional.scope.include_topics[]stringNo
optional.scope.topic_limitintegerNoOptional cap on number of topic assetsmin 1
Extracted Metadata

Topic

FieldTypeRequiredDescription
partition_countintegerYesNumber of partitions
replication_factorintegerNoReplication factor
earliest_offsetintegerNoSum of earliest offsets across partitions
latest_offsetintegerNoSum of latest offsets across partitions
retention_msintegerNoTopic retention in milliseconds
cleanup_policystringNoTopic cleanup policy (delete/compact)
Examples
Topic discovery scan
Discover Kafka topics and sample recent messages on a local, unauthenticated broker

Config Payload

{
  "type": "KAFKA",
  "required": {
    "auth_mode": "NONE",
    "host": "localhost",
    "port": 9092
  },
  "optional": {
    "connection": {
      "security_protocol": "PLAINTEXT"
    }
  },
  "sampling": {
    "strategy": "LATEST",
    "rows_per_page": 50
  }
}

Schedule

{
  "enabled": true,
  "preset": "weekday_business",
  "cron": "13 6 * * 1-5",
  "timezone": "UTC"
}
SASL_SSL secrets detection
Sample messages from selected topics over SASL_SSL and run secrets detection

Config Payload

{
  "type": "KAFKA",
  "required": {
    "auth_mode": "SASL",
    "host": "broker.internal.example.com",
    "port": 9093
  },
  "masked": {
    "sasl_username": "your-username",
    "sasl_password": "your-password"
  },
  "optional": {
    "connection": {
      "security_protocol": "SASL_SSL",
      "sasl_mechanism": "SCRAM-SHA-256"
    },
    "scope": {
      "include_topics": [
        "payments",
        "users"
      ]
    }
  },
  "sampling": {
    "strategy": "RANDOM",
    "rows_per_page": 100
  },
  "detectors": [
    {
      "type": "SECRETS",
      "enabled": true
    },
    {
      "type": "PII",
      "enabled": true
    }
  ]
}

Schedule

{
  "enabled": true,
  "preset": "weekday_business",
  "cron": "37 8 * * 1-5",
  "timezone": "UTC"
}
Managed Kafka (Aiven/Confluent Cloud) with CA cert
Connect to a managed SASL_SSL Kafka service (e.g. Aiven, Confluent Cloud) using the service's CA certificate for TLS verification

Config Payload

{
  "type": "KAFKA",
  "required": {
    "auth_mode": "SASL",
    "host": "kafka-example-1234.example-cloud.com",
    "port": 12345
  },
  "masked": {
    "sasl_username": "avnadmin",
    "sasl_password": "your-service-password",
    "ssl_ca": "-----BEGIN CERTIFICATE-----\nMIIDazCCAlOgAwIBAgIUfakefakefakefakefakefakefakefakewDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjAxMDEwMDAwMDBaFw0zNjAx\n-----END CERTIFICATE-----\n"
  },
  "optional": {
    "connection": {
      "security_protocol": "SASL_SSL",
      "sasl_mechanism": "PLAIN"
    },
    "scope": {
      "include_internal": false
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC",
    "rows_per_page": 100
  }
}

Schedule

{
  "enabled": true,
  "preset": "nightly",
  "cron": "5 2 * * *",
  "timezone": "UTC"
}
Mutual TLS (client certificate) authentication
Authenticate to a Kafka broker with a client access certificate and access key instead of SASL — no username/password required

Config Payload

{
  "type": "KAFKA",
  "required": {
    "auth_mode": "CLIENT_CERT",
    "host": "broker.internal",
    "port": 9094
  },
  "masked": {
    "ssl_certfile": "-----BEGIN CERTIFICATE-----\nMIIDCTCCAfGgAwIBAgIUfakefakefakefakefakefakefakefakewDQYJKoZIhvcNAQEL\nBQAwFDESMBAGA1UEAwwJY2xpZW50LWNhMB4XDTI2MDEwMTAwMDAwMFoXDTI3MDEw\nMTAwMDAwMFowFDESMBAGA1UEAwwJY2xpZW50LWNhMIIBIjANBgkqhkiG9w0BAQEF\n-----END CERTIFICATE-----\n",
    "ssl_keyfile": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFAKEFAKEFAKEF\nAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKEF\n-----END PRIVATE KEY-----\n",
    "ssl_ca": "-----BEGIN CERTIFICATE-----\nMIIDazCCAlOgAwIBAgIUfakefakefakefakefakefakefakefakewDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjAxMDEwMDAwMDBaFw0zNjAx\n-----END CERTIFICATE-----\n"
  },
  "optional": {
    "connection": {
      "security_protocol": "SSL"
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC",
    "rows_per_page": 50
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    }
  ]
}

Schedule

{
  "enabled": true,
  "preset": "nightly",
  "cron": "45 1 * * *",
  "timezone": "UTC"
}
Kafka REST Proxy scan
Scan topics through a Kafka REST Proxy (Confluent REST Proxy, Karapace) with HTTP basic auth — no broker protocol access required

Config Payload

{
  "type": "KAFKA",
  "required": {
    "auth_mode": "REST",
    "host": "kafka-rest.example.com",
    "port": 8082
  },
  "masked": {
    "username": "your-username",
    "password": "your-password"
  },
  "optional": {
    "connection": {
      "rest_use_tls": true
    },
    "scope": {
      "include_internal": false
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC",
    "rows_per_page": 100
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    }
  ]
}

Schedule

{
  "enabled": true,
  "preset": "daily",
  "cron": "25 7 * * *",
  "timezone": "UTC"
}