-
Notifications
You must be signed in to change notification settings - Fork 352
feat: Add PSUControl eWeLink plugin #1408
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
base: gh-pages
Are you sure you want to change the base?
Conversation
|
Hello @chrismin13, I briefly reviewed your repository, these are my suggestions from a security standpoint:
I also have some doubts about encrypting and masking passwords in OctoPrint plugins: it seems like security theater to me. Thank you again for your contribution 😄 |
|
Hello @jacopotediosi, thank you for taking the time to go through my PR, I really appreciate the feedback! I've implemented both As for the password masking, I agree about your point in regards to it being security theater. Perhaps my original way of phrasing it and explaining the implementation was not great. I understand that, at the end of the day, any data stored on the server will be accessible by an attacker, and there's nothing that can be done for that. I only wanted to make it so that my password was not visible in plain text when going through the config, as it would otherwise be a normal username and password getting stored, and not some kind of API token or other UUID. So, yes, this is not more secure, but if some config file ever ends up in some kind of log, or if a user copy pastes a config somewhere else, it won't be an instant security issue. EDIT: So, I forgot to clarify, I've updated all of the documentation to make it clear that this is only obfuscation, not encryption, and I've removed any mention of this from the plugin page, as I don't think it should be advertised as a feature. If you disagree with this, I would be happy to either remove this entirely, and have the password displayed in plaintext in the OctoPrint config file, or implement AES or Fernet as you suggested. Thanks again for your time! Let me know if you have any other questions or concerns. |
What is the name of your plugin?
PSUControl eWeLink
What does your plugin do?
It adds an interface to connect IoT devices that use the eWeLink app (such as Sonoff Smart Plugs) using the existing PSU Control plugin.
Where can we find the source code of your plugin?
https://github.com/chrismin13/OctoPrint-PSUControl-eWeLink
Was any kind of genAI (ChatGPT, Copilot etc) involved in creating this plugin?
Yes, a lot. I have read the guide, and I understand that "vibe coded" plugins are not acceptable. So, I understand if this will not be accepted under that premise, but I wanted to make an attempt anyway, and hope you don't mind me doing so.
However, I would like to mention that I do feel confident in my ability to maintain the plugin in case it breaks or if I need to add a small new feature. I have manually gone through everything, made sure it is safe, fully understand how the code works, and I'm confident in what I am submitting.
If you still think this does not fit your submission criteria due to the use of AI, feel free to reject this pull request.
Is your plugin commercial in nature?
No
Does your plugin rely on some cloud services?
Yes, the eWeLink cloud, which is used for the smart switches. The Privacy Policy on the GitHub repo links to their Privacy Policy for more info.
Further notes
The plugin has been tested with a Sonoff Basic R2 and on an up-to-date OctoPi installation. It would be nice to get some more testers if anyone else has any eWeLink devices hooked up to their printers :D
Thank you for your consideration! Let me know if there's anything you would like to see improved.