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

MQTT monitor: Certificate based authentication #4977

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

M4GNV5
Copy link

@M4GNV5 M4GNV5 commented Jul 31, 2024

⚠️⚠️⚠️ Since we do not accept all types of pull requests and do not want to waste your time. Please be sure that you have read pull request rules:
https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma

Tick the checkbox if you understand [x]:

  • I have read and understand the pull request rules.

Description

The goal of this pull request is to implement certificate based authentication when monitoring services using MQTT.
Currently only username + password can be used for logging in with a MQTT broker.

According to the docs of the currently used mqtt library, the options argument created here is passed directly to tls.createSecureContext. Thus simply adding options for ca, cert and key should be sufficient.

Database wise there already exists fields tlsCa, tlsCert and tlsKey in the monitor table, so I assume we could re-use them?
Configuration for these parameters is currently inside HTTP config block. I assume simply re-adding these thee parameters to the MQTT monitor editing UI is the simplest approach.
Alternatively one could try to move them out of the http monitoring type configuration.

Generally: What do you think @louislam? Can I / someone move forward with implementing this feature?

Type of change

Please delete any options that are not relevant.

  • User interface (UI)
  • New feature (non-breaking change which adds functionality)

Checklist

  • My code follows the style guidelines of this project
  • I ran ESLint and other linters for modified files
  • I have performed a self-review of my own code and tested it
  • I have commented my code, particularly in hard-to-understand areas (including JSDoc for methods)
  • My changes generates no new warnings
  • My code needed automated testing. I have added them (this is optional task)

@CommanderStorm
Copy link
Collaborator

CommanderStorm commented Aug 8, 2024

Can I move forward with implementing this feature?

Sounds like a plan.
Rememember to link to the relevant docs from the UI where appropriate ^^

@CommanderStorm CommanderStorm added area:monitor Everything related to monitors pr:please address review comments this PR needs a bit more work to be mergable labels Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:monitor Everything related to monitors pr:please address review comments this PR needs a bit more work to be mergable
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants