Replies: 4 comments 5 replies
-
I'm a fan of pluggy, one of the most flexible plugin systems I used. It took me a while to wrap my head around it, but the docs seem to be better today. It's what these projects use:
I learned a lot by reading the dataset and LLM source code to get a better handle on how to wrap my head around it. |
Beta Was this translation helpful? Give feedback.
-
I'll echo @jefftriplett and say that Shameless plug, I wrote this POC after your DjangoCon 2022 talk about |
Beta Was this translation helpful? Give feedback.
-
That's the trillion-dollar problem. I would have a high bar and only recommend plugins you are comfortable with. Any time API keys and access tokens are involved there is potential for a bad actor. That said, it should be relatively straightforward to vet them. Using @joshuadavidthomas's example, they will mostly have a one-file plugin like https://github.com/joshuadavidthomas/pluggy-simple-deploy/blob/main/simple_deploy_aws/simple_deploy_aws/__init__.py I recommend sketching out your hooks first and getting some feedback on it. Then maybe we can break down where the biggest potential for harm might be. At the end of the day, there is a lot of trust involved with any project and third party library one installs. |
Beta Was this translation helpful? Give feedback.
-
I don't think that's a good example. That's a dummy implementation, with no actual code. A better place to see what you'd likely have to vet is the Fly.io directory or the Platform.sh directory. The Platform.sh directory is important to look at, because it includes the beginnings of a platform-specific test suite. We've seen supply chain attacks that hide payloads in the test suite. So you have to ask, is this platform well-tested or is someone hiding an exploit? |
Beta Was this translation helpful? Give feedback.
-
This project really needs to implement a plugin model in order to reach its full potential. To be specific, I'm planning to take these steps for the 1.0 release:
--platform
argument.This puts each part of the project on its own development cycle, which is really nice maintenance-wise. I want to keep these three original platforms inside the org, to make sure there are always three officially supported deployment targets. I'll add these as dependencies of simple_deploy, so installing simple_deploy includes support for these three platforms.
My main questions are around how to manage a third-party ecosystem of plugins, with security in mind. I know it's on users to evaluate a plugin before using it. But is there anything that we might want to think about now, in order to avoid any foreseeable issues? Maybe I'm overthinking this, but watching open source supply chain attacks is not fun when you're building a tool that's squarely focused on configuring deployments. It seems especially important to think about this considering that a core demographic for this project is users who are new to deployment.
Do you have any thoughts about this approach? I'd love to hear what people think while it's still relatively easy to make changes to the project's structure.
Beta Was this translation helpful? Give feedback.
All reactions