Call for volunteers: Help improve the NetBox plugins framework! #8338
Replies: 25 comments 19 replies
-
As someone who have a custom Netbox with 7 custom Django applications in Netbox because the current plug-in support is too cumbersome to work with, I have loads of ideas on how to improve it.
I want to be in this group! :)
… On 12 Jan 2022, at 20:06, Jeremy Stretch ***@***.***> wrote:
Hey folks! One of our initiatives for the upcoming v3.2 release is to extend the plugins framework. Specifically, we're working on refactoring and improving NetBox's generic view classes, which are currently used only internally, so that they're suitable for use by plugins. (This initiative was originally proposed under #6221, but has been redefined under #8334.)
Of course, there's plenty more we can do to extend the current framework and make the development of NetBox plugins more efficient and convenient. Plugins were introduced in NetBox v2.8, and not much work has been done to expand on that implementation since. But that's about to change! Following on the success of working group 3979 last year, which helped inform the implementation of wireless network modeling, the maintainers have decided to launch a working group focused on improving the plugins framework.
What is a working group? This is a group of volunteers with experience developing NetBox plugins who will engage in discussion to share ideas for improving the plugins framework. Anyone with experience developing plugins (whether privately or as open source) is invited to participate. Participants will collaborate with the NetBox maintainers to identify common pain points and propose solutions. As consensus is reached, these proposals will be converted into NetBox feature requests and assigned release milestones.
If you're interested in participating, please comment below and share your experience working with NetBox plugins so far. We're setting up a separate GitHub repository to serve as a dedicated forum for the group to ensure discussions aren't missed in the hustle of the core NetBox project, and will be adding people as they volunteer. I'm excited to see what we come up with!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
I would like to help with this group too. |
Beta Was this translation helpful? Give feedback.
-
I went through the netbox-plugins published on github, and I want to make sure those maintainers see the discussion. I likely missed people and only went by those whose plugin was tagged using the netbox-plugin topic. Any interest to join this NetBox plugin framework working group to shape both the user experience, their development, and the interaction of plugins with NetBox core? @991jo Apologies for the spam if you are not interested in volunteering. |
Beta Was this translation helpful? Give feedback.
-
I'd definitely be interested as in my experience one has the choice between an extremely limited interface or instability with respect to Netbox version upgrades at the moment. Glad to help if and when I can. |
Beta Was this translation helpful? Give feedback.
-
That's great timing! I'm starting a bachelors thesis/project in February where the goal is to provide configuration management for hardware through NetConf/YANG and/or NAPALM. I've already worked with lots of django applications and have some experience developing a Netbox plugin from scratch. A few points of interest for me in the plugin interface:
While my key motivation is to aide our network engineers in automating their configuration through templates and thus attempt to make available data in the templates more discoverable, anything that would ease the development for plugin maintainers is an added benefit. |
Beta Was this translation helpful? Give feedback.
-
That section does need attention. What I miss, is the possibility to merge plugins to the UI, do that they become 'invisible'. I'm not a real developer, rather a scripter that tries very hard. Good luck all! |
Beta Was this translation helpful? Give feedback.
-
I think i could provide some input too. The vault plugin i made is a primarily frontend plugin and i'm curious to see whether we can improve the experience when writing a lot of custom JS for a plugin. |
Beta Was this translation helpful? Give feedback.
-
I would like to be a part. I have definitely felt the pain of the UI limitations without access to the internal views. My plugin for DNA Center, ISE, VManage, and NS1 is still stuck in 2.11 land because of that. I have plans to update it, but if improvements can be made for the 3.2 release it might better to see how those shake out. |
Beta Was this translation helpful? Give feedback.
-
I'm definitely interested. I built several plugins for our business specifically revolving around fiber optic ISP and fixed wireless ISP operations. I ported a lot of what was not exposed to the plugins into the plug-in environment. Things like button generators, select2 wrappers, site engine functions, etc. I'll be happy to work on this with everyone. |
Beta Was this translation helpful? Give feedback.
-
I'd be interested in joining! One thing that I would like to see is the ability for plugins to take advantage of the the new dynamic configuration feature of v3.1. |
Beta Was this translation helpful? Give feedback.
-
Let me summarise some of the obstacles I rain into while developing for the auroraresearchlab/netbox-dns project. I assume they are quite typical for a plugin project. Internal APIsMany of the APIs providing useful functionality and a homogenous UX across Netbox and Netbox plugins are private and according to the development guidelines can't be used (or at least they can't be used when one doesn't want to test against each and every minor release and fix quirks). The ones I stumbled across so far were Tags and Export Templates, but Custom Fields, Webhooks and - maybe the most promising feature for some purposes involving automation with Netbox as a data source - Config Context would also be very useful. HTML TemplatesFor example with tags there is not only the problem that the Netbox classes in plugins isn't supported, but the template functionality is internal as well and did change in the last few releases (i.e. It would be really useful to have stable and documented APIs and templates for
TestingAnother thing I came across is the test framework provided by Netbox. There are some really useful prepared test classes (i.e. Here it would be useful to be able to switch some test features on or off per test class when the underlying functionality is not required by the plugin code. Using plugin data in Netbox coreA bit more involved and probably nothing that can be achieved in the short run, but also an interesting feature would be an interface that could be used to refer to plugin data within Netbox core. In the 'netbox-dns'-plugin for example there are DNS record data mapping host names to IP addresses. In the Netbox core IPAM section, a DNS host name can be assigned to an IP address. It would be a very sensible feature to be able to override a 'hook' class in Netbox that is normally used to enter the DNS name for an IP address and override it with a class that provides the functionality of looking up the IP address in the DNS model for DNS records and provides the user with a drop down menu with the possible resolutions for the address. |
Beta Was this translation helpful? Give feedback.
-
Thanks to everyone who has expressed so far! If you have a 👍 from me on your reply in this thread, you should have an invitation to the Of course, we'll continue to add people who volunteer, so please comment here if you're interested! |
Beta Was this translation helpful? Give feedback.
-
I am interested as well, thank you for the invite!
…On Mon, Jan 17, 2022, 10:37 AM Jeremy Stretch ***@***.***> wrote:
Thanks to everyone who has expressed so far! If you have a 👍 from me on
your reply in this thread, you should have an invitation to the
netbox-wg8333 repo that we'll use for discussion. (Please let me know if
you have any issues accessing the repo.)
Of course, we'll continue to add people who volunteer, so please comment
here if you're interested!
—
Reply to this email directly, view it on GitHub
<#8338 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAT4WVAVLMNTUHOMNRWYWLLUWQZU7ANCNFSM5LZYJVHA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
I agree with @peteeckel on the difficulty to navigate between official supported netbox-plugin interfaces and internal netbox core interfaces, while creating the ciscodnacnetbox plugin. Like getting the plugin to follow the netbox theme across the ui views. (StaticSelect2 vs StaticSelect, base.html vs base/layout.html)
Another thing I've struggle with was the |
Beta Was this translation helpful? Give feedback.
-
Ill be up for helping out. |
Beta Was this translation helpful? Give feedback.
-
I would be happy to lurk. My integrations with Netbox have been via REST API and database rather than via plugins. However I do have some experience with Salesforce which is the grand-daddy of extensible application platforms. |
Beta Was this translation helpful? Give feedback.
-
Hello Jeremy. I would be happy to join to this Avengers team! Here is a video about the plugin. |
Beta Was this translation helpful? Give feedback.
-
I would be happy to join this team! it would be a good work for our ongoing project netbox-dns and planned projects |
Beta Was this translation helpful? Give feedback.
-
Hi all! I am one of the developers of netbox-dns plugin and I am very excited about improving netbox plugin framework. Thanks. |
Beta Was this translation helpful? Give feedback.
-
I would like to be involved |
Beta Was this translation helpful? Give feedback.
-
Hi all! I am interested and would like to join. I’m a creator and maintainer of two feature-rich and pretty popular (300+ GH stars and 36k+ PyPI downloads in total) NetBox plugins: NextBox-UI-plugin and PhoneBox-plugin. The first one has been maintained since very first plugin-enabled NetBox versions so I’m familiar with the NetBox internals and codebase. |
Beta Was this translation helpful? Give feedback.
-
Hi, I would be interested in joining the working group if invitations are still available. I've been working on private plugins in my employment to support a variety of use cases, including:
We took the unrecommended decision to use many of NetBox's internal view/util classes and recently suffered when migrating them to work all the way up to NetBox v3.x (we started at NetBox v2.8). I've stumbled on some of the limitations of the framework already identified by others in this discussion, including:
Often I've either worked around them or produced patches, so it'd be great to contribute in discussions and/or with code! |
Beta Was this translation helpful? Give feedback.
-
Hi, I would love to join this group. My personal experience with plugin development has been on a currently-private load-balancing plugin that lets us model our LB services in netbox. I'm trying to get it open sourced but that is slow going. Others in this thread have commented about most of the issues I had building it. Im glad to see the community is so active :) It seems that you have probably fixed most of the issues myself and many others have found at the moment but I would very much appreciate being in the steering group. Thanks! |
Beta Was this translation helpful? Give feedback.
-
If it's not late, I would like to join the working group also! My main plugin is netbox-proxbox, although I have some other private working going on! |
Beta Was this translation helpful? Give feedback.
-
Is it too late to get added to this for future discussions? Im working on two internal plugins. One will open sourced this month. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey folks! One of our initiatives for the upcoming v3.2 release is to extend the plugins framework. Specifically, we're working on refactoring and improving NetBox's generic view classes, which are currently used only internally, so that they're suitable for use by plugins. (This initiative was originally proposed under #6221, but has been redefined under #8334.)
Of course, there's plenty more we can do to extend the current framework and make the development of NetBox plugins more efficient and convenient. Plugins were introduced in NetBox v2.8, and not much work has been done to expand on that implementation since. But that's about to change! Following on the success of working group 3979 last year, which helped inform the implementation of wireless network modeling, the maintainers have decided to launch a working group focused on improving the plugins framework.
What is a working group? This is a group of volunteers with experience developing NetBox plugins who will engage in discussion to share ideas for improving the plugins framework. Anyone with experience developing plugins (whether privately or as open source) is invited to participate. Participants will collaborate with the NetBox maintainers to identify common pain points and propose solutions. As consensus is reached, these proposals will be converted into NetBox feature requests and assigned release milestones.
If you're interested in participating, please comment below and share your experience working with NetBox plugins so far. We're setting up a separate GitHub repository to serve as a dedicated forum for the group to ensure discussions aren't missed in the hustle of the core NetBox project, and will be adding people as they volunteer. I'm excited to see what we come up with!
Beta Was this translation helpful? Give feedback.
All reactions