We saw lots of excitement following our announcement of the NetBox Community Fund, a dedicated $100,000 pool of funding to reward networking professionals who give back to the NetBox community. Now, we’re putting that pool to work with the first program backed by the NetBox Community Fund!
Today we are eager to announce the launch of the NetBox Plugin Bounty program. The Plugin Bounty program will fund financial rewards to individuals who contribute implementation of the most wanted plugins in the NetBox community. We’ve been gathering feedback from the community: the NetBox Plugin Ideas Board has had some awesome engagement. And the first two ideas that will be assigned a bounty under the new program are plugins for Datacenter Floor Plan Management and Drag-and-drop Rack Elevations. The implementation bounty for each will be USD $2,000 and $1,500 respectively. These plugins are scoped based on community feedback, and the goals for features and other details are available below.
Are you a contributor excited to participate in the bounty program? Community members interested in developing these plugins should email email@example.com and post a comment in the #netbox-plugins channel in the NetDev Slack space to apply. The NetBox Plugin Bounty program will be operated on a “first-to-claim” basis, where the first submission that meets the eligibility criteria will be notified by NetBox Labs that they have claimed the plugin. That person will be given the sole opportunity to collect the reward for and develop that plugin. Read the NetBox Plugin Terms on our site for more information on the process.
Bounty Candidate #1: Datacenter Floor Plan Management
This plugin should provide a graphical representation of a datacenter floor plan, illustrating the position and orientation of individual racks that are managed in NetBox. It should also display ancillary objects such as structural columns, cage fencing, and miscellaneous equipment to accurately depict the real world environment.
- Floor plans can represent the following object types:
- Free-standing devices
- Columns/blocked area
- Racks and devices must link to their corresponding NetBox objects.
- A floor plan must have a configurable height and width corresponding to a scale.
- A floor plan must be assigned to a site.
- The X and Y coordinates, height and width, and orientation must be stored for each object appearing on a floor plan.
- Users can reposition objects on a floor plan by clicking and dragging.
- Objects must “snap” to a common grid to aid in the alignment of objects with one another.
- Users can rotate objects on a floor plan in 45-degree increments using mouse and/or keyboard controls.
- Arbitrary areas of the plan can optionally be designated as hot or cold space.
- The ability to create, modify, and delete floor plans can be controlled using NetBox’s native permissions management system.
- Maps must have the ability to be rendered/exported as SVG images.
- Any external libraries on which the plugin depends must be licensed under a qualifying open source license.
Candidate #2: Drag-and-drop Rack Elevations
This plugin should enable users to graphically rearrange devices displayed within a rack elevation using drag-and-drop controls.
- Users can reposition devices within a rack using a graphical interface with native HTML/SVG elements by clicking and dragging them to new positions.
- Devices will “snap” into the nearest unoccupied rack unit(s) when not positioned outside of the rack.
- Changes to devices should be pushed to the database only when explicitly triggered by the user. An example workflow:
- User loads the rearrangement view
- User arbitrarily rearranges several devices
- User clicks “save” to push the updated device positions to the database
- Users should be prompted to save any unsaved changes when navigating away from the reconfiguration view. Any changes not explicitly saved will be discarded.
- Racked devices can be unmounted (detached from the rack) for easy rearrangement of multiple devices.
- Any devices not racked when the reconfiguration is saved will be designated as unmounted devices (with no face or position assignment).
- When entering the reconfiguration view, unmounted devices with a non-zero height should be displayed beside the rack elevation for optional mounting within the rack.
- Devices can be swapped to the opposite face using a graphical and/or keyboard control.
- All device assignments must pass NetBox’s stock validation prior to being saved.
Some More Details About How the NetBox Plugin Bounty Program Will Work
Our goal with the Netbox Plugin Bounty program is twofold: help surface what NetBox plugins are in the most demand in the community, and directly reward the incredible NetBox contributors who bring them to life.
We’ll be continuously gathering the community’s feedback with the recently launched NetBox Plugin Ideas Board – this is where to go to suggest new plugins and vote for your own most wanted plugins. With the help of the open source maintainers, NetBox Labs is administering the Plugin Bounty program and once a plugin is selected for development as part of the Plugin Bounty program, we will publish all the details – features, timeline, and reward – as we did for the first two Plugin Bounties above. Each plugin has specific acceptance and timeline criteria, and the contributor who claims a plugin will be awarded the bounty once they meet those criteria. If the timeline or acceptance criteria aren’t met, the plugin will be opened back up to the public to be re-claimed.
To ensure the plugins created benefit the whole community, all plugins created in this program must share these characteristics:
- The plugin is compatible with the current stable release of NetBox
- The plugin must include reasonably complete English language documentation
- The source code of the plugin must abide by PEP8 (code cleanliness)
- The plugin must be available on GitHub under an Apache License version 2.0.
Sponsoring a NetBox Plugin
As we get the NetBox Plugin Bounty program moving, NetBox Labs, as the commercial steward of NetBox, is the sole initial sponsor of this program. We’re evaluating ways for other sponsors to contribute funds to promote the development of other plugins in the future. (Interested in sponsoring a specific plugin? Email firstname.lastname@example.org and a member of the team will be in touch.)
We’re thrilled to get the NetBox Plugin Bounty program moving. Suggest and vote for plugins! Dig in and claim one of the open bounties! Share feedback with us! And, help spread the word on your social network with this Click-to-Tweet.