Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature - Allow admin commands consumers without producers or asp.net endpoints #313

Open
EugeneKrapivin opened this issue Oct 23, 2022 · 1 comment

Comments

@EugeneKrapivin
Copy link

Hey!
I'm doing a small POC on a personal project (I'm also using KafkaFlow in a production project).

As part of the POC I'll be spinning up a number of services using KafkaFlow. I'd like to gather telemetry and be able to control them using the Admin Dashboard.

Current state

Each service with calling EnableTelemetry("kafka-flow.admin") enables both producers and consumers for telemetry.

Also, each project having webApi and a reference to KafkaFlow.Admin.WebApi will automagically get the administration controllers as well.

Suggestion

Separate the Admin control (Dashboard and APIs) and production (AdminProducer) from the consuming part. To allow to spin a standalone administration command and control from the actual services.

Pros

  • ensure control logic is separate from the business logic
  • decrease API surface from "worker services"
  • least privilege, the "worker services" should not be able to expose cluster-wide C&C functionality
  • easily hide controllers (and dashboard?) behind authorization

Cons

  • more stuff to handle and maintain

Thoughts?
=)

Eugene.

@filipeesch
Copy link
Contributor

Hi @EugeneKrapivin,

We (Douglas and I) thought about this feature in the past and we still believe that it makes sense.

We planned two different methods, like EnableTelemetryRead and EnableTelemetryWrite.
The AdminProducer is no longer public and now we use the IConsumerAdmin interface with simplified methods, due to changes in how the Dashboard interacts with the application (it no longer uses the WebAPi project).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants