streamdal / plumber

A swiss army knife CLI tool for interacting with Kafka, RabbitMQ and other messaging systems.
https://streamdal.com
MIT License
2.08k stars 71 forks source link

Pulsar token authentication support #335

Closed ckreiling closed 1 year ago

ckreiling commented 1 year ago

What would you like to see added?

The Plumber Pulsar backend only supports TLS certificate authentication, but Pulsar supports many more authentication types. My organization uses token authentication, for example.

Ideally options are added for all types of authentication, but I'd like to take a stab at adding token auth myself and potentially help with adding more auth types in the future.

Use Case

Pulsar users connecting to clusters with token authentication.

Proposed Change

For example adding a --token option for read and write commands:

plumber read pulsar --token="..." --topic="..." --subscription="..." 
plumber write pulsar --token="..." --topic="..." 

Who Benefits from the Change(s)?

Anyone using token authentication in their Pulsar cluster.

Additional context

I'm willing to contribute these changes myself if someone can help steer me. AFAICT I only need to update batchcorp/plumber-schemas to support the token option for Pulsar, then integrate those schema changes in the Pulsar backend implementation.

blinktag commented 1 year ago

@ckreiling Thank you for the contribution!

I've merged your plumber-schemas changes. You'll just need to bump the version in go.mod to start using the new flags in your branch.

You'll most likely just need to update this method to add the token authentication support: https://github.com/batchcorp/plumber/blob/3d63c400f20d823249a9cdfa57829545244c99bc/backends/pulsar/pulsar.go#L52

Let me us know if you need any assistance. We also have a public slack community for plumber that you can join at https://launchpass.com/streamdal or feel free to update this issue

blinktag commented 1 year ago

Released in https://github.com/batchcorp/plumber/releases/tag/v2.1.0

Thank you so much for the contribution!

ckreiling commented 1 year ago

It was my pleasure - thank you for the quick release! I want to point out I added a third option in addition to the ones listed in the release notes: --listener-name, for connecting to Pulsar clusters advertising more than 1 DSN.

blinktag commented 1 year ago

Doh sorry!, Updated release notes