Package detail

@jm18457/kafkajs-msk-iam-authentication-mechanism

jmaver-plume181.7kMIT3.1.2

Authentication mechanism for AWS MSK IAM for KafkaJS.

kafkajs, msk, iam, authentication

readme

Kafka MSK IAM integration

Installation

Requires kafkajs version 2.2.0 or higher.

For more information look at https://kafka.js.org/docs/next/configuration#custom-authentication-mechanisms.

npm i @jm18457/kafkajs-msk-iam-authentication-mechanism

Setup

const { Kafka } = require('kafkajs')
const {
  createMechanism
} = require('@jm18457/kafkajs-msk-iam-authentication-mechanism')

const kafka = new Kafka({
  brokers: ['kafka1:9092', 'kafka2:9092'],
  clientId: 'my-app',
  ssl: true,
  sasl: createMechanism({ region: 'eu-central-1' })
})

You can also use the old way of importing the library.

const { Kafka } = require('kafkajs')
const {
  Type,
  awsIamAuthenticator,
} = require('@jm18457/kafkajs-msk-iam-authentication-mechanism')


const provider = awsIamAuthenticator({
    region: 'eu-central-1'
})

const kafka = new Kafka({
  brokers: ['kafka1:9092', 'kafka2:9092'],
  clientId: 'my-app',
  ssl: true,
  sasl: {
    mechanism: Type,
    authenticationProvider: provider
  }
})

Examples

For working examples look at the examples folder.

API Reference

Type Aliases

Options

Ƭ Options: Object

Type declaration
Name Type Description
credentials? AwsCredentialIdentity \ Provider<AwsCredentialIdentity> Default fromNodeProviderChain()
region string The AWS region in which the Kafka broker exists.
ttl? string Provides the time period, in seconds, for which the generated presigned URL is valid. Default 900
userAgent? string Is a string passed in by the client library to describe the client. Default MSK_IAM
Defined in

create-mechanism.ts:5

Variables

TYPE

Const TYPE: "AWS_MSK_IAM"

Defined in

constants.ts:3


Type

Const Type: "AWS_MSK_IAM"

Defined in

index.ts:10

Functions

awsIamAuthenticator

awsIamAuthenticator(options): (args: AuthenticationProviderArgs) => Authenticator

Parameters
Name Type
options Options
Returns

fn

▸ (args): Authenticator

Parameters
Name Type
args AuthenticationProviderArgs
Returns

Authenticator

Defined in

create-authenticator.ts:11


createAuthenticator

createAuthenticator(options): (args: AuthenticationProviderArgs) => Authenticator

Parameters
Name Type
options Options
Returns

fn

▸ (args): Authenticator

Parameters
Name Type
args AuthenticationProviderArgs
Returns

Authenticator

Defined in

create-authenticator.ts:11


createMechanism

createMechanism(options, mechanism?): Mechanism

Parameters
Name Type Default value
options Options undefined
mechanism string TYPE
Returns

Mechanism

Defined in

create-mechanism.ts:26

changelog

Changelog

3.1.2 (2023-07-07)

Bug Fixes

  • Update AWS libraries to pick up a version of fast-xml-parser that addresses CVE-2023-34104. (#37) (b2cdc33)

3.1.1 (2023-03-06)

Bug Fixes

  • Add missing npm build in npm-publish.yml (#33) (bf3119f)

3.1.0 (2023-03-05)

Features

3.0.0 (2023-03-04)

⚠ BREAKING CHANGES

  • provider now accepts a single required parameter options

Features

  • Add credentials optional parameter to the provider (#28) (4584c68)

2.1.1 (2023-02-20)

Bug Fixes

  • deps: update aws dependencies to 3.272.0 (#25) (60466b8)

2.1.0 (2023-02-19)

Features

Bug Fixes

  • Pass region to getDefaultRoleAssumerWithWebIdentity (#16) (8f65e74)