Skip to content

Releases: linuxserver/docker-netbox

v4.3.1-ls278

22 May 16:02
40917b2
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.3.1-ls278/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Enhancements

  • #17073 - Enable global search for tags
  • #18419 - Enable specifying a queue name when calling Job.enqueue()
  • #19416 - Add the 1000BASE-SX interface type
  • #19434 - Add pre-populated interface speed choices for 2.5 and 5 Gbps

Bug Fixes

  • #17107 - Fix cosmetic issue in cable traces ending at a provider network
  • #19309 - Improve REST API query performance for prefixes and IP addresses
  • #19361 - Fix incorrect GraphQL object types
  • #19375 - Fix table configuration after applying a saved table config
  • #19376 - Fix FieldDoesNotExist exception when global search results include a contact
  • #19380 - Fix column selections for child object tables
  • #19381 - Fix syncing of custom scripts from a remote data source
  • #19396 - Enable nullifying VLAN qinq_role via the REST API
  • #19397 - Correct enum type for IPRangeFilter in GraphQL API
  • #19432 - Update minimum required PostgreSQL version referenced by server error page
  • #19440 - Ensure data migrations use the correct database connection
  • #19444 - Fix change logging for contact group assignments
  • #19463 - Hide button dropdown for tables which do not support saved configs
  • #19464 - Fix bulk editing of inventory items from device view
  • #19465 - Fix ability to clear assigned prefix scope in UI
  • #19472 - Fix device column rendering in virtual device contexts table

v4.3.1-ls277

15 May 16:11
82c011e
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.3.1-ls277/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Enhancements

  • #17073 - Enable global search for tags
  • #18419 - Enable specifying a queue name when calling Job.enqueue()
  • #19416 - Add the 1000BASE-SX interface type
  • #19434 - Add pre-populated interface speed choices for 2.5 and 5 Gbps

Bug Fixes

  • #17107 - Fix cosmetic issue in cable traces ending at a provider network
  • #19309 - Improve REST API query performance for prefixes and IP addresses
  • #19361 - Fix incorrect GraphQL object types
  • #19375 - Fix table configuration after applying a saved table config
  • #19376 - Fix FieldDoesNotExist exception when global search results include a contact
  • #19380 - Fix column selections for child object tables
  • #19381 - Fix syncing of custom scripts from a remote data source
  • #19396 - Enable nullifying VLAN qinq_role via the REST API
  • #19397 - Correct enum type for IPRangeFilter in GraphQL API
  • #19432 - Update minimum required PostgreSQL version referenced by server error page
  • #19440 - Ensure data migrations use the correct database connection
  • #19444 - Fix change logging for contact group assignments
  • #19463 - Hide button dropdown for tables which do not support saved configs
  • #19464 - Fix bulk editing of inventory items from device view
  • #19465 - Fix ability to clear assigned prefix scope in UI
  • #19472 - Fix device column rendering in virtual device contexts table

v4.3.1-ls276

13 May 22:32
cdf2ba2
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.3.1-ls276/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Enhancements

  • #17073 - Enable global search for tags
  • #18419 - Enable specifying a queue name when calling Job.enqueue()
  • #19416 - Add the 1000BASE-SX interface type
  • #19434 - Add pre-populated interface speed choices for 2.5 and 5 Gbps

Bug Fixes

  • #17107 - Fix cosmetic issue in cable traces ending at a provider network
  • #19309 - Improve REST API query performance for prefixes and IP addresses
  • #19361 - Fix incorrect GraphQL object types
  • #19375 - Fix table configuration after applying a saved table config
  • #19376 - Fix FieldDoesNotExist exception when global search results include a contact
  • #19380 - Fix column selections for child object tables
  • #19381 - Fix syncing of custom scripts from a remote data source
  • #19396 - Enable nullifying VLAN qinq_role via the REST API
  • #19397 - Correct enum type for IPRangeFilter in GraphQL API
  • #19432 - Update minimum required PostgreSQL version referenced by server error page
  • #19440 - Ensure data migrations use the correct database connection
  • #19444 - Fix change logging for contact group assignments
  • #19463 - Hide button dropdown for tables which do not support saved configs
  • #19464 - Fix bulk editing of inventory items from device view
  • #19465 - Fix ability to clear assigned prefix scope in UI
  • #19472 - Fix device column rendering in virtual device contexts table

v4.3.0-ls275

08 May 15:59
43224d8
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.3.0-ls275/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Breaking Changes

  • The GraphQL API Now uses an advanced syntax for filtering, to enable e.g. logical AND/OR filtering and custom field lookups.
  • PostgreSQL 13 is no longer supported. NetBox v4.3 requires PostgreSQL 14.0 or later.
  • The ALLOW_TOKEN_RETRIEVAL configuration parameter now defaults to False.
  • The device and virtual_machine foreign keys on the Service model have been replaced with a generic parent relationship to support the assignment of services to FHRP groups as well.
  • The group foreign key on the Contact model has been replaced with a many-to-many groups field.
  • django-storages is now a required dependency. (It will be installed automatically on upgrade.)
  • PluginTemplateExtension no longer supports registration via the singular model attribute (use models instead).
  • The legacy staged changes functionality has been removed.

New Features

Module Type Profiles & Custom Attributes (#19002)

The new module type profile model enables users to declare custom profiles for module types, with the ability to define custom attributes for each profile according to its functional role. For example, a CPU module type might declare architecture and clock speed attributes; a hard disk profile might declare attributes for type and speed.

Attributes can be declared on each profile using JSON schema, which allows for attributes to be declared as strings (text), integers, decimals, booleans, or choice fields. Profile attributes render as individual form fields when modifying a module type. Several profiles have been included by default to serve as examples, however these may be modified or removed.

Reusable Table Configurations (#14591)

After modifying the displayed columns and/or ordering for a specific object table in the user interface, users now have the option to save that configuration so that it can be reused in the future. Similar to saved filters, table configs can be shared with other users to easily replicate table layouts crafted to serve specific use cases.

Option to Treat IP Ranges as Fully Populated (#9763)

A new mark_populated boolean field has been added to the IPRange model. If set to true, NetBox will consider the IP range to be fully populated, and will not permit the creation of individual IP addresses within the range. For example, you might defer the management of an IP range to an external DHCP server, and wish for NetBox to treat the range as a opaque monolithic block for planning and allocation purposes.

Hierarchical Device Roles (#18245)

Device roles can now be arranged hierarchically, with one role optionally serving as a parent to one or more child roles. For example, you might wish to create a generic "Server" role for devices with "Application Server" and "Database Server" roles beneath it. A device could then be assigned to any of these three roles.

Periodic Synchronization of Data Sources (#18287)

Data sources can now be configured to synchronize automatically at a specified interval, as indicated by the new sync_interval field. No additional system configuration is necessary to support this functionality; background jobs will be scheduled automatically by the RQ worker process.

Proxy Routing (#18627)

User can now declare one or more proxy routers via the PROXY_ROUTERS configuration parameter to control the use of specific proxy servers for various outbound connections. For example, it is now possible to configure NetBox to use different proxies based on the type of outbound traffic or its destination.

Enhancements

  • #7598 - Adopt advanced query filtering in GraphQL API to support filtering by custom fields
  • #8423 - Enable assigning services to FHRP groups
  • #15842 - Introduce the LOGIN_FORM_HIDDEN configuration parameter
  • #16224 - Implement pagination support for the GraphQL API
  • #17170 - Enable the assignment of a contact to multiple contact groups
  • #17443 - Add a file_name field to the export template model
  • #17602 - Add a comments field to all nested group models (Region, SiteGroup, Location, ContactGroup, TenantGroup, and WirelessLANGroup)
  • #17608 - Add a status field to the L2VPN model
  • #17653 - Enable declaring Jinja environment parameters on export templates (similar to config templates)
  • #17793 - Introduce a REST API endpoint for tagged objects (/api/extras/tagged-objects/)
  • #17841 - Add a weight field to the Tag model to influence ordering
  • #18296 - Add a tenant field to the VLAN group model
  • #18352 - Add a status field to the power outlet model
  • #18417 - Add an outer_height field to the rack & rack type models
  • #18535 - The presence of incompatible plugins will no longer prevent NetBox from starting
  • #18780 - Introduce DATABASES and DATABASE_ROUTERS configuration parameters to enable defining connections to external databases (e.g. for plugins)
  • #18783 - Enable filtering all applicable models by tag ID
  • #18785 - Enable custom choices for rack, device, and module airflow
  • #18896 - Enable the use of remote storage for custom scripts

Plugins

  • #16630 - Plugins can now inject content within the HTML <head> block via the new plugin_head() method on PluginTemplateExtension
  • #17424 - Extend ViewTab with a visible argument to control tab rendering
  • #17857 - Added a release_track attribute to PluginConfig
  • #18305 - Introduce plugin support for ContactsMixin
  • #19073 - Allow installed plugins to be omitted from the plugins list

Other Changes

  • #18071 - Removed legacy staged changed functionality in favor of the netbox-branching plugin
  • #18072 - Drop support for the singular model attribute on PluginTemplateExtension (use models instead)
  • #18191 - Remove redundant PostgreSQL indexes
  • #18236 - Upgrade the HTMX library to v2.0
  • #18540 - Operational plugins are now recorded in the application registry
  • #18623 - Upgrade the Tabler CSS theme to v1.2
  • #18743 - Upgrade Django to v5.2
  • #18751 - Change the default value for ALLOW_TOKEN_RETRIEVAL to False
  • #18808 - Squashed migration dependencies have been altered to rectify an issue with Django's sqlmigrate management command
  • #18820 - PostgreSQL 13 is no longer supported
  • #19004 - The use of inventory items has been deprecated in favor of modules. Inventory items and roles may be removed in a future NetBox release.

v4.3.0-ls274

01 May 17:34
4e5c481
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.3.0-ls274/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Breaking Changes

  • The GraphQL API Now uses an advanced syntax for filtering, to enable e.g. logical AND/OR filtering and custom field lookups.
  • PostgreSQL 13 is no longer supported. NetBox v4.3 requires PostgreSQL 14.0 or later.
  • The ALLOW_TOKEN_RETRIEVAL configuration parameter now defaults to False.
  • The device and virtual_machine foreign keys on the Service model have been replaced with a generic parent relationship to support the assignment of services to FHRP groups as well.
  • The group foreign key on the Contact model has been replaced with a many-to-many groups field.
  • django-storages is now a required dependency. (It will be installed automatically on upgrade.)
  • PluginTemplateExtension no longer supports registration via the singular model attribute (use models instead).
  • The legacy staged changes functionality has been removed.

New Features

Module Type Profiles & Custom Attributes (#19002)

The new module type profile model enables users to declare custom profiles for module types, with the ability to define custom attributes for each profile according to its functional role. For example, a CPU module type might declare architecture and clock speed attributes; a hard disk profile might declare attributes for type and speed.

Attributes can be declared on each profile using JSON schema, which allows for attributes to be declared as strings (text), integers, decimals, booleans, or choice fields. Profile attributes render as individual form fields when modifying a module type. Several profiles have been included by default to serve as examples, however these may be modified or removed.

Reusable Table Configurations (#14591)

After modifying the displayed columns and/or ordering for a specific object table in the user interface, users now have the option to save that configuration so that it can be reused in the future. Similar to saved filters, table configs can be shared with other users to easily replicate table layouts crafted to serve specific use cases.

Option to Treat IP Ranges as Fully Populated (#9763)

A new mark_populated boolean field has been added to the IPRange model. If set to true, NetBox will consider the IP range to be fully populated, and will not permit the creation of individual IP addresses within the range. For example, you might defer the management of an IP range to an external DHCP server, and wish for NetBox to treat the range as a opaque monolithic block for planning and allocation purposes.

Hierarchical Device Roles (#18245)

Device roles can now be arranged hierarchically, with one role optionally serving as a parent to one or more child roles. For example, you might wish to create a generic "Server" role for devices with "Application Server" and "Database Server" roles beneath it. A device could then be assigned to any of these three roles.

Periodic Synchronization of Data Sources (#18287)

Data sources can now be configured to synchronize automatically at a specified interval, as indicated by the new sync_interval field. No additional system configuration is necessary to support this functionality; background jobs will be scheduled automatically by the RQ worker process.

Proxy Routing (#18627)

User can now declare one or more proxy routers via the PROXY_ROUTERS configuration parameter to control the use of specific proxy servers for various outbound connections. For example, it is now possible to configure NetBox to use different proxies based on the type of outbound traffic or its destination.

Enhancements

  • #7598 - Adopt advanced query filtering in GraphQL API to support filtering by custom fields
  • #8423 - Enable assigning services to FHRP groups
  • #15842 - Introduce the LOGIN_FORM_HIDDEN configuration parameter
  • #16224 - Implement pagination support for the GraphQL API
  • #17170 - Enable the assignment of a contact to multiple contact groups
  • #17443 - Add a file_name field to the export template model
  • #17602 - Add a comments field to all nested group models (Region, SiteGroup, Location, ContactGroup, TenantGroup, and WirelessLANGroup)
  • #17608 - Add a status field to the L2VPN model
  • #17653 - Enable declaring Jinja environment parameters on export templates (similar to config templates)
  • #17793 - Introduce a REST API endpoint for tagged objects (/api/extras/tagged-objects/)
  • #17841 - Add a weight field to the Tag model to influence ordering
  • #18296 - Add a tenant field to the VLAN group model
  • #18352 - Add a status field to the power outlet model
  • #18417 - Add an outer_height field to the rack & rack type models
  • #18535 - The presence of incompatible plugins will no longer prevent NetBox from starting
  • #18780 - Introduce DATABASES and DATABASE_ROUTERS configuration parameters to enable defining connections to external databases (e.g. for plugins)
  • #18783 - Enable filtering all applicable models by tag ID
  • #18785 - Enable custom choices for rack, device, and module airflow
  • #18896 - Enable the use of remote storage for custom scripts

Plugins

  • #16630 - Plugins can now inject content within the HTML <head> block via the new plugin_head() method on PluginTemplateExtension
  • #17424 - Extend ViewTab with a visible argument to control tab rendering
  • #17857 - Added a release_track attribute to PluginConfig
  • #18305 - Introduce plugin support for ContactsMixin
  • #19073 - Allow installed plugins to be omitted from the plugins list

Other Changes

  • #18071 - Removed legacy staged changed functionality in favor of the netbox-branching plugin
  • #18072 - Drop support for the singular model attribute on PluginTemplateExtension (use models instead)
  • #18191 - Remove redundant PostgreSQL indexes
  • #18236 - Upgrade the HTMX library to v2.0
  • #18540 - Operational plugins are now recorded in the application registry
  • #18623 - Upgrade the Tabler CSS theme to v1.2
  • #18743 - Upgrade Django to v5.2
  • #18751 - Change the default value for ALLOW_TOKEN_RETRIEVAL to False
  • #18808 - Squashed migration dependencies have been altered to rectify an issue with Django's sqlmigrate management command
  • #18820 - PostgreSQL 13 is no longer supported
  • #19004 - The use of inventory items has been deprecated in favor of modules. Inventory items and roles may be removed in a future NetBox release.

v4.2.9-ls273

30 Apr 19:29
943e30f
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.2.9-ls273/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Enhancements

  • #17151 - Display circuit type with background color in circuits list
  • #17319 - Improve layout of component template edit forms
  • #17405 - Display plugin icons in plugins list
  • #18215 - Link to script results list from script history
  • #18334 - Add region, site group, site, location, and rack filters for modules
  • #18982 - Reference rack as related object in changelog records for rack reservations
  • #18989 - List virtual circuits under provider view
  • #19110 - Enable filtering devices and virtual machines by primary IP address
  • #19358 - Move release info from footer to the navigation menu

Bug Fixes

  • #15739 - Account for parallel cables when calculating total path length
  • #15971 - Preserve "none" selection in filter form fields
  • #16238 - Fix styling for white, gray, and black custom link buttons
  • #17613 - Fix layout of object view content on mobile
  • #17676 - Fix support for module bay creation when bulk importing module types
  • #18706 - Fix validation for VLANs assigned to both a group and a site
  • #18717 - Ensure change logs populated for many-to-one changes
  • #19117 - Avoid AttributeError exception when bulk import objects which have a multi-object custom field with a default value
  • #19204 - Improve JSON serialization support for data returned by a custom script
  • #19217 - Ensure static assets for the debug toolbar are installed even if DEBUG is false
  • #19228 - Fix ordering of custom scripts to avoid NoReverseMatch exception
  • #19229 - Fix ValueError exception when attempting to nullify interface mode when a VLAN is assigned
  • #19275 - type field should not be required when bulk editing interfaces
  • #19279 - status field should not be required when bulk editing inventory items
  • #19281 - Fix form validation failure when attempting to create a service from a service template
  • #19320 - Include Q-in-Q VLAN (if any) in VM interface details
  • #19322 - Correct URL paths for bulk import views
  • #19346 - Ensure all redirect URLs are validated before use

v4.2.8-ls272

24 Apr 16:04
c30b1b1
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.2.8-ls272/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Enhancements

  • #17136 - Introduce the --readonly flag on upgrade script
  • #17908 - Add trace buttons to terminations under cable view
  • #18879 - Enable filtering prefixes by group of assigned VLAN
  • #18976 - Include FHRP group name on interface lists
  • #18978 - Add 802.1Q mode to interface filter form
  • #19038 - Show count of related VLAN groups under cluster view
  • #19040 - Add "copy to clipboard" button for rendered config
  • #19056 - Enable filtering devices by location slug
  • #19196 - Add filtering by VLAN translation policy to interface filter forms

Bug Fixes

  • #18500 - prepare_cloned_fields() should validate cloning support on model
  • #18669 - Ensure default custom field values are respected when creating objects via the REST API
  • #18881 - Include missing related object counts under certain views
  • #18955 - Omit "clear" button on required choice fields
  • #18959 - Preserve ordering of terminations in cable traces
  • #18961 - Virtual chassis form should exclude members of other VCs when adding members
  • #19166 - Fix custom field choices bulk import support for base_choices
  • #19189 - The load_yaml() convenience method on BaseScript should use SafeLoader
  • #19195 - Language cookie should respect SESSION_COOKIE_SECURE value
  • #19230 - Allow label reuse when creating multiple components from a pattern
  • #19268 - Restore editing conflict protection for several object forms

v4.2.8-ls271

22 Apr 20:31
f0526ca
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.2.8-ls271/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Enhancements

  • #17136 - Introduce the --readonly flag on upgrade script
  • #17908 - Add trace buttons to terminations under cable view
  • #18879 - Enable filtering prefixes by group of assigned VLAN
  • #18976 - Include FHRP group name on interface lists
  • #18978 - Add 802.1Q mode to interface filter form
  • #19038 - Show count of related VLAN groups under cluster view
  • #19040 - Add "copy to clipboard" button for rendered config
  • #19056 - Enable filtering devices by location slug
  • #19196 - Add filtering by VLAN translation policy to interface filter forms

Bug Fixes

  • #18500 - prepare_cloned_fields() should validate cloning support on model
  • #18669 - Ensure default custom field values are respected when creating objects via the REST API
  • #18881 - Include missing related object counts under certain views
  • #18955 - Omit "clear" button on required choice fields
  • #18959 - Preserve ordering of terminations in cable traces
  • #18961 - Virtual chassis form should exclude members of other VCs when adding members
  • #19166 - Fix custom field choices bulk import support for base_choices
  • #19189 - The load_yaml() convenience method on BaseScript should use SafeLoader
  • #19195 - Language cookie should respect SESSION_COOKIE_SECURE value
  • #19230 - Allow label reuse when creating multiple components from a pattern
  • #19268 - Restore editing conflict protection for several object forms

v4.2.7-ls270

17 Apr 15:54
2b9d203
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.2.7-ls270/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Enhancements

  • #16144 - Add support for plugin models to GetReturnURLMixin
  • #18138 - Enable filtering of ObjectVar and MultiObjectVar input selections for custom fields
  • #18656 - Enable FHRP group assignment when bulk importing IP addresses
  • #18980 - Optimize bulk updates of custom field values when custom fields are added/removed
  • #19018 - Add MoCA interface type

Bug Fixes

  • #18553 - Avoid clearing site of assigned virtual machines when editing a cluster
  • #18738 - Respect declared ordering of custom scripts within a module
  • #18895 - Fix GraphQL support for interfaces which terminate virtual circuits
  • #18904 - Add missing tags column to config contexts table
  • #18964 - Fix "select all" behavior on object lists
  • #18965 - "Run script" button should respect default commit toggle for custom scripts
  • #18991 - Fix cable path tracing for pass-through ports in REST API
  • #18999 - Fix filtering of inventory items with no manufacturer in GraphQL API
  • #19021 - Preserve JSONField stylign when help_text is passed
  • #19023 - get_field_value() should honor null values on bound form fields
  • #19030 - Prevent pagination buttons from overlapping bulk action buttons on object lists
  • #19041 - Fix IndexError exception when creating multiple front ports with a label
  • #19092 - Fix clearing of scope field when bulk editing prefixes
  • #19122 - Fix styling of server error page

v4.2.7-ls269

10 Apr 20:33
6aadc45
Compare
Choose a tag to compare

CI Report:

https://ci-tests.linuxserver.io/linuxserver/netbox/v4.2.7-ls269/index.html

LinuxServer Changes:

Restructure init to allow for plugins as mods.

Remote Changes:

Enhancements

  • #16144 - Add support for plugin models to GetReturnURLMixin
  • #18138 - Enable filtering of ObjectVar and MultiObjectVar input selections for custom fields
  • #18656 - Enable FHRP group assignment when bulk importing IP addresses
  • #18980 - Optimize bulk updates of custom field values when custom fields are added/removed
  • #19018 - Add MoCA interface type

Bug Fixes

  • #18553 - Avoid clearing site of assigned virtual machines when editing a cluster
  • #18738 - Respect declared ordering of custom scripts within a module
  • #18895 - Fix GraphQL support for interfaces which terminate virtual circuits
  • #18904 - Add missing tags column to config contexts table
  • #18964 - Fix "select all" behavior on object lists
  • #18965 - "Run script" button should respect default commit toggle for custom scripts
  • #18991 - Fix cable path tracing for pass-through ports in REST API
  • #18999 - Fix filtering of inventory items with no manufacturer in GraphQL API
  • #19021 - Preserve JSONField stylign when help_text is passed
  • #19023 - get_field_value() should honor null values on bound form fields
  • #19030 - Prevent pagination buttons from overlapping bulk action buttons on object lists
  • #19041 - Fix IndexError exception when creating multiple front ports with a label
  • #19092 - Fix clearing of scope field when bulk editing prefixes
  • #19122 - Fix styling of server error page