http://open-source-security-software.net/project/netbox/releases.atom Recent releases for netbox 2025-12-15T02:29:36.238770+00:00 python-feedgen netbox v2.0.3 netbox v2.0.3 2017-05-18T18:38:17+00:00 ## Enhancements * [#1196](https://github.com/digitalocean/netbox/issues/1196) - Added a lag_id filter to the API interfaces view * [#1198](https://github.com/digitalocean/netbox/issues/1198) - Allow filtering unracked devices on device list ## Bug Fixes * [#1157](https://github.com/digitalocean/netbox/issues/1157) - Hide nav menu search bar on small displays * [#1186](https://github.com/digitalocean/netbox/issues/1186) - Corrected VLAN edit form so that site assignment is not required * [#1187](https://github.com/digitalocean/netbox/issues/1187) - Fixed table pagination by introducing a custom table template * [#1188](https://github.com/digitalocean/netbox/issues/1188) - Serialize interface LAG as nested objected (API) * [#1189](https://github.com/digitalocean/netbox/issues/1189) - Enforce consistent ordering of objects returned by a global search * [#1191](https://github.com/digitalocean/netbox/issues/1191) - Bulk selection of IPs under a prefix incorrect when "select all" is used * [#1195](https://github.com/digitalocean/netbox/issues/1195) - Unable to create an interface connection when searching for peer device * [#1197](https://github.com/digitalocean/netbox/issues/1197) - Fixed status assignment during bulk import of devices, prefixes, IPs, and VLANs * [#1199](https://github.com/digitalocean/netbox/issues/1199) - Bulk import of secrets does not prompt user to generate a session key * [#1200](https://github.com/digitalocean/netbox/issues/1200) - Form validation error when connecting power ports to power outlets 2017-05-18T18:38:17+00:00 netbox v2.0.4 netbox v2.0.4 2017-05-25T18:45:56+00:00 ## Bug Fixes * [#1206](https://github.com/digitalocean/netbox/issues/1206) - Fix redirection in admin UI after activating secret keys when BASE_PATH is set * [#1207](https://github.com/digitalocean/netbox/issues/1207) - Include nested LAG serializer when showing interface connections (API) * [#1210](https://github.com/digitalocean/netbox/issues/1210) - Fix TemplateDoesNotExist errors on browsable API views * [#1212](https://github.com/digitalocean/netbox/issues/1212) - Allow assigning new VLANs to global VLAN groups * [#1213](https://github.com/digitalocean/netbox/issues/1213) - Corrected table header ordering links on object list views * [#1214](https://github.com/digitalocean/netbox/issues/1214) - Add status to list of required fields on child device import form * [#1219](https://github.com/digitalocean/netbox/issues/1219) - Fix image attachment URLs when BASE_PATH is set * [#1220](https://github.com/digitalocean/netbox/issues/1220) - Suppressed innocuous warning about untracked migrations under Python 3 * [#1229](https://github.com/digitalocean/netbox/issues/1229) - Fix validation error on forms where API search is used 2017-05-25T18:45:56+00:00 netbox v2.0.5 netbox v2.0.5 2017-06-08T14:11:42+00:00 ## Notes The maximum number of objects an API consumer can request has been set to 1000 (e.g. `?limit=1000`). This limit can be modified by defining `MAX_PAGE_SIZE` in confgiuration.py. (To remove this limit, set `MAX_PAGE_SIZE=0`.) ## Enhancements * [#655](https://github.com/digitalocean/netbox/issues/655) - Implemented header-based CSV import of objects * [#1190](https://github.com/digitalocean/netbox/issues/1190) - Allow partial string matching when searching on custom fields * [#1237](https://github.com/digitalocean/netbox/issues/1237) - Enabled setting limit=0 to disable pagination in API requests; added `MAX_PAGE_SIZE` configuration setting ## Bug Fixes * [#837](https://github.com/digitalocean/netbox/issues/837) - Enforce uniqueness where applicable during bulk import of IP addresses * [#1226](https://github.com/digitalocean/netbox/issues/1226) - Improved validation for custom field values submitted via the API * [#1232](https://github.com/digitalocean/netbox/issues/1232) - Improved rack space validation on bulk import of devices (see #655) * [#1235](https://github.com/digitalocean/netbox/issues/1235) - Fix permission name for adding/editing inventory items * [#1236](https://github.com/digitalocean/netbox/issues/1236) - Truncate rack names in elevations list; add facility ID * [#1239](https://github.com/digitalocean/netbox/issues/1239) - Fix server error when creating VLANGroup via API * [#1243](https://github.com/digitalocean/netbox/issues/1243) - Catch ValueError in IP-based object filters * [#1244](https://github.com/digitalocean/netbox/issues/1244) - Corrected "device" secrets filter to accept a device name 2017-06-08T14:11:42+00:00 netbox v2.0.6 netbox v2.0.6 2017-06-12T13:51:55+00:00 ## Enhancements * [#40](https://github.com/digitalocean/netbox/issues/40) - Added IP utilization graph to prefix list * [#704](https://github.com/digitalocean/netbox/issues/704) - Allow filtering VLANs by group when editing prefixes * [#913](https://github.com/digitalocean/netbox/issues/913) - Added headers to object CSV exports * [#990](https://github.com/digitalocean/netbox/issues/990) - Enable logging configuration in configuration.py * [#1180](https://github.com/digitalocean/netbox/issues/1180) - Simplified the process of finding related devices when viewing a device ## Bug Fixes * [#1253](https://github.com/digitalocean/netbox/issues/1253) - Improved `upgrade.sh` to allow forcing Python2 2017-06-12T13:51:55+00:00 netbox v2.0.7 netbox v2.0.7 2017-06-15T18:27:19+00:00 ## Enhancements * [#626](https://github.com/digitalocean/netbox/issues/626) - Added bulk disconnect function for console/power/interface connections on device view ## Bug Fixes * [#1238](https://github.com/digitalocean/netbox/issues/1238) - Fix error when editing an IP with a NAT assignment which has no assigned device * [#1263](https://github.com/digitalocean/netbox/issues/1263) - Differentiate add and edit permissions for objects * [#1265](https://github.com/digitalocean/netbox/issues/1265) - Fix console/power/interface connection validation when selecting a device via live search * [#1266](https://github.com/digitalocean/netbox/issues/1266) - Prevent terminating a circuit to an already-connected interface * [#1268](https://github.com/digitalocean/netbox/issues/1268) - Fix CSV import error under Python 3 * [#1273](https://github.com/digitalocean/netbox/issues/1273) - Corrected status choices in IP address import form * [#1274](https://github.com/digitalocean/netbox/issues/1274) - Exclude unterminated circuits from topology maps * [#1275](https://github.com/digitalocean/netbox/issues/1275) - Raise validation error on prefix import when multiple VLANs are found 2017-06-15T18:27:19+00:00 netbox v2.0.8 netbox v2.0.8 2017-07-05T18:37:15+00:00 ## Enhancements * [#1298](https://github.com/digitalocean/netbox/issues/1298) - Calculate prefix utilization based on its status (container or non-container) * [#1303](https://github.com/digitalocean/netbox/issues/1303) - Highlight installed interface connections in green on device view * [#1315](https://github.com/digitalocean/netbox/issues/1315) - Enforce lowercase file extensions for image attachments ## Bug Fixes * [#1279](https://github.com/digitalocean/netbox/issues/1279) - Fix primary_ip assignment during IP address import * [#1281](https://github.com/digitalocean/netbox/issues/1281) - Show LLDP neighbors tab on device view only if necessary conditions are met * [#1282](https://github.com/digitalocean/netbox/issues/1282) - Fixed tooltips on "mark connected/planned" toggle buttons for device connections * [#1288](https://github.com/digitalocean/netbox/issues/1288) - Corrected permission name for deleting image attachments * [#1289](https://github.com/digitalocean/netbox/issues/1289) - Retain inside NAT assignment when editing an IP address * [#1297](https://github.com/digitalocean/netbox/issues/1297) - Allow passing custom field choice selection PKs to API as string-quoted integers * [#1299](https://github.com/digitalocean/netbox/issues/1299) - Corrected permission name for adding services to devices 2017-07-05T18:37:15+00:00 netbox v2.0.9 netbox v2.0.9 2017-07-10T13:45:23+00:00 ## Bug Fixes * [#1319](https://github.com/digitalocean/netbox/issues/1319) - Fixed server error when attempting to create console/power connections * [#1325](https://github.com/digitalocean/netbox/issues/1325) - Retain interface attachment when editing a circuit termination 2017-07-10T13:45:23+00:00 netbox v2.1-beta1 netbox v2.1-beta1 2017-07-10T17:18:23+00:00 This is the first beta release of NetBox v2.1. ## Enhancements * [#819](https://github.com/digitalocean/netbox/issues/819) - Implemented IP address functional roles * [#1041](https://github.com/digitalocean/netbox/issues/1041) - Added enabled and MTU fields to the interface model * [#1121](https://github.com/digitalocean/netbox/issues/1121) - Added asset_tag and description fields to the InventoryItem model * [#1141](https://github.com/digitalocean/netbox/issues/1141) - Include RD when listing VRFs in a form selection field * [#1203](https://github.com/digitalocean/netbox/issues/1203) - Implemented query filters for all models * [#1218](https://github.com/digitalocean/netbox/issues/1218) - Added IEEE 802.11 wireless interface types * [#1246](https://github.com/digitalocean/netbox/issues/1246) - Added an API endpoint to retrieve/create available IPs within a prefix * [#1269](https://github.com/digitalocean/netbox/issues/1269) - Added circuit termination to interface serializer ## Bug Fixes * [#1079](https://github.com/digitalocean/netbox/issues/1079) - Order interfaces naturally via API * [#1285](https://github.com/digitalocean/netbox/issues/1285) - Enforce model validation when creating/editing objects via the API ## API changes * Device components (console ports, power ports, interfaces, etc.) can only be filtered by a single device name or ID. This limitation was necessary to allow the natural ordering of interfaces according to the device's parent device type. * Added two new fields to the interface serializer: `enabled` (boolean) and `mtu` (unsigned integer) * Modified the interface serializer to include three discrete fields relating to connections: `is_connected` (boolean), `interface_connection`, and `circuit_termination` * Added two new fields to the inventory item serializer: `asset_tag` and `description` * Added "wireless" to interface type filter (in addition to physical, virtual, and LAG) * Added a new endpoint at /api/ipam/prefixes/<pk>/available-ips/ to retrieve or create available IPs within a prefix 2017-07-10T17:18:23+00:00 netbox v2.0.10 netbox v2.0.10 2017-07-14T14:10:04+00:00 ## Bug Fixes * [#1312](https://github.com/digitalocean/netbox/issues/1312) - Catch error when attempting to activate a user key with an invalid private key * [#1333](https://github.com/digitalocean/netbox/issues/1333) - Corrected label on is_console_server field of DeviceType bulk edit form * [#1338](https://github.com/digitalocean/netbox/issues/1338) - Allow importing prefixes with "container" status * [#1339](https://github.com/digitalocean/netbox/issues/1339) - Fixed disappearing checkbox column under django-tables2 v1.7+ * [#1342](https://github.com/digitalocean/netbox/issues/1342) - Allow designation of users and groups when creating/editing a secret role 2017-07-14T14:10:04+00:00 netbox v2.1.0 netbox v2.1.0 2017-07-25T15:22:55+00:00 ## New Features ### IP Address Roles ([#819](https://github.com/digitalocean/netbox/issues/819)) The IP address model now supports the assignment of a functional role to help identify special-purpose IPs. These include: * Loopback * Secondary * Anycast * VIP * VRRP * HSRP * GLBP ### Automatic Provisioning of Next Available IP ([#1246](https://github.com/digitalocean/netbox/issues/1246)) A new API endpoint has been added at `/api/ipam/prefixes/<pk>/available-ips/`. A GET request to this endpoint will return a list of available IP addresses within the prefix (up to the pagination limit). A POST request will automatically create and return the next available IP address. ### NAPALM Integration ([#1348](https://github.com/digitalocean/netbox/issues/1348)) The [NAPALM automation](https://napalm-automation.net/) library provides an abstracted interface for pulling live data (e.g. uptime, software version, running config, LLDP neighbors, etc.) from network devices. The NetBox API has been extended to support executing read-only NAPALM methods on devices defined in NetBox. To enable this functionality, ensure that NAPALM has been installed (`pip install napalm`) and the `NETBOX_USERNAME` and `NETBOX_PASSWORD` [configuration parameters](http://netbox.readthedocs.io/en/stable/configuration/optional-settings/#netbox_username) have been set in configuration.py. ## Enhancements * [#838](https://github.com/digitalocean/netbox/issues/838) - Display details of all objects being edited/deleted in bulk * [#1041](https://github.com/digitalocean/netbox/issues/1041) - Added enabled and MTU fields to the interface model * [#1121](https://github.com/digitalocean/netbox/issues/1121) - Added asset_tag and description fields to the InventoryItem model * [#1141](https://github.com/digitalocean/netbox/issues/1141) - Include RD when listing VRFs in a form selection field * [#1203](https://github.com/digitalocean/netbox/issues/1203) - Implemented query filters for all models * [#1218](https://github.com/digitalocean/netbox/issues/1218) - Added IEEE 802.11 wireless interface types * [#1269](https://github.com/digitalocean/netbox/issues/1269) - Added circuit termination to interface serializer * [#1320](https://github.com/digitalocean/netbox/issues/1320) - Removed checkbox from confirmation dialog ## Bug Fixes * [#1079](https://github.com/digitalocean/netbox/issues/1079) - Order interfaces naturally via API * [#1285](https://github.com/digitalocean/netbox/issues/1285) - Enforce model validation when creating/editing objects via the API * [#1358](https://github.com/digitalocean/netbox/issues/1358) - Correct VRF example values in IP/prefix import forms * [#1362](https://github.com/digitalocean/netbox/issues/1362) - Raise validation error when attempting to create an API key that's too short * [#1371](https://github.com/digitalocean/netbox/issues/1371) - Extend DeviceSerializer.parent_device to include standard fields ## API changes * Added a new API endpoint which makes [NAPALM](https://github.com/napalm-automation/napalm) accessible via NetBox * Device components (console ports, power ports, interfaces, etc.) can only be filtered by a single device name or ID. This limitation was necessary to allow the natural ordering of interfaces according to the device's parent device type. * Added two new fields to the interface serializer: `enabled` (boolean) and `mtu` (unsigned integer) * Modified the interface serializer to include three discrete fields relating to connections: `is_connected` (boolean), `interface_connection`, and `circuit_termination` * Added two new fields to the inventory item serializer: `asset_tag` and `description` * Added "wireless" to interface type filter (in addition to physical, virtual, and LAG) * Added a new endpoint at /api/ipam/prefixes/<pk>/available-ips/ to retrieve or create available IPs within a prefix * Extended `parent_device` on DeviceSerializer to include the `url` and `display_name` of the parent Device, and the `url` of the DeviceBay 2017-07-25T15:22:55+00:00 netbox v2.1.1 netbox v2.1.1 2017-08-02T18:23:39+00:00 ## Enhancements * [#893](https://github.com/digitalocean/netbox/issues/893) - Allow filtering by null values for NullCharacterFields (e.g. return only unnamed devices) * [#1368](https://github.com/digitalocean/netbox/issues/1368) - Render reservations in rack elevations view * [#1374](https://github.com/digitalocean/netbox/issues/1374) - Added NAPALM_ARGS and NAPALM_TIMEOUT configiuration parameters * [#1375](https://github.com/digitalocean/netbox/issues/1375) - Renamed `NETBOX_USERNAME` and `NETBOX_PASSWORD` configuration parameters to `NAPALM_USERNAME` and `NAPALM_PASSWORD` * [#1379](https://github.com/digitalocean/netbox/issues/1379) - Allow searching devices by interface MAC address in global search ## Bug Fixes * [#461](https://github.com/digitalocean/netbox/issues/461) - Display a validation error when attempting to assigning a new child device to a rack face/position * [#1385](https://github.com/digitalocean/netbox/issues/1385) - Connected device API endpoint no longer requires authentication if `LOGIN_REQUIRED` is False 2017-08-02T18:23:39+00:00 netbox v2.1.2 netbox v2.1.2 2017-08-04T14:55:27+00:00 ## Enhancements * [#992](https://github.com/digitalocean/netbox/issues/992) - Allow the creation of multiple services per device with the same protocol and port * Tweaked navigation menu styling ## Bug Fixes * [#1388](https://github.com/digitalocean/netbox/issues/1388) - Fixed server error when searching globally for IPs/prefixes (rolled back #1379) * [#1390](https://github.com/digitalocean/netbox/issues/1390) - Fixed IndexError when viewing available IPs within large IPv6 prefixes 2017-08-04T14:55:27+00:00 netbox v2.1.3 netbox v2.1.3 2017-08-15T19:53:55+00:00 ## Bug Fixes * [#1330](https://github.com/digitalocean/netbox/issues/1330) - Raise validation error when assigning an unrelated IP as the primary IP for a device * [#1389](https://github.com/digitalocean/netbox/issues/1389) - Avoid splitting carat/prefix on prefix list * [#1400](https://github.com/digitalocean/netbox/issues/1400) - Removed redundant display of assigned device interface from IP address list * [#1414](https://github.com/digitalocean/netbox/issues/1414) - Selecting a site from the rack filters automatically updates the available rack groups * [#1419](https://github.com/digitalocean/netbox/issues/1419) - Allow editing image attachments without re-uploading an image * [#1420](https://github.com/digitalocean/netbox/issues/1420) - Exclude virtual interfaces from device LLDP neighbors view * [#1421](https://github.com/digitalocean/netbox/issues/1421) - Improved model validation logic for API serializers * Fixed page title capitalization in the browsable API 2017-08-15T19:53:55+00:00 netbox v2.1.4 netbox v2.1.4 2017-08-30T18:43:52+00:00 ## Enhancements * [#1326](https://github.com/digitalocean/netbox/issues/1326) - Added dropdown widget with common values for circuit speed fields * [#1341](https://github.com/digitalocean/netbox/issues/1341) - Added a `MEDIA_ROOT` configuration setting to specify where uploaded files are stored on disk * [#1376](https://github.com/digitalocean/netbox/issues/1376) - Ignore anycast addresses when detecting duplicate IPs * [#1402](https://github.com/digitalocean/netbox/issues/1402) - Increased max length of name field for device components * [#1431](https://github.com/digitalocean/netbox/issues/1431) - Added interface form factor for 10GBASE-CX4 * [#1432](https://github.com/digitalocean/netbox/issues/1432) - Added a `commit_rate` field to the circuits list search form * [#1460](https://github.com/digitalocean/netbox/issues/1460) - Hostnames with no domain are now acceptable in custom URL fields ## Bug Fixes * [#1429](https://github.com/digitalocean/netbox/issues/1429) - Fixed uptime formatting on device status page * [#1433](https://github.com/digitalocean/netbox/issues/1433) - Fixed `devicetype_id` filter for DeviceType components * [#1443](https://github.com/digitalocean/netbox/issues/1443) - Fixed API validation error involving custom field data * [#1458](https://github.com/digitalocean/netbox/issues/1458) - Corrected permission name on prefix/VLAN roles list 2017-08-30T18:43:52+00:00 netbox v2.2-beta1 netbox v2.2-beta1 2017-09-14T19:10:19+00:00 ## New Features * [#142](https://github.com/digitalocean/netbox/issues/142) - Support for virtual machines and clusters ## API Changes * Introduced the `virtualization` app and its associated endpoints at /api/virtualization * The `ipam.Service` and `dcim.Interface` models now have a `virtual_machine` field in addition to the `device` field. Only one of the two fields may be defined for each object. 2017-09-14T19:10:19+00:00 netbox v2.1.5 netbox v2.1.5 2017-09-25T18:54:12+00:00 ## Enhancements * [#1484](https://github.com/digitalocean/netbox/issues/1484) - Added individual "add VLAN" buttons on the VLAN groups list * [#1485](https://github.com/digitalocean/netbox/issues/1485) - Added `BANNER_LOGIN` configuration setting to display a banner on the login page * [#1499](https://github.com/digitalocean/netbox/issues/1499) - Added utilization graph to child prefixes table * [#1523](https://github.com/digitalocean/netbox/issues/1523) - Improved the natural ordering of interfaces (thanks to [@tarkatronic](https://github.com/tarkatronic)) * [#1536](https://github.com/digitalocean/netbox/issues/1536) - Improved formatting of aggregate prefix statistics ## Bug Fixes * [#1469](https://github.com/digitalocean/netbox/issues/1469) - Allow a NAT IP to be assigned as the primary IP for a device * [#1472](https://github.com/digitalocean/netbox/issues/1472) - Prevented truncation when displaying secret strings containing HTML characters * [#1486](https://github.com/digitalocean/netbox/issues/1486) - Ignore subinterface IDs when validating LLDP neighbor connections * [#1489](https://github.com/digitalocean/netbox/issues/1489) - Corrected server error on validation of empty required custom field * [#1507](https://github.com/digitalocean/netbox/issues/1507) - Fixed error when creating the next available IP from a prefix within a VRF * [#1520](https://github.com/digitalocean/netbox/issues/1520) - Redirect on GET request to bulk edit/delete views * [#1522](https://github.com/digitalocean/netbox/issues/1522) - Removed object create/edit forms from the browsable API 2017-09-25T18:54:12+00:00 netbox v2.2-beta2 netbox v2.2-beta2 2017-09-29T18:41:33+00:00 **Note:** PostgreSQL 9.4 or higher is required as of this release. ## Enhancements * [#1347](https://github.com/digitalocean/netbox/issues/1347) - Added CSV import views for regions, rack groups, manufacturers, and device types * [#1493](https://github.com/digitalocean/netbox/issues/1493) - Added functional roles for virtual machines * [#1509](https://github.com/digitalocean/netbox/issues/1509) - Extended the cluster model to allow site assignment ## Bug Fixes * [#1500](https://github.com/digitalocean/netbox/issues/1500) - Allow assigning IP addresses to virtual machines during CSV bulk import * [#1502](https://github.com/digitalocean/netbox/issues/1502) - Fixed CSV export for clusters and virtual machines * [#1504](https://github.com/digitalocean/netbox/issues/1504) - Added missing vcpus/memory/disk fields to virtual machine API serializer * [#1508](https://github.com/digitalocean/netbox/issues/1508) - Enabled creating custom fields for clusters and virtual machines via the admin UI * [#1514](https://github.com/digitalocean/netbox/issues/1514) - Added missing `comments` field to cluster edit form * [#1540](https://github.com/digitalocean/netbox/issues/1540) - Added missing `cluster` field to WritableDeviceSerializer * [#1542](https://github.com/digitalocean/netbox/issues/1542) - Added cluster field to device view * [#1543](https://github.com/digitalocean/netbox/issues/1543) - Added missing virtual machine field to IP address and service filters 2017-09-29T18:41:33+00:00 netbox v2.1.6 netbox v2.1.6 2017-10-11T17:03:20+00:00 ## Enhancements * [#1548](https://github.com/digitalocean/netbox/issues/1548) - Automatically populate tenant assignment when adding an IP address from the prefix view * [#1561](https://github.com/digitalocean/netbox/issues/1561) - Added primary IP to the devices table in global search * [#1563](https://github.com/digitalocean/netbox/issues/1563) - Made necessary updates for Django REST Framework v3.7.0 2017-10-11T17:03:20+00:00 netbox v2.2.0 netbox v2.2.0 2017-10-12T18:03:13+00:00 **Note:** This release requires PostgreSQL 9.4 or higher. Do not attempt to upgrade unless you are running at least PostgreSQL 9.4. **Note:** The release replaces the deprecated pycrypto library with [pycryptodome](https://github.com/Legrandin/pycryptodome). The upgrade script has been extended to automatically uninstall the old library, but please verify your installed packages with `pip freeze | grep pycrypto` if you run into problems. ## New Features ### Virtual Machines and Clusters ([#142](https://github.com/digitalocean/netbox/issues/142)) Our second-most popular feature request has arrived! NetBox now supports the creation of virtual machines, which can be assigned virtual interfaces and IP addresses. VMs are arranged into clusters, each of which has a type and (optionally) a group. ### Custom Validation Reports ([#1511](https://github.com/digitalocean/netbox/issues/1511)) Users can now create custom reports which are run to validate data in NetBox. Reports work very similar to Python unit tests: Each report inherits from NetBox's Report class and contains one or more test method. Reports can be run and retrieved via the web UI, API, or CLI. See [the docs](http://netbox.readthedocs.io/en/stable/miscellaneous/reports/) for more info. ## Enhancements * [#494](https://github.com/digitalocean/netbox/issues/494) - Include asset tag in device info pop-up on rack elevation * [#1444](https://github.com/digitalocean/netbox/issues/1444) - Added a `serial` field to the rack model * [#1479](https://github.com/digitalocean/netbox/issues/1479) - Added an IP address role for CARP * [#1506](https://github.com/digitalocean/netbox/issues/1506) - Extended rack facility ID field from 30 to 50 characters * [#1510](https://github.com/digitalocean/netbox/issues/1510) - Added ability to search by name when adding devices to a cluster * [#1527](https://github.com/digitalocean/netbox/issues/1527) - Replace deprecated pycrypto library with pycryptodome * [#1551](https://github.com/digitalocean/netbox/issues/1551) - Added API endpoints listing static field choices for each app * [#1556](https://github.com/digitalocean/netbox/issues/1556) - Added CPAK, CFP2, and CFP4 100GE interface form factors * Added CSV import views for all object types ## Bug Fixes * [#1550](https://github.com/digitalocean/netbox/issues/1550) - Corrected interface connections link in navigation menu * [#1554](https://github.com/digitalocean/netbox/issues/1554) - Don't require form_factor when creating an interface assigned to a virtual machine * [#1557](https://github.com/digitalocean/netbox/issues/1557) - Added filtering for virtual machine interfaces * [#1567](https://github.com/digitalocean/netbox/issues/1567) - Prompt user for session key when importing secrets ## API Changes * Introduced the virtualization app and its associated endpoints at `/api/virtualization` * Added the `/api/extras/reports` endpoint for fetching and running reports * The `ipam.Service` and `dcim.Interface` models now have a `virtual_machine` field in addition to the `device` field. Only one of the two fields may be defined for each object * Added a `vm_role` field to `dcim.DeviceRole`, which indicates whether a role is suitable for assigned to a virtual machine * Added a `serial` field to 'dcim.Rack` for serial numbers * Each app now has a `_choices` endpoint, which lists the available options for all model field with static choices (e.g. interface form factors) 2017-10-12T18:03:13+00:00 netbox v2.2.1 netbox v2.2.1 2017-10-12T20:12:00+00:00 ## Bug Fixes * [#1576](https://github.com/digitalocean/netbox/issues/1576) - Moved PostgreSQL validation logic into the relevant migration (fixed ImproperlyConfigured exception on init) 2017-10-12T20:12:00+00:00 netbox v2.2.2 netbox v2.2.2 2017-10-17T15:25:22+00:00 ## Enhancements * [#1580](https://github.com/digitalocean/netbox/issues/1580) - Allow cluster assignment when bulk importing devices * [#1587](https://github.com/digitalocean/netbox/issues/1587) - Add primary IP column for virtual machines in global search results ## Bug Fixes * [#1498](https://github.com/digitalocean/netbox/issues/1498) - Avoid duplicating nodes when generating topology maps * [#1579](https://github.com/digitalocean/netbox/issues/1579) - Devices already assigned to a cluster cannot be added to a different cluster * [#1582](https://github.com/digitalocean/netbox/issues/1582) - Add `virtual_machine` attribute to IPAddress * [#1584](https://github.com/digitalocean/netbox/issues/1584) - Colorized virtual machine role column * [#1585](https://github.com/digitalocean/netbox/issues/1585) - Fixed slug-based filtering of virtual machines * [#1605](https://github.com/digitalocean/netbox/issues/1605) - Added clusters and virtual machines to object list for global search * [#1609](https://github.com/digitalocean/netbox/issues/1609) - Added missing `virtual_machine` field to IP address interface serializer 2017-10-17T15:25:22+00:00 netbox v2.2.3 netbox v2.2.3 2017-10-31T18:03:14+00:00 ## Enhancements * [#999](https://github.com/digitalocean/netbox/issues/999) - Display devices on which circuits are terminated in circuits list * [#1491](https://github.com/digitalocean/netbox/issues/1491) - Added initial data for the virtualization app * [#1620](https://github.com/digitalocean/netbox/issues/1620) - Loosen IP address search filter to match all IPs that start with the given string * [#1631](https://github.com/digitalocean/netbox/issues/1631) - Added a `post_run` method to the Report class * [#1666](https://github.com/digitalocean/netbox/issues/1666) - Allow modifying the owner of a rack reservation ## Bug Fixes * [#1513](https://github.com/digitalocean/netbox/issues/1513) - Correct filtering of custom field choices * [#1603](https://github.com/digitalocean/netbox/issues/1603) - Hide selection checkboxes for tables with no available actions * [#1618](https://github.com/digitalocean/netbox/issues/1618) - Allow bulk deletion of all virtual machines * [#1619](https://github.com/digitalocean/netbox/issues/1619) - Correct text-based filtering of IP network and address fields * [#1624](https://github.com/digitalocean/netbox/issues/1624) - Add VM count to device roles table * [#1634](https://github.com/digitalocean/netbox/issues/1634) - Cluster should not be a required field when importing child devices * [#1649](https://github.com/digitalocean/netbox/issues/1649) - Correct filtering on null values (e.g. ?tenant_id=0) for django-filters v1.1.0+ * [#1653](https://github.com/digitalocean/netbox/issues/1653) - Remove outdated description for DeviceType's `is_network_device` flag * [#1664](https://github.com/digitalocean/netbox/issues/1664) - Added missing `serial` field in default rack CSV export 2017-10-31T18:03:14+00:00 netbox v2.2.4 netbox v2.2.4 2017-10-31T19:22:02+00:00 ## Bug Fixes * [#1670](https://github.com/digitalocean/netbox/issues/1670) - Fixed server error when calling certain filters (regression from #1649) 2017-10-31T19:22:02+00:00 netbox v2.2.5 netbox v2.2.5 2017-11-14T18:26:17+00:00 ## Enhancements * [#1512](https://github.com/digitalocean/netbox/issues/1512) - Added a view to search for an IP address being assigned to an interface * [#1679](https://github.com/digitalocean/netbox/issues/1679) - Added IP address roles to device/VM interface lists * [#1683](https://github.com/digitalocean/netbox/issues/1683) - Replaced default 500 handler with custom middleware to provide preliminary troubleshooting assistance * [#1684](https://github.com/digitalocean/netbox/issues/1684) - Replaced prefix `parent` filter with `within` and `within_include` ## Bug Fixes * [#1471](https://github.com/digitalocean/netbox/issues/1471) - Correct bulk selection of IP addresses within a prefix assigned to a VRF * [#1642](https://github.com/digitalocean/netbox/issues/1642) - Validate device type classification when creating console server ports and power outlets * [#1650](https://github.com/digitalocean/netbox/issues/1650) - Correct numeric ordering for interfaces with no alphabetic type * [#1676](https://github.com/digitalocean/netbox/issues/1676) - Correct filtering of child prefixes upon bulk edit/delete from the parent prefix view * [#1689](https://github.com/digitalocean/netbox/issues/1689) - Disregard IP address mask when filtering for child IPs of a prefix * [#1696](https://github.com/digitalocean/netbox/issues/1696) - Fix for NAPALM v2.0+ * [#1699](https://github.com/digitalocean/netbox/issues/1699) - Correct nested representation in the API of primary IPs for virtual machines and add missing primary_ip property * [#1701](https://github.com/digitalocean/netbox/issues/1701) - Fixed validation in `extras/0008_reports.py` migration for certain versions of PostgreSQL * [#1703](https://github.com/digitalocean/netbox/issues/1703) - Added API serializer validation for custom integer fields * [#1705](https://github.com/digitalocean/netbox/issues/1705) - Fixed filtering of devices with a status of offline 2017-11-14T18:26:17+00:00 netbox v2.2.6 netbox v2.2.6 2017-11-16T17:02:03+00:00 ## Enhancements * [#1669](https://github.com/digitalocean/netbox/issues/1669) - Clicking "add an IP" from the prefix view will default to the first available IP within the prefix ## Bug Fixes * [#1397](https://github.com/digitalocean/netbox/issues/1397) - Display global search in navigation menu unless display is less than 1200px wide * [#1599](https://github.com/digitalocean/netbox/issues/1599) - Reduce mobile cut-off for navigation menu to 960px * [#1715](https://github.com/digitalocean/netbox/issues/1715) - Added missing import buttons on object lists * [#1717](https://github.com/digitalocean/netbox/issues/1717) - Fixed interface validation for virtual machines * [#1718](https://github.com/digitalocean/netbox/issues/1718) - Set empty label to "Global" or VRF field in IP assignment form 2017-11-16T17:02:03+00:00 netbox v2.2.7 netbox v2.2.7 2017-12-07T19:53:25+00:00 ## Enhancements * [#1722](https://github.com/digitalocean/netbox/issues/1722) - Added virtual machine count to site view * [#1737](https://github.com/digitalocean/netbox/issues/1737) - Added a `contains` API filter to find all prefixes containing a given IP or prefix ## Bug Fixes * [#1712](https://github.com/digitalocean/netbox/issues/1712) - Corrected tenant inheritance for new IP addresses created from a parent prefix * [#1721](https://github.com/digitalocean/netbox/issues/1721) - Differentiated child IP count from utilization percentage for prefixes * [#1740](https://github.com/digitalocean/netbox/issues/1740) - Delete session_key cookie on logout * [#1741](https://github.com/digitalocean/netbox/issues/1741) - Fixed Unicode support for secret plaintexts * [#1743](https://github.com/digitalocean/netbox/issues/1743) - Include number of instances for device types in global search * [#1751](https://github.com/digitalocean/netbox/issues/1751) - Corrected filtering for IPv6 addresses containing letters * [#1756](https://github.com/digitalocean/netbox/issues/1756) - Improved natural ordering of console server ports and power outlets 2017-12-07T19:53:25+00:00 netbox v2.2.8 netbox v2.2.8 2017-12-20T20:28:28+00:00 ## Enhancements * [#1771](https://github.com/digitalocean/netbox/issues/1771) - Added name filter for racks * [#1772](https://github.com/digitalocean/netbox/issues/1772) - Added position filter for devices * [#1773](https://github.com/digitalocean/netbox/issues/1773) - Moved child prefixes table to its own view * [#1774](https://github.com/digitalocean/netbox/issues/1774) - Include a button to refine search results for all object types under global search * [#1784](https://github.com/digitalocean/netbox/issues/1784) - Added `cluster_type` filters for virtual machines ## Bug Fixes * [#1766](https://github.com/digitalocean/netbox/issues/1766) - Fixed display of "select all" button on device power outlets list * [#1767](https://github.com/digitalocean/netbox/issues/1767) - Use proper template for 404 responses * [#1778](https://github.com/digitalocean/netbox/issues/1778) - Preserve initial VRF assignment when adding IP addresses in bulk from a prefix * [#1783](https://github.com/digitalocean/netbox/issues/1783) - Added `vm_role` filter for device roles * [#1785](https://github.com/digitalocean/netbox/issues/1785) - Omit filter forms from browsable API * [#1787](https://github.com/digitalocean/netbox/issues/1787) - Added missing site field to virtualization cluster CSV export 2017-12-20T20:28:28+00:00 netbox v2.3-beta1 netbox v2.3-beta1 2018-01-25T19:36:41+00:00 ## New Features ### Virtual Chassis ([#99](https://github.com/digitalocean/netbox/issues/99)) A virtual chassis represents a set of physical devices with a shared control plane; for example, a stack of switches managed as a single device. Viewing the master device of a virtual chassis will show all interfaces and IP addresses belonging to other VC member devices. ### Interface VLAN Assignments ([#150](https://github.com/digitalocean/netbox/issues/150)) Interfaces can now be assigned an 802.1Q mode (access or trunked) and associated with particular VLANs. Thanks to [John Anderson](https://github.com/lampwins) for his work on this! ### Bulk Object Creation via the API ([#1553](https://github.com/digitalocean/netbox/issues/1553)) The REST API now supports the creation of multiple objects of the same type using a single `POST` request. For example, to create multiple devices: ``` curl -X POST -H "Authorization: Token <TOKEN>" \ -H "Content-Type: application/json" \ -H "Accept: application/json; indent=4" \ http://localhost:8000/api/dcim/devices/ \ --data '[ {"name": "device1", "device_type": 24, "device_role": 17, "site": 6}, {"name": "device2", "device_type": 24, "device_role": 17, "site": 6}, {"name": "device3", "device_type": 24, "device_role": 17, "site": 6}, ]' ``` Bulk creation is all-or-none: If any single object fails to validate, the entire operation is rolled back. ### Automatic Provisioning of Next Available Prefixes ([#1694](https://github.com/digitalocean/netbox/issues/1694)) Similar to IP addresses, NetBox now supports automated provisioning of available prefixes from within a parent prefix. For example, to create the first three available /28s within a parent /24: ``` curl -X POST -H "Authorization: Token <TOKEN>" \ -H "Content-Type: application/json" \ -H "Accept: application/json; indent=4" \ http://localhost:8000/api/ipam/prefixes/<PK>/available-prefixes/ \ --data '[ {"prefix_length": 28}, {"prefix_length": 28}, {"prefix_length": 28} ]' ``` If the parent prefix cannot accommodate all requested prefixes, the operation is cancelled and no new prefixes are created. ### Bulk Renaming of Device/VM Components ([#1781](https://github.com/digitalocean/netbox/issues/1781)) Device components (interfaces, console ports, etc.) can now be renamed in bulk via the web interface. This was implemented primarily to support the bulk renumbering of interfaces whose parent is part of a virtual chassis. ## Enhancements * [#1283](https://github.com/digitalocean/netbox/issues/1283) - Added a `time_zone` field to the site model * [#1321](https://github.com/digitalocean/netbox/issues/1321) - Added `created` and `last_updated` fields for relevant models to their API serializers * [#1553](https://github.com/digitalocean/netbox/issues/1553) - Introduced support for bulk object creation via the API * [#1592](https://github.com/digitalocean/netbox/issues/1592) - Added tenancy assignment for rack reservations * [#1744](https://github.com/digitalocean/netbox/issues/1744) - Allow associating a platform with a specific manufacturer * [#1758](https://github.com/digitalocean/netbox/issues/1758) - Added a `status` field to the site model * [#1821](https://github.com/digitalocean/netbox/issues/1821) - Added a `description` field to the site model * Removed support for NAPALM v1.x ## Bug Fixes * [#1136](https://github.com/digitalocean/netbox/issues/1136) - Enforce model validation during bulk update * [#1645](https://github.com/digitalocean/netbox/issues/1645) - Simplified interface serialzier for IP addresses and optimized API view queryset ## API Changes * API creation calls now accept either a single JSON object or a list of JSON objects. If multiple objects are passed and one or more them fail validation, no objects will be created. * Added `created` and `last_updated` fields for objects inheriting from CreatedUpdatedModel. * Removed the `parent` filter for prefixes (use `within` or `within_include` instead). * The IP address serializer now includes only a minimal nested representation of thre assigned interface (if any) and its parent device or virtual machine. * The rack reservation serializer now includes a nested representation of its owning user (as well as the assigned tenant, if any). * Added endpoints for virtual chassis and VC memberships. * Added `status`, `time_zone` (pytz format), and `description` fields to dcim.Site. * Added a `manufacturer` foreign key field on dcim.Platform. 2018-01-25T19:36:41+00:00 netbox v2.2.9 netbox v2.2.9 2018-01-31T15:44:12+00:00 ## Enhancements * [#144](https://github.com/digitalocean/netbox/issues/144) - Implemented bulk import/edit/delete views for InventoryItems * [#1073](https://github.com/digitalocean/netbox/issues/1073) - Include prefixes/IPs from all VRFs when viewing the children of a container prefix in the global table * [#1366](https://github.com/digitalocean/netbox/issues/1366) - Enable searching for regions by name/slug * [#1406](https://github.com/digitalocean/netbox/issues/1406) - Display tenant description as title text in object tables * [#1824](https://github.com/digitalocean/netbox/issues/1824) - Add virtual machine count to platforms list * [#1835](https://github.com/digitalocean/netbox/issues/1835) - Consistent positioning of previous/next rack buttons ## Bug Fixes * [#1621](https://github.com/digitalocean/netbox/issues/1621) - Tweaked LLDP interface name evaluation logic * [#1765](https://github.com/digitalocean/netbox/issues/1765) - Improved rendering of null options for model choice fields in filter forms * [#1807](https://github.com/digitalocean/netbox/issues/1807) - Populate VRF from parent when creating a new prefix * [#1809](https://github.com/digitalocean/netbox/issues/1809) - Populate tenant assignment from parent when creating a new prefix * [#1818](https://github.com/digitalocean/netbox/issues/1818) - InventoryItem API serializer no longer requires specifying a null value for items with no parent * [#1845](https://github.com/digitalocean/netbox/issues/1845) - Correct display of VMs in list with no role assigned * [#1850](https://github.com/digitalocean/netbox/issues/1850) - Fix TypeError when attempting IP address import if only unnamed devices exist 2018-01-31T15:44:12+00:00 netbox v2.3-beta2 netbox v2.3-beta2 2018-02-06T20:21:45+00:00 **NOTE:** The data model for virtual chassis ([#99](https://github.com/digitalocean/netbox/issues/99)) has been completely reworked to be more efficient. If upgrading from v2.3-beta1, you'll need to start from a stable database (v2.2.x) and re-apply migrations. ## New Features ### Virtual Chassis ([#99](https://github.com/digitalocean/netbox/issues/99)) A virtual chassis represents a set of physical devices with a shared control plane; for example, a stack of switches managed as a single device. Viewing the master device of a virtual chassis will show all member interfaces and IP addresses. ### Interface VLAN Assignments ([#150](https://github.com/digitalocean/netbox/issues/150)) Interfaces can now be assigned an 802.1Q mode (access or trunked) and associated with particular VLANs. Thanks to [John Anderson](https://github.com/lampwins) for his work on this! ### Bulk Object Creation via the API ([#1553](https://github.com/digitalocean/netbox/issues/1553)) The REST API now supports the creation of multiple objects of the same type using a single POST request. For example, to create multiple devices: ``` curl -X POST -H "Authorization: Token <TOKEN>" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/devices/ --data '[ {"name": "device1", "device_type": 24, "device_role": 17, "site": 6}, {"name": "device2", "device_type": 24, "device_role": 17, "site": 6}, {"name": "device3", "device_type": 24, "device_role": 17, "site": 6}, ]' ``` Bulk creation is all-or-none: If any of the creations fails, the entire operation is rolled back. ### Automatic Provisioning of Next Available Prefixes ([#1694](https://github.com/digitalocean/netbox/issues/1694)) Similar to IP addresses, NetBox now supports automated provisioning of available prefixes from within a parent prefix. For example, to retrieve the next three available /28s within a parent /24: ``` curl -X POST -H "Authorization: Token <TOKEN>" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/ipam/prefixes/10153/available-prefixes/ --data '[ {"prefix_length": 28}, {"prefix_length": 28}, {"prefix_length": 28} ]' ``` If the parent prefix cannot accommodate all requested prefixes, the operation is cancelled and no new prefixes are created. ### Bulk Renaming of Device/VM Components ([#1781](https://github.com/digitalocean/netbox/issues/1781)) Device components (interfaces, console ports, etc.) can now be renamed in bulk via the web interface. This was implemented primarily to support the bulk renumbering of interfaces whose parent is part of a virtual chassis. ## Enhancements * [#1283](https://github.com/digitalocean/netbox/issues/1283) - Added a `time_zone` field to the site model * [#1321](https://github.com/digitalocean/netbox/issues/1321) - Added `created` and `last_updated` fields for relevant models to their API serializers * [#1553](https://github.com/digitalocean/netbox/issues/1553) - Introduced support for bulk object creation via the API * [#1592](https://github.com/digitalocean/netbox/issues/1592) - Added tenancy assignment for rack reservations * [#1744](https://github.com/digitalocean/netbox/issues/1744) - Allow associating a platform with a specific manufacturer * [#1758](https://github.com/digitalocean/netbox/issues/1758) - Added a `status` field to the site model * [#1821](https://github.com/digitalocean/netbox/issues/1821) - Added a `description` field to the site model * [#1864](https://github.com/digitalocean/netbox/issues/1864)* - Added a `status` field to the circuit model \* New in v2.3-beta2 ## Bug Fixes * [#1136](https://github.com/digitalocean/netbox/issues/1136) - Enforce model validation during bulk update * [#1645](https://github.com/digitalocean/netbox/issues/1645) - Simplified interface serialzier for IP addresses and optimized API view queryset * [#1838](https://github.com/digitalocean/netbox/issues/1838)* - Fix KeyError when attempting to create a VirtualChassis with no devices selected * [#1847](https://github.com/digitalocean/netbox/issues/1847)* - RecursionError when a virtual chasis master device has no name * [#1848](https://github.com/digitalocean/netbox/issues/1848)* - Allow null value for interface encapsulation mode * [#1867](https://github.com/digitalocean/netbox/issues/1867)* - Allow filtering on device status with multiple values \* New in v2.3-beta2 ## Breaking Changes * Constants representing device status have been renamed for clarity. For example, `STATUS_ACTIVE` is now `DEVICE_STATUS_ACTIVE`. ## API Changes * API creation calls now accept either a single JSON object or a list of JSON objects. If multiple objects are passed and one or more them fail validation, no objects will be created. * Added `created` and `last_updated` fields for objects inheriting from CreatedUpdatedModel. * Removed the `parent` filter for prefixes (use `within` or `within_include` instead). * The IP address serializer now includes only a minimal nested representation of thre assigned interface (if any) and its parent device or virtual machine. * The rack reservation serializer now includes a nested representation of its owning user (as well as the assigned tenant, if any). * Added endpoints for virtual chassis and VC memberships. * Added `status`, `time_zone` (pytz format), and `description` fields to dcim.Site. * Added a `manufacturer` foreign key field on dcim.Platform. * Added a `status` field on circuits.Circuit. 2018-02-06T20:21:45+00:00 netbox v2.2.10 netbox v2.2.10 2018-02-21T21:06:42+00:00 ## Enhancements * [#78](https://github.com/digitalocean/netbox/issues/78) - Extended topology maps to support console and power connections * [#1693](https://github.com/digitalocean/netbox/issues/1693) - Allow specifying loose or exact matching for custom field filters * [#1714](https://github.com/digitalocean/netbox/issues/1714) - Standardized CSV export functionality for all object lists * [#1876](https://github.com/digitalocean/netbox/issues/1876) - Added explanatory title text to disabled NAPALM buttons on device view * [#1885](https://github.com/digitalocean/netbox/issues/1885) - Added a device filter field for primary IP ## Bug Fixes * [#1858](https://github.com/digitalocean/netbox/issues/1858) - Include device/VM count for cluster list in global search results * [#1859](https://github.com/digitalocean/netbox/issues/1859) - Implemented support for line breaks within CSV fields * [#1860](https://github.com/digitalocean/netbox/issues/1860) - Do not populate initial values for custom fields when editing objects in bulk * [#1869](https://github.com/digitalocean/netbox/issues/1869) - Corrected ordering of VRFs with duplicate names * [#1886](https://github.com/digitalocean/netbox/issues/1886) - Allow setting the primary IPv4/v6 address for a virtual machine via the web UI 2018-02-21T21:06:42+00:00 netbox v2.3.0 netbox v2.3.0 2018-02-26T19:24:25+00:00 ## New Features ### Virtual Chassis ([#99](https://github.com/digitalocean/netbox/issues/99)) A virtual chassis represents a set of physical devices with a shared control plane; for example, a stack of switches managed as a single device. Viewing the master device of a virtual chassis will show all member interfaces and IP addresses. ### Interface VLAN Assignments ([#150](https://github.com/digitalocean/netbox/issues/150)) Interfaces can now be assigned an 802.1Q mode (access or trunked) and associated with particular VLANs. Thanks to [John Anderson](https://github.com/lampwins) for his work on this! ### Bulk Object Creation via the API ([#1553](https://github.com/digitalocean/netbox/issues/1553)) The REST API now supports the creation of multiple objects of the same type using a single POST request. For example, to create multiple devices: ``` curl -X POST -H "Authorization: Token <TOKEN>" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/devices/ --data '[ {"name": "device1", "device_type": 24, "device_role": 17, "site": 6}, {"name": "device2", "device_type": 24, "device_role": 17, "site": 6}, {"name": "device3", "device_type": 24, "device_role": 17, "site": 6}, ]' ``` Bulk creation is all-or-none: If any of the creations fails, the entire operation is rolled back. ### Automatic Provisioning of Next Available Prefixes ([#1694](https://github.com/digitalocean/netbox/issues/1694)) Similar to IP addresses, NetBox now supports automated provisioning of available prefixes from within a parent prefix. For example, to retrieve the next three available /28s within a parent /24: ``` curl -X POST -H "Authorization: Token <TOKEN>" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/ipam/prefixes/10153/available-prefixes/ --data '[ {"prefix_length": 28}, {"prefix_length": 28}, {"prefix_length": 28} ]' ``` If the parent prefix cannot accommodate all requested prefixes, the operation is cancelled and no new prefixes are created. ### Bulk Renaming of Device/VM Components ([#1781](https://github.com/digitalocean/netbox/issues/1781)) Device components (interfaces, console ports, etc.) can now be renamed in bulk via the web interface. This was implemented primarily to support the bulk renumbering of interfaces whose parent is part of a virtual chassis. ## Enhancements * [#1283](https://github.com/digitalocean/netbox/issues/1283) - Added a `time_zone` field to the site model * [#1321](https://github.com/digitalocean/netbox/issues/1321) - Added `created` and `last_updated` fields for relevant models to their API serializers * [#1553](https://github.com/digitalocean/netbox/issues/1553) - Introduced support for bulk object creation via the API * [#1592](https://github.com/digitalocean/netbox/issues/1592) - Added tenancy assignment for rack reservations * [#1744](https://github.com/digitalocean/netbox/issues/1744) - Allow associating a platform with a specific manufacturer * [#1758](https://github.com/digitalocean/netbox/issues/1758) - Added a `status` field to the site model * [#1821](https://github.com/digitalocean/netbox/issues/1821) - Added a `description` field to the site model * [#1864](https://github.com/digitalocean/netbox/issues/1864) - Added a `status` field to the circuit model ## Bug Fixes * [#1136](https://github.com/digitalocean/netbox/issues/1136) - Enforce model validation during bulk update * [#1645](https://github.com/digitalocean/netbox/issues/1645) - Simplified interface serialzier for IP addresses and optimized API view queryset * [#1838](https://github.com/digitalocean/netbox/issues/1838) - Fix KeyError when attempting to create a VirtualChassis with no devices selected * [#1847](https://github.com/digitalocean/netbox/issues/1847) - RecursionError when a virtual chasis master device has no name * [#1848](https://github.com/digitalocean/netbox/issues/1848) - Allow null value for interface encapsulation mode * [#1867](https://github.com/digitalocean/netbox/issues/1867) - Allow filtering on device status with multiple values * [#1881](https://github.com/digitalocean/netbox/issues/1881)* - Fixed bulk editing of interface 802.1Q settings * [#1884](https://github.com/digitalocean/netbox/issues/1884)* - Provide additional context to identify devices when creating/editing a virtual chassis * [#1907](https://github.com/digitalocean/netbox/issues/1907) - Allow removing an IP as the primary for a device when editing the IP directly \* New since v2.3-beta2 ## Breaking Changes * Constants representing device status have been renamed for clarity (for example, `STATUS_ACTIVE` is now `DEVICE_STATUS_ACTIVE`). Custom validation reports will need to be updated if they reference any of these constants. ## API Changes * API creation calls now accept either a single JSON object or a list of JSON objects. If multiple objects are passed and one or more them fail validation, no objects will be created. * Added `created` and `last_updated` fields for objects inheriting from CreatedUpdatedModel. * Removed the `parent` filter for prefixes (use `within` or `within_include` instead). * The IP address serializer now includes only a minimal nested representation of the assigned interface (if any) and its parent device or virtual machine. * The rack reservation serializer now includes a nested representation of its owning user (as well as the assigned tenant, if any). * Added endpoints for virtual chassis and VC memberships. * Added `status`, `time_zone` (pytz format), and `description` fields to dcim.Site. * Added a `manufacturer` foreign key field on dcim.Platform. * Added a `status` field on circuits.Circuit. 2018-02-26T19:24:25+00:00 netbox v2.3.1 netbox v2.3.1 2018-03-01T20:37:22+00:00 ## Enhancements * [#1910](https://github.com/digitalocean/netbox/issues/1910) - Added filters for cluster group and cluster type ## Bug Fixes * [#1915](https://github.com/digitalocean/netbox/issues/1915) - Redirect to device view after deleting a component * [#1919](https://github.com/digitalocean/netbox/issues/1919) - Prevent exception when attempting to create a virtual machine without selecting devices * [#1921](https://github.com/digitalocean/netbox/issues/1921) - Ignore ManyToManyFields when validating a new object created via the API * [#1924](https://github.com/digitalocean/netbox/issues/1924) - Include VID in VLAN lists when editing an interface * [#1926](https://github.com/digitalocean/netbox/issues/1926) - Prevent reassignment of parent device when bulk editing VC member interfaces * [#1927](https://github.com/digitalocean/netbox/issues/1927) - Include all VC member interfaces on A side when creating a new interface connection * [#1928](https://github.com/digitalocean/netbox/issues/1928) - Fixed form validation when modifying VLANs assigned to an interface * [#1934](https://github.com/digitalocean/netbox/issues/1934) - Fixed exception when rendering export template on an object type with custom fields assigned * [#1935](https://github.com/digitalocean/netbox/issues/1935) - Correct API validation of VLANs assigned to interfaces * [#1936](https://github.com/digitalocean/netbox/issues/1936) - Trigger validation error when attempting to create a virtual chassis without specifying member positions 2018-03-01T20:37:22+00:00 netbox v2.3.2 netbox v2.3.2 2018-03-22T19:06:34+00:00 ## Enhancements * [#1586](https://github.com/digitalocean/netbox/issues/1586) - Extend bulk interface creation to support alphanumeric characters * [#1866](https://github.com/digitalocean/netbox/issues/1866) - Introduced AnnotatedMultipleChoiceField for filter forms * [#1930](https://github.com/digitalocean/netbox/issues/1930) - Switched to drf-yasg for Swagger API documentation * [#1944](https://github.com/digitalocean/netbox/issues/1944) - Enable assigning VLANs to virtual machine interfaces * [#1945](https://github.com/digitalocean/netbox/issues/1945) - Implemented a VLAN members view * [#1949](https://github.com/digitalocean/netbox/issues/1949) - Added a button to view elevations on rack groups list * [#1952](https://github.com/digitalocean/netbox/issues/1952) - Implemented a more robust mechanism for assigning VLANs to interfaces ## Bug Fixes * [#1948](https://github.com/digitalocean/netbox/issues/1948) - Fix TypeError when attempting to add a member to an existing virtual chassis * [#1951](https://github.com/digitalocean/netbox/issues/1951) - Fix TypeError exception when importing platforms * [#1953](https://github.com/digitalocean/netbox/issues/1953) - Ignore duplicate IPs when calculating prefix utilization * [#1955](https://github.com/digitalocean/netbox/issues/1955) - Require a plaintext value when creating a new secret * [#1978](https://github.com/digitalocean/netbox/issues/1978) - Include all virtual chassis member interfaces in LLDP neighbors view * [#1980](https://github.com/digitalocean/netbox/issues/1980) - Fixed bug when trying to nullify a selection custom field under Python 2 2018-03-22T19:06:34+00:00 netbox v2.3.3 netbox v2.3.3 2018-04-19T15:16:34+00:00 ## Enhancements * [#1990](https://github.com/digitalocean/netbox/issues/1990) - Improved search function when assigning an IP address to an interface ## Bug Fixes * [#1975](https://github.com/digitalocean/netbox/issues/1975) - Correct filtering logic for custom boolean fields * [#1988](https://github.com/digitalocean/netbox/issues/1988) - Order interfaces naturally when bulk renaming * [#1993](https://github.com/digitalocean/netbox/issues/1993) - Corrected status choices in site CSV import form * [#1999](https://github.com/digitalocean/netbox/issues/1999) - Added missing description field to site edit form * [#2012](https://github.com/digitalocean/netbox/issues/2012) - Fixed deselection of an IP address as the primary IP for its parent device/VM * [#2014](https://github.com/digitalocean/netbox/issues/2014) - Allow assignment of VLANs to VM interfaces via the API * [#2019](https://github.com/digitalocean/netbox/issues/2019) - Avoid casting oversized numbers as integers * [#2022](https://github.com/digitalocean/netbox/issues/2022) - Show 0 for zero-value fields on CSV export * [#2023](https://github.com/digitalocean/netbox/issues/2023) - Manufacturer should not be a required field when importing platforms * [#2037](https://github.com/digitalocean/netbox/issues/2037) - Fixed IndexError exception when attempting to create a new rack reservation 2018-04-19T15:16:34+00:00 netbox v2.3.4 netbox v2.3.4 2018-06-07T20:15:17+00:00 ## Bug Fixes * [#2066](https://github.com/digitalocean/netbox/issues/2066) - Catch `AddrFormatError` exception on invalid IP addresses * [#2075](https://github.com/digitalocean/netbox/issues/2075) - Enable tenant assignment when creating a rack reservation via the API * [#2083](https://github.com/digitalocean/netbox/issues/2083) - Add missing export button to rack roles list view * [#2087](https://github.com/digitalocean/netbox/issues/2087) - Don't overwrite existing vc_position of master device when creating a virtual chassis * [#2093](https://github.com/digitalocean/netbox/issues/2093) - Fix link to circuit termination in device interfaces table * [#2097](https://github.com/digitalocean/netbox/issues/2097) - Fixed queryset-based bulk deletion of clusters and regions * [#2098](https://github.com/digitalocean/netbox/issues/2098) - Fixed missing checkboxes for host devices in cluster view * [#2127](https://github.com/digitalocean/netbox/issues/2127) - Prevent non-conntectable interfaces from being connected * [#2143](https://github.com/digitalocean/netbox/issues/2143) - Accept null value for empty time zone field * [#2148](https://github.com/digitalocean/netbox/issues/2148) - Do not force timezone selection when editing sites in bulk * [#2150](https://github.com/digitalocean/netbox/issues/2150) - Fix display of LLDP neighbors when interface name contains a colon 2018-06-07T20:15:17+00:00 netbox v2.3.5 netbox v2.3.5 2018-07-02T19:56:42+00:00 ## Enhancements * [#2159](https://github.com/digitalocean/netbox/issues/2159) - Allow custom choice field to specify a default choice * [#2177](https://github.com/digitalocean/netbox/issues/2177) - Include device serial number in rack elevation pop-up * [#2194](https://github.com/digitalocean/netbox/issues/2194) - Added `address` filter to IPAddress model ## Bug Fixes * [#1826](https://github.com/digitalocean/netbox/issues/1826) - Corrected description of security parameters under API definition * [#2021](https://github.com/digitalocean/netbox/issues/2021) - Fix recursion error when viewing API docs under Python 3.4 * [#2064](https://github.com/digitalocean/netbox/issues/2064) - Disable calls to online swagger validator * [#2173](https://github.com/digitalocean/netbox/issues/2173) - Fixed IndexError when automatically allocating IP addresses from large IPv6 prefixes * [#2181](https://github.com/digitalocean/netbox/issues/2181) - Raise validation error on invalid `prefix_length` when allocating next-available prefix * [#2182](https://github.com/digitalocean/netbox/issues/2182) - ValueError can be raised when viewing the interface connections table * [#2191](https://github.com/digitalocean/netbox/issues/2191) - Added missing static choices to circuits and DCIM API endpoints * [#2192](https://github.com/digitalocean/netbox/issues/2192) - Prevent a 0U device from being assigned to a rack position 2018-07-02T19:56:42+00:00 netbox v2.3.6 netbox v2.3.6 2018-07-16T15:55:40+00:00 ## Enhancements * [#2107](https://github.com/digitalocean/netbox/issues/2107) - Added virtual chassis to global search * [#2125](https://github.com/digitalocean/netbox/issues/2125) - Show child status in device bay list ## Bug Fixes * [#2214](https://github.com/digitalocean/netbox/issues/2214) - Error when assigning a VLAN to an interface on a VM in a cluster with no assigned site * [#2239](https://github.com/digitalocean/netbox/issues/2239) - Pin django-filter to version 1.1.0 2018-07-16T15:55:40+00:00 netbox v2.4-beta1 netbox v2.4-beta1 2018-07-17T15:27:16+00:00 **WARNING:** This is a pre-release beta version of NetBox intended only for testing. It is not suitable for production use, and will not provide an upgrade path to future releases. ## New Features ### Webhooks ([#81](https://github.com/digitalocean/netbox/issues/81)) Webhooks enable NetBox to send a representation of an object every time one is created, updated, or deleted. Webhooks are sent from NetBox to external services via HTTP, and can be limited by object type. Services which receive a webhook can act on the data provided by NetBox to automate other tasks. Special thanks to [John Anderson](https://github.com/lampwins) for doing the heavy lifting for this feature! ### Tagging ([#132](https://github.com/digitalocean/netbox/issues/132)) Tags are free-form labels which can be assigned to a variety of objects in NetBox. Tags can be used to categorize and filter objects in addition to built-in and custom fields. Objects to which tags apply now include a `tags` field in the API. ### Contextual Configuration Data ([#1349](https://github.com/digitalocean/netbox/issues/1349)) Sometimes it is desirable to associate arbitrary data with a group of devices to aid in their configuration. (For example, you might want to associate a set of syslog servers for all devices at a particular site.) Context data enables the association of arbitrary data (expressed in JSON format) to devices and virtual machines grouped by region, site, role, platform, and/or tenancy. Context data is arranged hierarchically, so that data with a higher weight can be entered to override more general lower-weight data. Multiple instances of data are automatically merged by NetBox to present a single dictionary for each object. ### Change Logging ([#1898](https://github.com/digitalocean/netbox/issues/1898)) When an object is created, updated, or deleted, NetBox now automatically records a serialized representation of that object (similar to how it appears in the REST API) as well the event time and user account associated with the change. ## Enhancements * [#238](https://github.com/digitalocean/netbox/issues/238) - Allow racks with the same name within a site (but in different groups) * [#1673](https://github.com/digitalocean/netbox/issues/1673) - Added object/list views for services * [#1687](https://github.com/digitalocean/netbox/issues/1687) - Enabled custom fields for services * [#1739](https://github.com/digitalocean/netbox/issues/1739) - Enabled custom fields for secrets * [#1794](https://github.com/digitalocean/netbox/issues/1794) - Improved POST/PATCH representation of nested objects * [#2029](https://github.com/digitalocean/netbox/issues/2029) - Added optional NAPALM arguments to Platform model * [#2034](https://github.com/digitalocean/netbox/issues/2034) - Include the ID when showing nested interface connections (API change) * [#2118](https://github.com/digitalocean/netbox/issues/2118) - Added `latitude` and `longitude` fields to Site for GPS coordinates * [#2131](https://github.com/digitalocean/netbox/issues/2131) - Added `created` and `last_updated` fields to DeviceType * [#2157](https://github.com/digitalocean/netbox/issues/2157) - Fixed natural ordering of objects when sorted by name ## API Changes * Introduced the `/extras/config-contexts/`, `/extras/object-changes/`, and `/extras/tags/` API endpoints * API writes now return a nested representation of related objects (rather than only a numeric ID) * The dcim.DeviceType serializer now includes `created` and `last_updated` fields * The dcim.Site serializer now includes `latitude` and `longitude` fields * The ipam.Service and secrets.Secret serializers now include custom fields * The dcim.Plaform serializer now includes a free-form (JSON) `napalm_args` field 2018-07-17T15:27:16+00:00 netbox v2.3.7 netbox v2.3.7 2018-07-26T18:31:08+00:00 ## Enhancements * [#2166](https://github.com/digitalocean/netbox/issues/2166) - Enable partial matching on device asset_tag during search ## Bug Fixes * [#1977](https://github.com/digitalocean/netbox/issues/1977) - Fixed exception when creating a virtual chassis with a non-master device in position 1 * [#1992](https://github.com/digitalocean/netbox/issues/1992) - Isolate errors when one of multiple NAPALM methods fails * [#2202](https://github.com/digitalocean/netbox/issues/2202) - Ditched half-baked concept of tenancy inheritance via VRF * [#2222](https://github.com/digitalocean/netbox/issues/2222) - IP addresses created via the `available-ips` API endpoint should have the same mask as their parent prefix (not /32) * [#2231](https://github.com/digitalocean/netbox/issues/2231) - Remove `get_absolute_url()` from DeviceRole (can apply to devices or VMs) * [#2250](https://github.com/digitalocean/netbox/issues/2250) - Include stat counters on report result navigation * [#2255](https://github.com/digitalocean/netbox/issues/2255) - Corrected display of results in reports list * [#2256](https://github.com/digitalocean/netbox/issues/2256) - Prevent navigation menu overlap when jumping to test results on report page * [#2257](https://github.com/digitalocean/netbox/issues/2257) - Corrected casting of RIR utilization stats as floats * [#2266](https://github.com/digitalocean/netbox/issues/2266) - Permit additional logging of exceptions beyond custom middleware 2018-07-26T18:31:08+00:00 netbox v2.4.0 netbox v2.4.0 2018-08-06T16:41:26+00:00 ## New Features ### Webhooks ([#81](https://github.com/digitalocean/netbox/issues/81)) Webhooks enable NetBox to send a representation of an object every time one is created, updated, or deleted. Webhooks are sent from NetBox to external services via HTTP, and can be limited by object type. Services which receive a webhook can act on the data provided by NetBox to automate other tasks. Special thanks to [John Anderson](https://github.com/lampwins) for doing the heavy lifting for this feature! ### Tagging ([#132](https://github.com/digitalocean/netbox/issues/132)) Tags are free-form labels which can be assigned to a variety of objects in NetBox. Tags can be used to categorize and filter objects in addition to built-in and custom fields. Objects to which tags apply now include a `tags` field in the API. ### Contextual Configuration Data ([#1349](https://github.com/digitalocean/netbox/issues/1349)) Sometimes it is desirable to associate arbitrary data with a group of devices to aid in their configuration. (For example, you might want to associate a set of syslog servers for all devices at a particular site.) Context data enables the association of arbitrary data (expressed in JSON format) to devices and virtual machines grouped by region, site, role, platform, and/or tenancy. Context data is arranged hierarchically, so that data with a higher weight can be entered to override more general lower-weight data. Multiple instances of data are automatically merged by NetBox to present a single dictionary for each object. ### Change Logging ([#1898](https://github.com/digitalocean/netbox/issues/1898)) When an object is created, updated, or deleted, NetBox now automatically records a serialized representation of that object (similar to how it appears in the REST API) as well the event time and user account associated with the change. ## Enhancements * [#238](https://github.com/digitalocean/netbox/issues/238) - Allow racks with the same name within a site (but in different groups) * [#971](https://github.com/digitalocean/netbox/issues/971) - Add a view to show all VLAN IDs available within a group * [#1673](https://github.com/digitalocean/netbox/issues/1673) - Added object/list views for services * [#1687](https://github.com/digitalocean/netbox/issues/1687) - Enabled custom fields for services * [#1739](https://github.com/digitalocean/netbox/issues/1739) - Enabled custom fields for secrets * [#1794](https://github.com/digitalocean/netbox/issues/1794) - Improved POST/PATCH representation of nested objects * [#2029](https://github.com/digitalocean/netbox/issues/2029) - Added optional NAPALM arguments to Platform model * [#2034](https://github.com/digitalocean/netbox/issues/2034) - Include the ID when showing nested interface connections (API change) * [#2118](https://github.com/digitalocean/netbox/issues/2118) - Added `latitude` and `longitude` fields to Site for GPS coordinates * [#2131](https://github.com/digitalocean/netbox/issues/2131) - Added `created` and `last_updated` fields to DeviceType * [#2157](https://github.com/digitalocean/netbox/issues/2157) - Fixed natural ordering of objects when sorted by name * [#2225](https://github.com/digitalocean/netbox/issues/2225) - Add "view elevations" button for site rack groups ## Bug Fixes * [#2272](https://github.com/digitalocean/netbox/issues/2272) - Allow subdevice_role to be null on DeviceTypeSerializer" * [#2286](https://github.com/digitalocean/netbox/issues/2286) - Fixed "mark connected" button for PDU outlet connections ## API Changes * Introduced the `/extras/config-contexts/`, `/extras/object-changes/`, and `/extras/tags/` API endpoints * API writes now return a nested representation of related objects (rather than only a numeric ID) * The dcim.DeviceType serializer now includes `created` and `last_updated` fields * The dcim.Site serializer now includes `latitude` and `longitude` fields * The ipam.Service and secrets.Secret serializers now include custom fields * The dcim.Platform serializer now includes a free-form (JSON) `napalm_args` field ## Changes Since v2.4-beta1 ### Enhancements * [#2229](https://github.com/digitalocean/netbox/issues/2229) - Allow mapping of ConfigContexts to tenant groups * [#2259](https://github.com/digitalocean/netbox/issues/2259) - Add changelog tab to interface view * [#2264](https://github.com/digitalocean/netbox/issues/2264) - Added "map it" link for site GPS coordinates ### Bug Fixes * [#2137](https://github.com/digitalocean/netbox/issues/2137) - Fixed JSON serialization of dates * [#2258](https://github.com/digitalocean/netbox/issues/2258) - Include changed object type on home page changelog * [#2265](https://github.com/digitalocean/netbox/issues/2265) - Include parent regions when filtering applicable ConfigContexts * [#2288](https://github.com/digitalocean/netbox/issues/2288) - Fix exception when assigning objects to a ConfigContext via the API * [#2296](https://github.com/digitalocean/netbox/issues/2296) - Fix AttributeError when creating a new object with tags assigned * [#2300](https://github.com/digitalocean/netbox/issues/2300) - Fix assignment of an interface to an IP address via API PATCH * [#2301](https://github.com/digitalocean/netbox/issues/2301) - Fix model validation on assignment of ManyToMany fields via API PATCH * [#2305](https://github.com/digitalocean/netbox/issues/2305) - Make VLAN fields optional when creating a VM interface via the API 2018-08-06T16:41:26+00:00 netbox v2.4.1 netbox v2.4.1 2018-08-07T13:25:45+00:00 ## Bug Fixes * [#2303](https://github.com/digitalocean/netbox/issues/2303) - Always redirect to parent object when bulk editing/deleting components * [#2308](https://github.com/digitalocean/netbox/issues/2308) - Custom fields panel absent from object view in UI * [#2310](https://github.com/digitalocean/netbox/issues/2310) - False validation error on certain nested serializers * [#2311](https://github.com/digitalocean/netbox/issues/2311) - Redirect to parent after editing interface from device/VM view * [#2312](https://github.com/digitalocean/netbox/issues/2312) - Running a report yields a ValueError exception * [#2314](https://github.com/digitalocean/netbox/issues/2314) - Serialized representation of object in change log does not include assigned tags 2018-08-07T13:25:45+00:00 netbox v2.4.2 netbox v2.4.2 2018-08-08T13:17:40+00:00 ## Bug Fixes * [#2318](https://github.com/digitalocean/netbox/issues/2318) - ImportError when viewing a report * [#2319](https://github.com/digitalocean/netbox/issues/2319) - Extend ChoiceField to properly handle true/false choice keys * [#2320](https://github.com/digitalocean/netbox/issues/2320) - TypeError when dispatching a webhook with a secret key configured * [#2321](https://github.com/digitalocean/netbox/issues/2321) - Allow explicitly setting a null value on nullable ChoiceFields * [#2322](https://github.com/digitalocean/netbox/issues/2322) - Webhooks firing on non-enabled event types * [#2323](https://github.com/digitalocean/netbox/issues/2323) - DoesNotExist raised when deleting devices or virtual machines * [#2330](https://github.com/digitalocean/netbox/issues/2330) - Incorrect tab link in VRF changelog view 2018-08-08T13:17:40+00:00 netbox v2.4.3 netbox v2.4.3 2018-08-09T20:40:16+00:00 ## Enhancements * [#2333](https://github.com/digitalocean/netbox/issues/2333) - Added search filters for ConfigContexts ## Bug Fixes * [#2334](https://github.com/digitalocean/netbox/issues/2334) - TypeError raised when WritableNestedSerializer receives a non-integer value * [#2335](https://github.com/digitalocean/netbox/issues/2335) - API requires group field when creating/updating a rack * [#2336](https://github.com/digitalocean/netbox/issues/2336) - Bulk deleting power outlets and console server ports from a device redirects to home page * [#2337](https://github.com/digitalocean/netbox/issues/2337) - Attempting to create the next available prefix within a parent assigned to a VRF raises an AssertionError * [#2340](https://github.com/digitalocean/netbox/issues/2340) - API requires manufacturer field when creating/updating an inventory item * [#2342](https://github.com/digitalocean/netbox/issues/2342) - IntegrityError raised when attempting to assign an invalid IP address as the primary for a VM * [#2344](https://github.com/digitalocean/netbox/issues/2344) - AttributeError when assigning VLANs to an interface on a device/VM not assigned to a site 2018-08-09T20:40:16+00:00 netbox v2.4.4 netbox v2.4.4 2018-08-22T15:55:17+00:00 ## Enhancements * [#2168](https://github.com/digitalocean/netbox/issues/2168) - Added Extreme SummitStack interface form factors * [#2356](https://github.com/digitalocean/netbox/issues/2356) - Include cluster site as read-only field in VirtualMachine serializer * [#2362](https://github.com/digitalocean/netbox/issues/2362) - Implemented custom admin site to properly handle BASE_PATH * [#2254](https://github.com/digitalocean/netbox/issues/2254) - Implemented searchability for Rack Groups ## Bug Fixes * [#2353](https://github.com/digitalocean/netbox/issues/2353) - Handle `DoesNotExist` exception when deleting a device with connected interfaces * [#2354](https://github.com/digitalocean/netbox/issues/2354) - Increased maximum MTU for interfaces to 65536 bytes * [#2355](https://github.com/digitalocean/netbox/issues/2355) - Added item count to inventory tab on device view * [#2368](https://github.com/digitalocean/netbox/issues/2368) - Record change in device changelog when altering cluster assignment * [#2369](https://github.com/digitalocean/netbox/issues/2369) - Corrected time zone validation on site API serializer * [#2370](https://github.com/digitalocean/netbox/issues/2370) - Redirect to parent device after deleting device bays * [#2374](https://github.com/digitalocean/netbox/issues/2374) - Fix toggling display of IP addresses in virtual machine interfaces list * [#2378](https://github.com/digitalocean/netbox/issues/2378) - Corrected "edit" link for virtual machine interfaces 2018-08-22T15:55:17+00:00 netbox v2.4.5 netbox v2.4.5 2018-10-02T19:29:50+00:00 ## Enhancements * [#2392](https://github.com/digitalocean/netbox/issues/2392) - Implemented local context data for devices and virtual machines * [#2402](https://github.com/digitalocean/netbox/issues/2402) - Order and format JSON data in form fields * [#2432](https://github.com/digitalocean/netbox/issues/2432) - Link remote interface connections to the Interface view * [#2438](https://github.com/digitalocean/netbox/issues/2438) - API optimizations for tagged objects ## Bug Fixes * [#2406](https://github.com/digitalocean/netbox/issues/2406) - Remove hard-coded limit of 1000 objects from API-populated form fields * [#2414](https://github.com/digitalocean/netbox/issues/2414) - Tags field missing from device/VM component creation forms * [#2442](https://github.com/digitalocean/netbox/issues/2442) - Nullify "next" link in API when limit=0 is passed * [#2443](https://github.com/digitalocean/netbox/issues/2443) - Enforce JSON object format when creating config contexts * [#2444](https://github.com/digitalocean/netbox/issues/2444) - Improve validation of interface MAC addresses * [#2455](https://github.com/digitalocean/netbox/issues/2455) - Ignore unique address enforcement for IPs with a shared/virtual role * [#2470](https://github.com/digitalocean/netbox/issues/2470) - Log the creation of device/VM components as object changes 2018-10-02T19:29:50+00:00 netbox v2.4.6 netbox v2.4.6 2018-10-05T19:49:16+00:00 ## Enhancements * [#2479](https://github.com/digitalocean/netbox/issues/2479) - Add user permissions for creating/modifying API tokens * [#2487](https://github.com/digitalocean/netbox/issues/2487) - Return abbreviated API output when passed `?brief=1` ## Bug Fixes * [#2393](https://github.com/digitalocean/netbox/issues/2393) - Fix Unicode support for CSV import under Python 2 * [#2483](https://github.com/digitalocean/netbox/issues/2483) - Set max item count of API-populated form fields to MAX_PAGE_SIZE * [#2484](https://github.com/digitalocean/netbox/issues/2484) - Local config context not available on the Virtual Machine Edit Form * [#2485](https://github.com/digitalocean/netbox/issues/2485) - Fix cancel button when assigning a service to a device/VM * [#2491](https://github.com/digitalocean/netbox/issues/2491) - Fix exception when importing devices with invalid device type * [#2492](https://github.com/digitalocean/netbox/issues/2492) - Sanitize hostname and port values returned through LLDP 2018-10-05T19:49:16+00:00 netbox v2.4.7 netbox v2.4.7 2018-11-06T15:56:15+00:00 ## Enhancements * [#2388](https://github.com/digitalocean/netbox/issues/2388) - Enable filtering of devices/VMs by region * [#2427](https://github.com/digitalocean/netbox/issues/2427) - Allow filtering of interfaces by assigned VLAN or VLAN ID * [#2512](https://github.com/digitalocean/netbox/issues/2512) - Add device field to inventory item filter form ## Bug Fixes * [#2502](https://github.com/digitalocean/netbox/issues/2502) - Allow duplicate VIPs inside a uniqueness-enforced VRF * [#2514](https://github.com/digitalocean/netbox/issues/2514) - Prevent new connections to already connected interfaces * [#2515](https://github.com/digitalocean/netbox/issues/2515) - Only use django-rq admin tmeplate if webhooks are enabled * [#2528](https://github.com/digitalocean/netbox/issues/2528) - Enable creating circuit terminations with interface assignment via API * [#2549](https://github.com/digitalocean/netbox/issues/2549) - Changed naming of `peer_device` and `peer_interface` on API /dcim/connected-device/ endpoint to use underscores 2018-11-06T15:56:15+00:00 netbox v2.5-beta1 netbox v2.5-beta1 2018-11-06T21:01:35+00:00 ## BETA RELEASE **This is a beta release.** It is intended solely for gathering community and developer feedback in preparation for the v2.5 release. Do not run it in production, and do not give it write access to your production database. As the database schema is subject to change during the beta period, a migration path to the stable release likely will not be provided. Do not commit any data which you are not willing to lose. ## Notes ### Python 3 Required As promised, Python 2 support has been completed removed. Python 3.5 or higher is now required to run NetBox. Please see [our Python 3 migration guide](https://netbox.readthedocs.io/en/stable/installation/migrating-to-python3/) for assistance with upgrading. ### Removed Deprecated User Activity Log The UserAction model, which was deprecated by the new change logging feature in NetBox v2.4, has been removed. If you need to archive legacy user activity, do so prior to upgrading to NetBox v2.5, as the database migration will remove all data associated with this model. ### View Permissions in Django 2.1 Django 2.1 introduces view permissions for object types (not to be confused with object-level permissions). Implementation of [#323](https://github.com/digitalocean/netbox/issues/323) is planned for NetBox v2.6. Users are encourage to begin assigning view permissions as desired in preparation for their eventual enforcement. ## New Features ### Patch Panels and Cables ([#20](https://github.com/digitalocean/netbox/issues/20)) NetBox now supports modeling physical cables for console, power, and interface connections. The new pass-through port component type has also been introduced to model patch panels and similar devices. ## Enhancements * [#450](https://github.com/digitalocean/netbox/issues/450) - Added `outer_width` and `outer_depth` fields to rack model * [#867](https://github.com/digitalocean/netbox/issues/867) - Added `description` field to circuit terminations * [#1444](https://github.com/digitalocean/netbox/issues/1444) - Added an `asset_tag` field for racks * [#1931](https://github.com/digitalocean/netbox/issues/1931) - Added a count of assigned IP addresses to the interface API serializer * [#2000](https://github.com/digitalocean/netbox/issues/2000) - Dropped support for Python 2 * [#2057](https://github.com/digitalocean/netbox/issues/2057) - Added description columns to interface connections list * [#2104](https://github.com/digitalocean/netbox/issues/2104) - Added a `status` field for racks * [#2165](https://github.com/digitalocean/netbox/issues/2165) - Improved natural ordering of Interfaces * [#2292](https://github.com/digitalocean/netbox/issues/2292) - Removed the deprecated UserAction model * [#2367](https://github.com/digitalocean/netbox/issues/2367) - Removed deprecated RPCClient functionality ## API Changes * The `/extras/recent-activity/` endpoint (replaced by change logging in v2.4) has been removed * The `rpc_client` field has been removed from dcim.Platform (see #2367) * Introduced a new API endpoint for cables at `/dcim/cables/` * New endpoints for front and rear pass-through ports (and their templates) in parallel with existing device components * New fields for dcim.Rack: `status`, `asset_tag`, `outer_width`, `outer_depth`, `outer_unit` * The following boolean filters on dcim.Device and dcim.DeviceType have been renamed: * `is_console_server`: `console_server_ports` * `is_pdu`: `power_outlets` * `is_network_device`: `interfaces` * The following new boolean filters have been introduced for dcim.Device and dcim.DeviceType: * `console_ports` * `power_ports` * `pass_through_ports` * The field `interface_ordering` has been removed from the DeviceType serializer * Added a `description` field to the CircuitTermination serializer * Added `ipaddress_count` to InterfaceSerializer to show the count of assigned IP addresses for each interface 2018-11-06T21:01:35+00:00 netbox v2.4.8 netbox v2.4.8 2018-11-20T16:59:33+00:00 ## Enhancements * [#2490](https://github.com/digitalocean/netbox/issues/2490) - Added bulk editing for config contexts * [#2557](https://github.com/digitalocean/netbox/issues/2557) - Added object view for tags ## Bug Fixes * [#2473](https://github.com/digitalocean/netbox/issues/2473) - Fix encoding of long (>127 character) secrets * [#2558](https://github.com/digitalocean/netbox/issues/2558) - Filter on all tags when multiple are passed * [#2565](https://github.com/digitalocean/netbox/issues/2565) - Improved rendering of Markdown tables * [#2575](https://github.com/digitalocean/netbox/issues/2575) - Correct model specified for rack roles table * [#2588](https://github.com/digitalocean/netbox/issues/2588) - Catch all exceptions from failed NAPALM API Calls * [#2589](https://github.com/digitalocean/netbox/issues/2589) - Virtual machine API serializer should require cluster assignment 2018-11-20T16:59:33+00:00 netbox v2.5-beta2 netbox v2.5-beta2 2018-11-26T21:29:39+00:00 ## BETA RELEASE **This is a beta release.** It is intended solely for gathering community and developer feedback in preparation for the v2.5 release. Do not run it in production, and do not give it write access to your production database. As the database schema is subject to change during the beta period, a migration path to the stable release likely will not be provided. Do not commit any data which you are not willing to lose. ## Notes ### Python 3 Required As promised, Python 2 support has been completed removed. Python 3.5 or higher is now required to run NetBox. Please see [our Python 3 migration guide](https://netbox.readthedocs.io/en/stable/installation/migrating-to-python3/) for assistance with upgrading. ### Removed Deprecated User Activity Log The UserAction model, which was deprecated by the new change logging feature in NetBox v2.4, has been removed. If you need to archive legacy user activity, do so prior to upgrading to NetBox v2.5, as the database migration will remove all data associated with this model. ### View Permissions in Django 2.1 Django 2.1 introduces view permissions for object types (not to be confused with object-level permissions). Implementation of [#323](https://github.com/digitalocean/netbox/issues/323) is planned for NetBox v2.6. Users are encourage to begin assigning view permissions as desired in preparation for their eventual enforcement. ## New Features ### Patch Panels and Cables ([#20](https://github.com/digitalocean/netbox/issues/20)) NetBox now supports modeling physical cables for console, power, and interface connections. The new pass-through port component type has also been introduced to model patch panels and similar devices. ## Enhancements * [#450](https://github.com/digitalocean/netbox/issues/450) - Added `outer_width` and `outer_depth` fields to rack model * [#867](https://github.com/digitalocean/netbox/issues/867) - Added `description` field to circuit terminations * [#1444](https://github.com/digitalocean/netbox/issues/1444) - Added an `asset_tag` field for racks * [#1931](https://github.com/digitalocean/netbox/issues/1931) - Added a count of assigned IP addresses to the interface API serializer * [#2000](https://github.com/digitalocean/netbox/issues/2000) - Dropped support for Python 2 * [#2053](https://github.com/digitalocean/netbox/issues/2053) - Introduced the `LOGIN_TIMEOUT` configuration setting * [#2057](https://github.com/digitalocean/netbox/issues/2057) - Added description columns to interface connections list * [#2104](https://github.com/digitalocean/netbox/issues/2104) - Added a `status` field for racks * [#2165](https://github.com/digitalocean/netbox/issues/2165) - Improved natural ordering of Interfaces * [#2292](https://github.com/digitalocean/netbox/issues/2292) - Removed the deprecated UserAction model * [#2367](https://github.com/digitalocean/netbox/issues/2367) - Removed deprecated RPCClient functionality * [#2426](https://github.com/digitalocean/netbox/issues/2426) - Introduced `SESSION_FILE_PATH` configuration setting for authentication without write access to database ## Changes From v2.5-beta1 * [#2554](https://github.com/digitalocean/netbox/issues/2554) - Fix cable trace display when following a rear port with no cable attached * [#2563](https://github.com/digitalocean/netbox/issues/2563) - Enable export templates for cables * [#2566](https://github.com/digitalocean/netbox/issues/2566) - Prevent both ends of a cable from connecting to the same termination point * [#2567](https://github.com/digitalocean/netbox/issues/2567) - Introduced proxy models to represent console/power/interface connections * [#2569](https://github.com/digitalocean/netbox/issues/2569) - Added LSH fiber type; removed SC duplex/simplex designations * [#2570](https://github.com/digitalocean/netbox/issues/2570) - Add bulk disconnect view for front/rear pass-through ports * [#2571](https://github.com/digitalocean/netbox/issues/2571) - Enforce deletion of attached cable when deleting a termination point * [#2572](https://github.com/digitalocean/netbox/issues/2572) - Add button to disconnect cable from circuit termination * [#2573](https://github.com/digitalocean/netbox/issues/2573) - Fix bulk console/power/interface disconnections * [#2574](https://github.com/digitalocean/netbox/issues/2574) - Remove duplicate interface links from topology maps * [#2578](https://github.com/digitalocean/netbox/issues/2578) - Reorganized nested serializers * [#2579](https://github.com/digitalocean/netbox/issues/2579) - Add missing cable disconnect buttons for front/rear ports * [#2583](https://github.com/digitalocean/netbox/issues/2583) - Cleaned up component filters for device and device type * [#2584](https://github.com/digitalocean/netbox/issues/2584) - Prevent a Front port from being connected to its corresponding rear port * [#2585](https://github.com/digitalocean/netbox/issues/2585) - Prevent cable connections that include a virtual interface * [#2586](https://github.com/digitalocean/netbox/issues/2586) - Added tests for the Cable model's clean() method * [#2593](https://github.com/digitalocean/netbox/issues/2593) - Fix toggling of connected cable's status * [#2601](https://github.com/digitalocean/netbox/issues/2601) - Added a `description` field to pass-through ports * [#2602](https://github.com/digitalocean/netbox/issues/2602) - Return HTTP 204 when no new IPs/prefixes are available for provisioning * [#2608](https://github.com/digitalocean/netbox/issues/2608) - Fixed null `outer_unit` error on rack import * [#2609](https://github.com/digitalocean/netbox/issues/2609) - Fixed exception when ChoiceField integer value is passed as a string ## API Changes * The `/extras/recent-activity/` endpoint (replaced by change logging in v2.4) has been removed * The `rpc_client` field has been removed from dcim.Platform (see #2367) * Introduced a new API endpoint for cables at `/dcim/cables/` * New endpoints for front and rear pass-through ports (and their templates) in parallel with existing device components * New fields for dcim.Rack: `status`, `asset_tag`, `outer_width`, `outer_depth`, `outer_unit` * The following boolean filters on dcim.Device and dcim.DeviceType have been renamed: * `is_console_server`: `console_server_ports` * `is_pdu`: `power_outlets` * `is_network_device`: `interfaces` * The following new boolean filters have been introduced for dcim.Device and dcim.DeviceType: * `console_ports` * `power_ports` * `pass_through_ports` * The field `interface_ordering` has been removed from the DeviceType serializer * Added a `description` field to the CircuitTermination serializer * Added `ipaddress_count` to InterfaceSerializer to show the count of assigned IP addresses for each interface * The `available-prefixes` and `available-ips` IPAM endpoints now return an HTTP 204 response instead of HTTP 400 when no new objects can be created 2018-11-26T21:29:39+00:00 netbox v2.4.9 netbox v2.4.9 2018-12-07T15:27:20+00:00 ## Enhancements * [#2089](https://github.com/digitalocean/netbox/issues/2089) - Add SONET interface form factors * [#2495](https://github.com/digitalocean/netbox/issues/2495) - Enable deep-merging of config context data * [#2597](https://github.com/digitalocean/netbox/issues/2597) - Add FibreChannel SFP28 (32GFC) interface form factor ## Bug Fixes * [#2400](https://github.com/digitalocean/netbox/issues/2400) - Correct representation of nested object assignment in API docs * [#2576](https://github.com/digitalocean/netbox/issues/2576) - Correct type for count_* fields in site API representation * [#2606](https://github.com/digitalocean/netbox/issues/2606) - Fixed filtering for interfaces with a virtual form factor * [#2611](https://github.com/digitalocean/netbox/issues/2611) - Fix error handling when assigning a clustered device to a different site * [#2613](https://github.com/digitalocean/netbox/issues/2613) - Decrease live search minimum characters to three * [#2615](https://github.com/digitalocean/netbox/issues/2615) - Tweak live search widget to use brief format for API requests * [#2623](https://github.com/digitalocean/netbox/issues/2623) - Removed the need to pass the model class to the rqworker process for webhooks * [#2634](https://github.com/digitalocean/netbox/issues/2634) - Enforce consistent representation of unnamed devices in rack view 2018-12-07T15:27:20+00:00 netbox v2.5.0 netbox v2.5.0 2018-12-10T15:29:11+00:00 ## Notes ### Python 3 Required As promised, Python 2 support has been completed removed. Python 3.5 or higher is now required to run NetBox. Please see [our Python 3 migration guide](https://netbox.readthedocs.io/en/stable/installation/migrating-to-python3/) for assistance with upgrading. ### Removed Deprecated User Activity Log The UserAction model, which was deprecated by the new change logging feature in NetBox v2.4, has been removed. If you need to archive legacy user activity, do so prior to upgrading to NetBox v2.5, as the database migration will remove all data associated with this model. ### View Permissions in Django 2.1 Django 2.1 introduces view permissions for object types (not to be confused with object-level permissions). Implementation of [#323](https://github.com/digitalocean/netbox/issues/323) is planned for NetBox v2.6. Users are encourage to begin assigning view permissions as desired in preparation for their eventual enforcement. ### upgrade.sh No Longer Invokes sudo The `upgrade.sh` script has been tweaked so that it no longer invokes `sudo` internally. This was done to ensure compatibility when running NetBox inside a Python virtual environment. If you need elevated permissions when upgrading NetBox, call the upgrade script with `sudo upgrade.sh`. ## New Features ### Patch Panels and Cables ([#20](https://github.com/digitalocean/netbox/issues/20)) NetBox now supports modeling physical cables for console, power, and interface connections. The new pass-through port component type has also been introduced to model patch panels and similar devices. ## Enhancements * [#450](https://github.com/digitalocean/netbox/issues/450) - Added `outer_width` and `outer_depth` fields to rack model * [#867](https://github.com/digitalocean/netbox/issues/867) - Added `description` field to circuit terminations * [#1444](https://github.com/digitalocean/netbox/issues/1444) - Added an `asset_tag` field for racks * [#1931](https://github.com/digitalocean/netbox/issues/1931) - Added a count of assigned IP addresses to the interface API serializer * [#2000](https://github.com/digitalocean/netbox/issues/2000) - Dropped support for Python 2 * [#2053](https://github.com/digitalocean/netbox/issues/2053) - Introduced the `LOGIN_TIMEOUT` configuration setting * [#2057](https://github.com/digitalocean/netbox/issues/2057) - Added description columns to interface connections list * [#2104](https://github.com/digitalocean/netbox/issues/2104) - Added a `status` field for racks * [#2165](https://github.com/digitalocean/netbox/issues/2165) - Improved natural ordering of Interfaces * [#2292](https://github.com/digitalocean/netbox/issues/2292) - Removed the deprecated UserAction model * [#2367](https://github.com/digitalocean/netbox/issues/2367) - Removed deprecated RPCClient functionality * [#2426](https://github.com/digitalocean/netbox/issues/2426) - Introduced `SESSION_FILE_PATH` configuration setting for authentication without write access to database * [#2594](https://github.com/digitalocean/netbox/issues/2594) - `upgrade.sh` no longer invokes sudo ## Changes From v2.5-beta2 * [#2474](https://github.com/digitalocean/netbox/issues/2474) - Add `cabled` and `connection_status` filters for device components * [#2616](https://github.com/digitalocean/netbox/issues/2616) - Convert Rack `outer_unit` and Cable `length_unit` to integer-based choice fields * [#2622](https://github.com/digitalocean/netbox/issues/2622) - Enable filtering cables by multiple types/colors * [#2624](https://github.com/digitalocean/netbox/issues/2624) - Delete associated content type and permissions when removing InterfaceConnection model * [#2626](https://github.com/digitalocean/netbox/issues/2626) - Remove extraneous permissions generated from proxy models * [#2632](https://github.com/digitalocean/netbox/issues/2632) - Change representation of null values from `0` to `null` * [#2639](https://github.com/digitalocean/netbox/issues/2639) - Fix preservation of length/dimensions unit for racks and cables * [#2648](https://github.com/digitalocean/netbox/issues/2648) - Include the `connection_status` field in nested representations of connectable device components * [#2649](https://github.com/digitalocean/netbox/issues/2649) - Add `connected_endpoint_type` to connectable device component API representations ## API Changes * The `/extras/recent-activity/` endpoint (replaced by change logging in v2.4) has been removed * The `rpc_client` field has been removed from dcim.Platform (see #2367) * Introduced a new API endpoint for cables at `/dcim/cables/` * New endpoints for front and rear pass-through ports (and their templates) in parallel with existing device components * The fields `interface_connection` on Interface and `interface` on CircuitTermination have been replaced with `connected_endpoint` and `connection_status` * A new `cable` field has been added to console, power, and interface components and to circuit terminations * New fields for dcim.Rack: `status`, `asset_tag`, `outer_width`, `outer_depth`, `outer_unit` * The following boolean filters on dcim.Device and dcim.DeviceType have been renamed: * `is_console_server`: `console_server_ports` * `is_pdu`: `power_outlets` * `is_network_device`: `interfaces` * The following new boolean filters have been introduced for dcim.Device and dcim.DeviceType: * `console_ports` * `power_ports` * `pass_through_ports` * The field `interface_ordering` has been removed from the DeviceType serializer * Added a `description` field to the CircuitTermination serializer * Added `ipaddress_count` to InterfaceSerializer to show the count of assigned IP addresses for each interface * The `available-prefixes` and `available-ips` IPAM endpoints now return an HTTP 204 response instead of HTTP 400 when no new objects can be created * Filtering on null values now uses the string `null` instead of zero 2018-12-10T15:29:11+00:00 netbox v2.5.1 netbox v2.5.1 2018-12-13T20:23:18+00:00 ## Enhancements * [#2655](https://github.com/digitalocean/netbox/issues/2655) - Add 128GFC Fibrechannel interface type * [#2674](https://github.com/digitalocean/netbox/issues/2674) - Enable filtering changelog by object type under web UI ## Bug Fixes * [#2662](https://github.com/digitalocean/netbox/issues/2662) - Fix ImproperlyConfigured exception when rendering API docs * [#2663](https://github.com/digitalocean/netbox/issues/2663) - Prevent duplicate interfaces from appearing under VLAN members view * [#2666](https://github.com/digitalocean/netbox/issues/2666) - Correct display of length unit in cables list * [#2676](https://github.com/digitalocean/netbox/issues/2676) - Fix exception when passing dictionary value to a ChoiceField * [#2678](https://github.com/digitalocean/netbox/issues/2678) - Fix error when viewing webhook in admin UI without write permission * [#2680](https://github.com/digitalocean/netbox/issues/2680) - Disallow POST requests to `/dcim/interface-connections/` API endpoint * [#2683](https://github.com/digitalocean/netbox/issues/2683) - Fix exception when connecting a cable to a RearPort with no corresponding FrontPort * [#2684](https://github.com/digitalocean/netbox/issues/2684) - Fix custom field filtering * [#2687](https://github.com/digitalocean/netbox/issues/2687) - Correct naming of before/after filters for changelog entries 2018-12-13T20:23:18+00:00 netbox v2.5.2 netbox v2.5.2 2018-12-21T16:47:28+00:00 ## Enhancements * [#2561](https://github.com/digitalocean/netbox/issues/2561) - Add 200G and 400G interface types * [#2701](https://github.com/digitalocean/netbox/issues/2701) - Enable filtering of prefixes by exact prefix value ## Bug Fixes * [#2673](https://github.com/digitalocean/netbox/issues/2673) - Fix exception on LLDP neighbors view for device with a circuit connected * [#2691](https://github.com/digitalocean/netbox/issues/2691) - Cable trace should follow circuits * [#2698](https://github.com/digitalocean/netbox/issues/2698) - Remove pagination restriction on bulk component creation for devices/VMs * [#2704](https://github.com/digitalocean/netbox/issues/2704) - Fix form select widget population on parent with null value * [#2707](https://github.com/digitalocean/netbox/issues/2707) - Correct permission evaluation for circuit termination cabling * [#2712](https://github.com/digitalocean/netbox/issues/2712) - Preserve list filtering after editing objects in bulk * [#2717](https://github.com/digitalocean/netbox/issues/2717) - Fix bulk deletion of tags * [#2721](https://github.com/digitalocean/netbox/issues/2721) - Detect loops when tracing front/rear ports * [#2723](https://github.com/digitalocean/netbox/issues/2723) - Correct permission evaluation when bulk deleting tags * [#2724](https://github.com/digitalocean/netbox/issues/2724) - Limit rear port choices to current device when editing a front port 2018-12-21T16:47:28+00:00 netbox v2.5.3 netbox v2.5.3 2019-01-11T16:33:45+00:00 ## Enhancements * [#1630](https://github.com/digitalocean/netbox/issues/1630) - Enable bulk editing of prefix/IP mask length * [#1870](https://github.com/digitalocean/netbox/issues/1870) - Add per-page toggle to object lists * [#1871](https://github.com/digitalocean/netbox/issues/1871) - Enable filtering sites by parent region * [#1983](https://github.com/digitalocean/netbox/issues/1983) - Enable regular expressions when bulk renaming device components * [#2682](https://github.com/digitalocean/netbox/issues/2682) - Add DAC and AOC cable types * [#2693](https://github.com/digitalocean/netbox/issues/2693) - Additional cable colors * [#2726](https://github.com/digitalocean/netbox/issues/2726) - Include cables in global search ## Bug Fixes * [#2742](https://github.com/digitalocean/netbox/issues/2742) - Preserve cluster assignment when editing a device * [#2757](https://github.com/digitalocean/netbox/issues/2757) - Always treat first/last IPs within a /31 or /127 as usable * [#2762](https://github.com/digitalocean/netbox/issues/2762) - Add missing DCIM field values to API `_choices` endpoint * [#2777](https://github.com/digitalocean/netbox/issues/2777) - Fix cable validation to handle duplicate connections on import 2019-01-11T16:33:45+00:00 netbox v2.5.4 netbox v2.5.4 2019-01-29T21:39:52+00:00 ## Enhancements * [#2516](https://github.com/digitalocean/netbox/issues/2516) - Implemented Select2 for all Model backed selection fields * [#2590](https://github.com/digitalocean/netbox/issues/2590) - Implemented the color picker with Select2 to show colors in the background * [#2733](https://github.com/digitalocean/netbox/issues/2733) - Enable bulk assignment of MAC addresses to interfaces * [#2735](https://github.com/digitalocean/netbox/issues/2735) - Implemented Select2 for all list filter form select elements * [#2753](https://github.com/digitalocean/netbox/issues/2753) - Implemented Select2 to replace most all instances of select fields in forms * [#2766](https://github.com/digitalocean/netbox/issues/2766) - Extend users admin table to include superuser and active fields * [#2782](https://github.com/digitalocean/netbox/issues/2782) - Add `is_pool` field for prefix filtering * [#2807](https://github.com/digitalocean/netbox/issues/2807) - Include device site/rack assignment in cable trace view * [#2808](https://github.com/digitalocean/netbox/issues/2808) - Loosen version pinning for Django to allow patch releases * [#2810](https://github.com/digitalocean/netbox/issues/2810) - Include description fields in interface connections export ## Bug Fixes * [#2779](https://github.com/digitalocean/netbox/issues/2779) - Include "none" option when filter IP addresses by role * [#2783](https://github.com/digitalocean/netbox/issues/2783) - Fix AttributeError exception when attempting to delete region(s) * [#2795](https://github.com/digitalocean/netbox/issues/2795) - Fix duplicate display of pagination controls on child prefix/IP tables * [#2798](https://github.com/digitalocean/netbox/issues/2798) - Properly URL-encode "map it" link on site view * [#2802](https://github.com/digitalocean/netbox/issues/2802) - Better error handling for unsupported NAPALM methods * [#2816](https://github.com/digitalocean/netbox/issues/2816) - Handle exception when deleting a device with connected components 2019-01-29T21:39:52+00:00 netbox v2.5.5 netbox v2.5.5 2019-01-31T21:11:37+00:00 ## Enhancements * [#2805](https://github.com/digitalocean/netbox/issues/2805) - Allow null route distinguisher for VRFs * [#2809](https://github.com/digitalocean/netbox/issues/2809) - Remove VRF child prefixes table; link to main prefixes view * [#2825](https://github.com/digitalocean/netbox/issues/2825) - Include directly connected device for front/rear ports ## Bug Fixes * [#2824](https://github.com/digitalocean/netbox/issues/2824) - Fix template exception when viewing rack elevations list * [#2833](https://github.com/digitalocean/netbox/issues/2833) - Fix form widget for front port template creation * [#2835](https://github.com/digitalocean/netbox/issues/2835) - Fix certain model filters did not support the `q` query param * [#2837](https://github.com/digitalocean/netbox/issues/2837) - Fix select2 nullable filter fields add multiple null_option elements when paging 2019-01-31T21:11:37+00:00 netbox v2.5.6 netbox v2.5.6 2019-02-13T22:12:49+00:00 ## Enhancements * [#2758](https://github.com/digitalocean/netbox/issues/2758) - Add cable trace button to pass-through ports * [#2839](https://github.com/digitalocean/netbox/issues/2839) - Add "110 punch" type for pass-through ports * [#2854](https://github.com/digitalocean/netbox/issues/2854) - Enable bulk editing of pass-through ports * [#2866](https://github.com/digitalocean/netbox/issues/2866) - Add cellular interface types (GSM/CDMA/LTE) ## Bug Fixes * [#2841](https://github.com/digitalocean/netbox/issues/2841) - Fix filtering by VRF for prefix and IP address lists * [#2844](https://github.com/digitalocean/netbox/issues/2844) - Correct display of far cable end for pass-through ports * [#2845](https://github.com/digitalocean/netbox/issues/2845) - Enable filtering of rack unit list by unit ID * [#2856](https://github.com/digitalocean/netbox/issues/2856) - Fix navigation links between LAG interfaces and their members on device view * [#2857](https://github.com/digitalocean/netbox/issues/2857) - Add `display_name` to DeviceType API serializer; fix DeviceType list for bulk device edit * [#2862](https://github.com/digitalocean/netbox/issues/2862) - Follow return URL when connecting a cable * [#2864](https://github.com/digitalocean/netbox/issues/2864) - Correct display of VRF name when no RD is assigned * [#2877](https://github.com/digitalocean/netbox/issues/2877) - Fixed device role label display on light background color * [#2880](https://github.com/digitalocean/netbox/issues/2880) - Sanitize user password if an exception is raised during login 2019-02-13T22:12:49+00:00 netbox v2.5.7 netbox v2.5.7 2019-02-21T19:46:09+00:00 ## Enhancements * [#2357](https://github.com/digitalocean/netbox/issues/2357) - Enable filtering of devices by rack face * [#2638](https://github.com/digitalocean/netbox/issues/2638) - Add button to copy unlocked secret to clipboard * [#2870](https://github.com/digitalocean/netbox/issues/2870) - Add Markdown rendering for provider NOC/admin contact fields * [#2878](https://github.com/digitalocean/netbox/issues/2878) - Add cable types for OS1/OS2 singlemode fiber * [#2890](https://github.com/digitalocean/netbox/issues/2890) - Add port types for APC fiber * [#2898](https://github.com/digitalocean/netbox/issues/2898) - Enable filtering cables list by connection status * [#2903](https://github.com/digitalocean/netbox/issues/2903) - Clarify purpose of tags field on interface edit form ## Bug Fixes * [#2852](https://github.com/digitalocean/netbox/issues/2852) - Allow filtering devices by null rack position * [#2884](https://github.com/digitalocean/netbox/issues/2884) - Don't display connect button for wireless interfaces * [#2888](https://github.com/digitalocean/netbox/issues/2888) - Correct foreground color of device roles in rack elevations * [#2893](https://github.com/digitalocean/netbox/issues/2893) - Remove duplicate display of VRF RD on IP address view * [#2895](https://github.com/digitalocean/netbox/issues/2895) - Fix filtering of nullable character fields * [#2901](https://github.com/digitalocean/netbox/issues/2901) - Fix ordering regions by site count * [#2910](https://github.com/digitalocean/netbox/issues/2910) - Fix config context list and edit forms to use Select2 elements * [#2912](https://github.com/digitalocean/netbox/issues/2912) - Cable type in filter form should be blank by default * [#2913](https://github.com/digitalocean/netbox/issues/2913) - Fix assigned prefixes link on VRF view * [#2914](https://github.com/digitalocean/netbox/issues/2914) - Fix empty connected circuit link on device interfaces list * [#2915](https://github.com/digitalocean/netbox/issues/2915) - Fix bulk editing of pass-through ports 2019-02-21T19:46:09+00:00 netbox v2.5.8 netbox v2.5.8 2019-03-11T17:38:38+00:00 ## Enhancements * [#2435](https://github.com/digitalocean/netbox/issues/2435) - Printer friendly CSS ## Bug Fixes * [#2065](https://github.com/digitalocean/netbox/issues/2065) - Correct documentation for VM interface serializer * [#2705](https://github.com/digitalocean/netbox/issues/2705) - Fix endpoint grouping in API docs * [#2781](https://github.com/digitalocean/netbox/issues/2781) - Fix filtering of sites/devices/VMs by multiple regions * [#2923](https://github.com/digitalocean/netbox/issues/2923) - Provider filter form's site field should be blank by default * [#2938](https://github.com/digitalocean/netbox/issues/2938) - Enforce deterministic ordering of device components returned by API * [#2939](https://github.com/digitalocean/netbox/issues/2939) - Exclude circuit terminations from API interface connections endpoint * [#2940](https://github.com/digitalocean/netbox/issues/2940) - Allow CSV import of prefixes/IPs to VRF without an RD assigned * [#2944](https://github.com/digitalocean/netbox/issues/2944) - Record the deletion of an IP address in the changelog of its parent interface (if any) * [#2952](https://github.com/digitalocean/netbox/issues/2952) - Added the `slug` field to the Tenant filter for use in the API and search function * [#2954](https://github.com/digitalocean/netbox/issues/2954) - Remove trailing slashes to fix root/template paths on Windows * [#2961](https://github.com/digitalocean/netbox/issues/2961) - Prevent exception when exporting inventory items belonging to unnamed devices * [#2962](https://github.com/digitalocean/netbox/issues/2962) - Increase ExportTemplate `mime_type` field length * [#2966](https://github.com/digitalocean/netbox/issues/2966) - Accept `null` cable length_unit via API * [#2972](https://github.com/digitalocean/netbox/issues/2972) - Improve ContentTypeField serializer to elegantly handle invalid data * [#2976](https://github.com/digitalocean/netbox/issues/2976) - Add delete button to tag view * [#2980](https://github.com/digitalocean/netbox/issues/2980) - Improve rendering time for API docs * [#2982](https://github.com/digitalocean/netbox/issues/2982) - Correct CSS class assignment on color picker * [#2984](https://github.com/digitalocean/netbox/issues/2984) - Fix logging of unlabeled cable ID on cable deletion * [#2985](https://github.com/digitalocean/netbox/issues/2985) - Fix pagination page length for rack elevations 2019-03-11T17:38:38+00:00 netbox v2.5.9 netbox v2.5.9 2019-04-02T16:36:42+00:00 ## Enhancements * [#2933](https://github.com/digitalocean/netbox/issues/2933) - Add username to outbound webhook requests * [#3011](https://github.com/digitalocean/netbox/issues/3011) - Add SSL support for django-rq (requires django-rq v1.3.1+) * [#3025](https://github.com/digitalocean/netbox/issues/3025) - Add request ID to outbound webhook requests (for correlating all changes part of a single request) ## Bug Fixes * [#2207](https://github.com/digitalocean/netbox/issues/2207) - Fixes deterministic ordering of interfaces * [#2577](https://github.com/digitalocean/netbox/issues/2577) - Clarification of wording in API regarding filtering * [#2924](https://github.com/digitalocean/netbox/issues/2924) - Add interface type for QSFP28 50GE * [#2936](https://github.com/digitalocean/netbox/issues/2936) - Fix device role selection showing duplicate first entry * [#2998](https://github.com/digitalocean/netbox/issues/2998) - Limit device query to non-racked devices if no rack selected when creating a cable * [#3001](https://github.com/digitalocean/netbox/issues/3001) - Fix API representation of ObjectChange `action` and add `changed_object_type` * [#3014](https://github.com/digitalocean/netbox/issues/3014) - Fixes VM Role filtering * [#3019](https://github.com/digitalocean/netbox/issues/3019) - Fix tag population when running NetBox within a path * [#3022](https://github.com/digitalocean/netbox/issues/3022) - Add missing cable termination types to DCIM `_choices` endpoint * [#3026](https://github.com/digitalocean/netbox/issues/3026) - Tweak prefix/IP filter forms to filter using VRF ID rather than route distinguisher * [#3027](https://github.com/digitalocean/netbox/issues/3027) - Ignore empty local context data when rendering config contexts * [#3032](https://github.com/digitalocean/netbox/issues/3032) - Save assigned tags when creating a new secret 2019-04-02T16:36:42+00:00 netbox v2.5.10 netbox v2.5.10 2019-04-08T18:28:51+00:00 ## Enhancements * [#3052](https://github.com/digitalocean/netbox/issues/3052) - Add Jinja2 support for export templates ## Bug Fixes * [#2937](https://github.com/digitalocean/netbox/issues/2937) - Redirect to list view after editing an object from list view * [#3036](https://github.com/digitalocean/netbox/issues/3036) - DCIM interfaces API endpoint should not include VM interfaces * [#3039](https://github.com/digitalocean/netbox/issues/3039) - Fix exception when retrieving change object for a component template via API * [#3041](https://github.com/digitalocean/netbox/issues/3041) - Fix form widget for bulk cable label update * [#3044](https://github.com/digitalocean/netbox/issues/3044) - Ignore site/rack fields when connecting a new cable via device search * [#3046](https://github.com/digitalocean/netbox/issues/3046) - Fix exception at reports API endpoint * [#3047](https://github.com/digitalocean/netbox/issues/3047) - Fix exception when writing mac address for an interface via API 2019-04-08T18:28:51+00:00 netbox v2.5.11 netbox v2.5.11 2019-04-29T18:26:08+00:00 ## Notes This release upgrades the Django framework to version 2.2. ## Enhancements * [#2986](https://github.com/digitalocean/netbox/issues/2986) - Improve natural ordering of device components * [#3023](https://github.com/digitalocean/netbox/issues/3023) - Add support for filtering cables by connected device * [#3070](https://github.com/digitalocean/netbox/issues/3070) - Add decommissioning status for devices ## Bug Fixes * [#2621](https://github.com/digitalocean/netbox/issues/2621) - Upgrade Django requirement to 2.2 to fix object deletion issue in the changelog middleware * [#3072](https://github.com/digitalocean/netbox/issues/3072) - Preserve multiselect filter values when updating per-page count for list views * [#3112](https://github.com/digitalocean/netbox/issues/3112) - Fix ordering of interface connections list by termination B name/device * [#3116](https://github.com/digitalocean/netbox/issues/3116) - Fix `tagged_items` count in tags API endpoint * [#3118](https://github.com/digitalocean/netbox/issues/3118) - Disable `last_login` update on login when maintenance mode is enabled 2019-04-29T18:26:08+00:00 netbox v2.6-beta1 netbox v2.6-beta1 2019-04-29T19:40:37+00:00 **WARNING:** This is a beta release of NetBox intended for development use only. **Do not** rely on it for production use. A migration path forward to a stable release **will not** be provided; expect to ultimately lose any data input into this instance. ## New Features ### Power Panels and Feeds ([#54](https://github.com/digitalocean/netbox/issues/54)) NetBox now supports power supply modeling via two new models: power panels and power feeds. Power feeds are terminated to power panels and are optionally associated with individual racks. Each power feed defines a supply type (AC/DC), amperage, voltage, and phase. A power port can be connected directly to a power feed, but a power feed may have only one power port connected to it. Additionally, the power port model has been extended to include fields denoting maximum and allocated draw, in watts. This allows a device (e.g. a PDU) to calculate its total load compared to its connected power feed. ### Caching ([#2647](https://github.com/digitalocean/netbox/issues/2647)) To improve performance, NetBox now supports caching for most object and list views. Caching is implemented using Redis, which is now a required dependency. (Previously, Redis was required only if webhooks were enabled.) A new configuration parameter is available to control the cache timeout: ``` # Cache timeout (in seconds) CACHE_TIMEOUT = 900 ``` ### View Permissions ([#323](https://github.com/digitalocean/netbox/issues/323)) Django 2.1 introduced the ability to enforce view-only permissions for different object types. NetBox now enforces these by default. You can grant view permission to a user or group by assigning the "can view" permission for the desired object(s). To exempt certain object types from the enforcement of view permissions, so that any user (including anonymous users) can view them, add them to the new `EXEMPT_VIEW_PERMISSIONS` setting in `configuration.py`: ``` EXEMPT_VIEW_PERMISSIONS = [ 'dcim.site', 'ipam.prefix', ] ``` To exclude _all_ objects, effectively disabling view permissions, set: ``` EXEMPT_VIEW_PERMISSIONS = ['*'] ``` ### Custom Links ([#969](https://github.com/digitalocean/netbox/issues/969)) Custom links are created under the admin UI and will be displayed on each object of the selected type. Link text and URLs can be formed from Jinja2 template code, with the viewed object passed as context data. For example, to link to an external NMS from the device view, you might create a custom link with the following URL: ``` https://nms.example.com/nodes/?name={{ obj.name }} ``` Custom links appear as buttons at the top of the object view. Grouped links will render as a dropdown menu beneath a single button. ### Prometheus Metrics ([#3104](https://github.com/digitalocean/netbox/issues/3104)) NetBox now supports exposing native Prometheus metrics from the application. [Prometheus](https://prometheus.io/) is a popular time series metric platform used for monitoring. NetBox exposes metrics at the `/metrics` HTTP endpoint, e.g. `https://netbox.local/metrics`. Metric exposition can be toggled with the `METRICS_ENABLED` configuration setting. Metrics are exposed by default. NetBox makes use of the [django-prometheus](https://github.com/korfuri/django-prometheus) library to export a number of different types of metrics, including: - Per model insert, update, and delete counters - Per view request counters - Per view request latency histograms - Request body size histograms - Response body size histograms - Response code counters - Database connection, execution, and error counters - Cache hit, miss, and invalidation counters - Django middleware latency histograms - Other Django related metadata metrics For the exhaustive list of exposed metrics, visit the `/metrics` endpoint on your NetBox instance. ## Changes ### New Dependency: Redis [Redis](https://redis.io/) is an in-memory data store similar to memcached. While Redis has been an optional component of NetBox since the introduction of webhooks in version 2.4, it is now required to support NetBox's new caching functionality (as well as other planned features). Redis can be installed via your platform's package manager: for example, `sudo apt-get install redis-server` on Ubuntu or `sudo yum install redis` on CentOS. The Redis database is configured using a configuration setting similar to `DATABASE` in `configuration.py`: ``` REDIS = { 'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 0, 'CACHE_DATABASE': 1, 'DEFAULT_TIMEOUT': 300, 'SSL': False, } ``` Note that if you were using these settings in a prior release with webhooks, the `DATABASE` setting remains the same but an additional `CACHE_DATABASE` setting has been added with a default value of 1 to support the caching backend. The `DATABASE` setting will be renamed in a future release of NetBox to better relay the meaning of the setting. It is highly recommended to keep the webhook and cache databases seperate. Using the same database number for both may result in webhook processing data being lost during cache flushing events. ### API Support for Specifying Related Objects by Attributes([#3077](https://github.com/digitalocean/netbox/issues/3077)) Previously, specifying a related object in an API request required knowing the primary key (integer ID) of that object. For example, when creating a new device, its rack would be specified as an integer: ``` { "name": "MyNewDevice", "rack": 123, ... } ``` The NetBox API now supports referencing related objects by a set of sufficiently unique attrbiutes. For example, a rack can be identified by its name and parent site: ``` { "name": "MyNewDevice", "rack": { "site": { "name": "Equinix DC6" }, "name": "R204" }, ... } ``` There is no limit to the depth of nested references. Note that if the provided parameters do not return exactly one object, a validation error is raised. ### API Device/VM Config Context Included by Default ([#2350](https://github.com/digitalocean/netbox/issues/2350)) The rendered config context for devices and VMs is now included by default in all API results (list and detail views). Previously, the rendered config context was available only in the detail view for individual objects. Users with large amounts of context data may observe a performance drop when returning multiple objects. To combat this, in cases where the rendered config context is not needed, the query parameter `?exclude=config_context` may be added to the request to exclude the config context data from the API response. ### Changes to Tag Permissions NetBox now makes use of its own `Tag` model instead of the stock model which ships with django-taggit. This new model lives in the `extras` app and thus any permissions that you may have configured using "Taggit | Tag" should be changed to now use "Extras | Tag." Also note that the admin interface for tags has been removed as it was redundant to the functionality provided by the front end UI. ## Enhancements * [#166](https://github.com/digitalocean/netbox/issues/166) - Add `dns_name` field to IPAddress * [#1792](https://github.com/digitalocean/netbox/issues/1792) - Add CustomFieldChoices API endpoint at `/api/extras/_custom_field_choices/` * [#1863](https://github.com/digitalocean/netbox/issues/1863) - Add child object counts to API representation of organizational objects * [#2324](https://github.com/digitalocean/netbox/issues/2324) - Add `color` field for tags * [#2643](https://github.com/digitalocean/netbox/issues/2643) - Add `description` field to console/power components and device bays * [#2791](https://github.com/digitalocean/netbox/issues/2791) - Add `comments` field for tags * [#2920](https://github.com/digitalocean/netbox/issues/2920) - Rename Interface `form_factor` to `type` (backward-compatible until v2.7) * [#2926](https://github.com/digitalocean/netbox/issues/2926) - Add change logging to the Tag model ## API Changes * New API endpoints for power modeling: `/api/dcim/power-panels/` and `/api/dcim/power-feeds/` * New API endpoint for custom field choices: `/api/extras/_custom_field_choices/` * ForeignKey fields now accept either the related object PK or a dictionary of attributes describing the related object. * Organizational objects now include child object counts. For example, the Role serializer includes `prefix_count` and `vlan_count`. * Added a `description` field for all device components. * dcim.Device: The devices list endpoint now includes rendered context data. * dcim.DeviceType: `instance_count` has been renamed to `device_count`. * dcim.Interface: `form_factor` has been renamed to `type`. Backward compatibility for `form_factor` will be maintained until NetBox v2.7. * dcim.Interface: The `type` filter has been renamed to `kind`. * dcim.Site: The `count_*` read-only fields have been renamed to `*_count` for consistency with other objects. * dcim.Site: Added the `virtualmachine_count` read-only field. * extras.Tag: Added `color` and `comments` fields to the Tag serializer. * virtualization.VirtualMachine: The virtual machines list endpoint now includes rendered context data. ## Bug Fixes * [#2968](https://github.com/digitalocean/netbox/issues/2968) - Correct API documentation for SerializerMethodFields 2019-04-29T19:40:37+00:00 netbox v2.5.12 netbox v2.5.12 2019-05-01T15:11:19+00:00 ## Bug Fixes * [#3127](https://github.com/digitalocean/netbox/issues/3127) - Fix natural ordering of device components 2019-05-01T15:11:19+00:00 netbox v2.5.13 netbox v2.5.13 2019-05-31T13:55:39+00:00 ## Enhancements * [#2813](https://github.com/digitalocean/netbox/issues/2813) - Add tenant group filters * [#3085](https://github.com/digitalocean/netbox/issues/3085) - Catch all exceptions during export template rendering * [#3138](https://github.com/digitalocean/netbox/issues/3138) - Add 2.5GE and 5GE interface form factors * [#3151](https://github.com/digitalocean/netbox/issues/3151) - Add inventory item count to manufacturers list * [#3156](https://github.com/digitalocean/netbox/issues/3156) - Add site link to rack reservations overview * [#3183](https://github.com/digitalocean/netbox/issues/3183) - Enable bulk deletion of sites * [#3185](https://github.com/digitalocean/netbox/issues/3185) - Improve performance for custom field access within templates * [#3186](https://github.com/digitalocean/netbox/issues/3186) - Add interface name filter for IP addresses ## Bug Fixes * [#3031](https://github.com/digitalocean/netbox/issues/3031) - Fixed form field population of tags with spaces * [#3132](https://github.com/digitalocean/netbox/issues/3132) - Circuit termination missing from available cable termination types * [#3150](https://github.com/digitalocean/netbox/issues/3150) - Fix formatting of cable length during cable trace * [#3184](https://github.com/digitalocean/netbox/issues/3184) - Correctly display color block for white cables * [#3190](https://github.com/digitalocean/netbox/issues/3190) - Fix custom field rendering for Jinja2 export templates * [#3211](https://github.com/digitalocean/netbox/issues/3211) - Fix error handling when attempting to delete a protected object via API * [#3223](https://github.com/digitalocean/netbox/issues/3223) - Fix filtering devices by "has power outlets" * [#3227](https://github.com/digitalocean/netbox/issues/3227) - Fix exception when deleting a circuit with a termination(s) * [#3228](https://github.com/digitalocean/netbox/issues/3228) - Fixed login link retaining query parameters 2019-05-31T13:55:39+00:00 netbox v2.6.0 netbox v2.6.0 2019-06-20T21:00:04+00:00 ## New Features ### Power Panels and Feeds ([#54](https://github.com/digitalocean/netbox/issues/54)) NetBox now supports power circuit modeling via two new models: power panels and power feeds. Power feeds are terminated to power panels and are optionally associated with individual racks. Each power feed defines a supply type (AC/DC), amperage, voltage, and phase. A power port can be connected directly to a power feed, but a power feed may have only one power port connected to it. Additionally, the power port model, which represents a device's power input, has been extended to include fields denoting maximum and allocated draw, in volt-amperes. This allows a device (e.g. a PDU) to calculate its total load compared to its connected power feed. ### Caching ([#2647](https://github.com/digitalocean/netbox/issues/2647)) To improve performance, NetBox now supports caching for most object and list views. Caching is implemented using Redis, which is now a required dependency. (Previously, Redis was required only if webhooks were enabled.) A new configuration parameter is available to control the cache timeout: ``` # Cache timeout (in seconds) CACHE_TIMEOUT = 900 ``` ### View Permissions ([#323](https://github.com/digitalocean/netbox/issues/323)) Django 2.1 introduced the ability to enforce view-only permissions for different object types. NetBox now enforces these by default. You can grant view permission to a user or group by assigning the "can view" permission for the desired object(s). To exempt certain object types from the enforcement of view permissions, so that any user (including anonymous users) can view them, add them to the new `EXEMPT_VIEW_PERMISSIONS` setting in `configuration.py`: ``` EXEMPT_VIEW_PERMISSIONS = [ 'dcim.site', 'ipam.prefix', ] ``` To exclude _all_ objects, effectively disabling view permissions and restoring pre-v2.6 behavior, set: ``` EXEMPT_VIEW_PERMISSIONS = ['*'] ``` ### Custom Links ([#969](https://github.com/digitalocean/netbox/issues/969)) Custom links are created under the admin UI and will be displayed on each object of the selected type. Link text and URLs can be formed from Jinja2 template code, with the viewed object passed as context data. For example, to link to an external NMS from the device view, you might create a custom link with the following URL: ``` https://nms.example.com/nodes/?name={{ obj.name }} ``` Custom links appear as buttons at the top of the object view. Grouped links will render as a dropdown menu beneath a single button. ### Prometheus Metrics ([#3104](https://github.com/digitalocean/netbox/issues/3104)) NetBox now supports exposing native Prometheus metrics from the application. [Prometheus](https://prometheus.io/) is a popular time series metric platform used for monitoring. Metric exposition can be toggled with the `METRICS_ENABLED` configuration setting; it is not enabled by default. NetBox exposes metrics at the `/metrics` HTTP endpoint, e.g. `https://netbox.local/metrics`. NetBox makes use of the [django-prometheus](https://github.com/korfuri/django-prometheus) library to export a number of different types of metrics, including: * Per model insert, update, and delete counters * Per view request counters * Per view request latency histograms * Request body size histograms * Response body size histograms * Response code counters * Database connection, execution, and error counters * Cache hit, miss, and invalidation counters * Django middleware latency histograms * Other Django related metadata metrics For the exhaustive list of exposed metrics, visit the `/metrics` endpoint on your NetBox instance. See the documentation for more details on using Prometheus metrics in NetBox. ## Changes ### New Dependency: Redis [Redis](https://redis.io/) is an in-memory data store similar to memcached. While Redis has been an optional component of NetBox since the introduction of webhooks in version 2.4, it is now required to support NetBox's new caching functionality (as well as other planned features). Redis can be installed via your platform's package manager: for example, `sudo apt-get install redis-server` on Ubuntu or `sudo yum install redis` on CentOS. The Redis database is configured using a configuration setting similar to `DATABASE` in `configuration.py`: ``` REDIS = { 'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 0, 'CACHE_DATABASE': 1, 'DEFAULT_TIMEOUT': 300, 'SSL': False, } ``` Note that if you were using these settings in a prior release with webhooks, the `DATABASE` setting remains the same but an additional `CACHE_DATABASE` setting has been added with a default value of 1 to support the caching backend. The `DATABASE` setting will be renamed in a future release of NetBox to better relay the meaning of the setting. It is highly recommended to keep the webhook and cache databases seperate. Using the same database number for both may result in webhook processing data being lost during cache flushing events. ### API Support for Specifying Related Objects by Attributes ([#3077](https://github.com/digitalocean/netbox/issues/3077)) Previously, specifying a related object in an API request required knowing the primary key (integer ID) of that object. For example, when creating a new device, its rack would be specified as an integer: ``` { "name": "MyNewDevice", "rack": 123, ... } ``` The NetBox API now also supports referencing related objects by a set of sufficiently unique attrbiutes. For example, a rack can be identified by its name and parent site: ``` { "name": "MyNewDevice", "rack": { "site": { "name": "Equinix DC6" }, "name": "R204" }, ... } ``` There is no limit to the depth of nested references. Note that if the provided parameters do not return exactly one object, a validation error is raised. ### API Device/VM Config Context Included by Default ([#2350](https://github.com/digitalocean/netbox/issues/2350)) The rendered config context for devices and VMs is now included by default in all API results (list and detail views). Previously, the rendered config context was available only in the detail view for individual objects. Users with large amounts of context data may observe a performance drop when returning multiple objects. To combat this, in cases where the rendered config context is not needed, the query parameter `?exclude=config_context` may be appended to the request URL to exclude the config context data from the API response. ### Changes to Tag Permissions NetBox now makes use of its own `Tag` model instead of the stock model which ships with django-taggit. This new model lives in the `extras` app and thus any permissions that you may have configured using "Taggit | Tag" should be changed to now use "Extras | Tag." Also note that the admin interface for tags has been removed as it was redundant to the functionality provided by the front end UI. ### CORS_ORIGIN_WHITELIST Requires URI Scheme If you have the `CORS_ORIGIN_WHITELIST` configuration parameter defined, note that each origin must now incldue a URI scheme. This change was introuced in django-cors-headers 3.0. ## Enhancements * [#166](https://github.com/digitalocean/netbox/issues/166) - Add `dns_name` field to IPAddress * [#524](https://github.com/digitalocean/netbox/issues/524) - Added power utilization graphs to power feeds, devices, and racks * [#1792](https://github.com/digitalocean/netbox/issues/1792) - Add CustomFieldChoices API endpoint at `/api/extras/_custom_field_choices/` * [#1863](https://github.com/digitalocean/netbox/issues/1863) - Add child object counts to API representation of organizational objects * [#2324](https://github.com/digitalocean/netbox/issues/2324) - Add `color` field for tags * [#2643](https://github.com/digitalocean/netbox/issues/2643) - Add `description` field to console/power components and device bays * [#2791](https://github.com/digitalocean/netbox/issues/2791) - Add `comments` field for tags * [#2920](https://github.com/digitalocean/netbox/issues/2920) - Rename Interface `form_factor` to `type` (backward-compatible until v2.7) * [#2926](https://github.com/digitalocean/netbox/issues/2926) - Add change logging to the Tag model * [#3038](https://github.com/digitalocean/netbox/issues/3038) - OR logic now used when multiple values of a query filter are passed * [#3264](https://github.com/digitalocean/netbox/issues/3264) - Annotate changelog retention time on UI ## Bug Fixes * [#2968](https://github.com/digitalocean/netbox/issues/2968) - Correct API documentation for SerializerMethodFields * [#3176](https://github.com/digitalocean/netbox/issues/3176) - Add cable trace button for console server ports and power outlets * [#3231](https://github.com/digitalocean/netbox/issues/3231) - Fixed cosmetic error indicating a missing schema migration * [#3239](https://github.com/digitalocean/netbox/issues/3239) - Corrected count of tags reported via API ## Bug Fixes From v2.6-beta1 * [#3123](https://github.com/digitalocean/netbox/issues/3123) - Exempt `/metrics` view from authentication * [#3125](https://github.com/digitalocean/netbox/issues/3125) - Fix exception when viewing PDUs * [#3126](https://github.com/digitalocean/netbox/issues/3126) - Incorrect calculation of PowerFeed available power * [#3130](https://github.com/digitalocean/netbox/issues/3130) - Fix exception when creating a new power outlet * [#3136](https://github.com/digitalocean/netbox/issues/3136) - Add power draw fields to power port creation form * [#3137](https://github.com/digitalocean/netbox/issues/3137) - Add `power_port` and `feed_leg` fields to power outlet creation form * [#3140](https://github.com/digitalocean/netbox/issues/3140) - Add bulk edit capability for power outlets and console server ports * [#3204](https://github.com/digitalocean/netbox/issues/3204) - Fix interface filtering when connecting cables * [#3207](https://github.com/digitalocean/netbox/issues/3207) - Fix link for connecting interface to rear port * [#3258](https://github.com/digitalocean/netbox/issues/3258) - Exception raised when creating/viewing a circuit with a non-connected termination ## API Changes * New API endpoints for power modeling: `/api/dcim/power-panels/` and `/api/dcim/power-feeds/` * New API endpoint for custom field choices: `/api/extras/_custom_field_choices/` * ForeignKey fields now accept either the related object PK or a dictionary of attributes describing the related object. * Organizational objects now include child object counts. For example, the Role serializer includes `prefix_count` and `vlan_count`. * The `id__in` filter is now deprecated and will be removed in v2.7. (Begin using the `?id=1&id=2` format instead.) * Added a `description` field for all device components. * dcim.Device: The devices list endpoint now includes rendered context data. * dcim.DeviceType: `instance_count` has been renamed to `device_count`. * dcim.Interface: `form_factor` has been renamed to `type`. Backward compatibility for `form_factor` will be maintained until NetBox v2.7. * dcim.Interface: The `type` filter has been renamed to `kind`. * dcim.Site: The `count_*` read-only fields have been renamed to `*_count` for consistency with other objects. * dcim.Site: Added the `virtualmachine_count` read-only field. * extras.Tag: Added `color` and `comments` fields to the Tag serializer. * virtualization.VirtualMachine: The virtual machines list endpoint now includes rendered context data. 2019-06-20T21:00:04+00:00 netbox v2.6.1 netbox v2.6.1 2019-06-25T13:42:40+00:00 ## Enhancements * [#3154](https://github.com/digitalocean/netbox/issues/3154) - Add `virtual_chassis_member` device filter * [#3277](https://github.com/digitalocean/netbox/issues/3277) - Add cable trace buttons for console and power ports * [#3281](https://github.com/digitalocean/netbox/issues/3281) - Hide custom links which render as empty text ## Bug Fixes * [#3229](https://github.com/digitalocean/netbox/issues/3229) - Limit rack group selection by parent site on racks list * [#3269](https://github.com/digitalocean/netbox/issues/3269) - Raise validation error when specifying non-existent cable terminations * [#3275](https://github.com/digitalocean/netbox/issues/3275) - Fix error when adding power outlets to a device type * [#3279](https://github.com/digitalocean/netbox/issues/3279) - Reset the PostgreSQL sequence for Tag and TaggedItem IDs * [#3283](https://github.com/digitalocean/netbox/issues/3283) - Fix rack group assignment on PowerFeed CSV import * [#3290](https://github.com/digitalocean/netbox/issues/3290) - Fix server error when viewing cascaded PDUs * [#3292](https://github.com/digitalocean/netbox/issues/3292) - Ignore empty URL query parameters 2019-06-25T13:42:40+00:00 netbox v2.6.2 netbox v2.6.2 2019-08-02T14:32:41+00:00 ## Enhancements * [#984](https://github.com/netbox-community/netbox/issues/984) - Allow ordering circuits by A/Z side * [#3307](https://github.com/netbox-community/netbox/issues/3307) - Add power panels count to home page * [#3314](https://github.com/netbox-community/netbox/issues/3314) - Paginate object changelog entries * [#3367](https://github.com/netbox-community/netbox/issues/3367) - Add BNC port type and coaxial cable type * [#3368](https://github.com/netbox-community/netbox/issues/3368) - Indicate indefinite changelog retention when applicable * [#3370](https://github.com/netbox-community/netbox/issues/3370) - Add filter class to VirtualChassis API ## Bug Fixes * [#3018](https://github.com/netbox-community/netbox/issues/3018) - Components connected via a cable must have an equal number of positions * [#3289](https://github.com/netbox-community/netbox/issues/3289) - Prevent position from being nullified when moving a device to a new rack * [#3293](https://github.com/netbox-community/netbox/issues/3293) - Enable filtering device components by multiple device IDs * [#3315](https://github.com/netbox-community/netbox/issues/3315) - Enable filtering devices/interfaces by multiple MAC addresses * [#3317](https://github.com/netbox-community/netbox/issues/3317) - Fix permissions for ConfigContextBulkDeleteView * [#3323](https://github.com/netbox-community/netbox/issues/3323) - Fix permission evaluation for interface connections view * [#3342](https://github.com/netbox-community/netbox/issues/3342) - Fix cluster delete button * [#3384](https://github.com/netbox-community/netbox/issues/3384) - Maximum and allocated draw fields should be included on power port template creation form * [#3385](https://github.com/netbox-community/netbox/issues/3385) - Fix power panels list when bulk editing power feeds 2019-08-02T14:32:41+00:00 netbox v2.6.3 netbox v2.6.3 2019-09-04T20:28:20+00:00 ## New Features ### Custom Scripts ([#3415](https://github.com/netbox-community/netbox/issues/3415)) Custom scripts allow for the execution of arbitrary code via the NetBox UI. They can be used to automatically create, manipulate, or clean up objects or perform other tasks within NetBox. Scripts are defined as Python files which contain one or more subclasses of `extras.scripts.Script`. Variable fields can be defined within scripts, which render as form fields within the web UI to prompt the user for input data. Scripts are executed and information is logged via the web UI. Please see [the docs](https://netbox.readthedocs.io/en/stable/additional-features/custom-scripts/) for more detail. Note: There are currently no API endpoints for this feature. These are planned for the upcoming v2.7 release. ## Bug Fixes * [#3392](https://github.com/netbox-community/netbox/issues/3392) - Add database index for ObjectChange time * [#3420](https://github.com/netbox-community/netbox/issues/3420) - Serial number filter for racks, devices, and inventory items is now case-insensitive * [#3428](https://github.com/netbox-community/netbox/issues/3428) - Fixed cache invalidation issues ([#3300](https://github.com/netbox-community/netbox/issues/3300), [#3363](https://github.com/netbox-community/netbox/issues/3363), [#3379](https://github.com/netbox-community/netbox/issues/3379), [#3382](https://github.com/netbox-community/netbox/issues/3382)) by switching to `prefetch_related()` instead of `select_related()` and removing use of `update()` * [#3421](https://github.com/netbox-community/netbox/issues/3421) - Fix exception when ordering power connections list by PDU * [#3424](https://github.com/netbox-community/netbox/issues/3424) - Fix tag coloring for non-linked tags * [#3426](https://github.com/netbox-community/netbox/issues/3426) - Improve API error handling for ChoiceFields ## Enhancements * [#3386](https://github.com/netbox-community/netbox/issues/3386) - Add `mac_address` filter for virtual machines * [#3391](https://github.com/netbox-community/netbox/issues/3391) - Update Bootstrap CSS to v3.4.1 * [#3405](https://github.com/netbox-community/netbox/issues/3405) - Fix population of power port/outlet details on device creation * [#3422](https://github.com/netbox-community/netbox/issues/3422) - Prevent navigation menu from overlapping page content * [#3430](https://github.com/netbox-community/netbox/issues/3430) - Linkify platform field on device view * [#3454](https://github.com/netbox-community/netbox/issues/3454) - Enable filtering circuits by region * [#3456](https://github.com/netbox-community/netbox/issues/3456) - Enable bulk editing of tag color 2019-09-04T20:28:20+00:00 netbox v2.6.4 netbox v2.6.4 2019-09-19T13:35:57+00:00 ## Enhancements * [#2160](https://github.com/netbox-community/netbox/issues/2160) - Add bulk editing for interface VLAN assignment * [#3027](https://github.com/netbox-community/netbox/issues/3028) - Add `local_context_data` boolean filter for devices * [#3318](https://github.com/netbox-community/netbox/issues/3318) - Increase length of platform name and slug to 100 characters * [#3341](https://github.com/netbox-community/netbox/issues/3341) - Enable inline VLAN assignment while editing an interface * [#3485](https://github.com/netbox-community/netbox/issues/3485) - Enable embedded graphs for devices * [#3510](https://github.com/netbox-community/netbox/issues/3510) - Add minimum/maximum prefix length enforcement for `IPNetworkVar` ## Bug Fixes * [#3489](https://github.com/netbox-community/netbox/issues/3489) - Prevent exception triggered by webhook upon object deletion * [#3501](https://github.com/netbox-community/netbox/issues/3501) - Fix rendering of checkboxes on custom script forms * [#3511](https://github.com/netbox-community/netbox/issues/3511) - Correct API URL for nested device bays * [#3513](https://github.com/netbox-community/netbox/issues/3513) - Fix assignment of tags when creating front/rear ports * [#3514](https://github.com/netbox-community/netbox/issues/3514) - Label TextVar fields when rendering custom script forms 2019-09-19T13:35:57+00:00 netbox v2.6.5 netbox v2.6.5 2019-09-25T17:28:56+00:00 ## Enhancements * [#3297](https://github.com/netbox-community/netbox/issues/3297) - Include reserved units when calculating rack utilization * [#3347](https://github.com/netbox-community/netbox/issues/3347) - Extend upgrade script to automatically remove stale content types * [#3352](https://github.com/netbox-community/netbox/issues/3352) - Enable filtering changelog API by `changed_object_id` * [#3515](https://github.com/netbox-community/netbox/issues/3515) - Enable export templates for inventory items * [#3524](https://github.com/netbox-community/netbox/issues/3524) - Enable bulk editing of power outlet/power port associations * [#3529](https://github.com/netbox-community/netbox/issues/3529) - Enable filtering circuits list by region ## Bug Fixes * [#3435](https://github.com/netbox-community/netbox/issues/3435) - Change IP/prefix CSV export to reference VRF name instead of RD * [#3464](https://github.com/netbox-community/netbox/issues/3464) - Fix foreground text color on color picker fields * [#3519](https://github.com/netbox-community/netbox/issues/3519) - Prevent cables from being terminated to virtual/wireless interfaces via API * [#3521](https://github.com/netbox-community/netbox/issues/3521) - Fix error in `parseURL` related to variables in API URL * [#3531](https://github.com/netbox-community/netbox/issues/3531) - Fixed rack role foreground color * [#3534](https://github.com/netbox-community/netbox/issues/3534) - Added blank option for untagged VLANs * [#3540](https://github.com/netbox-community/netbox/issues/3540) - Fixed virtual machine interface edit with new inline vlan edit fields * [#3543](https://github.com/netbox-community/netbox/issues/3543) - Added inline VLAN editing to virtual machine interfaces 2019-09-25T17:28:56+00:00 netbox v2.6.6 netbox v2.6.6 2019-10-10T16:42:07+00:00 ## Notes * This release includes a migration which automatically updates all existing cables to enable filtering by site/rack (see [#3259](https://github.com/netbox-community/netbox/issues/3259)). This migration may take several minutes to complete on installations with tens of thousands of cables defined. ## Enhancements * [#1941](https://github.com/netbox-community/netbox/issues/1941) - Add InfiniBand interface types * [#3259](https://github.com/netbox-community/netbox/issues/3259) - Add `rack` and `site` filters for cables * [#3471](https://github.com/netbox-community/netbox/issues/3471) - Disallow raw HTML in Markdown-rendered fields * [#3545](https://github.com/netbox-community/netbox/issues/3545) - Add `MultiObjectVar` for custom scripts * [#3563](https://github.com/netbox-community/netbox/issues/3563) - Enable editing of individual DeviceType components * [#3580](https://github.com/netbox-community/netbox/issues/3580) - Render text and URL fields as textareas in the custom link form * [#3581](https://github.com/netbox-community/netbox/issues/3581) - Introduce `commit_default` custom script attribute to not commit changes by default ## Bug Fixes * [#3458](https://github.com/netbox-community/netbox/issues/3458) - Prevent primary IP address for a device/VM from being reassigned * [#3463](https://github.com/netbox-community/netbox/issues/3463) - Correct CSV headers for exported power feeds * [#3474](https://github.com/netbox-community/netbox/issues/3474) - Fix device status page loading when NAPALM call fails * [#3571](https://github.com/netbox-community/netbox/issues/3571) - Prevent erroneous redirects when editing tags * [#3573](https://github.com/netbox-community/netbox/issues/3573) - Ensure consistent display of changelog retention period * [#3574](https://github.com/netbox-community/netbox/issues/3574) - Change `device` to `parent` in interface editing VLAN filtering logic * [#3575](https://github.com/netbox-community/netbox/issues/3575) - Restore label for comments field when bulk editing circuits * [#3582](https://github.com/netbox-community/netbox/issues/3582) - Enforce view permissions on global search results * [#3588](https://github.com/netbox-community/netbox/issues/3588) - Enforce object-form JSON for local context data on devices and VMs 2019-10-10T16:42:07+00:00 netbox v2.6.7 netbox v2.6.7 2019-11-01T19:49:23+00:00 ## Enhancements * [#3445](https://github.com/netbox-community/netbox/issues/3445) - Add support for additional user defined headers to be added to webhook requests * [#3499](https://github.com/netbox-community/netbox/issues/3499) - Add `ca_file_path` to Webhook model to support user supplied CA certificate verification of webhook requests * [#3594](https://github.com/netbox-community/netbox/issues/3594) - Add ChoiceVar for custom scripts * [#3619](https://github.com/netbox-community/netbox/issues/3619) - Add 400GE OSFP interface type * [#3659](https://github.com/netbox-community/netbox/issues/3659) - Add filtering for objects in admin UI ## Bug Fixes * [#3309](https://github.com/netbox-community/netbox/issues/3309) - Rewrite change logging middleware to resolve sporadic testing failures * [#3340](https://github.com/netbox-community/netbox/issues/3340) - Add missing options to connect front ports to console ports * [#3357](https://github.com/netbox-community/netbox/issues/3357) - Enable filter sites/devices/VMs by null region * [#3460](https://github.com/netbox-community/netbox/issues/3460) - Extend upgrade script to validate Python dependencies * [#3596](https://github.com/netbox-community/netbox/issues/3596) - Prevent server error when reassigning a device to a new device bay * [#3629](https://github.com/netbox-community/netbox/issues/3629) - Use `get_lldp_neighors_detail` to validate LLDP neighbors * [#3635](https://github.com/netbox-community/netbox/issues/3635) - Add missing cache support for the circuits app * [#3636](https://github.com/netbox-community/netbox/issues/3636) - Add missing `rack_group` field to PowerFeed CSV export * [#3652](https://github.com/netbox-community/netbox/issues/3652) - Limit next/previous rack by assigned rack group 2019-11-01T19:49:23+00:00 netbox v2.6.8 netbox v2.6.8 2019-12-10T15:48:44+00:00 ## Enhancements * [#3139](https://github.com/netbox-community/netbox/issues/3139) - Disable password change form for LDAP-authenticated users * [#3457](https://github.com/netbox-community/netbox/issues/3457) - Display cable colors on device view * [#3329](https://github.com/netbox-community/netbox/issues/3329) - Remove obsolete P3P policy header * [#3663](https://github.com/netbox-community/netbox/issues/3663) - Add query filters for `created` and `last_updated` fields * [#3722](https://github.com/netbox-community/netbox/issues/3722) - Allow the underscore character in IPAddress DNS names ## Bug Fixes * [#3312](https://github.com/netbox-community/netbox/issues/3312) - Fix validation error when editing power cables in bulk * [#3644](https://github.com/netbox-community/netbox/issues/3644) - Fix exception when connecting a cable to a RearPort with no corresponding FrontPort * [#3669](https://github.com/netbox-community/netbox/issues/3669) - Include `weight` field in prefix/VLAN role form * [#3674](https://github.com/netbox-community/netbox/issues/3674) - Include comments on PowerFeed view * [#3679](https://github.com/netbox-community/netbox/issues/3679) - Fix link for assigned ipaddress in interface page * [#3709](https://github.com/netbox-community/netbox/issues/3709) - Prevent exception when importing an invalid cable definition * [#3720](https://github.com/netbox-community/netbox/issues/3720) - Correctly indicate power feed terminations on cable list * [#3724](https://github.com/netbox-community/netbox/issues/3724) - Fix API filtering of interfaces by more than one device name * [#3725](https://github.com/netbox-community/netbox/issues/3725) - Enforce client validation for minimum service port number 2019-12-10T15:48:44+00:00 netbox v2.7-beta1 netbox v2.7-beta1 2019-12-12T19:41:02+00:00 **WARNING:** This is a beta release of NetBox intended for development use only. **Do not** rely on it for production use. A migration path forward to a stable release **will not** be provided. Expect to ultimately lose any data input into this instance. **Note:** NetBox v2.7 is the last major release that will support Python 3.5. Beginning with NetBox v2.8, Python 3.6 or higher will be required. ## New Features ### Enhanced Device Type Import ([#451](https://github.com/netbox-community/netbox/issues/451)) NetBox now supports the import of device types and related component templates using a definition written in YAML or JSON. For example, the following will create a new device type with four network interfaces, two power ports, and a console port: ```yaml manufacturer: Acme model: Packet Shooter 9000 slug: packet-shooter-9000 u_height: 1 interfaces: - name: ge-0/0/0 type: 1000base-t - name: ge-0/0/1 type: 1000base-t - name: ge-0/0/2 type: 1000base-t - name: ge-0/0/3 type: 1000base-t power-ports: - name: PSU0 - name: PSU1 console-ports: - name: Console ``` This new functionality replaces the existing CSV-based import form, which did not allow for component template import. ### Bulk Import of Device Components ([#822](https://github.com/netbox-community/netbox/issues/822)) NetBox now supports the bulk import of device components such as console ports, power ports, and interfaces across multiple devices. Device components can be imported in CSV-format. Here's an example bulk import of interfaces to several devices: ``` device,name,type Switch1,Vlan100,Virtual Switch1,Vlan200,Virtual Switch2,Vlan100,Virtual Switch2,Vlan200,Virtual ``` ### External File Storage ([#1814](https://github.com/netbox-community/netbox/issues/1814)) In prior releases, the only option for storing uploaded files (e.g. image attachments) was to save them to the local filesystem on the NetBox server. This release introduces support for several remote storage backends provided by the [`django-storages`](https://django-storages.readthedocs.io/en/stable/) library. These include: * Amazon S3 * ApacheLibcloud * Azure Storage * DigitalOcean Spaces * Dropbox * FTP * Google Cloud Storage * SFTP To enable remote file storage, first install `django-storages`: ``` pip install django-storages ``` Then, set the appropriate storage backend and its configuration in `configuration.py`. Here's an example using Amazon S3: ```python STORAGE_BACKEND = 'storages.backends.s3boto3.S3Boto3Storage' STORAGE_CONFIG = { 'AWS_ACCESS_KEY_ID': '<Key>', 'AWS_SECRET_ACCESS_KEY': '<Secret>', 'AWS_STORAGE_BUCKET_NAME': 'netbox', 'AWS_S3_REGION_NAME': 'eu-west-1', } ``` Thanks to [@steffann](https://github.com/steffann) for contributing this work! ## Changes ### Rack Elevations Rendered via SVG ([#2248](https://github.com/netbox-community/netbox/issues/2248)) NetBox v2.7 introduces a new method of rendering rack elevations as an [SVG](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) via a REST API endpoint. This replaces the prior method of rendering elevations using pure HTML which was cumbersome and had several shortcomings. Allowing elevations to be rendered as an SVG image in the API allows users to retrieve and make use of the drawings in their own tooling. This also opens the door to other feature requests related to rack elevations in the NetBox backlog. This feature implements a new REST API endpoint: ``` /api/dcim/racks/<id>/elevation/ ``` By default, this endpoint returns a paginated JSON response representing each rack unit in the given elevation. This is the same response returned by the rack units detail endpoint and for this reason the rack units endpoint has been deprecated and will be removed in v2.8 (see [#3753](https://github.com/netbox-community/netbox/issues/3753)): ``` /api/dcim/racks/<id>/units/ ``` In order to render the elevation as an SVG, include the `render=svg` query parameter in the request. You may also control the width of the elevation drawing in pixels with `unit_width=<width in pixels>` and the height of each rack unit with `unit_height=<height in pixels>`. The `unit_width` defaults to `230` and the `unit_height` default to `20` which produces elevations the same size as those that appear in the NetBox Web UI. The query parameter `face` is used to request either the `front` or `rear` of the elevation and defaults to `front`. Here is an example of the request url for an SVG rendering using the default parameters to render the front of the elevation: ``` /api/dcim/racks/<id>/elevation/?render=svg ``` Here is an example of the request url for an SVG rendering of the rear of the elevation having a width of 300 pixels and per unit height of 35 pixels: ``` /api/dcim/racks/<id>/elevation/?render=svg&face=rear&unit_width=300&unit_height=35 ``` Thanks to [@hellerve](https://github.com/hellerve) for doing the heavy lifting on this! ### Topology Maps Removed ([#2745](https://github.com/netbox-community/netbox/issues/2745)) The topology maps feature has been removed to help focus NetBox development efforts. ### Redis Configuration ([#3282](https://github.com/netbox-community/netbox/issues/3282)) v2.6.0 introduced caching and added the `CACHE_DATABASE` option to the existing `REDIS` database configuration section. This did not however, allow for using two different Redis connections for the seperate caching and webhooks features. This change separates the Redis connection configurations in the `REDIS` section into distinct `webhooks` and `caching` subsections. This requires modification of the `REDIS` section of the `configuration.py` file as follows: Old Redis configuration: ```python REDIS = { 'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 0, 'CACHE_DATABASE': 1, 'DEFAULT_TIMEOUT': 300, 'SSL': False, } ``` New Redis configuration: ```python REDIS = { 'webhooks': { 'HOST': 'redis.example.com', 'PORT': 1234, 'PASSWORD': 'foobar', 'DATABASE': 0, 'DEFAULT_TIMEOUT': 300, 'SSL': False, }, 'caching': { 'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 1, 'DEFAULT_TIMEOUT': 300, 'SSL': False, } } ``` Note that `CACHE_DATABASE` has been removed and the connection settings have been duplicated for both `webhooks` and `caching`. This allows the user to make use of separate Redis instances and/or databases if desired. Full connection details are required in both sections, even if they are the same. ### WEBHOOKS_ENABLED Configuration Setting Removed ([#3408](https://github.com/netbox-community/netbox/issues/3408)) As `django-rq` is now a required library, NetBox assumes that the RQ worker process is running. The installation and upgrade documentation has been updated to reflect this, and the `WEBHOOKS_ENABLED` configuration parameter is no longer used. Please ensure that both the NetBox WSGI service and the RQ worker process are running on all production installations. ### API Choice Fields Now Use String Values ([#3569](https://github.com/netbox-community/netbox/issues/3569)) NetBox's REST API presents fields which reference a particular choice as a dictionary with two keys: `value` and `label`. In previous versions, `value` was an integer which represented the particular choice in the database. This has been changed to a more human-friendly "slug" string, which is essentially a simplified version of the choice's `label`. For example, The site status field was previously represented as: ```json "status": { "value": 1, "label": "Active" }, ``` Beginning with v2.7.0, it now looks like this: ```json "status": { "value": "active", "label": "Active" }, ``` This change allows for much more intuitive representation of values, and obviates the need for API consumers to maintain a mapping of static integer values. Note that that all v2.7 releases will continue to accept the legacy integer values in write requests (POST, PUT, and PATCH) to maintain backward compatibility. This behavior will be discontinued beginning in v2.8.0. ## Enhancements * [#33](https://github.com/digitalocean/netbox/issues/33) - Add ability to clone objects (pre-populate form fields) * [#648](https://github.com/digitalocean/netbox/issues/648) - Pre-populate forms when selecting "create and add another" * [#792](https://github.com/digitalocean/netbox/issues/792) - Add power port and power outlet types * [#1865](https://github.com/digitalocean/netbox/issues/1865) - Add console port and console server port types * [#2669](https://github.com/digitalocean/netbox/issues/2669) - Relax uniqueness constraint on device and VM names * [#2902](https://github.com/digitalocean/netbox/issues/2902) - Replace `supervisord` with `systemd` * [#3455](https://github.com/digitalocean/netbox/issues/3455) - Add tenant assignment to cluster * [#3564](https://github.com/digitalocean/netbox/issues/3564) - Add list views for device components * [#3538](https://github.com/digitalocean/netbox/issues/3538) - Introduce a REST API endpoint for executing custom scripts * [#3655](https://github.com/digitalocean/netbox/issues/3655) - Add `description` field to organizational models * [#3664](https://github.com/digitalocean/netbox/issues/3664) - Enable applying configuration contexts by tags * [#3706](https://github.com/digitalocean/netbox/issues/3706) - Increase `available_power` maximum value on PowerFeed * [#3731](https://github.com/digitalocean/netbox/issues/3731) - Change Graph.type to a ContentType foreign key field ## API Changes * Choice fields now use human-friendly strings for their values instead of integers (see [#3569](https://github.com/netbox-community/netbox/issues/3569)). * Introduced `/api/extras/scripts/` endpoint for retrieving and executing custom scripts * circuits.CircuitType: Added field `description` * dcim.ConsolePort: Added field `type` * dcim.ConsolePortTemplate: Added field `type` * dcim.ConsoleServerPort: Added field `type` * dcim.ConsoleServerPortTemplate: Added field `type` * dcim.DeviceRole: Added field `description` * dcim.PowerPort: Added field `type` * dcim.PowerPortTemplate: Added field `type` * dcim.PowerOutlet: Added field `type` * dcim.PowerOutletTemplate: Added field `type` * dcim.RackRole: Added field `description` * extras.Graph: The `type` field has been changed to a content type foreign key. Models are specified as `<app>.<model>`; e.g. `dcim.site`. * ipam.Role: Added field `description` * secrets.SecretRole: Added field `description` * virtualization.Cluster: Added field `tenant` 2019-12-12T19:41:02+00:00 netbox v2.6.9 netbox v2.6.9 2019-12-16T21:32:56+00:00 ## Enhancements * [#3152](https://github.com/netbox-community/netbox/issues/3152) - Include direct link to rack elevations on site view * [#3441](https://github.com/netbox-community/netbox/issues/3441) - Move virtual machine results near devices in global search * [#3761](https://github.com/netbox-community/netbox/issues/3761) - Added copy button for API tokens ## Bug Fixes * [#2170](https://github.com/netbox-community/netbox/issues/2170) - Prevent the deletion of a virtual chassis when a cross-member LAG is present * [#2358](https://github.com/netbox-community/netbox/issues/2358) - Respect custom field default values when creating objects via the REST API * [#3749](https://github.com/netbox-community/netbox/issues/3749) - Fix exception on password change page for local users * [#3757](https://github.com/netbox-community/netbox/issues/3757) - Fix unable to assign IP to interface 2019-12-16T21:32:56+00:00 netbox v2.6.10 netbox v2.6.10 2020-01-02T22:07:01+00:00 ## Enhancements * [#2233](https://github.com/netbox-community/netbox/issues/2233) - Add ability to move inventory items between devices * [#2892](https://github.com/netbox-community/netbox/issues/2892) - Extend admin UI to allow deleting old report results * [#3062](https://github.com/netbox-community/netbox/issues/3062) - Add `assigned_to_interface` filter for IP addresses * [#3461](https://github.com/netbox-community/netbox/issues/3461) - Fail gracefully on custom link rendering exception * [#3705](https://github.com/netbox-community/netbox/issues/3705) - Provide request context when executing custom scripts * [#3762](https://github.com/netbox-community/netbox/issues/3762) - Add date/time picker widgets * [#3788](https://github.com/netbox-community/netbox/issues/3788) - Enable partial search for inventory items * [#3812](https://github.com/netbox-community/netbox/issues/3812) - Optimize size of pages containing a dynamic selection field * [#3827](https://github.com/netbox-community/netbox/issues/3827) - Allow filtering console/power/interface connections by device ID ## Bug Fixes * [#3106](https://github.com/netbox-community/netbox/issues/3106) - Restrict queryset of chained fields when form validation fails * [#3695](https://github.com/netbox-community/netbox/issues/3695) - Include A/Z termination sites for circuits in global search * [#3712](https://github.com/netbox-community/netbox/issues/3712) - Scrolling to target (hash) did not account for the header size * [#3780](https://github.com/netbox-community/netbox/issues/3780) - Fix AttributeError exception in API docs * [#3809](https://github.com/netbox-community/netbox/issues/3809) - Filter platform by manufacturer when editing devices * [#3811](https://github.com/netbox-community/netbox/issues/3811) - Fix filtering of racks by group on device list * [#3822](https://github.com/netbox-community/netbox/issues/3822) - Fix exception when editing a device bay (regression from #3596) 2020-01-02T22:07:01+00:00 netbox v2.6.11 netbox v2.6.11 2020-01-03T19:00:49+00:00 ## Bug Fixes * [#3831](https://github.com/netbox-community/netbox/issues/3831) - Fix API-driven filter field rendering (#3812 regression) * [#3833](https://github.com/netbox-community/netbox/issues/3833) - Add missing region filters for multiple objects 2020-01-03T19:00:49+00:00 netbox v2.6.12 netbox v2.6.12 2020-01-13T18:26:11+00:00 ## Enhancements * [#1982](https://github.com/netbox-community/netbox/issues/1982) - Improved NAPALM method documentation in Swagger (OpenAPI) * [#2050](https://github.com/netbox-community/netbox/issues/2050) - Preview image attachments when hovering over the link * [#2113](https://github.com/netbox-community/netbox/issues/2113) - Allow NAPALM driver settings to be changed with request headers * [#2598](https://github.com/netbox-community/netbox/issues/2598) - Toggle the display of child prefixes/IP addresses * [#3009](https://github.com/netbox-community/netbox/issues/3009) - Search by description when assigning IP address to interfaces * [#3021](https://github.com/netbox-community/netbox/issues/3021) - Add `tenant` filter field for cables * [#3090](https://github.com/netbox-community/netbox/issues/3090) - Enable filtering of interfaces by name on the device view * [#3187](https://github.com/netbox-community/netbox/issues/3187) - Add rack selection field to rack elevations view * [#3393](https://github.com/netbox-community/netbox/issues/3393) - Paginate assigned circuits at the provider details view * [#3440](https://github.com/netbox-community/netbox/issues/3440) - Add total path length to cable trace * [#3491](https://github.com/netbox-community/netbox/issues/3491) - Include content of response on webhook error * [#3623](https://github.com/netbox-community/netbox/issues/3623) - Enable word expansion during interface creation * [#3668](https://github.com/netbox-community/netbox/issues/3668) - Enable searching by DNS name when assigning IP address * [#3851](https://github.com/netbox-community/netbox/issues/3851) - Allow passing initial data to custom script forms * [#3891](https://github.com/netbox-community/netbox/issues/3891) - Add `local_context_data` filter for virtual machines ## Bug Fixes * [#3589](https://github.com/netbox-community/netbox/issues/3589) - Fix validation on tagged VLANs of an interface * [#3849](https://github.com/netbox-community/netbox/issues/3849) - Fix ordering of models when dumping data to JSON * [#3853](https://github.com/netbox-community/netbox/issues/3853) - Fix device role link on config context view * [#3856](https://github.com/netbox-community/netbox/issues/3856) - Allow filtering VM interfaces by multiple MAC addresses * [#3857](https://github.com/netbox-community/netbox/issues/3857) - Fix rendering of grouped custom links * [#3862](https://github.com/netbox-community/netbox/issues/3862) - Allow filtering device components by multiple device names * [#3864](https://github.com/netbox-community/netbox/issues/3864) - Disallow /0 masks for prefixes and IP addresses * [#3872](https://github.com/netbox-community/netbox/issues/3872) - Paginate related IPs on the IP address view * [#3876](https://github.com/netbox-community/netbox/issues/3876) - Fix minimum/maximum value rendering for site ASN field * [#3882](https://github.com/netbox-community/netbox/issues/3882) - Fix filtering of devices by rack group * [#3898](https://github.com/netbox-community/netbox/issues/3898) - Fix references to deleted cables without a label * [#3905](https://github.com/netbox-community/netbox/issues/3905) - Fix divide-by-zero on power feeds with low power values 2020-01-13T18:26:11+00:00 netbox v2.7.0 netbox v2.7.0 2020-01-16T18:08:39+00:00 **Note:** This release completely removes the topology map feature ([#2745](https://github.com/netbox-community/netbox/issues/2745)). **Note:** NetBox v2.7 is the last major release that will support Python 3.5. Beginning with NetBox v2.8, Python 3.6 or higher will be required. ## New Features ### Enhanced Device Type Import ([#451](https://github.com/netbox-community/netbox/issues/451)) NetBox now supports the import of device types and related component templates using definitions written in YAML or JSON. For example, the following will create a new device type with four network interfaces, two power ports, and a console port: ```yaml manufacturer: Acme model: Packet Shooter 9000 slug: packet-shooter-9000 u_height: 1 interfaces: - name: ge-0/0/0 type: 1000base-t - name: ge-0/0/1 type: 1000base-t - name: ge-0/0/2 type: 1000base-t - name: ge-0/0/3 type: 1000base-t power-ports: - name: PSU0 - name: PSU1 console-ports: - name: Console ``` This new functionality replaces the old CSV-based import form, which did not allow for bulk import of component templates. ### Bulk Import of Device Components ([#822](https://github.com/netbox-community/netbox/issues/822)) Device components such as console ports, power ports, and interfaces can now be imported in bulk to multiple devices in CSV format. Here's an example showing the bulk import of interfaces to several devices: ``` device,name,type Switch1,Vlan100,Virtual Switch1,Vlan200,Virtual Switch2,Vlan100,Virtual Switch2,Vlan200,Virtual ``` The import form for each type of device component is available under the "Devices" item in the navigation menu. ### External File Storage ([#1814](https://github.com/netbox-community/netbox/issues/1814)) In prior releases, the only option for storing uploaded files (e.g. image attachments) was to save them to the local filesystem on the NetBox server. This release introduces support for several remote storage backends provided by the [`django-storages`](https://django-storages.readthedocs.io/en/stable/) library. These include: * Amazon S3 * ApacheLibcloud * Azure Storage * netbox-community Spaces * Dropbox * FTP * Google Cloud Storage * SFTP To enable remote file storage, first install the `django-storages` package: ``` pip install django-storages ``` Then, set the appropriate storage backend and its configuration in `configuration.py`. Here's an example using Amazon S3: ```python STORAGE_BACKEND = 'storages.backends.s3boto3.S3Boto3Storage' STORAGE_CONFIG = { 'AWS_ACCESS_KEY_ID': '<Key>', 'AWS_SECRET_ACCESS_KEY': '<Secret>', 'AWS_STORAGE_BUCKET_NAME': 'netbox', 'AWS_S3_REGION_NAME': 'eu-west-1', } ``` Thanks to [@steffann](https://github.com/steffann) for contributing this work! ### Rack Elevations Rendered via SVG ([#2248](https://github.com/netbox-community/netbox/issues/2248)) NetBox v2.7 introduces a new method of rendering rack elevations as an [SVG image](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics) via a REST API endpoint. This replaces the prior method of rendering elevations using pure HTML and CSS, which was cumbersome and had several shortcomings. Rendering rack elevations as SVG images via the REST API allows users to retrieve and make use of the drawings in their own tooling. This also opens the door to other feature requests related to rack elevations in the NetBox backlog. This feature implements a new REST API endpoint: ``` /api/dcim/racks/<id>/elevation/ ``` By default, this endpoint returns a paginated JSON response representing each rack unit in the given elevation. This is the same response returned by the existing rack units detail endpoint at `/api/dcim/racks/<id>/units/`, which will be removed in v2.8 (see [#3753](https://github.com/netbox-community/netbox/issues/3753)). To render the elevation as an SVG image, include the `render=svg` query parameter in the request. You may also control the width and height of the elevation drawing (in pixels) by passing the `unit_width` and `unit_height` parameters. (The default values for these parameters are 230 and 20, respectively.) Additionally, the `face` parameter may be used to request either the `front` or `rear` of the elevation. Below is in example request: ``` /api/dcim/racks/<id>/elevation/?render=svg&face=rear&unit_width=300&unit_height=35 ``` Thanks to [@hellerve](https://github.com/hellerve) for doing the heavy lifting on this! ## Changes ### Topology Maps Removed ([#2745](https://github.com/netbox-community/netbox/issues/2745)) The topology maps feature has been removed to help focus NetBox development efforts. Please replicate any required data to another source before upgrading NetBox to v2.7, as any existing topology maps will be deleted. ### Supervisor Replaced with systemd ([#2902](https://github.com/netbox-community/netbox/issues/2902)) The NetBox [installation documentation](https://netbox.readthedocs.io/en/stable/installation/) has been updated to provide instructions for managing the WSGI and RQ services using systemd instead of supervisor. This removes the need to install supervisor and simplifies administration of the processes. ### Redis Configuration ([#3282](https://github.com/netbox-community/netbox/issues/3282)) NetBox v2.6 introduced request caching and added the `CACHE_DATABASE` option to the existing `REDIS` database configuration parameter. This did not, however, allow for using two different Redis connections for the separate caching and webhook queuing functions. This release modifies the `REDIS` parameter to accept two discrete subsections named `webhooks` and `caching`. This requires modification of the `REDIS` parameter in `configuration.py` as follows: Old Redis configuration: ```python REDIS = { 'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 0, 'CACHE_DATABASE': 1, 'DEFAULT_TIMEOUT': 300, 'SSL': False, } ``` New Redis configuration: ```python REDIS = { 'webhooks': { 'HOST': 'redis.example.com', 'PORT': 1234, 'PASSWORD': 'foobar', 'DATABASE': 0, 'DEFAULT_TIMEOUT': 300, 'SSL': False, }, 'caching': { 'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 1, 'DEFAULT_TIMEOUT': 300, 'SSL': False, } } ``` Note that the `CACHE_DATABASE` parameter has been removed and the connection settings have been duplicated for both `webhooks` and `caching`. This allows the user to make use of separate Redis instances if desired. It is fine to use the same Redis service for both functions, although the database identifiers should be different. ### WEBHOOKS_ENABLED Configuration Setting Removed ([#3408](https://github.com/netbox-community/netbox/issues/3408)) As `django-rq` is now a required library, NetBox assumes that the RQ worker process is running. The installation and upgrade documentation has been updated to reflect this, and the `WEBHOOKS_ENABLED` configuration parameter is no longer used. Please ensure that both the NetBox WSGI service and the RQ worker process are running on all production installations. ### API Choice Fields Now Use String Values ([#3569](https://github.com/netbox-community/netbox/issues/3569)) NetBox's REST API presents fields which reference a particular choice as a dictionary with two keys: `value` and `label`. In previous versions, `value` was an integer which represented a particular choice in the database. This has been changed to a more human-friendly "slug" string, which is essentially a simplified version of the choice's `label`. For example, The site model's `status` field was previously represented as: ```json "status": { "value": 1, "label": "Active" }, ``` In NetBox v2.7, it now looks like this: ```json "status": { "value": "active", "label": "Active", "id": 1 }, ``` This change allows for much more intuitive representation and manipulation of values, and removes the need for API consumers to maintain local mappings of static integer values. Note that that all v2.7 releases will continue to accept the legacy integer values in write requests (`POST`, `PUT`, and `PATCH`) to maintain backward compatibility. Additionally, the legacy numeric identifier is conveyed in the `id` field for convenient reference as consumers adopt to the new string values. This behavior will be discontinued in NetBox v2.8. ## Enhancements * [#33](https://github.com/netbox-community/netbox/issues/33) - Add ability to clone objects (pre-populate form fields) * [#648](https://github.com/netbox-community/netbox/issues/648) - Pre-populate form fields when selecting "create and add another" * [#792](https://github.com/netbox-community/netbox/issues/792) - Add power port and power outlet types * [#1865](https://github.com/netbox-community/netbox/issues/1865) - Add console port and console server port types * [#2669](https://github.com/netbox-community/netbox/issues/2669) - Relax uniqueness constraint on device and VM names * [#2902](https://github.com/netbox-community/netbox/issues/2902) - Replace `supervisord` with `systemd` * [#3455](https://github.com/netbox-community/netbox/issues/3455) - Add tenant assignment to virtual machine clusters * [#3520](https://github.com/netbox-community/netbox/issues/3520) - Add Jinja2 template support for graphs * [#3525](https://github.com/netbox-community/netbox/issues/3525) - Enable IP address filtering using multiple address parameters * [#3564](https://github.com/netbox-community/netbox/issues/3564) - Add list views for all device components * [#3538](https://github.com/netbox-community/netbox/issues/3538) - Introduce a REST API endpoint for executing custom scripts * [#3655](https://github.com/netbox-community/netbox/issues/3655) - Add `description` field to organizational models * [#3664](https://github.com/netbox-community/netbox/issues/3664) - Enable applying configuration contexts by tags * [#3706](https://github.com/netbox-community/netbox/issues/3706) - Increase `available_power` maximum value on PowerFeed * [#3731](https://github.com/netbox-community/netbox/issues/3731) - Change Graph.type to a ContentType foreign key field * [#3801](https://github.com/netbox-community/netbox/issues/3801) - Use YAML for export of device types ## Bug Fixes * [#3830](https://github.com/netbox-community/netbox/issues/3830) - Ensure deterministic ordering for all models * [#3900](https://github.com/netbox-community/netbox/issues/3900) - Fix exception when deleting device types * [#3914](https://github.com/netbox-community/netbox/issues/3914) - Fix interface filter field when unauthenticated * [#3919](https://github.com/netbox-community/netbox/issues/3919) - Fix utilization graph extending out of bounds when utilization > 100% * [#3927](https://github.com/netbox-community/netbox/issues/3927) - Fix exception when deleting devices with secrets assigned * [#3930](https://github.com/netbox-community/netbox/issues/3930) - Fix API rendering of the `family` field for aggregates ## Bug Fixes (From Beta) * [#3868](https://github.com/netbox-community/netbox/issues/3868) - Fix creation of interfaces for virtual machines * [#3878](https://github.com/netbox-community/netbox/issues/3878) - Fix database migration for cable status field ## API Changes * Choice fields now use human-friendly strings for their values instead of integers (see [#3569](https://github.com/netbox-community/netbox/issues/3569)). * Introduced the `/api/extras/scripts/` endpoint for retrieving and executing custom scripts * circuits.CircuitType: Added field `description` * dcim.ConsolePort: Added field `type` * dcim.ConsolePortTemplate: Added field `type` * dcim.ConsoleServerPort: Added field `type` * dcim.ConsoleServerPortTemplate: Added field `type` * dcim.DeviceRole: Added field `description` * dcim.PowerPort: Added field `type` * dcim.PowerPortTemplate: Added field `type` * dcim.PowerOutlet: Added field `type` * dcim.PowerOutletTemplate: Added field `type` * dcim.RackRole: Added field `description` * extras.Graph: Added field `template_language` (to indicate `django` or `jinja2`) * extras.Graph: The `type` field has been changed to a content type foreign key. Models are specified as `<app>.<model>`; e.g. `dcim.site`. * ipam.Role: Added field `description` * secrets.SecretRole: Added field `description` * virtualization.Cluster: Added field `tenant` 2020-01-16T18:08:39+00:00 netbox v2.7.1 netbox v2.7.1 2020-01-17T04:47:05+00:00 ## Bug Fixes * [#3941](https://github.com/netbox-community/netbox/issues/3941) - Fixed exception when attempting to assign IP to interface * [#3943](https://github.com/netbox-community/netbox/issues/3943) - Prevent rack elevation links from opening new tabs/windows * [#3944](https://github.com/netbox-community/netbox/issues/3944) - Fix AttributeError exception when viewing prefixes list 2020-01-17T04:47:05+00:00 netbox v2.7.2 netbox v2.7.2 2020-01-21T20:13:21+00:00 ## Enhancements * [#3135](https://github.com/netbox-community/netbox/issues/3135) - Documented power modelling * [#3842](https://github.com/netbox-community/netbox/issues/3842) - Add 802.11ax interface type * [#3954](https://github.com/netbox-community/netbox/issues/3954) - Add `device_bays` filter for devices and device types ## Bug Fixes * [#3721](https://github.com/netbox-community/netbox/issues/3721) - Allow Unicode characters in tag slugs * [#3923](https://github.com/netbox-community/netbox/issues/3923) - Indicate validation failure when using SSH-style RSA keys * [#3951](https://github.com/netbox-community/netbox/issues/3951) - Fix exception in webhook worker due to missing constant * [#3953](https://github.com/netbox-community/netbox/issues/3953) - Fix validation error when creating child devices * [#3960](https://github.com/netbox-community/netbox/issues/3960) - Fix legacy device status choice * [#3962](https://github.com/netbox-community/netbox/issues/3962) - Fix display of unnamed devices in rack elevations * [#3963](https://github.com/netbox-community/netbox/issues/3963) - Restore tooltip for devices in rack elevations * [#3964](https://github.com/netbox-community/netbox/issues/3964) - Show borders around devices in rack elevations * [#3965](https://github.com/netbox-community/netbox/issues/3965) - Indicate the presence of "background" devices in rack elevations * [#3966](https://github.com/netbox-community/netbox/issues/3966) - Fix filtering of device components by region/site * [#3967](https://github.com/netbox-community/netbox/issues/3967) - Resolve migration of "other" interface type 2020-01-21T20:13:21+00:00 netbox v2.7.3 netbox v2.7.3 2020-01-28T21:40:58+00:00 ## Enhancements * [#3310](https://github.com/netbox-community/netbox/issues/3310) - Pre-select site/rack for B side when creating a new cable * [#3338](https://github.com/netbox-community/netbox/issues/3338) - Include circuit terminations in API representation of circuits * [#3509](https://github.com/netbox-community/netbox/issues/3509) - Add IP address variables for custom scripts * [#3978](https://github.com/netbox-community/netbox/issues/3978) - Add VRF filtering to search NAT IP * [#4005](https://github.com/netbox-community/netbox/issues/4005) - Include timezone context in webhook timestamps ## Bug Fixes * [#3950](https://github.com/netbox-community/netbox/issues/3950) - Automatically select parent manufacturer when specifying initial device type during device creation * [#3982](https://github.com/netbox-community/netbox/issues/3982) - Restore tooltip for reservations on rack elevations * [#3983](https://github.com/netbox-community/netbox/issues/3983) - Permit the creation of multiple unnamed devices * [#3989](https://github.com/netbox-community/netbox/issues/3989) - Correct HTTP content type assignment for webhooks * [#3999](https://github.com/netbox-community/netbox/issues/3999) - Do not filter child results by null if non-required parent fields are blank * [#4008](https://github.com/netbox-community/netbox/issues/4008) - Toggle rack elevation face using front/rear strings * [#4017](https://github.com/netbox-community/netbox/issues/4017) - Remove redundant tenant field from cluster form * [#4019](https://github.com/netbox-community/netbox/issues/4019) - Restore border around background devices in rack elevations * [#4022](https://github.com/netbox-community/netbox/issues/4022) - Fix display of assigned IPs when filtering device interfaces * [#4025](https://github.com/netbox-community/netbox/issues/4025) - Correct display of cable status (various places) * [#4027](https://github.com/netbox-community/netbox/issues/4027) - Repair schema migration for #3569 to convert IP addresses with DHCP status * [#4028](https://github.com/netbox-community/netbox/issues/4028) - Correct URL patterns to match Unicode characters in tag slugs * [#4030](https://github.com/netbox-community/netbox/issues/4030) - Fix exception when setting interfaces to tagged mode in bulk * [#4033](https://github.com/netbox-community/netbox/issues/4033) - Restore missing comments field label of various bulk edit forms 2020-01-28T21:40:58+00:00 netbox v2.7.4 netbox v2.7.4 2020-02-04T20:05:21+00:00 ## Enhancements * [#568](https://github.com/netbox-community/netbox/issues/568) - Allow custom fields to be imported and exported using CSV * [#2921](https://github.com/netbox-community/netbox/issues/2921) - Replace tags filter with Select2 widget * [#3313](https://github.com/netbox-community/netbox/issues/3313) - Toggle config context display between JSON and YAML * [#3886](https://github.com/netbox-community/netbox/issues/3886) - Enable assigning config contexts by cluster and cluster group * [#4051](https://github.com/netbox-community/netbox/issues/4051) - Disable the `makemigrations` management command ## Bug Fixes * [#4030](https://github.com/netbox-community/netbox/issues/4030) - Fix exception when bulk editing interfaces (revised) * [#4043](https://github.com/netbox-community/netbox/issues/4043) - Fix toggling of required fields in custom scripts * [#4049](https://github.com/netbox-community/netbox/issues/4049) - Restore missing `tags` field in IPAM service serializer * [#4052](https://github.com/netbox-community/netbox/issues/4052) - Fix error when bulk importing interfaces to virtual machines * [#4056](https://github.com/netbox-community/netbox/issues/4056) - Repair schema migration for Rack.outer_unit (from #3569) * [#4067](https://github.com/netbox-community/netbox/issues/4067) - Correct permission checked when creating a rack (vs. editing) * [#4071](https://github.com/netbox-community/netbox/issues/4071) - Enforce "view tag" permission on individual tag view * [#4079](https://github.com/netbox-community/netbox/issues/4079) - Fix assignment of power panel when bulk editing power feeds * [#4084](https://github.com/netbox-community/netbox/issues/4084) - Fix exception when creating an interface with tagged VLANs 2020-02-04T20:05:21+00:00 netbox v2.7.5 netbox v2.7.5 2020-02-13T20:37:48+00:00 **Note:** This release includes several database schema migrations that calculate and store copies of names for certain objects to improve natural ordering performance (see [#3799](https://github.com/netbox-community/netbox/issues/3799)). These migrations may take a few minutes to run if you have a very large number of objects defined in NetBox. ## Enhancements * [#3766](https://github.com/netbox-community/netbox/issues/3766) - Allow custom script authors to specify the form widget for each variable * [#3799](https://github.com/netbox-community/netbox/issues/3799) - Greatly improve performance when ordering device components * [#3984](https://github.com/netbox-community/netbox/issues/3984) - Add support for Redis Sentinel * [#3986](https://github.com/netbox-community/netbox/issues/3986) - Include position numbers in SVG image when rendering rack elevations * [#4093](https://github.com/netbox-community/netbox/issues/4093) - Add more status choices for virtual machines * [#4100](https://github.com/netbox-community/netbox/issues/4100) - Add device filter to component list views * [#4113](https://github.com/netbox-community/netbox/issues/4113) - Add bulk edit functionality for device type components * [#4116](https://github.com/netbox-community/netbox/issues/4116) - Enable bulk edit and delete functions for device component list views * [#4129](https://github.com/netbox-community/netbox/issues/4129) - Add buttons to delete individual device type components ## Bug Fixes * [#3507](https://github.com/netbox-community/netbox/issues/3507) - Fix filtering IP addresses by multiple devices * [#3995](https://github.com/netbox-community/netbox/issues/3995) - Make dropdown menus in the navigation bar scrollable on small screens * [#4083](https://github.com/netbox-community/netbox/issues/4083) - Permit nullifying applicable choice fields via API requests * [#4089](https://github.com/netbox-community/netbox/issues/4089) - Selection of power outlet type during bulk update is optional * [#4090](https://github.com/netbox-community/netbox/issues/4090) - Render URL custom fields as links under object view * [#4091](https://github.com/netbox-community/netbox/issues/4091) - Fix filtering of objects by custom fields using UI search form * [#4099](https://github.com/netbox-community/netbox/issues/4099) - Linkify interfaces on global interfaces list * [#4108](https://github.com/netbox-community/netbox/issues/4108) - Avoid extraneous database queries when rendering search forms * [#4134](https://github.com/netbox-community/netbox/issues/4134) - Device power ports and outlets should inherit type from the parent device type * [#4137](https://github.com/netbox-community/netbox/issues/4137) - Disable occupied terminations when connecting a cable to a circuit * [#4138](https://github.com/netbox-community/netbox/issues/4138) - Restore device bay counts in rack elevation diagrams * [#4146](https://github.com/netbox-community/netbox/issues/4146) - Fix enforcement of secret role assignment for secret decryption * [#4150](https://github.com/netbox-community/netbox/issues/4150) - Correct YAML rendering of config contexts * [#4159](https://github.com/netbox-community/netbox/issues/4159) - Fix implementation of Redis caching configuration 2020-02-13T20:37:48+00:00 netbox v2.7.6 netbox v2.7.6 2020-02-14T02:51:53+00:00 ## Bug Fixes * [#4166](https://github.com/netbox-community/netbox/issues/4166) - Fix schema migrations to enforce maximum character length for naturalized fields 2020-02-14T02:51:53+00:00 netbox v2.7.7 netbox v2.7.7 2020-02-20T20:00:57+00:00 **Note:** This release fixes a bug affecting the natural ordering of interfaces. If any interfaces appear unordered in NetBox, run the following management command to recalculate their naturalized values after upgrading: ``` python3 manage.py renaturalize dcim.Interface ``` ## Enhancements * [#1529](https://github.com/netbox-community/netbox/issues/1529) - Enable display of device images in rack elevations * [#2511](https://github.com/netbox-community/netbox/issues/2511) - Compare object change to the previous change * [#3810](https://github.com/netbox-community/netbox/issues/3810) - Preserve slug value when editing existing objects * [#3840](https://github.com/netbox-community/netbox/issues/3840) - Enhance search function when selecting VLANs for interface assignment * [#4170](https://github.com/netbox-community/netbox/issues/4170) - Improve color contrast in rack elevation drawings * [#4206](https://github.com/netbox-community/netbox/issues/4206) - Add RJ-11 console port type * [#4209](https://github.com/netbox-community/netbox/issues/4209) - Enable filtering interfaces list view by enabled ## Bug Fixes * [#2519](https://github.com/netbox-community/netbox/issues/2519) - Avoid race condition when provisioning "next available" IPs/prefixes via the API * [#3967](https://github.com/netbox-community/netbox/issues/3967) - Fix missing migration for interface templates of type "other" * [#4168](https://github.com/netbox-community/netbox/issues/4168) - Role is not required when creating a virtual machine * [#4175](https://github.com/netbox-community/netbox/issues/4175) - Fix potential exception when bulk editing objects from a filtered list * [#4179](https://github.com/netbox-community/netbox/issues/4179) - Site is required when creating a rack group or power panel * [#4183](https://github.com/netbox-community/netbox/issues/4183) - Fix representation of NaturalOrderingField values in change log * [#4194](https://github.com/netbox-community/netbox/issues/4194) - Role field should not be required when searching/filtering secrets * [#4196](https://github.com/netbox-community/netbox/issues/4196) - Fix exception when viewing LLDP neighbors page * [#4202](https://github.com/netbox-community/netbox/issues/4202) - Prevent reassignment to master device when bulk editing VC member interfaces * [#4204](https://github.com/netbox-community/netbox/issues/4204) - Fix assignment of mask length when bulk editing prefixes * [#4211](https://github.com/netbox-community/netbox/issues/4211) - Include trailing text when naturalizing interface names * [#4213](https://github.com/netbox-community/netbox/issues/4213) - Restore display of tags and custom fields on power feed view 2020-02-20T20:00:57+00:00 netbox v2.7.8 netbox v2.7.8 2020-02-25T20:10:22+00:00 ## Enhancements * [#3145](https://github.com/netbox-community/netbox/issues/3145) - Add a "decommissioning" cable status * [#4173](https://github.com/netbox-community/netbox/issues/4173) - Return graceful error message when webhook queuing fails * [#4227](https://github.com/netbox-community/netbox/issues/4227) - Omit internal fields from the change log data * [#4237](https://github.com/netbox-community/netbox/issues/4237) - Support Jinja2 templating for webhook payload and headers * [#4262](https://github.com/netbox-community/netbox/issues/4262) - Extend custom scripts to pass the `commit` value via `run()` * [#4267](https://github.com/netbox-community/netbox/issues/4267) - Denote rack role on rack elevations list ## Bug Fixes * [#4221](https://github.com/netbox-community/netbox/issues/4221) - Fix exception when deleting a device with interface connections when an interfaces webhook is defined * [#4222](https://github.com/netbox-community/netbox/issues/4222) - Escape double quotes on encapsulated values during CSV export * [#4224](https://github.com/netbox-community/netbox/issues/4224) - Fix display of rear device image if front image is not defined * [#4228](https://github.com/netbox-community/netbox/issues/4228) - Improve fit of device images in rack elevations * [#4230](https://github.com/netbox-community/netbox/issues/4230) - Fix rack units filtering on elevation endpoint * [#4232](https://github.com/netbox-community/netbox/issues/4232) - Enforce consistent background striping in rack elevations * [#4235](https://github.com/netbox-community/netbox/issues/4235) - Fix API representation of `content_type` for export templates * [#4239](https://github.com/netbox-community/netbox/issues/4239) - Fix exception when selecting all filtered objects during bulk edit * [#4240](https://github.com/netbox-community/netbox/issues/4240) - Fix exception when filtering foreign keys by NULL * [#4241](https://github.com/netbox-community/netbox/issues/4241) - Correct IP address hyperlinks on interface view * [#4246](https://github.com/netbox-community/netbox/issues/4246) - Fix duplication of field attributes when multiple IPNetworkVars are present in a script * [#4252](https://github.com/netbox-community/netbox/issues/4252) - Fix power port assignment for power outlet templates created via REST API * [#4272](https://github.com/netbox-community/netbox/issues/4272) - Interface type should be required by API serializer 2020-02-25T20:10:22+00:00 netbox v2.7.9 netbox v2.7.9 2020-03-06T16:24:43+00:00 **Note:** This release will deploy a Python virtual environment on upgrade in the `venv/` directory. This will require modifying the paths to your Python and gunicorn executables in the systemd service files. For more detail, please see the [upgrade instructions](https://netbox.readthedocs.io/en/stable/installation/upgrading/). ## Enhancements * [#3949](https://github.com/netbox-community/netbox/issues/3949) - Revised the installation docs and upgrade script to employ a Python virtual environment * [#4062](https://github.com/netbox-community/netbox/issues/4062) - Enumerate ChoiceField type and value in API * [#4119](https://github.com/netbox-community/netbox/issues/4119) - Extend upgrade script to clear expired user sessions * [#4121](https://github.com/netbox-community/netbox/issues/4121) - Add dynamic lookup expressions for all filters * [#4218](https://github.com/netbox-community/netbox/issues/4218) - Allow negative voltage for DC power feeds * [#4281](https://github.com/netbox-community/netbox/issues/4281) - Allow filtering device component list views by type * [#4284](https://github.com/netbox-community/netbox/issues/4284) - Add MRJ21 port and cable types * [#4290](https://github.com/netbox-community/netbox/issues/4290) - Include device name in tooltip on rack elevations * [#4305](https://github.com/netbox-community/netbox/issues/4305) - Add 10-inch option for rack width ## Bug Fixes * [#4274](https://github.com/netbox-community/netbox/issues/4274) - Fix incorrect schema definition of `int` type choicefields * [#4277](https://github.com/netbox-community/netbox/issues/4277) - Fix filtering of clusters by tenant * [#4282](https://github.com/netbox-community/netbox/issues/4282) - Fix label on export button for device types * [#4285](https://github.com/netbox-community/netbox/issues/4285) - Include A/Z termination sites in provider circuits table * [#4295](https://github.com/netbox-community/netbox/issues/4295) - Fix assignment of parent LAG during interface bulk edit * [#4298](https://github.com/netbox-community/netbox/issues/4298) - Fix bulk creation of objects with custom fields via REST API * [#4300](https://github.com/netbox-community/netbox/issues/4300) - Pass "commit" argument when executing scripts via REST API * [#4301](https://github.com/netbox-community/netbox/issues/4301) - Fix exception when deleting device type with components * [#4306](https://github.com/netbox-community/netbox/issues/4306) - Fix toggling of device images for all racks in elevations view 2020-03-06T16:24:43+00:00 netbox v2.7.10 netbox v2.7.10 2020-03-10T18:00:51+00:00 **Note:** If your deployment requires any non-core Python packages (such as `napalm`, `django-storages`, or `django-auth-ldap`), list them in a file named `local_requirements.txt` in the NetBox root directory (alongside `requirements.txt`). This will ensure they are detected and re-installed by the upgrade script when the Python virtual environment is rebuilt. ## Enhancements * [#4217](https://github.com/netbox-community/netbox/issues/4217) - Embed model documentation within web UI * [#4323](https://github.com/netbox-community/netbox/issues/4323) - Add bulk edit view for power panels * [#4324](https://github.com/netbox-community/netbox/issues/4324) - Add CSV import view for services * [#4325](https://github.com/netbox-community/netbox/issues/4324) - Add CSV import view for rack reservations * [#4332](https://github.com/netbox-community/netbox/issues/4332) - Redirect to a user-friendly error page when CSS/JS resources fail to load ## Bug Fixes * [#4326](https://github.com/netbox-community/netbox/issues/4326) - Exclude Python modules without Script classes from scripts list * [#4337](https://github.com/netbox-community/netbox/issues/4337) - Allow bulk editing/deletion of all device components matching a query * [#4338](https://github.com/netbox-community/netbox/issues/4338) - Catch `AddrFormatError` exception when filtering aggregates/prefixes by an invalid prefix 2020-03-10T18:00:51+00:00 netbox v2.7.11 netbox v2.7.11 2020-03-27T16:49:22+00:00 ## Enhancements * [#738](https://github.com/netbox-community/netbox/issues/738) - Add ability to automatically check for new releases (must be enabled by setting `RELEASE_CHECK_URL`) * [#4255](https://github.com/netbox-community/netbox/issues/4255) - Custom script object variables now utilize dynamic form widgets * [#4309](https://github.com/netbox-community/netbox/issues/4309) - Add descriptive tooltip to custom fields on object views * [#4369](https://github.com/netbox-community/netbox/issues/4369) - Add a dedicated view for rack reservations * [#4380](https://github.com/netbox-community/netbox/issues/4380) - Enable webhooks for rack reservations * [#4381](https://github.com/netbox-community/netbox/issues/4381) - Enable export templates for rack reservations * [#4382](https://github.com/netbox-community/netbox/issues/4382) - Enable custom links for rack reservations * [#4386](https://github.com/netbox-community/netbox/issues/4386) - Update admin links for Django RQ to reflect multiple queues * [#4389](https://github.com/netbox-community/netbox/issues/4389) - Add a bulk edit view for device bays * [#4404](https://github.com/netbox-community/netbox/issues/4404) - Add cable trace button for circuit terminations ## Bug Fixes * [#2769](https://github.com/netbox-community/netbox/issues/2769) - Improve `prefix_length` validation on available-prefixes API * [#3193](https://github.com/netbox-community/netbox/issues/3193) - Fix cable tracing across multiple rear ports * [#4340](https://github.com/netbox-community/netbox/issues/4340) - Enforce unique constraints for device and virtual machine names in the API * [#4343](https://github.com/netbox-community/netbox/issues/4343) - Fix Markdown support for tables * [#4365](https://github.com/netbox-community/netbox/issues/4365) - Fix exception raised on IP address bulk add view * [#4415](https://github.com/netbox-community/netbox/issues/4415) - Fix duplicate name validation on device model 2020-03-27T16:49:22+00:00 netbox v2.7.12 netbox v2.7.12 2020-04-08T17:32:28+00:00 ## Enhancements * [#3676](https://github.com/netbox-community/netbox/issues/3676) - Reference VRF by name rather than RD during IP/prefix import * [#4147](https://github.com/netbox-community/netbox/issues/4147) - Use absolute URLs in rack elevation SVG renderings * [#4448](https://github.com/netbox-community/netbox/issues/4448) - Allow connecting cables between two circuit terminations * [#4460](https://github.com/netbox-community/netbox/issues/4460) - Add the `webhook_receiver` management command to assist in troubleshooting outgoing webhooks ## Bug Fixes * [#4395](https://github.com/netbox-community/netbox/issues/4395) - Fix typing of count_ipaddresses on interface serializer * [#4418](https://github.com/netbox-community/netbox/issues/4418) - Fail cleanly when trying to import multiple device types simultaneously * [#4438](https://github.com/netbox-community/netbox/issues/4438) - Fix exception when disconnecting a cable from a power feed * [#4439](https://github.com/netbox-community/netbox/issues/4439) - Tweak display of unset custom integer fields * [#4449](https://github.com/netbox-community/netbox/issues/4449) - Fix reservation edit/delete button URLs on rack view 2020-04-08T17:32:28+00:00 netbox v2.8.0 netbox v2.8.0 2020-04-13T15:30:39+00:00 ## New Features (Beta) This release introduces two new features in beta status. While they are expected to be functional, their precise implementation is subject to change during the v2.8 release cycle. It is recommended to wait until NetBox v2.9 to deploy them in production. ### Remote Authentication Support ([#2328](https://github.com/netbox-community/netbox/issues/2328)) Several new configuration parameters provide support for authenticating an incoming request based on the value of a specific HTTP header. This can be leveraged to employ remote authentication via an nginx or Apache plugin, directing NetBox to create and configure a local user account as needed. The configuration parameters are: * `REMOTE_AUTH_ENABLED` - Enables remote authentication (disabled by default) * `REMOTE_AUTH_HEADER` - The name of the HTTP header which conveys the username * `REMOTE_AUTH_AUTO_CREATE_USER` - Enables the automatic creation of new users (disabled by default) * `REMOTE_AUTH_DEFAULT_GROUPS` - A list of groups to assign newly created users * `REMOTE_AUTH_DEFAULT_PERMISSIONS` - A list of permissions to assign newly created users If further customization of remote authentication is desired (for instance, if you want to pass group/permission information via HTTP headers as well), NetBox allows you to inject a custom [Django authentication backend](https://docs.djangoproject.com/en/stable/topics/auth/customizing/) to retain full control over the authentication and configuration of remote users. ### Plugins ([#3351](https://github.com/netbox-community/netbox/issues/3351)) This release introduces support for custom plugins, which can be used to extend NetBox's functionality beyond what the core product provides. For example, plugins can be used to: * Add new Django models * Provide new views with custom templates * Inject custom template into object views * Introduce new API endpoints * Add custom request/response middleware For NetBox plugins to be recognized, they must be installed and added by name to the `PLUGINS` configuration parameter. (Plugin support is disabled by default.) Plugins can be configured under the `PLUGINS_CONFIG` parameter. More information can be found the in the [plugins documentation](https://netbox.readthedocs.io/en/stable/plugins/). ## Enhancements * [#1754](https://github.com/netbox-community/netbox/issues/1754) - Added support for nested rack groups * [#3939](https://github.com/netbox-community/netbox/issues/3939) - Added support for nested tenant groups * [#4078](https://github.com/netbox-community/netbox/issues/4078) - Standardized description fields across all models * [#4195](https://github.com/netbox-community/netbox/issues/4195) - Enabled application logging (see [logging configuration](https://netbox.readthedocs.io/en/stable/configuration/optional-settings/#logging)) ## Bug Fixes * [#4474](https://github.com/netbox-community/netbox/issues/4474) - Fix population of device types when bulk editing devices * [#4476](https://github.com/netbox-community/netbox/issues/4476) - Correct typo in slugs for Infiniband interface types ## API Changes * The `_choices` API endpoints have been removed. Instead, use an `OPTIONS` request to a model's endpoint to view the available values for all fields. ([#3416](https://github.com/netbox-community/netbox/issues/3416)) * The `id__in` filter has been removed from all models ([#4313](https://github.com/netbox-community/netbox/issues/4313)). Use the format `?id=1&id=2` instead. * dcim.Manufacturer: Added a `description` field * dcim.Platform: Added a `description` field * dcim.Rack: The `/api/dcim/racks/<pk>/units/` endpoint has been replaced with `/api/dcim/racks/<pk>/elevation/`. * dcim.RackGroup: Added a `description` field * dcim.Region: Added a `description` field * extras.Tag: Renamed `comments` to `description`; truncated length to 200 characters; removed Markdown rendering * ipam.RIR: Added a `description` field * ipam.VLANGroup: Added a `description` field * tenancy.TenantGroup: Added a `description` field * virtualization.ClusterGroup: Added a `description` field * virtualization.ClusterType: Added a `description` field ## Other Changes * [#4081](https://github.com/netbox-community/netbox/issues/4081) - The `family` field has been removed from the Aggregate, Prefix, and IPAddress models. The field remains available in the API representations of these models, however the column has been removed from the database table. 2020-04-13T15:30:39+00:00 netbox v2.8.1 netbox v2.8.1 2020-04-23T14:25:52+00:00 ## Notes In accordance with the fix in [#4459](https://github.com/netbox-community/netbox/issues/4459), users that are experiencing invalid nested data with regions, rack groups, or tenant groups can perform a one-time operation using the NetBox shell to rebuild the correct nested relationships after upgrading: ```text $ python netbox/manage.py nbshell ### NetBox interactive shell (localhost) ### Python 3.6.4 | Django 3.0.5 | NetBox 2.8.1 ### lsmodels() will show available models. Use help(<model>) for more info. >>> Region.objects.rebuild() >>> RackGroup.objects.rebuild() >>> TenantGroup.objects.rebuild() ``` ## Enhancements * [#4464](https://github.com/netbox-community/netbox/issues/4464) - Add 21-inch rack width (ETSI) ## Bug Fixes * [#2994](https://github.com/netbox-community/netbox/issues/2994) - Prevent modifying termination points of existing cable to ensure end-to-end path integrity * [#3356](https://github.com/netbox-community/netbox/issues/3356) - Correct Swagger schema specification for the available prefixes/IPs API endpoints * [#4139](https://github.com/netbox-community/netbox/issues/4139) - Enable assigning all relevant attributes during bulk device/VM component creation * [#4336](https://github.com/netbox-community/netbox/issues/4336) - Ensure interfaces without a subinterface ID are ordered before subinterface zero * [#4361](https://github.com/netbox-community/netbox/issues/4361) - Fix Type of `connection_state` in Swagger schema * [#4388](https://github.com/netbox-community/netbox/issues/4388) - Fix detection of connected endpoints when connecting rear ports * [#4459](https://github.com/netbox-community/netbox/issues/4459) - Fix caching issue resulting in erroneous nested data for regions, rack groups, and tenant groups * [#4489](https://github.com/netbox-community/netbox/issues/4489) - Fix display of parent/child role on device type view * [#4496](https://github.com/netbox-community/netbox/issues/4496) - Fix exception when validating certain models via REST API * [#4510](https://github.com/netbox-community/netbox/issues/4510) - Enforce address family for device primary IPv4/v6 addresses 2020-04-23T14:25:52+00:00 netbox v2.8.2 netbox v2.8.2 2020-05-06T19:15:21+00:00 ## Enhancements * [#492](https://github.com/netbox-community/netbox/issues/492) - Enable toggling and rearranging table columns * [#3147](https://github.com/netbox-community/netbox/issues/3147) - Allow specifying related objects by arbitrary attribute during CSV import * [#3064](https://github.com/netbox-community/netbox/issues/3064) - Include tags in object lists as a toggleable table column * [#3294](https://github.com/netbox-community/netbox/issues/3294) - Implement mechanism for storing user preferences * [#4421](https://github.com/netbox-community/netbox/issues/4421) - Retain user's preference for config context format * [#4502](https://github.com/netbox-community/netbox/issues/4502) - Enable configuration of proxies for outbound HTTP requests * [#4531](https://github.com/netbox-community/netbox/issues/4531) - Retain user's preference for page length * [#4554](https://github.com/netbox-community/netbox/issues/4554) - Add ServerTech's HDOT Cx power outlet type ## Bug Fixes * [#4527](https://github.com/netbox-community/netbox/issues/4527) - Fix assignment of certain tags to config contexts * [#4545](https://github.com/netbox-community/netbox/issues/4545) - Removed all squashed schema migrations to allow direct upgrades from very old releases * [#4548](https://github.com/netbox-community/netbox/issues/4548) - Fix tracing cables through a single RearPort * [#4549](https://github.com/netbox-community/netbox/issues/4549) - Fix encoding unicode webhook body data * [#4556](https://github.com/netbox-community/netbox/issues/4556) - Update form for adding devices to clusters * [#4578](https://github.com/netbox-community/netbox/issues/4578) - Prevent setting 0U height on device type with racked instances * [#4584](https://github.com/netbox-community/netbox/issues/4584) - Ensure consistent support for filtering objects by `id` across all REST API endpoints * [#4588](https://github.com/netbox-community/netbox/issues/4588) - Restore ability to add/remove tags on services, virtual chassis in bulk 2020-05-06T19:15:21+00:00 netbox v2.8.3 netbox v2.8.3 2020-05-07T03:50:04+00:00 ## Bug Fixes * [#4593](https://github.com/netbox-community/netbox/issues/4593) - Fix AttributeError exception when viewing object lists as a non-authenticated user 2020-05-07T03:50:04+00:00 netbox v2.8.4 netbox v2.8.4 2020-05-13T21:31:58+00:00 ## Enhancements * [#4632](https://github.com/netbox-community/netbox/issues/4632) - Extend email configuration parameters to support SSL/TLS ## Bug Fixes * [#4598](https://github.com/netbox-community/netbox/issues/4598) - Display error message when invalid cable length is specified * [#4604](https://github.com/netbox-community/netbox/issues/4604) - Multi-position rear ports may only be connected to other rear ports * [#4607](https://github.com/netbox-community/netbox/issues/4607) - Missing Contextual help for API Tokens * [#4613](https://github.com/netbox-community/netbox/issues/4613) - Fix tag assignment on config contexts (regression from #4527) * [#4617](https://github.com/netbox-community/netbox/issues/4617) - Restore IP prefix depth notation in list view * [#4629](https://github.com/netbox-community/netbox/issues/4629) - Replicate assigned interface when cloning IP addresses * [#4633](https://github.com/netbox-community/netbox/issues/4633) - Bump django-rq to v2.3.2 to fix ImportError with rq 1.4.0 * [#4634](https://github.com/netbox-community/netbox/issues/4634) - Inventory Item List view exception caused by incorrect accessor definition 2020-05-13T21:31:58+00:00 netbox v2.8.5 netbox v2.8.5 2020-05-26T20:29:25+00:00 ## Enhancements * [#4650](https://github.com/netbox-community/netbox/issues/4650) - Expose `INTERNAL_IPS` configuration parameter * [#4651](https://github.com/netbox-community/netbox/issues/4651) - Add `csrf_token` context for plugin templates * [#4652](https://github.com/netbox-community/netbox/issues/4652) - Add permissions context for plugin templates * [#4665](https://github.com/netbox-community/netbox/issues/4665) - Add NEMA L14 and L21 power port/outlet types * [#4672](https://github.com/netbox-community/netbox/issues/4672) - Set default color for rack and devices roles ## Bug Fixes * [#3304](https://github.com/netbox-community/netbox/issues/3304) - Fix caching invalidation issue related to device/virtual machine primary IP addresses * [#4525](https://github.com/netbox-community/netbox/issues/4525) - Allow passing initial data to custom script MultiObjectVar * [#4644](https://github.com/netbox-community/netbox/issues/4644) - Fix ordering of services table by parent * [#4646](https://github.com/netbox-community/netbox/issues/4646) - Correct UI link for reports with custom name * [#4647](https://github.com/netbox-community/netbox/issues/4647) - Fix caching invalidation issue related to assigning new IP addresses to interfaces * [#4648](https://github.com/netbox-community/netbox/issues/4648) - Fix bulk CSV import of child devices * [#4649](https://github.com/netbox-community/netbox/issues/4649) - Fix interface assignment for bulk-imported IP addresses * [#4676](https://github.com/netbox-community/netbox/issues/4676) - Set default value of `REMOTE_AUTH_AUTO_CREATE_USER` as `False` in docs * [#4684](https://github.com/netbox-community/netbox/issues/4684) - Respect `comments` field when importing device type in YAML/JSON format 2020-05-26T20:29:25+00:00 netbox v2.8.6 netbox v2.8.6 2020-06-15T18:51:27+00:00 ## Enhancements * [#4698](https://github.com/netbox-community/netbox/issues/4698) - Improve display of template code for object in admin UI * [#4717](https://github.com/netbox-community/netbox/issues/4717) - Introduce `ALLOWED_URL_SCHEMES` configuration parameter to mitigate dangerous hyperlinks * [#4744](https://github.com/netbox-community/netbox/issues/4744) - Hide "IP addresses" tab when viewing a container prefix * [#4755](https://github.com/netbox-community/netbox/issues/4755) - Enable creation of rack reservations directly from navigation menu * [#4761](https://github.com/netbox-community/netbox/issues/4761) - Enable tag assignment during bulk creation of IP addresses ## Bug Fixes * [#4674](https://github.com/netbox-community/netbox/issues/4674) - Fix API definition for available prefix and IP address endpoints * [#4702](https://github.com/netbox-community/netbox/issues/4702) - Catch IntegrityError exception when adding a non-unique secret * [#4707](https://github.com/netbox-community/netbox/issues/4707) - Fix `prefix_count` population on VLAN API serializer * [#4710](https://github.com/netbox-community/netbox/issues/4710) - Fix merging of form fields among custom scripts * [#4725](https://github.com/netbox-community/netbox/issues/4725) - Fix "brief" rendering of various REST API endpoints * [#4736](https://github.com/netbox-community/netbox/issues/4736) - Add cable trace endpoints for pass-through ports * [#4737](https://github.com/netbox-community/netbox/issues/4737) - Fix display of role labels in virtual machines table * [#4743](https://github.com/netbox-community/netbox/issues/4743) - Allow users to create "next available" IPs without needing permission to create prefixes * [#4756](https://github.com/netbox-community/netbox/issues/4756) - Filter parent group by site when creating rack groups * [#4760](https://github.com/netbox-community/netbox/issues/4760) - Enable power port template assignment when bulk editing power outlet templates 2020-06-15T18:51:27+00:00 netbox v2.8.7 netbox v2.8.7 2020-07-02T13:43:51+00:00 ## Enhancements * [#4796](https://github.com/netbox-community/netbox/issues/4796) - Introduce configuration parameters for default rack elevation size * [#4802](https://github.com/netbox-community/netbox/issues/4802) - Allow changing page size when displaying only a single page of results ## Bug Fixes * [#4695](https://github.com/netbox-community/netbox/issues/4695) - Expose cable termination type choices in OpenAPI spec * [#4708](https://github.com/netbox-community/netbox/issues/4708) - Relax connection constraints for multi-position rear ports * [#4766](https://github.com/netbox-community/netbox/issues/4766) - Fix redirect after login when `next` is not specified * [#4771](https://github.com/netbox-community/netbox/issues/4771) - Fix add/remove tag population when bulk editing objects * [#4772](https://github.com/netbox-community/netbox/issues/4772) - Fix "brief" format for the secrets REST API endpoint * [#4774](https://github.com/netbox-community/netbox/issues/4774) - Fix exception when deleting a device with device bays * [#4775](https://github.com/netbox-community/netbox/issues/4775) - Allow selecting an alternate device type when creating component templates 2020-07-02T13:43:51+00:00 netbox v2.8.8 netbox v2.8.8 2020-07-21T16:22:11+00:00 ## Enhancements * [#4805](https://github.com/netbox-community/netbox/issues/4805) - Improve handling of plugin loading errors * [#4829](https://github.com/netbox-community/netbox/issues/4829) - Add NEMA 15 power port and outlet types * [#4831](https://github.com/netbox-community/netbox/issues/4831) - Allow NAPALM to resolve device name when primary IP is not set * [#4854](https://github.com/netbox-community/netbox/issues/4854) - Add staging and decommissioning statuses for sites ## Bug Fixes * [#3240](https://github.com/netbox-community/netbox/issues/3240) - Correct OpenAPI definition for available-prefixes endpoint * [#4595](https://github.com/netbox-community/netbox/issues/4595) - Ensure consistent display of non-racked and child devices on rack view * [#4803](https://github.com/netbox-community/netbox/issues/4803) - Return IP family (4 or 6) as integer rather than string * [#4821](https://github.com/netbox-community/netbox/issues/4821) - Restrict group options by selected site when bulk editing VLANs * [#4835](https://github.com/netbox-community/netbox/issues/4835) - Support passing multiple initial values for multiple choice fields * [#4838](https://github.com/netbox-community/netbox/issues/4838) - Fix rack power utilization display for racks without devices * [#4851](https://github.com/netbox-community/netbox/issues/4851) - Show locally connected peer on circuit terminations * [#4856](https://github.com/netbox-community/netbox/issues/4856) - Redirect user back to circuit after connecting a termination * [#4872](https://github.com/netbox-community/netbox/issues/4872) - Enable filtering virtual machine interfaces by tag 2020-07-21T16:22:11+00:00 netbox v2.9-beta1 netbox v2.9-beta1 2020-07-23T19:07:34+00:00 # v2.9-beta1 (2020-07-23) **WARNING:** This is a beta release and is not suitable for production use. It is intended for development and evaluation purposes only. No upgrade path to the final v2.9 release will be provided from this beta, and users should assume that all data entered into the application will be lost. Please reference [the v2.9 beta documentation](https://netbox.readthedocs.io/en/develop-2.9/) for further information regarding this release. ## New Features ### Object-Based Permissions ([#554](https://github.com/netbox-community/netbox/issues/554)) NetBox v2.9 replaces Django's built-in permissions framework with one that supports object-based assignment of permissions using arbitrary constraints. When granting a user or group permission to perform a certain action on one or more types of objects, an administrator can optionally specify a set of constraints. The permission will apply only to objects which match the specified constraints. For example, assigning permission to modify devices with the constraint `{"tenant__group__name": "Customers"}` would allow the associated users/groups to perform an action only on devices assigned to a tenant belonging to the "Customers" group. ### Background Execution of Scripts & Reports ([#2006](https://github.com/netbox-community/netbox/issues/2006)) When running a report or custom script, its execution is now queued for background processing and the user receives an immediate response indicating its status. This prevents long-running scripts from resulting in a timeout error. Once the execution has completed, the page will automatically refresh to display its results. Both scripts and reports now store their output in the new JobResult model. (The ReportResult model has been removed.) ## Enhancements * [#2018](https://github.com/netbox-community/netbox/issues/2018) - Add `name` field to virtual chassis model * [#3703](https://github.com/netbox-community/netbox/issues/3703) - Tags must be created administratively before being assigned to an object * [#4615](https://github.com/netbox-community/netbox/issues/4615) - Add `label` field for all device components and component templates * [#4742](https://github.com/netbox-community/netbox/issues/4742) - Add tagging for cables, power panels, and rack reservations * [#4788](https://github.com/netbox-community/netbox/issues/4788) - Add dedicated views for all device components * [#4792](https://github.com/netbox-community/netbox/issues/4792) - Add bulk rename capability for console and power ports * [#4793](https://github.com/netbox-community/netbox/issues/4793) - Add `description` field to device component templates * [#4795](https://github.com/netbox-community/netbox/issues/4795) - Add bulk disconnect capability for console and power ports * [#4806](https://github.com/netbox-community/netbox/issues/4806) - Add a `url` field to all API serializers * [#4807](https://github.com/netbox-community/netbox/issues/4807) - Add bulk edit ability for device bay templates * [#4817](https://github.com/netbox-community/netbox/issues/4817) - Standardize device/VM component `name` field to 64 characters * [#4837](https://github.com/netbox-community/netbox/issues/4837) - Use dynamic form widget for relationships to MPTT objects (e.g. regions) * [#4840](https://github.com/netbox-community/netbox/issues/4840) - Enable change logging for config contexts * [#4877](https://github.com/netbox-community/netbox/issues/4877) - Add REST API endpoints for users and groups ## Configuration Changes * If in use, LDAP authentication must be enabled by setting `REMOTE_AUTH_BACKEND` to `'netbox.authentication.LDAPBackend'`. (LDAP configuration parameters in `ldap_config.py` remain unchanged.) * `REMOTE_AUTH_DEFAULT_PERMISSIONS` now takes a dictionary rather than a list. This is a mapping of permission names to a dictionary of constraining attributes, or `None`. For example, `['dcim.add_site', 'dcim.change_site']` would become `{'dcim.add_site': None, 'dcim.change_site': None}`. ## REST API Changes * Added new endpoints for users, groups, and permissions under `/api/users/`. * A `url` field is now included on all object representations, identifying the unique REST API URL for each object. * The `tags` field of an object now includes a more complete representation of each tag, rather than just its name. * The assignment of tags to an object is now achieved in the same manner as specifying any other related device. The `tags` field accepts a list of JSON objects each matching a desired tag. (Alternatively, a list of numeric primary keys corresponding to tags may be passed instead.) For example: ```json "tags": [ {"name": "First Tag"}, {"name": "Second Tag"} ] ``` * Legacy numeric values for choice fields are no longer conveyed or accepted. * dcim.Cable: Added `tags` field * dcim.ConsolePort: Added `label` field * dcim.ConsolePortTemplate: Added `description` and `label` fields * dcim.ConsoleServerPort: Added `label` field * dcim.ConsoleServerPortTemplate: Added `description` and `label` fields * dcim.DeviceBay: Added `label` field * dcim.DeviceBayTemplate: Added `description` and `label` fields * dcim.FrontPort: Added `label` field * dcim.FrontPortTemplate: Added `description` and `label` fields * dcim.Interface: Added `label` field * dcim.InterfaceTemplate: Added `description` and `label` fields * dcim.PowerPanel: Added `tags` field * dcim.PowerPort: Added ``label` field * dcim.PowerPortTemplate: Added `description` and `label` fields * dcim.PowerOutlet: Added `label` field * dcim.PowerOutletTemplate: Added `description` and `label` fields * dcim.RackGroup: Added a `_depth` attribute indicating an object's position in the tree. * dcim.RackReservation: Added `tags` field * dcim.RearPort: Added `label` field * dcim.RearPortTemplate: Added `description` and `label` fields * dcim.Region: Added a `_depth` attribute indicating an object's position in the tree. * dcim.VirtualChassis: Added `name` field (required) * extras.ConfigContext: Added `created` and `last_updated` fields * extras.JobResult: Added the `/api/extras/job-results/` endpoint * extras.Report: The `failed` field has been removed. The `completed` (boolean) and `status` (string) fields have been introduced to convey the status of a report's most recent execution. Additionally, the `result` field now conveys the nested representation of a JobResult. * extras.Script: Added `module` and `result` fields. The `result` field now conveys the nested representation of a JobResult. * extras.Tag: The count of `tagged_items` is no longer included when viewing the tags list when `brief` is passed. * ipam.IPAddress: Removed `interface` field; replaced with `assigned_object` generic foreign key. This may represent either a device interface or a virtual machine interface. Assign an object by setting `assigned_object_type` and `assigned_object_id`. * tenancy.TenantGroup: Added a `_depth` attribute indicating an object's position in the tree. * users.ObjectPermissions: Added the `/api/users/permissions/` endpoint * virtualization.VMInterface: Removed `type` field (VM interfaces have no type) ## Other Changes * A new model, `VMInterface` has been introduced to represent interfaces assigned to VirtualMachine instances. Previously, these interfaces utilized the DCIM model `Interface`. Instances will be replicated automatically upon upgrade, however any custom code which references or manipulates virtual machine interfaces will need to be updated accordingly. * The `secrets.activate_userkey` permission no longer exists. Instead, `secrets.change_userkey` is checked to determine whether a user has the ability to activate a UserKey. * The `users.delete_token` permission is no longer enforced. All users are permitted to delete their own API tokens. * Dropped backward compatibility for the `webhooks` Redis queue configuration (use `tasks` instead). * Dropped backward compatibility for the `/admin/webhook-backend-status` URL (moved to `/admin/background-tasks/`). * Virtual chassis are now created by navigating to `/dcim/virtual-chassis/add/` rather than via the devices list. * A name is required when creating a virtual chassis. 2020-07-23T19:07:34+00:00 netbox v2.8.9 netbox v2.8.9 2020-08-04T16:40:56+00:00 ## Enhancements * [#4898](https://github.com/netbox-community/netbox/issues/4898) - Add MAC address search field to interfaces list * [#4899](https://github.com/netbox-community/netbox/issues/4899) - Add MAC address column to interfaces table ## Bug Fixes * [#4455](https://github.com/netbox-community/netbox/issues/4455) - Fix ordering of prefixes beneath aggregate when available space is hidden * [#4875](https://github.com/netbox-community/netbox/issues/4875) - Fix documentation for image attachments * [#4876](https://github.com/netbox-community/netbox/issues/4876) - Fix labels for sites in staging or decommissioning status * [#4880](https://github.com/netbox-community/netbox/issues/4880) - Fix removal of tagged VLANs if not assigned in bulk interface editing * [#4887](https://github.com/netbox-community/netbox/issues/4887) - Don't disable NAPALM tabs when device has no primary IP * [#4894](https://github.com/netbox-community/netbox/issues/4894) - Fix display of device/VM counts on platforms list * [#4895](https://github.com/netbox-community/netbox/issues/4895) - Force UTF-8 encoding when embedding model documentation * [#4910](https://github.com/netbox-community/netbox/issues/4910) - Unpin redis dependency to fix exception in RQ worker * [#4926](https://github.com/netbox-community/netbox/issues/4926) - Fix ordering of VM interfaces in REST API endpoint * [#4927](https://github.com/netbox-community/netbox/issues/4927) - Fix validation error when updating an existing secret * [#4929](https://github.com/netbox-community/netbox/issues/4929) - Correct log message when creating a new object 2020-08-04T16:40:56+00:00 netbox v2.9-beta2 netbox v2.9-beta2 2020-08-13T17:06:57+00:00 **WARNING:** This is a beta release and is not suitable for production use. It is intended for development and evaluation purposes only. No upgrade path to the final v2.9 release will be provided from this beta, and users should assume that all data entered into the application will be lost. Please reference [the v2.9 beta documentation](https://netbox.readthedocs.io/en/develop-2.9/) for further information regarding this release. The notes below pertain to changes made since v2.9-beta1. ### Enhancements * [#4639](https://github.com/netbox-community/netbox/issues/4639) - Improve performance of web UI prefixes list * [#4919](https://github.com/netbox-community/netbox/issues/4919) - Allow adding/changing assigned permissions within group and user admin views * [#4922](https://github.com/netbox-community/netbox/issues/4922) - Optimize schema migration for replicating VM interfaces * [#4940](https://github.com/netbox-community/netbox/issues/4940) - Add an `occupied` field to rack unit representations for rack elevation views * [#4945](https://github.com/netbox-community/netbox/issues/4945) - Add a user-friendly 403 error page * [#4946](https://github.com/netbox-community/netbox/issues/4946) - Extend ObjectPermission to OR multiple constraints * [#4969](https://github.com/netbox-community/netbox/issues/4969) - Replace secret role user/group assignment with object permissions * [#4982](https://github.com/netbox-community/netbox/issues/4982) - Extended ObjectVar to allow filtering API query * [#4994](https://github.com/netbox-community/netbox/issues/4994) - Add `cable` attribute to PowerFeed API serializer * [#4996](https://github.com/netbox-community/netbox/issues/4996) - Add "connect" buttons to individual device component views * [#4997](https://github.com/netbox-community/netbox/issues/4997) - The browsable API now lists available endpoints alphabetically ### Bug Fixes * [#4903](https://github.com/netbox-community/netbox/issues/4903) - Fix member count when searching for virtual chassis * [#4905](https://github.com/netbox-community/netbox/issues/4905) - Fix front port count on device type view * [#4912](https://github.com/netbox-community/netbox/issues/4912) - Fix image attachment API endpoint * [#4914](https://github.com/netbox-community/netbox/issues/4914) - Fix toggling cable status under device view * [#4921](https://github.com/netbox-community/netbox/issues/4921) - Render non-viewable devices as unavailable space in rack elevations * [#4930](https://github.com/netbox-community/netbox/issues/4930) - Replicate label values when instantiating device type components * [#4931](https://github.com/netbox-community/netbox/issues/4931) - Fix DoesNotExist exception when deleting devices * [#4938](https://github.com/netbox-community/netbox/issues/4938) - Show add, import buttons on virtual chassis list view * [#4939](https://github.com/netbox-community/netbox/issues/4939) - Fix linking to LAG interfaces on other VC members * [#4950](https://github.com/netbox-community/netbox/issues/4950) - Include inventory item label in API serializer, UI view * [#4951](https://github.com/netbox-community/netbox/issues/4951) - Redirect to device inventory view after creating a new inventory item * [#4952](https://github.com/netbox-community/netbox/issues/4952) - Default to VM tab when creating/editing an IP address for a VM * [#4968](https://github.com/netbox-community/netbox/issues/4968) - Fix exception when activating user keys in admin UI * [#4995](https://github.com/netbox-community/netbox/issues/4995) - Fix missing buttons to add console/power ports under device view ### Other Changes * [#4940](https://github.com/netbox-community/netbox/issues/4940) - Add an `occupied` field to rack unit representations for rack elevation views * [#4942](https://github.com/netbox-community/netbox/issues/4942) - Make ObjectPermission's `name` field required * [#4943](https://github.com/netbox-community/netbox/issues/4943) - Add a `description` field to ObjectPermission 2020-08-13T17:06:57+00:00 netbox v2.9.0 netbox v2.9.0 2020-08-21T13:54:00+00:00 ## New Features ### Object-Based Permissions ([#554](https://github.com/netbox-community/netbox/issues/554)) NetBox v2.9 replaces Django's built-in permissions framework with one that supports object-based assignment of permissions using arbitrary constraints. When granting a user or group permission to perform a certain action on one or more types of objects, an administrator can optionally specify a set of constraints. The permission will apply only to objects which match the specified constraints. For example, assigning permission to modify devices with the constraint `{"tenant__group__name": "Customers"}` would allow the associated users/groups to perform an action only on devices assigned to a tenant belonging to the "Customers" group. ### Background Execution of Scripts & Reports ([#2006](https://github.com/netbox-community/netbox/issues/2006)) When running a report or custom script, its execution is now queued for background processing and the user receives an immediate response indicating its status. This prevents long-running scripts from resulting in a timeout error. Once the execution has completed, the page will automatically refresh to display its results. Both scripts and reports now store their output in the new JobResult model. (The ReportResult model has been removed.) ### Named Virtual Chassis ([#2018](https://github.com/netbox-community/netbox/issues/2018)) The VirtualChassis model now has a mandatory `name` field. Names are assigned to the virtual chassis itself rather than referencing the master VC member. Additionally, the designation of a master is now optional: a virtual chassis may have only non-master members. ### Changes to Tag Creation ([#3703](https://github.com/netbox-community/netbox/issues/3703)) Tags are no longer created automatically: A tag must be created by a user before it can be applied to any object. Additionally, the REST API representation of assigned tags has been expanded to be consistent with other objects. ### Dedicated Model for VM Interfaces ([#4721](https://github.com/netbox-community/netbox/issues/4721)) A new model has been introduced to represent virtual machine interfaces. Although this change is largely transparent to the end user, note that the IP address model no longer has a foreign key to the Interface model under the DCIM app. This has been replaced with a generic foreign key named `assigned_object`. ### REST API Endpoints for Users and Groups ([#4877](https://github.com/netbox-community/netbox/issues/4877)) Two new REST API endpoints have been added to facilitate the retrieval and manipulation of users and groups: * `/api/users/groups/` * `/api/users/users/` ## Enhancements * [#4615](https://github.com/netbox-community/netbox/issues/4615) - Add `label` field for all device components and component templates * [#4639](https://github.com/netbox-community/netbox/issues/4639) - Improve performance of web UI prefixes list * [#4742](https://github.com/netbox-community/netbox/issues/4742) - Add tagging for cables, power panels, and rack reservations * [#4788](https://github.com/netbox-community/netbox/issues/4788) - Add dedicated views for all device components * [#4792](https://github.com/netbox-community/netbox/issues/4792) - Add bulk rename capability for console and power ports * [#4793](https://github.com/netbox-community/netbox/issues/4793) - Add `description` field to device component templates * [#4795](https://github.com/netbox-community/netbox/issues/4795) - Add bulk disconnect capability for console and power ports * [#4806](https://github.com/netbox-community/netbox/issues/4806) - Add a `url` field to all API serializers * [#4807](https://github.com/netbox-community/netbox/issues/4807) - Add bulk edit ability for device bay templates * [#4817](https://github.com/netbox-community/netbox/issues/4817) - Standardize device/VM component `name` field to 64 characters * [#4837](https://github.com/netbox-community/netbox/issues/4837) - Use dynamic form widget for relationships to MPTT objects (e.g. regions) * [#4840](https://github.com/netbox-community/netbox/issues/4840) - Enable change logging for config contexts * [#4885](https://github.com/netbox-community/netbox/issues/4885) - Add MultiChoiceVar for custom scripts * [#4940](https://github.com/netbox-community/netbox/issues/4940) - Add an `occupied` field to rack unit representations for rack elevation views * [#4945](https://github.com/netbox-community/netbox/issues/4945) - Add a user-friendly 403 error page * [#4969](https://github.com/netbox-community/netbox/issues/4969) - Replace secret role user/group assignment with object permissions * [#4982](https://github.com/netbox-community/netbox/issues/4982) - Extended ObjectVar to allow filtering API query * [#4994](https://github.com/netbox-community/netbox/issues/4994) - Add `cable` attribute to PowerFeed API serializer * [#4997](https://github.com/netbox-community/netbox/issues/4997) - The browsable API now lists available endpoints alphabetically * [#5024](https://github.com/netbox-community/netbox/issues/5024) - List available options for choice fields within CSV import forms ## Configuration Changes * If in use, LDAP authentication must be enabled by setting `REMOTE_AUTH_BACKEND` to `'netbox.authentication.LDAPBackend'`. (LDAP configuration parameters in `ldap_config.py` remain unchanged.) * `REMOTE_AUTH_DEFAULT_PERMISSIONS` now takes a dictionary rather than a list. This is a mapping of permission names to a dictionary of constraining attributes, or `None`. For example, `['dcim.add_site', 'dcim.change_site']` would become `{'dcim.add_site': None, 'dcim.change_site': None}`. ## REST API Changes * Added new endpoints for users, groups, and permissions under `/api/users/`. * A `url` field is now included on all object representations, identifying the unique REST API URL for each object. * The `tags` field of an object now includes a more complete representation of each tag, rather than just its name. * The assignment of tags to an object is now achieved in the same manner as specifying any other related device. The `tags` field accepts a list of JSON objects each matching a desired tag. (Alternatively, a list of numeric primary keys corresponding to tags may be passed instead.) For example: ```json "tags": [ {"name": "First Tag"}, {"name": "Second Tag"} ] ``` * Legacy numeric values for choice fields are no longer conveyed or accepted. * circuits.CircuitTermination: Added `cable` field * dcim.Cable: Added `tags` field * dcim.ConsolePort: Added `label` field * dcim.ConsolePortTemplate: Added `description` and `label` fields * dcim.ConsoleServerPort: Added `label` field * dcim.ConsoleServerPortTemplate: Added `description` and `label` fields * dcim.DeviceBay: Added `label` field * dcim.DeviceBayTemplate: Added `description` and `label` fields * dcim.FrontPort: Added `label` field * dcim.FrontPortTemplate: Added `description` and `label` fields * dcim.Interface: Added `label` field * dcim.InterfaceTemplate: Added `description` and `label` fields * dcim.PowerFeed: Added `cable` field * dcim.PowerPanel: Added `tags` field * dcim.PowerPort: Added ``label` field * dcim.PowerPortTemplate: Added `description` and `label` fields * dcim.PowerOutlet: Added `label` field * dcim.PowerOutletTemplate: Added `description` and `label` fields * dcim.Rack: Added an `occupied` field to rack unit representations for rack elevation views * dcim.RackGroup: Added a `_depth` attribute indicating an object's position in the tree. * dcim.RackReservation: Added `tags` field * dcim.RearPort: Added `label` field * dcim.RearPortTemplate: Added `description` and `label` fields * dcim.Region: Added a `_depth` attribute indicating an object's position in the tree. * dcim.VirtualChassis: Added `name` field (required) * extras.ConfigContext: Added `created` and `last_updated` fields * extras.JobResult: Added the `/api/extras/job-results/` endpoint * extras.Report: The `failed` field has been removed. The `completed` (boolean) and `status` (string) fields have been introduced to convey the status of a report's most recent execution. Additionally, the `result` field now conveys the nested representation of a JobResult. * extras.Script: Added `module` and `result` fields. The `result` field now conveys the nested representation of a JobResult. * extras.Tag: The count of `tagged_items` is no longer included when viewing the tags list when `brief` is passed. * ipam.IPAddress: Removed `interface` field; replaced with `assigned_object` generic foreign key. This may represent either a device interface or a virtual machine interface. Assign an object by setting `assigned_object_type` and `assigned_object_id`. * ipam.VRF: Added `display_name` * tenancy.TenantGroup: Added a `_depth` attribute indicating an object's position in the tree. * users.ObjectPermissions: Added the `/api/users/permissions/` endpoint * virtualization.VMInterface: Removed `type` field (VM interfaces have no type) ## Other Changes * A new model, `VMInterface` has been introduced to represent interfaces assigned to VirtualMachine instances. Previously, these interfaces utilized the DCIM model `Interface`. Instances will be replicated automatically upon upgrade, however any custom code which references or manipulates virtual machine interfaces will need to be updated accordingly. * The `secrets.activate_userkey` permission no longer exists. Instead, `secrets.change_userkey` is checked to determine whether a user has the ability to activate a UserKey. * The `users.delete_token` permission is no longer enforced. All users are permitted to delete their own API tokens. * Dropped backward compatibility for the `webhooks` Redis queue configuration (use `tasks` instead). * Dropped backward compatibility for the `/admin/webhook-backend-status` URL (moved to `/admin/background-tasks/`). * Virtual chassis are now created by navigating to `/dcim/virtual-chassis/add/` rather than via the devices list. * A name is required when creating a virtual chassis. 2020-08-21T13:54:00+00:00 netbox v2.9.1 netbox v2.9.1 2020-08-23T01:05:44+00:00 ## Enhancements * [#4540](https://github.com/netbox-community/netbox/issues/4540) - Add IP address status type for SLAAC * [#4814](https://github.com/netbox-community/netbox/issues/4814) - Allow nested LAG interfaces * [#4991](https://github.com/netbox-community/netbox/issues/4991) - Add Python and NetBox versions to error page * [#5033](https://github.com/netbox-community/netbox/issues/5033) - Support backward compatibility for `REMOTE_AUTH_BACKEND` configuration parameter 2020-08-23T01:05:44+00:00 netbox v2.9.2 netbox v2.9.2 2020-08-27T18:14:41+00:00 ## Enhancements * [#5055](https://github.com/netbox-community/netbox/issues/5055) - Add tags column to device/VM component list tables * [#5056](https://github.com/netbox-community/netbox/issues/5056) - Add interface and parent columns to IP address list ## Bug Fixes * [#4988](https://github.com/netbox-community/netbox/issues/4988) - Fix ordering of rack reservations with identical creation times * [#5002](https://github.com/netbox-community/netbox/issues/5002) - Correct OpenAPI definition for `available-prefixes` endpoint * [#5035](https://github.com/netbox-community/netbox/issues/5035) - Fix exception when modifying an IP address assigned to a VM * [#5038](https://github.com/netbox-community/netbox/issues/5038) - Fix validation of primary IPs assigned to virtual machines * [#5040](https://github.com/netbox-community/netbox/issues/5040) - Limit SLAAC status to IPv6 addresses * [#5041](https://github.com/netbox-community/netbox/issues/5041) - Fix form tabs when assigning an IP to a VM interface * [#5042](https://github.com/netbox-community/netbox/issues/5042) - Fix display of SLAAC label for IP addresses status * [#5045](https://github.com/netbox-community/netbox/issues/5045) - Allow assignment of interfaces to non-master VC peer LAG during import * [#5058](https://github.com/netbox-community/netbox/issues/5058) - Correct URL for front rack elevation images when using external storage * [#5059](https://github.com/netbox-community/netbox/issues/5059) - Fix inclusion of checkboxes for interfaces in virtual machine view * [#5060](https://github.com/netbox-community/netbox/issues/5060) - Fix validation when bulk-importing child devices * [#5061](https://github.com/netbox-community/netbox/issues/5061) - Allow adding/removing tags when bulk editing virtual machine interfaces 2020-08-27T18:14:41+00:00 netbox v2.9.3 netbox v2.9.3 2020-09-04T19:56:26+00:00 ## Enhancements * [#4977](https://github.com/netbox-community/netbox/issues/4977) - Redirect authenticated users from login view * [#5048](https://github.com/netbox-community/netbox/issues/5048) - Show the device/VM name when editing a component * [#5072](https://github.com/netbox-community/netbox/issues/5072) - Add REST API filters for image attachments * [#5080](https://github.com/netbox-community/netbox/issues/5080) - Add 8P6C, 8P4C, 8P2C port types ## Bug Fixes * [#5046](https://github.com/netbox-community/netbox/issues/5046) - Disabled plugin menu items are no longer clickable * [#5063](https://github.com/netbox-community/netbox/issues/5063) - Fix "add device" link in rack elevations for opposite side of half-depth devices * [#5074](https://github.com/netbox-community/netbox/issues/5074) - Fix inclusion of VC member interfaces when viewing VC master * [#5078](https://github.com/netbox-community/netbox/issues/5078) - Fix assignment of existing IP addresses to interfaces via web UI * [#5081](https://github.com/netbox-community/netbox/issues/5081) - Fix exception during webhook processing with custom select field * [#5085](https://github.com/netbox-community/netbox/issues/5085) - Fix ordering by assignment in IP addresses table * [#5087](https://github.com/netbox-community/netbox/issues/5087) - Restore label field when editing console server ports, power ports, and power outlets * [#5089](https://github.com/netbox-community/netbox/issues/5089) - Redirect to device view after editing component * [#5090](https://github.com/netbox-community/netbox/issues/5090) - Fix status display for console/power/interface connections * [#5091](https://github.com/netbox-community/netbox/issues/5091) - Avoid KeyError when handling invalid table preferences * [#5095](https://github.com/netbox-community/netbox/issues/5095) - Show assigned prefixes in VLANs list 2020-09-04T19:56:26+00:00 netbox v2.9.4 netbox v2.9.4 2020-09-23T19:38:42+00:00 **NOTE:** This release removes support for the `DEFAULT_TIMEOUT` parameter under `REDIS` database configuration. Set `RQ_DEFAULT_TIMEOUT` as a global configuration parameter instead. **NOTE:** Any permissions referencing the legacy ReportResult model (e.g. `extras.view_reportresult`) should be updated to reference the Report model. ## Enhancements * [#1755](https://github.com/netbox-community/netbox/issues/1755) - Toggle order in which rack elevations are displayed * [#5128](https://github.com/netbox-community/netbox/issues/5128) - Increase maximum rear port positions from 64 to 1024 * [#5134](https://github.com/netbox-community/netbox/issues/5134) - Display full hierarchy in breadcrumbs for sites/racks * [#5149](https://github.com/netbox-community/netbox/issues/5149) - Add rack group field to device edit form * [#5164](https://github.com/netbox-community/netbox/issues/5164) - Show total rack count per rack group under site view * [#5171](https://github.com/netbox-community/netbox/issues/5171) - Introduce the `RQ_DEFAULT_TIMEOUT` configuration parameter ## Bug Fixes * [#5050](https://github.com/netbox-community/netbox/issues/5050) - Fix potential failure on `0016_replicate_interfaces` schema migration from old release * [#5066](https://github.com/netbox-community/netbox/issues/5066) - Update `view_reportresult` to `view_report` permission * [#5075](https://github.com/netbox-community/netbox/issues/5075) - Include a VLAN membership view for VM interfaces * [#5105](https://github.com/netbox-community/netbox/issues/5105) - Validation should fail when reassigning a primary IP from device to VM * [#5109](https://github.com/netbox-community/netbox/issues/5109) - Fix representation of custom choice field values for webhook data * [#5108](https://github.com/netbox-community/netbox/issues/5108) - Fix execution of reports via CLI * [#5111](https://github.com/netbox-community/netbox/issues/5111) - Allow use of tuples when specifying ObjectVar `query_params` * [#5118](https://github.com/netbox-community/netbox/issues/5118) - Specifying an empty list of tags should clear assigned tags (REST API) * [#5133](https://github.com/netbox-community/netbox/issues/5133) - Fix disassociation of an IP address from a VM interface * [#5136](https://github.com/netbox-community/netbox/issues/5136) - Fix exception when bulk editing interface 802.1Q mode * [#5156](https://github.com/netbox-community/netbox/issues/5156) - Add missing "add" button to rack reservations list * [#5167](https://github.com/netbox-community/netbox/issues/5167) - Support filtering ObjectChanges by multiple users 2020-09-23T19:38:42+00:00 netbox v2.9.5 netbox v2.9.5 2020-10-09T17:02:13+00:00 ## Enhancements * [#5202](https://github.com/netbox-community/netbox/issues/5202) - Extend the available context data when rendering custom links ## Bug Fixes * [#4523](https://github.com/netbox-community/netbox/issues/4523) - Populate site vlan list when bulk editing interfaces under certain circumstances * [#5174](https://github.com/netbox-community/netbox/issues/5174) - Ensure consistent alignment of rack elevations * [#5175](https://github.com/netbox-community/netbox/issues/5175) - Fix toggling of rack elevation order * [#5184](https://github.com/netbox-community/netbox/issues/5184) - Fix missing Power Utilization * [#5197](https://github.com/netbox-community/netbox/issues/5197) - Limit duplicate IPs shown on IP address view * [#5199](https://github.com/netbox-community/netbox/issues/5199) - Change default LDAP logging to INFO * [#5201](https://github.com/netbox-community/netbox/issues/5201) - Fix missing querystring when bulk editing/deleting VLAN Group VLANs when selecting "select all x items matching query" * [#5206](https://github.com/netbox-community/netbox/issues/5206) - Apply user pagination preferences to all paginated object lists * [#5211](https://github.com/netbox-community/netbox/issues/5211) - Add missing `has_primary_ip` filter for virtual machines * [#5217](https://github.com/netbox-community/netbox/issues/5217) - Prevent erroneous removal of prefetched GenericForeignKey data from tables * [#5218](https://github.com/netbox-community/netbox/issues/5218) - Raise validation error if a power port's `allocated_draw` exceeds its `maximum_draw` * [#5220](https://github.com/netbox-community/netbox/issues/5220) - Fix API patch request against IP Address endpoint with null assigned_object_type * [#5221](https://github.com/netbox-community/netbox/issues/5221) - Fix bulk component creation for virtual machines * [#5224](https://github.com/netbox-community/netbox/issues/5224) - Don't allow a rear port to have fewer positions than the number of mapped front ports * [#5226](https://github.com/netbox-community/netbox/issues/5226) - Custom choice fields should be blank initially if no default choice has been designated 2020-10-09T17:02:13+00:00 netbox v2.9.6 netbox v2.9.6 2020-10-09T17:28:41+00:00 ## Bug Fixes * [#5229](https://github.com/netbox-community/netbox/issues/5229) - Fix AttributeError exception when LDAP authentication is enabled 2020-10-09T17:28:41+00:00 netbox v2.9.7 netbox v2.9.7 2020-10-12T13:50:14+00:00 ## Bug Fixes * [#5231](https://github.com/netbox-community/netbox/issues/5231) - Fix KeyError exception when viewing object with custom link and debugging is disabled 2020-10-12T13:50:14+00:00 netbox v2.9.8 netbox v2.9.8 2020-10-30T14:39:43+00:00 ## Enhancements * [#4559](https://github.com/netbox-community/netbox/issues/4559) - Improve device/VM context data rendering performance ## Bug Fixes * [#3672](https://github.com/netbox-community/netbox/issues/3672) - Fix a caching issue causing incorrect related object counts in API responses * [#5113](https://github.com/netbox-community/netbox/issues/5113) - Fix incorrect caching of permission object assignments to user groups in the admin panel * [#5243](https://github.com/netbox-community/netbox/issues/5243) - Redirect user to appropriate tab after modifying device components * [#5273](https://github.com/netbox-community/netbox/issues/5273) - Fix exception when validating a new permission with no models selected * [#5282](https://github.com/netbox-community/netbox/issues/5282) - Fix high CPU load when LDAP authentication is enabled * [#5285](https://github.com/netbox-community/netbox/issues/5285) - Plugins no longer need to define `app_name` for API URLs to be included in the root view 2020-10-30T14:39:43+00:00 netbox v2.9.9 netbox v2.9.9 2020-11-10T01:56:19+00:00 ## Enhancements * [#5304](https://github.com/netbox-community/netbox/issues/5304) - Return server error messages as JSON when handling REST API requests * [#5310](https://github.com/netbox-community/netbox/issues/5310) - Link to rack groups within rack list table * [#5327](https://github.com/netbox-community/netbox/issues/5327) - Be more strict when capturing anticipated ImportError exceptions ## Bug Fixes * [#5271](https://github.com/netbox-community/netbox/issues/5271) - Fix auto-population of region field when editing a device * [#5314](https://github.com/netbox-community/netbox/issues/5314) - Fix config context rendering when multiple tags are assigned to an object * [#5316](https://github.com/netbox-community/netbox/issues/5316) - Dry running scripts should not trigger webhooks * [#5324](https://github.com/netbox-community/netbox/issues/5324) - Add missing template extension tags for plugins for VM interface view * [#5328](https://github.com/netbox-community/netbox/issues/5328) - Fix CreatedUpdatedFilterTest when running in non-UTC timezone * [#5331](https://github.com/netbox-community/netbox/issues/5331) - Fix filtering of sites by null region 2020-11-10T01:56:19+00:00 netbox v2.10-beta1 netbox v2.10-beta1 2020-11-17T21:00:21+00:00 **WARNING:** This is a beta release and is not suitable for production use. It is intended for development and evaluation purposes only. No upgrade path to the final v2.10 release will be provided from this beta, and users should assume that all data entered into the application will be lost. **NOTE:** This release completely removes support for embedded graphs. **NOTE:** The Django templating language (DTL) is no longer supported for export templates. Ensure that all export templates use Jinja2 before upgrading. ## New Features ### Route Targets ([#259](https://github.com/netbox-community/netbox/issues/259)) This release introduces support for modeling L3VPN route targets, which can be used to control the redistribution of advertised prefixes among VRFs. Each VRF may be assigned one or more route targets in the import and/or export direction. Like VRFs, route targets may be assigned to tenants and support tag assignment. ### REST API Bulk Deletion ([#3436](https://github.com/netbox-community/netbox/issues/3436)) The REST API now supports the bulk deletion of objects of the same type in a single request. Send a `DELETE` HTTP request to the list to the model's list endpoint (e.g. `/api/dcim/sites/`) with a list of JSON objects specifying the numeric ID of each object to be deleted. For example, to delete sites with IDs 10, 11, and 12, issue the following request: ```no-highlight curl -s -X DELETE \ -H "Authorization: Token $TOKEN" \ -H "Content-Type: application/json" \ http://netbox/api/dcim/sites/ \ --data '[{"id": 10}, {"id": 11}, {"id": 12}]' ``` ### REST API Bulk Update ([#4882](https://github.com/netbox-community/netbox/issues/4882)) Similar to bulk deletion, the REST API also now supports bulk updates. Send a `PUT` or `PATCH` HTTP request to the list to the model's list endpoint (e.g. `/api/dcim/sites/`) with a list of JSON objects specifying the numeric ID of each object and the attribute(s) to be updated. For example, to set a description for sites with IDs 10 and 11, issue the following request: ```no-highlight curl -s -X PATCH \ -H "Authorization: Token $TOKEN" \ -H "Content-Type: application/json" \ http://netbox/api/dcim/sites/ \ --data '[{"id": 10, "description": "Foo"}, {"id": 11, "description": "Bar"}]' ``` ### Reimplementation of Custom Fields ([#4878](https://github.com/netbox-community/netbox/issues/4878)) NetBox v2.10 introduces a completely overhauled approach to custom fields. Whereas previous versions used CustomFieldValue instances to store values, custom field data is now stored directly on each model instance as JSON data and may be accessed using the `cf` property: ```python >>> site = Site.objects.first() >>> site.cf {'site_code': 'US-RAL01'} >>> site.cf['foo'] = 'ABC' >>> site.full_clean() >>> site.save() >>> site = Site.objects.first() >>> site.cf {'foo': 'ABC', 'site_code': 'US-RAL01'} ``` Additionally, custom selection field choices are now defined on the CustomField model within the admin UI, which greatly simplifies working with choice values. ### Improved Cable Trace Performance ([#4900](https://github.com/netbox-community/netbox/issues/4900)) All end-to-end cable paths are now cached using the new CablePath backend model. This allows NetBox to now immediately return the complete path originating from any endpoint directly from the database, rather than having to trace each cable recursively. It also resolves some systemic validation issues present in the original implementation. **Note:** As part of this change, cable traces will no longer traverse circuits: A circuit termination will be considered the origin or destination of an end-to-end path. ## Enhancements * [#609](https://github.com/netbox-community/netbox/issues/609) - Add min/max value and regex validation for custom fields * [#1503](https://github.com/netbox-community/netbox/issues/1503) - Allow assigment of secrets to virtual machines * [#1692](https://github.com/netbox-community/netbox/issues/1692) - Allow assigment of inventory items to parent items in web UI * [#2179](https://github.com/netbox-community/netbox/issues/2179) - Support the use of multiple port numbers when defining a service * [#4897](https://github.com/netbox-community/netbox/issues/4897) - Allow filtering by content type identified as `<app>.<model>` string * [#4918](https://github.com/netbox-community/netbox/issues/4918) - Add a REST API endpoint (`/api/status/`) which returns NetBox's current operational status * [#4956](https://github.com/netbox-community/netbox/issues/4956) - Include inventory items on primary device view * [#4967](https://github.com/netbox-community/netbox/issues/4967) - Support tenant assignment for aggregates * [#5003](https://github.com/netbox-community/netbox/issues/5003) - CSV import now accepts slug values for choice fields * [#5146](https://github.com/netbox-community/netbox/issues/5146) - Add custom field support for cables, power panels, rack reservations, and virtual chassis * [#5154](https://github.com/netbox-community/netbox/issues/5154) - The web interface now consumes the entire browser window * [#5190](https://github.com/netbox-community/netbox/issues/5190) - Add a REST API endpoint for retrieving content types (`/api/extras/content-types/`) ## Other Changes * [#1846](https://github.com/netbox-community/netbox/issues/1846) - Enable MPTT for InventoryItem hierarchy * [#4349](https://github.com/netbox-community/netbox/issues/4349) - Dropped support for embedded graphs * [#4360](https://github.com/netbox-community/netbox/issues/4360) - Dropped support for the Django template language from export templates * [#4941](https://github.com/netbox-community/netbox/issues/4941) - `commit` argument is now required argument in a custom script's `run()` method * [#5011](https://github.com/netbox-community/netbox/issues/5011) - Standardized name field lengths across all models * [#5139](https://github.com/netbox-community/netbox/issues/5139) - Omit utilization statistics from RIR list * [#5225](https://github.com/netbox-community/netbox/issues/5225) - Circuit termination port speed is now an optional field ## REST API Changes * Added support for `PUT`, `PATCH`, and `DELETE` operations on list endpoints (bulk update and delete) * Added the `/extras/content-types/` endpoint for Django ContentTypes * Added the `/status/` endpoint to convey NetBox's current status * circuits.CircuitTermination: * Added the `/trace/` endpoint * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * `port_speed` may now be null * dcim.Cable: Added `custom_fields` * dcim.ConsolePort: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.ConsoleServerPort: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.FrontPort: * Replaced the `/trace/` endpoint with `/paths/`, which returns a list of cable paths * Added `cable_peer` and `cable_peer_type` * dcim.Interface: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.InventoryItem: The `_depth` field has been added to reflect MPTT positioning * dcim.PowerFeed: * Added the `/trace/` endpoint * Added fields `connected_endpoint`, `connected_endpoint_type`, `connected_endpoint_reachable`, `cable_peer`, and `cable_peer_type` * dcim.PowerOutlet: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.PowerPanel: Added `custom_fields` * dcim.PowerPort * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.RackReservation: Added `custom_fields` * dcim.RearPort: * Replaced the `/trace/` endpoint with `/paths/`, which returns a list of cable paths * Added `cable_peer` and `cable_peer_type` * dcim.VirtualChassis: Added `custom_fields` * extras.ExportTemplate: The `template_language` field has been removed * extras.Graph: This API endpoint has been removed (see #4349) * extras.ImageAttachment: Filtering by `content_type` now takes a string in the form `<app>.<model>` * extras.ObjectChange: Filtering by `changed_object_type` now takes a string in the form `<app>.<model>` * ipam.Aggregate: Added `tenant` field * ipam.RouteTarget: New endpoint * ipam.Service: Renamed `port` to `ports`; now holds a list of one or more port numbers * ipam.VRF: Added `import_targets` and `export_targets` fields * secrets.Secret: Removed `device` field; replaced with `assigned_object` generic foreign key. This may represent either a device or a virtual machine. Assign an object by setting `assigned_object_type` and `assigned_object_id`. 2020-11-17T21:00:21+00:00 netbox v2.9.10 netbox v2.9.10 2020-11-24T21:48:32+00:00 ## Enhancements * [#5319](https://github.com/netbox-community/netbox/issues/5319) - Add USB types for power ports and outlets * [#5337](https://github.com/netbox-community/netbox/issues/5337) - Add "splice" type for pass-through ports ## Bug Fixes * [#5235](https://github.com/netbox-community/netbox/issues/5235) - Fix exception when editing IP address with a NAT IP assigned to a non-racked device * [#5309](https://github.com/netbox-community/netbox/issues/5309) - Avoid extraneous database queries when manipulating objects * [#5345](https://github.com/netbox-community/netbox/issues/5345) - Fix non-deterministic ordering of prefixes and IP addresses * [#5350](https://github.com/netbox-community/netbox/issues/5350) - Filter available racks by selected group when creating a rack reservation * [#5355](https://github.com/netbox-community/netbox/issues/5355) - Limit rack groups by selected site when editing a rack * [#5356](https://github.com/netbox-community/netbox/issues/5356) - Populate manufacturer field when adding a device component template * [#5360](https://github.com/netbox-community/netbox/issues/5360) - Clear VLAN assignments when setting interface mode to none 2020-11-24T21:48:32+00:00 netbox v2.10-beta2 netbox v2.10-beta2 2020-12-03T14:11:08+00:00 **WARNING:** This is a beta release and is not suitable for production use. It is intended for development and evaluation purposes only. No upgrade path to the final v2.10 release will be provided from this beta, and users should assume that all data entered into the application will be lost. These release notes include only changes which have been made since the v2.10-beta1 release. Please see the notes for that release for a complete list of changes being introduced in NetBox v2.10. ### Enhancements * [#5274](https://github.com/netbox-community/netbox/issues/5274) - Add REST API support for custom fields * [#5399](https://github.com/netbox-community/netbox/issues/5399) - Show options for cable endpoint types during bulk import ### Bug Fixes * [#5176](https://github.com/netbox-community/netbox/issues/5176) - Enforce content type restrictions when creating objects via the REST API * [#5358](https://github.com/netbox-community/netbox/issues/5358) - Fix user table configuration for VM interfaces * [#5374](https://github.com/netbox-community/netbox/issues/5374) - Fix exception thrown when tracing mid-point * [#5376](https://github.com/netbox-community/netbox/issues/5376) - Correct invalid custom field filter logic values * [#5395](https://github.com/netbox-community/netbox/issues/5395) - Fix cable tracing for rear ports with no corresponding front port ### Other Changes * [#4711](https://github.com/netbox-community/netbox/issues/4711) - Renamed Webhook `obj_type` to `content_types` 2020-12-03T14:11:08+00:00 netbox v2.9.11 netbox v2.9.11 2020-12-11T21:48:29+00:00 ## Enhancements * [#5424](https://github.com/netbox-community/netbox/issues/5424) - Allow passing Python code to `nbshell` using `--command` * [#5439](https://github.com/netbox-community/netbox/issues/5439) - Add CS and SN fiber port types ## Bug Fixes * [#5383](https://github.com/netbox-community/netbox/issues/5383) - Fix setting user password via REST API * [#5396](https://github.com/netbox-community/netbox/issues/5396) - Fix uniqueness constraint for virtual machine names * [#5387](https://github.com/netbox-community/netbox/issues/5387) - Fix error when rendering config contexts when objects have multiple tags assigned * [#5407](https://github.com/netbox-community/netbox/issues/5407) - Add direct link to secret on secrets list * [#5408](https://github.com/netbox-community/netbox/issues/5408) - Fix updating secrets without setting new plaintext * [#5410](https://github.com/netbox-community/netbox/issues/5410) - Restore tags field on cable connection forms * [#5433](https://github.com/netbox-community/netbox/issues/5433) - Exclude SVG files from front/rear image upload for device types (currently unsupported) * [#5436](https://github.com/netbox-community/netbox/issues/5436) - Show assigned IP addresses in interfaces list * [#5446](https://github.com/netbox-community/netbox/issues/5446) - Fix validation for plugin version and required settings 2020-12-11T21:48:29+00:00 netbox v2.10.0 netbox v2.10.0 2020-12-14T19:39:52+00:00 **NOTE:** This release completely removes support for embedded graphs. **NOTE:** The Django templating language (DTL) is no longer supported for export templates. Ensure that all export templates use Jinja2 before upgrading. ## New Features ### Route Targets ([#259](https://github.com/netbox-community/netbox/issues/259)) This release introduces support for modeling L3VPN route targets, which can be used to control the redistribution of advertised prefixes among VRFs. Each VRF may be assigned one or more route targets in the import and/or export direction. Like VRFs, route targets may be assigned to tenants and support tag assignment. ### REST API Bulk Deletion ([#3436](https://github.com/netbox-community/netbox/issues/3436)) The REST API now supports the bulk deletion of objects of the same type in a single request. Send a `DELETE` HTTP request to the list to the model's list endpoint (e.g. `/api/dcim/sites/`) with a list of JSON objects specifying the numeric ID of each object to be deleted. For example, to delete sites with IDs 10, 11, and 12, issue the following request: ```no-highlight curl -s -X DELETE \ -H "Authorization: Token $TOKEN" \ -H "Content-Type: application/json" \ http://netbox/api/dcim/sites/ \ --data '[{"id": 10}, {"id": 11}, {"id": 12}]' ``` ### REST API Bulk Update ([#4882](https://github.com/netbox-community/netbox/issues/4882)) Similar to bulk deletion, the REST API also now supports bulk updates. Send a `PUT` or `PATCH` HTTP request to the list to the model's list endpoint (e.g. `/api/dcim/sites/`) with a list of JSON objects specifying the numeric ID of each object and the attribute(s) to be updated. For example, to set a description for sites with IDs 10 and 11, issue the following request: ```no-highlight curl -s -X PATCH \ -H "Authorization: Token $TOKEN" \ -H "Content-Type: application/json" \ http://netbox/api/dcim/sites/ \ --data '[{"id": 10, "description": "Foo"}, {"id": 11, "description": "Bar"}]' ``` ### Reimplementation of Custom Fields ([#4878](https://github.com/netbox-community/netbox/issues/4878)) NetBox v2.10 introduces a completely overhauled approach to custom fields. Whereas previous versions used CustomFieldValue instances to store values, custom field data is now stored directly on each model instance as JSON data and may be accessed using the `cf` property: ```python >>> site = Site.objects.first() >>> site.cf {'site_code': 'US-RAL01'} >>> site.cf['foo'] = 'ABC' >>> site.full_clean() >>> site.save() >>> site = Site.objects.first() >>> site.cf {'foo': 'ABC', 'site_code': 'US-RAL01'} ``` Additionally, custom selection field choices are now defined on the CustomField model within the admin UI, which greatly simplifies working with choice values. ### Improved Cable Trace Performance ([#4900](https://github.com/netbox-community/netbox/issues/4900)) All end-to-end cable paths are now cached using the new CablePath backend model. This allows NetBox to now immediately return the complete path originating from any endpoint directly from the database, rather than having to trace each cable recursively. It also resolves some systemic validation issues present in the original implementation. **Note:** As part of this change, cable traces will no longer traverse circuits: A circuit termination will be considered the origin or destination of an end-to-end path. ## Enhancements * [#609](https://github.com/netbox-community/netbox/issues/609) - Add min/max value and regex validation for custom fields * [#1503](https://github.com/netbox-community/netbox/issues/1503) - Allow assigment of secrets to virtual machines * [#1692](https://github.com/netbox-community/netbox/issues/1692) - Allow assigment of inventory items to parent items in web UI * [#2179](https://github.com/netbox-community/netbox/issues/2179) - Support the use of multiple port numbers when defining a service * [#4897](https://github.com/netbox-community/netbox/issues/4897) - Allow filtering by content type identified as `<app>.<model>` string * [#4918](https://github.com/netbox-community/netbox/issues/4918) - Add a REST API endpoint (`/api/status/`) which returns NetBox's current operational status * [#4956](https://github.com/netbox-community/netbox/issues/4956) - Include inventory items on primary device view * [#4967](https://github.com/netbox-community/netbox/issues/4967) - Support tenant assignment for aggregates * [#5003](https://github.com/netbox-community/netbox/issues/5003) - CSV import now accepts slug values for choice fields * [#5146](https://github.com/netbox-community/netbox/issues/5146) - Add custom field support for cables, power panels, rack reservations, and virtual chassis * [#5154](https://github.com/netbox-community/netbox/issues/5154) - The web interface now consumes the entire browser window * [#5190](https://github.com/netbox-community/netbox/issues/5190) - Add a REST API endpoint for retrieving content types (`/api/extras/content-types/`) * [#5274](https://github.com/netbox-community/netbox/issues/5274) - Add REST API support for custom fields * [#5399](https://github.com/netbox-community/netbox/issues/5399) - Show options for cable endpoint types during bulk import * [#5411](https://github.com/netbox-community/netbox/issues/5411) - Include cable tags in trace view ## Other Changes * [#1846](https://github.com/netbox-community/netbox/issues/1846) - Enable MPTT for InventoryItem hierarchy * [#2755](https://github.com/netbox-community/netbox/issues/2755) - Switched from Font Awesome/Glyphicons to Material Design icons * [#4349](https://github.com/netbox-community/netbox/issues/4349) - Dropped support for embedded graphs * [#4360](https://github.com/netbox-community/netbox/issues/4360) - Dropped support for the Django template language from export templates * [#4711](https://github.com/netbox-community/netbox/issues/4711) - Renamed Webhook `obj_type` to `content_types` * [#4941](https://github.com/netbox-community/netbox/issues/4941) - `commit` argument is now required argument in a custom script's `run()` method * [#5011](https://github.com/netbox-community/netbox/issues/5011) - Standardized name field lengths across all models * [#5139](https://github.com/netbox-community/netbox/issues/5139) - Omit utilization statistics from RIR list * [#5225](https://github.com/netbox-community/netbox/issues/5225) - Circuit termination port speed is now an optional field ## REST API Changes * Added support for `PUT`, `PATCH`, and `DELETE` operations on list endpoints (bulk update and delete) * Added the `/extras/content-types/` endpoint for Django ContentTypes * Added the `/extras/custom-fields/` endpoint for custom fields * Removed the `/extras/_custom_field_choices/` endpoint (replaced by new custom fields endpoint) * Added the `/status/` endpoint to convey NetBox's current status * circuits.CircuitTermination: * Added the `/trace/` endpoint * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * `port_speed` may now be null * dcim.Cable: Added `custom_fields` * dcim.ConsolePort: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.ConsoleServerPort: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.FrontPort: * Replaced the `/trace/` endpoint with `/paths/`, which returns a list of cable paths * Added `cable_peer` and `cable_peer_type` * dcim.Interface: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.InventoryItem: The `_depth` field has been added to reflect MPTT positioning * dcim.PowerFeed: * Added the `/trace/` endpoint * Added fields `connected_endpoint`, `connected_endpoint_type`, `connected_endpoint_reachable`, `cable_peer`, and `cable_peer_type` * dcim.PowerOutlet: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.PowerPanel: Added `custom_fields` * dcim.PowerPort * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` * Removed `connection_status` from nested serializer * dcim.RackReservation: Added `custom_fields` * dcim.RearPort: * Replaced the `/trace/` endpoint with `/paths/`, which returns a list of cable paths * Added `cable_peer` and `cable_peer_type` * dcim.VirtualChassis: Added `custom_fields` * extras.ExportTemplate: The `template_language` field has been removed * extras.Graph: This API endpoint has been removed (see #4349) * extras.ImageAttachment: Filtering by `content_type` now takes a string in the form `<app>.<model>` * extras.ObjectChange: Filtering by `changed_object_type` now takes a string in the form `<app>.<model>` * ipam.Aggregate: Added `tenant` field * ipam.RouteTarget: New endpoint * ipam.Service: Renamed `port` to `ports`; now holds a list of one or more port numbers * ipam.VRF: Added `import_targets` and `export_targets` fields * secrets.Secret: Removed `device` field; replaced with `assigned_object` generic foreign key. This may represent either a device or a virtual machine. Assign an object by setting `assigned_object_type` and `assigned_object_id`. 2020-12-14T19:39:52+00:00 netbox v2.10.1 netbox v2.10.1 2020-12-16T03:15:13+00:00 ## Bug Fixes * [#5444](https://github.com/netbox-community/netbox/issues/5444) - Don't force overwriting of boolean fields when bulk editing interfaces * [#5450](https://github.com/netbox-community/netbox/issues/5450) - API serializer foreign count fields do not have a default value * [#5453](https://github.com/netbox-community/netbox/issues/5453) - Correct change log representation when creating a cable * [#5458](https://github.com/netbox-community/netbox/issues/5458) - Creating a component template throws an exception * [#5461](https://github.com/netbox-community/netbox/issues/5461) - Rack Elevations throw reverse match exception * [#5463](https://github.com/netbox-community/netbox/issues/5463) - Back-to-back Circuit Termination throws AttributeError exception * [#5465](https://github.com/netbox-community/netbox/issues/5465) - Correct return URL when disconnecting a cable from a device * [#5466](https://github.com/netbox-community/netbox/issues/5466) - Fix validation for required custom fields * [#5470](https://github.com/netbox-community/netbox/issues/5470) - Fix exception when making `OPTIONS` request for a REST API list endpoint 2020-12-16T03:15:13+00:00 netbox v2.10.2 netbox v2.10.2 2020-12-21T21:18:36+00:00 ## Enhancements * [#5489](https://github.com/netbox-community/netbox/issues/5489) - Add filters for type and width to racks list * [#5496](https://github.com/netbox-community/netbox/issues/5496) - Add form field to filter rack reservation by user ## Bug Fixes * [#5254](https://github.com/netbox-community/netbox/issues/5254) - Require plugin authors to set zip_safe=False * [#5468](https://github.com/netbox-community/netbox/issues/5468) - Fix unlocking secrets from device/VM view * [#5473](https://github.com/netbox-community/netbox/issues/5473) - Fix alignment of rack names in elevations list * [#5478](https://github.com/netbox-community/netbox/issues/5478) - Fix display of route target description * [#5484](https://github.com/netbox-community/netbox/issues/5484) - Fix "tagged" indication in VLAN members list * [#5486](https://github.com/netbox-community/netbox/issues/5486) - Optimize retrieval of config context data for device/VM REST API views * [#5487](https://github.com/netbox-community/netbox/issues/5487) - Support filtering rack type/width with multiple values * [#5488](https://github.com/netbox-community/netbox/issues/5488) - Fix caching error when viewing cable trace after toggling cable status * [#5498](https://github.com/netbox-community/netbox/issues/5498) - Fix filtering rack reservations by username * [#5499](https://github.com/netbox-community/netbox/issues/5499) - Fix filtering of displayed device/VM interfaces by regex * [#5507](https://github.com/netbox-community/netbox/issues/5507) - Fix custom field data assignment via UI for IP addresses, secrets * [#5510](https://github.com/netbox-community/netbox/issues/5510) - Fix filtering by boolean custom fields 2020-12-21T21:18:36+00:00 netbox v2.10.3 netbox v2.10.3 2021-01-06T02:10:40+00:00 ## Bug Fixes * [#5049](https://github.com/netbox-community/netbox/issues/5049) - Add check for LLDP neighbor chassis name to lldp_neighbors * [#5301](https://github.com/netbox-community/netbox/issues/5301) - Fix misleading error when racking a device with invalid parameters * [#5311](https://github.com/netbox-community/netbox/issues/5311) - Update child objects when a rack group is moved to a new site * [#5518](https://github.com/netbox-community/netbox/issues/5518) - Fix persistent vertical scrollbar * [#5533](https://github.com/netbox-community/netbox/issues/5533) - Fix bulk editing of objects with required custom fields * [#5540](https://github.com/netbox-community/netbox/issues/5540) - Fix exception when viewing a provider with one or more tags assigned * [#5543](https://github.com/netbox-community/netbox/issues/5543) - Fix rendering of config contexts with cluster assignment for devices * [#5546](https://github.com/netbox-community/netbox/issues/5546) - Add custom field bulk edit support for cables, power panels, rack reservations, and virtual chassis * [#5547](https://github.com/netbox-community/netbox/issues/5547) - Add custom field bulk import support for cables, power panels, rack reservations, and virtual chassis * [#5551](https://github.com/netbox-community/netbox/issues/5551) - Restore missing import button on services list * [#5557](https://github.com/netbox-community/netbox/issues/5557) - Fix VRF route target assignment via REST API * [#5558](https://github.com/netbox-community/netbox/issues/5558) - Fix regex validation support for custom URL fields * [#5563](https://github.com/netbox-community/netbox/issues/5563) - Fix power feed cable trace link * [#5564](https://github.com/netbox-community/netbox/issues/5564) - Raise validation error if a power port template's `allocated_draw` exceeds its `maximum_draw` * [#5569](https://github.com/netbox-community/netbox/issues/5569) - Ensure consistent labeling of interface `mgmt_only` field * [#5573](https://github.com/netbox-community/netbox/issues/5573) - Report inconsistent values when migrating custom field data 2021-01-06T02:10:40+00:00 netbox v2.10.4 netbox v2.10.4 2021-01-26T21:01:52+00:00 ## Enhancements * [#5542](https://github.com/netbox-community/netbox/issues/5542) - Show cable trace lengths in both meters and feet * [#5570](https://github.com/netbox-community/netbox/issues/5570) - Add "management only" filter widget for interfaces list * [#5586](https://github.com/netbox-community/netbox/issues/5586) - Allow filtering virtual chassis by name and master * [#5612](https://github.com/netbox-community/netbox/issues/5612) - Add GG45 and TERA port types, and CAT7a and CAT8 cable types * [#5678](https://github.com/netbox-community/netbox/issues/5678) - Show available type choices for all device component import forms ## Bug Fixes * [#5232](https://github.com/netbox-community/netbox/issues/5232) - Correct swagger definition for ip_prefixes_available-ips_create API * [#5574](https://github.com/netbox-community/netbox/issues/5574) - Restrict the creation of device bay templates on non-parent device types * [#5584](https://github.com/netbox-community/netbox/issues/5584) - Restore power utilization panel under device view * [#5597](https://github.com/netbox-community/netbox/issues/5597) - Fix ordering devices by primary IP address * [#5603](https://github.com/netbox-community/netbox/issues/5603) - Fix display of white cables in trace view * [#5639](https://github.com/netbox-community/netbox/issues/5639) - Fix filtering connection lists by device name * [#5640](https://github.com/netbox-community/netbox/issues/5640) - Fix permissions assessment when adding VM interfaces in bulk * [#5648](https://github.com/netbox-community/netbox/issues/5648) - Include VC member interfaces on interfaces tab count when viewing VC master * [#5665](https://github.com/netbox-community/netbox/issues/5665) - Validate rack group is assigned to same site when creating a rack * [#5683](https://github.com/netbox-community/netbox/issues/5683) - Correct rack elevation displayed when viewing a reservation 2021-01-26T21:01:52+00:00 netbox v2.10.5 netbox v2.10.5 2021-02-24T20:37:34+00:00 ## Bug Fixes * [#5315](https://github.com/netbox-community/netbox/issues/5315) - Fix site unassignment from VLAN when using "None" option * [#5626](https://github.com/netbox-community/netbox/issues/5626) - Fix REST API representation for circuit terminations connected to non-interface endpoints * [#5716](https://github.com/netbox-community/netbox/issues/5716) - Fix filtering rack reservations by custom field * [#5718](https://github.com/netbox-community/netbox/issues/5718) - Fix bulk editing of services when no port(s) are defined * [#5735](https://github.com/netbox-community/netbox/issues/5735) - Ensure consistent treatment of duplicate IP addresses * [#5738](https://github.com/netbox-community/netbox/issues/5738) - Fix redirect to device components view after disconnecting a cable * [#5753](https://github.com/netbox-community/netbox/issues/5753) - Fix Redis Sentinel password application for caching * [#5786](https://github.com/netbox-community/netbox/issues/5786) - Allow setting null tenant group on tenant via REST API * [#5841](https://github.com/netbox-community/netbox/issues/5841) - Disallow the creation of available prefixes/IP addresses in violation of assigned permission constraints 2021-02-24T20:37:34+00:00 netbox v2.10.6 netbox v2.10.6 2021-03-09T22:14:46+00:00 ## Enhancements * [#5592](https://github.com/netbox-community/netbox/issues/5592) - Add IP addresses count to VRF view * [#5630](https://github.com/netbox-community/netbox/issues/5630) - Add QSFP+ (64GFC) FibreChannel Interface option * [#5884](https://github.com/netbox-community/netbox/issues/5884) - Enable custom links for device components * [#5914](https://github.com/netbox-community/netbox/issues/5914) - Add edit/delete buttons for IP addresses on interface view * [#5942](https://github.com/netbox-community/netbox/issues/5942) - Add button to add a new IP address on interface view ## Bug Fixes * [#5703](https://github.com/netbox-community/netbox/issues/5703) - Fix VRF and Tenant field population when adding IP addresses from prefix * [#5819](https://github.com/netbox-community/netbox/issues/5819) - Enable ordering of virtual machines by primary IP address * [#5872](https://github.com/netbox-community/netbox/issues/5872) - Ordering of devices by primary IP should respect `PREFER_IPV4` configuration parameter * [#5922](https://github.com/netbox-community/netbox/issues/5922) - Fix options for filtering object permissions in admin UI * [#5935](https://github.com/netbox-community/netbox/issues/5935) - Fix filtering prefixes list by multiple prefix values * [#5948](https://github.com/netbox-community/netbox/issues/5948) - Invalidate cached queries when running `renaturalize` 2021-03-09T22:14:46+00:00 netbox v2.10.7 netbox v2.10.7 2021-03-25T19:35:19+00:00 ## Enhancements * [#5641](https://github.com/netbox-community/netbox/issues/5641) - Allow filtering device components by label * [#5723](https://github.com/netbox-community/netbox/issues/5723) - Allow customization of the geographic mapping service via `MAPS_URL` config parameter * [#5736](https://github.com/netbox-community/netbox/issues/5736) - Allow changing site assignment when bulk editing devices * [#5953](https://github.com/netbox-community/netbox/issues/5953) - Support Markdown rendering for custom script descriptions * [#6040](https://github.com/netbox-community/netbox/issues/6040) - Add UI search fields for asset tag for devices and racks ## Bug Fixes * [#5595](https://github.com/netbox-community/netbox/issues/5595) - Restore ability to delete an uploaded device type image * [#5650](https://github.com/netbox-community/netbox/issues/5650) - Denote when the total length of a cable trace may exceed the indicated value * [#5962](https://github.com/netbox-community/netbox/issues/5962) - Ensure consistent display of change log action labels * [#5966](https://github.com/netbox-community/netbox/issues/5966) - Skip Markdown reference link when tabbing through form fields * [#5977](https://github.com/netbox-community/netbox/issues/5977) - Correct validation of `RELEASE_CHECK_URL` config parameter * [#6006](https://github.com/netbox-community/netbox/issues/6006) - Fix VLAN group/site association for bulk prefix import * [#6010](https://github.com/netbox-community/netbox/issues/6010) - Eliminate duplicate virtual chassis search results * [#6012](https://github.com/netbox-community/netbox/issues/6012) - Pre-populate attributes when creating an available child prefix via the UI * [#6023](https://github.com/netbox-community/netbox/issues/6023) - Fix display of bottom banner with uBlock Origin enabled 2021-03-25T19:35:19+00:00 netbox v2.10.8 netbox v2.10.8 2021-03-26T14:23:20+00:00 ## Bug Fixes * [#6060](https://github.com/netbox-community/netbox/issues/6060) - Fix exception on cable trace in UI (regression from #5650) 2021-03-26T14:23:20+00:00 netbox v2.11-beta1 netbox v2.11-beta1 2021-04-06T16:04:22+00:00 ## v2.11-beta1 (2021-04-06) **WARNING:** This is a beta release and is not suitable for production use. It is intended for development and evaluation purposes only. No upgrade path to the final v2.11 release will be provided from this beta, and users should assume that all data entered into the application will be lost. **Note:** NetBox v2.11 is the last major release that will support Python 3.6. Beginning with NetBox v2.12, Python 3.7 or later will be required. ### Breaking Changes * All objects now use numeric IDs in their UI view URLs instead of slugs. You may need to update external references to NetBox objects. (Note that this does _not_ affect the REST API.) * The UI now uses numeric IDs when filtering object lists. You may need to update external links to filtered object lists. (Note that the slug- and name-based filters will continue to work, however the filter selection fields within the UI will not be automatically populated.) * The RackGroup model has been renamed to Location (see [#4971](https://github.com/netbox-community/netbox/issues/4971)). Its REST API endpoint has changed from `/api/dcim/rack-groups/` to `/api/dcim/locations/`. * The foreign key field `group` on dcim.Rack has been renamed to `location`. * The foreign key field `site` on ipam.VLANGroup has been replaced with the `scope` generic foreign key (see [#5284](https://github.com/netbox-community/netbox/issues/5284)). * Custom script ObjectVars no longer support the `queryset` parameter: Use `model` instead (see [#5995](https://github.com/netbox-community/netbox/issues/5995)). ### New Features #### Journaling Support ([#151](https://github.com/netbox-community/netbox/issues/151)) NetBox now supports journaling for all primary objects. The journal is a collection of human-generated notes and comments about an object maintained for historical context. It supplements NetBox's change log to provide additional information about why changes have been made or to convey events which occur outside NetBox. Unlike the change log, in which records typically expire after some time, journal entries persist for the life of the associated object. #### Parent Interface Assignments ([#1519](https://github.com/netbox-community/netbox/issues/1519)) Virtual interfaces can now be assigned to a "parent" physical interface by setting the `parent` field on the interface object. This is helpful for associating subinterfaces with their physical counterpart. For example, you might assign virtual interfaces Gi0/0.100 and Gi0/0.200 as children of the physical interface Gi0/0. #### Pre- and Post-Change Snapshots in Webhooks ([#3451](https://github.com/netbox-community/netbox/issues/3451)) In conjunction with the newly improved change logging functionality ([#5913](https://github.com/netbox-community/netbox/issues/5913)), outgoing webhooks now include both pre- and post-change representations of the modified object. These are available in the rendering context as a dictionary named `snapshots` with keys `prechange` and `postchange`. For example, here are the abridged snapshots resulting from renaming a site and changing its status: ```json "snapshots": { "prechange": { "name": "Site 1", "slug": "site-1", "status": "active", ... }, "postchange": { "name": "Site 2", "slug": "site-2", "status": "planned", ... } } ``` Note: The pre-change snapshot for a newly created will always be null, as will the post-change snapshot for a deleted object. #### Mark as Connected Without a Cable ([#3648](https://github.com/netbox-community/netbox/issues/3648)) Cable termination objects (circuit terminations, power feeds, and most device components) can now be marked as "connected" without actually attaching a cable. This helps simplify the process of modeling an infrastructure boundary where we don't necessarily know or care what is connected to an attachment point, but still need to reflect the termination as being occupied. In addition to the new `mark_connected` boolean field, the REST API representation of these objects now also includes a read-only boolean field named `_occupied`. This conveniently returns true if either a cable is attached or `mark_connected` is true. #### Allow Assigning Devices to Locations ([#4971](https://github.com/netbox-community/netbox/issues/4971)) Devices can now be assigned to locations (formerly known as rack groups) within a site without needing to be assigned to a particular rack. This is handy for assigning devices to rooms or floors within a building where racks are not used. The `location` foreign key field has been added to the Device model to support this. #### Dynamic Object Exports ([#4999](https://github.com/netbox-community/netbox/issues/4999)) When exporting a list of objects in NetBox, users now have the option of selecting the "current view". This will render CSV output matching the current configuration of the table being viewed. For example, if you modify the sites list to display only the site name, tenant, and status, the rendered CSV will include only these columns, and they will appear in the order chosen. The legacy static export behavior has been retained to ensure backward compatibility for dependent integrations. However, users are strongly encouraged to adapt custom export templates where needed as this functionality will be removed in v2.12. #### Variable Scope Support for VLAN Groups ([#5284](https://github.com/netbox-community/netbox/issues/5284)) In previous releases, VLAN groups could be assigned only to a site. To afford more flexibility in conveying the true scope of an L2 domain, a VLAN group can now be assigned to a region, site group (new in v2.11), site, location, or rack. VLANs assigned to a group will be available only to devices and virtual machines which exist within its scope. For example, a VLAN within a group assigned to a location will be available only to devices assigned to that location (or one of its child locations), or to a rack within that location. #### New Site Group Model ([#5892](https://github.com/netbox-community/netbox/issues/5892)) This release introduces the new SiteGroup model, which can be used to organize sites similar to the existing Region model. Whereas regions are intended for geographically arranging sites into countries, states, and so on, the new site group model can be used to organize sites by functional role or other arbitrary classification. Using regions and site groups in conjunction provides two dimensions along which sites can be organized, offering greater flexibility to the user. #### Improved Change Logging ([#5913](https://github.com/netbox-community/netbox/issues/5913)) The ObjectChange model (which is used to record the creation, modification, and deletion of NetBox objects) now explicitly records the pre-change and post-change state of each object, rather than only the post-change state. This was done to present a more clear depiction of each change being made, and to prevent the erroneous association of a previous unlogged change with its successor. #### Provider Network Modeling ([#5986](https://github.com/netbox-community/netbox/issues/5986)) A new provider network model has been introduced to represent the boundary of a network that exists outside the scope of NetBox. Each instance of this model must be assigned to a provider, and circuits can now terminate to either provider networks or to sites. The use of this model will likely be extended by future releases to support overlay and virtual circuit modeling. ### Enhancements * [#4833](https://github.com/netbox-community/netbox/issues/4833) - Allow assigning config contexts by device type * [#5344](https://github.com/netbox-community/netbox/issues/5344) - Add support for custom fields in tables * [#5370](https://github.com/netbox-community/netbox/issues/5370) - Extend custom field support to organizational models * [#5375](https://github.com/netbox-community/netbox/issues/5375) - Add `speed` attribute to console port models * [#5401](https://github.com/netbox-community/netbox/issues/5401) - Extend custom field support to device component models * [#5425](https://github.com/netbox-community/netbox/issues/5425) - Create separate tabs for VMs and devices under the cluster view * [#5451](https://github.com/netbox-community/netbox/issues/5451) - Add support for multiple-selection custom fields * [#5608](https://github.com/netbox-community/netbox/issues/5608) - Add REST API endpoint for custom links * [#5610](https://github.com/netbox-community/netbox/issues/5610) - Add REST API endpoint for webhooks * [#5830](https://github.com/netbox-community/netbox/issues/5830) - Add `as_attachment` to ExportTemplate to control download behavior * [#5891](https://github.com/netbox-community/netbox/issues/5891) - Add `display` field to all REST API serializers * [#5894](https://github.com/netbox-community/netbox/issues/5894) - Use primary keys when filtering object lists by related objects in the UI * [#5895](https://github.com/netbox-community/netbox/issues/5895) - Rename RackGroup to Location * [#5901](https://github.com/netbox-community/netbox/issues/5901) - Add `created` and `last_updated` fields to device component models * [#5971](https://github.com/netbox-community/netbox/issues/5971) - Add dedicated views for organizational models * [#5972](https://github.com/netbox-community/netbox/issues/5972) - Enable bulk editing for organizational models * [#5975](https://github.com/netbox-community/netbox/issues/5975) - Allow partial (decimal) vCPU allocations for virtual machines * [#6001](https://github.com/netbox-community/netbox/issues/6001) - Paginate component tables under device views * [#6038](https://github.com/netbox-community/netbox/issues/6038) - Include tagged objects list on tag view ### Other Changes * [#1638](https://github.com/netbox-community/netbox/issues/1638) - Migrate all primary keys to 64-bit integers * [#5873](https://github.com/netbox-community/netbox/issues/5873) - Use numeric IDs in all object URLs * [#5938](https://github.com/netbox-community/netbox/issues/5938) - Deprecated support for Python 3.6 * [#5990](https://github.com/netbox-community/netbox/issues/5990) - Deprecated `display_field` parameter for custom script ObjectVar and MultiObjectVar fields * [#5995](https://github.com/netbox-community/netbox/issues/5995) - Dropped backward compatibility for `queryset` parameter on ObjectVar and MultiObjectVar (use `model` instead) * [#6014](https://github.com/netbox-community/netbox/issues/6014) - Moved the virtual machine interfaces list to a separate view * [#6071](https://github.com/netbox-community/netbox/issues/6071) - Cable traces now traverse circuits ### REST API Changes * All primary keys are now 64-bit integers * All model serializers now include a `display` field to be used for the presentation of an object to a human user * All device components * Added support for custom fields * Added `created` and `last_updated` fields to track object creation and modification * All device component templates * Added `created` and `last_updated` fields to track object creation and modification * All organizational models * Added support for custom fields * All cable termination models (cabled device components, power feeds, and circuit terminations) * Added `mark_connected` boolean field to force connection status * Added `_occupied` read-only boolean field as common attribute for determining whether an object is occupied * Renamed RackGroup to Location * The `/dcim/rack-groups/` endpoint is now `/dcim/locations/` * circuits.CircuitTermination * Added the `provider_network` field * Removed the `connected_endpoint`, `connected_endpoint_type`, and `connected_endpoint_reachable` fields * circuits.ProviderNetwork * Added the `/api/circuits/provider-networks/` endpoint * dcim.Device * Added the `location` field * dcim.Interface * Added the `parent` field * dcim.PowerPanel * Renamed `rack_group` field to `location` * dcim.Rack * Renamed `group` field to `location` * dcim.Site * Added the `group` foreign key field to SiteGroup * dcim.SiteGroup * Added the `/api/dcim/site-groups/` endpoint * extras.ConfigContext * Added the `site_groups` many-to-many field to track the assignment of ConfigContexts to SiteGroups * extras.CustomField * Added new custom field type: `multi-select` * extras.CustomLink * Added the `/api/extras/custom-links/` endpoint * extras.ExportTemplate * Added the `as_attachment` boolean field * extras.ObjectChange * Added the `prechange_data` field * Renamed `object_data` to `postchange_data` * extras.Webhook * Added the `/api/extras/webhooks/` endpoint * ipam.VLANGroup * Added the `scope_type`, `scope_id`, and `scope` fields (`scope` is a generic foreign key) * Dropped the `site` foreign key field * virtualization.VirtualMachine * `vcpus` has been changed from an integer to a decimal value 2021-04-06T16:04:22+00:00 netbox v2.10.9 netbox v2.10.9 2021-04-12T17:29:14+00:00 ## Enhancements * [#5526](https://github.com/netbox-community/netbox/issues/5526) - Add MAC address search field to VM interfaces list * [#5756](https://github.com/netbox-community/netbox/issues/5756) - Omit child devices from non-racked devices list under rack view * [#5840](https://github.com/netbox-community/netbox/issues/5840) - Add column to cable termination objects to display cable color * [#6054](https://github.com/netbox-community/netbox/issues/6054) - Display NAPALM-enabled device tabs only when relevant * [#6083](https://github.com/netbox-community/netbox/issues/6083) - Support disabling TLS certificate validation for Redis ## Bug Fixes * [#5805](https://github.com/netbox-community/netbox/issues/5805) - Fix missing custom field filters for cables, rack reservations * [#6070](https://github.com/netbox-community/netbox/issues/6070) - Add missing `count_ipaddresses` attribute to VMInterface serializer * [#6073](https://github.com/netbox-community/netbox/issues/6073) - Permit users to manage their own REST API tokens without needing explicit permission * [#6081](https://github.com/netbox-community/netbox/issues/6081) - Fix interface connections REST API endpoint * [#6082](https://github.com/netbox-community/netbox/issues/6082) - Support colons in webhook header values * [#6108](https://github.com/netbox-community/netbox/issues/6108) - Do not infer tenant assignment from parent objects for prefixes, IP addresses * [#6117](https://github.com/netbox-community/netbox/issues/6117) - Handle exception when attempting to assign an MPTT-enabled model as its own parent * [#6131](https://github.com/netbox-community/netbox/issues/6131) - Correct handling of boolean fields when cloning objects 2021-04-12T17:29:14+00:00 netbox v2.10.10 netbox v2.10.10 2021-04-15T19:35:04+00:00 ## Enhancements * [#5796](https://github.com/netbox-community/netbox/issues/5796) - Add DC terminal power port, outlet types * [#5980](https://github.com/netbox-community/netbox/issues/5980) - Add Saf-D-Grid power port, outlet types * [#6157](https://github.com/netbox-community/netbox/issues/6157) - Support Markdown rendering for report logs * [#6160](https://github.com/netbox-community/netbox/issues/6160) - Add F connector port type * [#6168](https://github.com/netbox-community/netbox/issues/6168) - Add SFP56 50GE interface type ## Bug Fixes * [#5419](https://github.com/netbox-community/netbox/issues/5419) - Update parent device/VM when deleting a primary IP * [#5643](https://github.com/netbox-community/netbox/issues/5643) - Fix VLAN assignment when editing VM interfaces in bulk * [#5652](https://github.com/netbox-community/netbox/issues/5652) - Update object data when renaming a custom field * [#6056](https://github.com/netbox-community/netbox/issues/6056) - Optimize change log cleanup * [#6144](https://github.com/netbox-community/netbox/issues/6144) - Fix MAC address field display in VM interfaces search form * [#6152](https://github.com/netbox-community/netbox/issues/6152) - Fix custom field filtering for cables, virtual chassis * [#6162](https://github.com/netbox-community/netbox/issues/6162) - Fix choice field filters (multiple models) 2021-04-15T19:35:04+00:00 netbox v2.11.0 netbox v2.11.0 2021-04-16T13:53:55+00:00 **Note:** NetBox v2.11 is the last major release that will support Python 3.6. Beginning with NetBox v2.12, Python 3.7 or later will be required. ## Breaking Changes * All objects now use numeric IDs in their UI view URLs instead of slugs. You may need to update external references to NetBox objects. (Note that this does _not_ affect the REST API.) * The UI now uses numeric IDs when filtering object lists. You may need to update external links to filtered object lists. (Note that the slug- and name-based filters will continue to work, however the filter selection fields within the UI will not be automatically populated.) * The RackGroup model has been renamed to Location (see [#4971](https://github.com/netbox-community/netbox/issues/4971)). Its REST API endpoint has changed from `/api/dcim/rack-groups/` to `/api/dcim/locations/`. * The foreign key field `group` on dcim.Rack has been renamed to `location`. * The foreign key field `site` on ipam.VLANGroup has been replaced with the `scope` generic foreign key (see [#5284](https://github.com/netbox-community/netbox/issues/5284)). * Custom script ObjectVars no longer support the `queryset` parameter: Use `model` instead (see [#5995](https://github.com/netbox-community/netbox/issues/5995)). ## New Features ### Journaling Support ([#151](https://github.com/netbox-community/netbox/issues/151)) NetBox now supports journaling for all primary objects. The journal is a collection of human-generated notes and comments about an object maintained for historical context. It supplements NetBox's change log to provide additional information about why changes have been made or to convey events which occur outside NetBox. Unlike the change log, in which records typically expire after some time, journal entries persist for the life of the associated object. ### Parent Interface Assignments ([#1519](https://github.com/netbox-community/netbox/issues/1519)) Virtual device and VM interfaces can now be assigned to a "parent" interface by setting the `parent` field on the interface object. This is helpful for associating subinterfaces with their physical counterpart. For example, you might assign virtual interfaces Gi0/0.100 and Gi0/0.200 as children of the physical interface Gi0/0. ### Pre- and Post-Change Snapshots in Webhooks ([#3451](https://github.com/netbox-community/netbox/issues/3451)) In conjunction with the newly improved change logging functionality ([#5913](https://github.com/netbox-community/netbox/issues/5913)), outgoing webhooks now include both pre- and post-change representations of the modified object. These are available in the rendering context as a dictionary named `snapshots` with keys `prechange` and `postchange`. For example, here are the abridged snapshots resulting from renaming a site and changing its status: ```json "snapshots": { "prechange": { "name": "Site 1", "slug": "site-1", "status": "active", ... }, "postchange": { "name": "Site 2", "slug": "site-2", "status": "planned", ... } } ``` Note: The pre-change snapshot for a newly created will always be null, as will the post-change snapshot for a deleted object. ### Mark as Connected Without a Cable ([#3648](https://github.com/netbox-community/netbox/issues/3648)) Cable termination objects (circuit terminations, power feeds, and most device components) can now be marked as "connected" without actually attaching a cable. This helps simplify the process of modeling an infrastructure boundary where we don't necessarily know or care what is connected to an attachment point, but still need to reflect the termination as being occupied. In addition to the new `mark_connected` boolean field, the REST API representation of these objects now also includes a read-only boolean field named `_occupied`. This conveniently returns true if either a cable is attached or `mark_connected` is true. ### Allow Assigning Devices to Locations ([#4971](https://github.com/netbox-community/netbox/issues/4971)) Devices can now be assigned to locations (formerly known as rack groups) within a site without needing to be assigned to a particular rack. This is handy for assigning devices to rooms or floors within a building where racks are not used. The `location` foreign key field has been added to the Device model to support this. ### Dynamic Object Exports ([#4999](https://github.com/netbox-community/netbox/issues/4999)) When exporting a list of objects in NetBox, users now have the option of selecting the "current view". This will render CSV output matching the current configuration of the table being viewed. For example, if you modify the sites list to display only the site name, tenant, and status, the rendered CSV will include only these columns, and they will appear in the order chosen. The legacy static export behavior has been retained to ensure backward compatibility for dependent integrations. However, users are strongly encouraged to adapt custom export templates where needed as this functionality will be removed in v2.12. ### Variable Scope Support for VLAN Groups ([#5284](https://github.com/netbox-community/netbox/issues/5284)) In previous releases, VLAN groups could be assigned only to a site. To afford more flexibility in conveying the true scope of an L2 domain, a VLAN group can now be assigned to a region, site group (new in v2.11), site, location, or rack. VLANs assigned to a group will be available only to devices and virtual machines which exist within its scope. For example, a VLAN within a group assigned to a location will be available only to devices assigned to that location (or one of its child locations), or to a rack within that location. ### New Site Group Model ([#5892](https://github.com/netbox-community/netbox/issues/5892)) This release introduces the new SiteGroup model, which can be used to organize sites similar to the existing Region model. Whereas regions are intended for geographically arranging sites into countries, states, and so on, the new site group model can be used to organize sites by functional role or other arbitrary classification. Using regions and site groups in conjunction provides two dimensions along which sites can be organized, offering greater flexibility to the user. ### Improved Change Logging ([#5913](https://github.com/netbox-community/netbox/issues/5913)) The ObjectChange model (which is used to record the creation, modification, and deletion of NetBox objects) now explicitly records the pre-change and post-change state of each object, rather than only the post-change state. This was done to present a more clear depiction of each change being made, and to prevent the erroneous association of a previous unlogged change with its successor. ### Provider Network Modeling ([#5986](https://github.com/netbox-community/netbox/issues/5986)) A new provider network model has been introduced to represent the boundary of a network that exists outside the scope of NetBox. Each instance of this model must be assigned to a provider, and circuits can now terminate to either provider networks or to sites. The use of this model will likely be extended by future releases to support overlay and virtual circuit modeling. ## Enhancements * [#4833](https://github.com/netbox-community/netbox/issues/4833) - Allow assigning config contexts by device type * [#5344](https://github.com/netbox-community/netbox/issues/5344) - Add support for custom fields in tables * [#5370](https://github.com/netbox-community/netbox/issues/5370) - Extend custom field support to organizational models * [#5375](https://github.com/netbox-community/netbox/issues/5375) - Add `speed` attribute to console port models * [#5401](https://github.com/netbox-community/netbox/issues/5401) - Extend custom field support to device component models * [#5425](https://github.com/netbox-community/netbox/issues/5425) - Create separate tabs for VMs and devices under the cluster view * [#5451](https://github.com/netbox-community/netbox/issues/5451) - Add support for multiple-selection custom fields * [#5608](https://github.com/netbox-community/netbox/issues/5608) - Add REST API endpoint for custom links * [#5610](https://github.com/netbox-community/netbox/issues/5610) - Add REST API endpoint for webhooks * [#5757](https://github.com/netbox-community/netbox/issues/5757) - Add unique identifier to every object view * [#5830](https://github.com/netbox-community/netbox/issues/5830) - Add `as_attachment` to ExportTemplate to control download behavior * [#5848](https://github.com/netbox-community/netbox/issues/5848) - Filter custom fields by content type in format `<app_label>.<model>` * [#5891](https://github.com/netbox-community/netbox/issues/5891) - Add `display` field to all REST API serializers * [#5894](https://github.com/netbox-community/netbox/issues/5894) - Use primary keys when filtering object lists by related objects in the UI * [#5895](https://github.com/netbox-community/netbox/issues/5895) - Rename RackGroup to Location * [#5901](https://github.com/netbox-community/netbox/issues/5901) - Add `created` and `last_updated` fields to device component models * [#5971](https://github.com/netbox-community/netbox/issues/5971) - Add dedicated views for organizational models * [#5972](https://github.com/netbox-community/netbox/issues/5972) - Enable bulk editing for organizational models * [#5975](https://github.com/netbox-community/netbox/issues/5975) - Allow partial (decimal) vCPU allocations for virtual machines * [#6001](https://github.com/netbox-community/netbox/issues/6001) - Paginate component tables under device views * [#6038](https://github.com/netbox-community/netbox/issues/6038) - Include tagged objects list on tag view * [#6088](https://github.com/netbox-community/netbox/issues/6088) - Improved table configuration form * [#6097](https://github.com/netbox-community/netbox/issues/6097) - Redirect old slug-based object views * [#6125](https://github.com/netbox-community/netbox/issues/6125) - Add locations count to home page * [#6146](https://github.com/netbox-community/netbox/issues/6146) - Add bulk disconnect support for power feeds * [#6149](https://github.com/netbox-community/netbox/issues/6149) - Support image attachments for locations ## Bug Fixes (from v2.11-beta1) * [#5583](https://github.com/netbox-community/netbox/issues/5583) - Eliminate redundant change records when adding/removing tags * [#6100](https://github.com/netbox-community/netbox/issues/6100) - Fix VM interfaces table "add interfaces" link * [#6104](https://github.com/netbox-community/netbox/issues/6104) - Fix location column on racks table * [#6105](https://github.com/netbox-community/netbox/issues/6105) - Hide checkboxes for VMs under cluster VMs view * [#6106](https://github.com/netbox-community/netbox/issues/6106) - Allow assigning a virtual interface as the parent of an existing interface * [#6107](https://github.com/netbox-community/netbox/issues/6107) - Fix rack selection field on device form * [#6110](https://github.com/netbox-community/netbox/issues/6110) - Fix handling of TemplateColumn values for table export * [#6123](https://github.com/netbox-community/netbox/issues/6123) - Prevent device from being assigned to mismatched site and location * [#6124](https://github.com/netbox-community/netbox/issues/6124) - Location `parent` filter should return all child locations (not just those directly assigned) * [#6130](https://github.com/netbox-community/netbox/issues/6130) - Improve display of assigned models in custom fields list * [#6155](https://github.com/netbox-community/netbox/issues/6155) - Fix admin links for plugins, background tasks * [#6171](https://github.com/netbox-community/netbox/issues/6171) - Fix display of horizontally-scrolling object lists * [#6173](https://github.com/netbox-community/netbox/issues/6173) - Fix assigned device/VM count when bulk editing/deleting device roles * [#6176](https://github.com/netbox-community/netbox/issues/6176) - Correct position of MAC address field when creating VM interfaces * [#6177](https://github.com/netbox-community/netbox/issues/6177) - Prevent VM interface from being assigned as its own parent ## Other Changes * [#1638](https://github.com/netbox-community/netbox/issues/1638) - Migrate all primary keys to 64-bit integers * [#5873](https://github.com/netbox-community/netbox/issues/5873) - Use numeric IDs in all object URLs * [#5938](https://github.com/netbox-community/netbox/issues/5938) - Deprecated support for Python 3.6 * [#5990](https://github.com/netbox-community/netbox/issues/5990) - Deprecated `display_field` parameter for custom script ObjectVar and MultiObjectVar fields * [#5995](https://github.com/netbox-community/netbox/issues/5995) - Dropped backward compatibility for `queryset` parameter on ObjectVar and MultiObjectVar (use `model` instead) * [#6014](https://github.com/netbox-community/netbox/issues/6014) - Moved the virtual machine interfaces list to a separate view * [#6071](https://github.com/netbox-community/netbox/issues/6071) - Cable traces now traverse circuits ## REST API Changes * All primary keys are now 64-bit integers * All model serializers now include a `display` field to be used for the presentation of an object to a human user * All device components * Added support for custom fields * Added `created` and `last_updated` fields to track object creation and modification * All device component templates * Added `created` and `last_updated` fields to track object creation and modification * All organizational models * Added support for custom fields * All cable termination models (cabled device components, power feeds, and circuit terminations) * Added `mark_connected` boolean field to force connection status * Added `_occupied` read-only boolean field as common attribute for determining whether an object is occupied * Renamed RackGroup to Location * The `/dcim/rack-groups/` endpoint is now `/dcim/locations/` * circuits.CircuitTermination * Added the `provider_network` field * Removed the `connected_endpoint`, `connected_endpoint_type`, and `connected_endpoint_reachable` fields * circuits.ProviderNetwork * Added the `/api/circuits/provider-networks/` endpoint * dcim.Device * Added the `location` field * dcim.Interface * Added the `parent` field * dcim.PowerPanel * Renamed `rack_group` field to `location` * dcim.Rack * Renamed `group` field to `location` * dcim.Site * Added the `group` foreign key field to SiteGroup * dcim.SiteGroup * Added the `/api/dcim/site-groups/` endpoint * extras.ConfigContext * Added the `site_groups` many-to-many field to track the assignment of ConfigContexts to SiteGroups * extras.CustomField * Added new custom field type: `multi-select` * extras.CustomLink * Added the `/api/extras/custom-links/` endpoint * extras.ExportTemplate * Added the `as_attachment` boolean field * extras.ObjectChange * Added the `prechange_data` field * Renamed `object_data` to `postchange_data` * extras.Webhook * Added the `/api/extras/webhooks/` endpoint * ipam.VLANGroup * Added the `scope_type`, `scope_id`, and `scope` fields (`scope` is a generic foreign key) * Dropped the `site` foreign key field * virtualization.VirtualMachine * `vcpus` has been changed from an integer to a decimal value * virtualization.VMInterface * Added the `parent` field 2021-04-16T13:53:55+00:00 netbox v2.11.1 netbox v2.11.1 2021-04-21T14:06:53+00:00 ## Enhancements * [#6161](https://github.com/netbox-community/netbox/issues/6161) - Enable ordering of device component tables * [#6179](https://github.com/netbox-community/netbox/issues/6179) - Enable natural ordering for virtual machines * [#6189](https://github.com/netbox-community/netbox/issues/6189) - Add ability to search for locations by name or description * [#6190](https://github.com/netbox-community/netbox/issues/6190) - Allow filtering devices with no location assigned * [#6210](https://github.com/netbox-community/netbox/issues/6210) - Include child locations on location view ## Bug Fixes * [#6184](https://github.com/netbox-community/netbox/issues/6184) - Fix parent object table column in prefix IP addresses list * [#6188](https://github.com/netbox-community/netbox/issues/6188) - Support custom field filtering for regions, site groups, and locations * [#6196](https://github.com/netbox-community/netbox/issues/6196) - Fix object list display for users with read-only permissions * [#6215](https://github.com/netbox-community/netbox/issues/6215) - Restore tenancy section in virtual machine form 2021-04-21T14:06:53+00:00 netbox v2.11.2 netbox v2.11.2 2021-04-27T14:46:38+00:00 ## Enhancements * [#6275](https://github.com/netbox-community/netbox/issues/6275) - Linkify rack, device counts on locations list * [#6278](https://github.com/netbox-community/netbox/issues/6278) - Note device locations on cable traces * [#6287](https://github.com/netbox-community/netbox/issues/6287) - Add option to clear assigned max length filter on prefixes list ## Bug Fixes * [#6236](https://github.com/netbox-community/netbox/issues/6236) - Journal entry title should account for configured timezone * [#6246](https://github.com/netbox-community/netbox/issues/6246) - Permit full-length descriptions when creating device components and VM interfaces * [#6248](https://github.com/netbox-community/netbox/issues/6248) - Fix table column reconfiguration under Chrome * [#6252](https://github.com/netbox-community/netbox/issues/6252) - Fix assignment of console port speed values above 19.2kbps * [#6254](https://github.com/netbox-community/netbox/issues/6254) - Disable ordering of space column in racks table * [#6258](https://github.com/netbox-community/netbox/issues/6258) - Fix parent assignment for SiteGroup API serializer * [#6262](https://github.com/netbox-community/netbox/issues/6262) - Support filtering by created/updated time for all relevant objects * [#6267](https://github.com/netbox-community/netbox/issues/6267) - Fix cable tracing API endpoint for circuit terminations * [#6289](https://github.com/netbox-community/netbox/issues/6289) - Fix assignment of VC member interfaces to LAG interfaces 2021-04-27T14:46:38+00:00 netbox v2.11.3 netbox v2.11.3 2021-05-07T14:21:01+00:00 ## Enhancements * [#6197](https://github.com/netbox-community/netbox/issues/6197) - Introduced `SESSION_COOKIE_NAME` config parameter * [#6318](https://github.com/netbox-community/netbox/issues/6318) - Add OM5 MMF cable type * [#6351](https://github.com/netbox-community/netbox/issues/6351) - Add aggregates count to tenant view * [#6359](https://github.com/netbox-community/netbox/issues/6359) - Enable custom links for organizational and nested group models ## Bug Fixes * [#6240](https://github.com/netbox-community/netbox/issues/6240) - Fix display of available VLAN ranges under VLAN group view * [#6308](https://github.com/netbox-community/netbox/issues/6308) - Fix linking of available VLANs in VLAN group view * [#6309](https://github.com/netbox-community/netbox/issues/6309) - Restrict parent VM interface assignment to the parent VM * [#6312](https://github.com/netbox-community/netbox/issues/6312) - Interface device filter should return all virtual chassis interfaces only if device is master * [#6313](https://github.com/netbox-community/netbox/issues/6313) - Fix device type instance count under manufacturer view * [#6321](https://github.com/netbox-community/netbox/issues/6321) - Restore "add an IP" button under prefix IPs view * [#6333](https://github.com/netbox-community/netbox/issues/6333) - Fix filtering of circuit terminations by primary key * [#6339](https://github.com/netbox-community/netbox/issues/6339) - Improve ordering of interfaces when viewing virtual chassis master * [#6350](https://github.com/netbox-community/netbox/issues/6350) - Include first & last IP addresses when allocating available IPv6 addresses via the REST API * [#6355](https://github.com/netbox-community/netbox/issues/6355) - Fix caching error when swapping A/Z circuit terminations * [#6357](https://github.com/netbox-community/netbox/issues/6357) - Fix ProviderNetwork nested API serializer * [#6363](https://github.com/netbox-community/netbox/issues/6363) - Correct pre-population of cluster group when creating a cluster * [#6369](https://github.com/netbox-community/netbox/issues/6369) - Fix interface assignment for VLANs in non-scoped groups 2021-05-07T14:21:01+00:00 netbox v2.11.4 netbox v2.11.4 2021-05-25T16:09:28+00:00 ## Enhancements * [#5121](https://github.com/netbox-community/netbox/issues/5121) - Add content type filters for tags * [#6358](https://github.com/netbox-community/netbox/issues/6358) - Add search field for VLAN groups * [#6393](https://github.com/netbox-community/netbox/issues/6393) - Add `description` filter for IP addresses * [#6400](https://github.com/netbox-community/netbox/issues/6400) - Add cyan color choice for plugin buttons * [#6422](https://github.com/netbox-community/netbox/issues/6422) - Enable filtering users by group under admin UI * [#6441](https://github.com/netbox-community/netbox/issues/6441) - Improve UI paginator to optimize page object count ## Bug Fixes * [#6376](https://github.com/netbox-community/netbox/issues/6376) - Fix assignment of VLAN groups to clusters, cluster groups via REST API * [#6398](https://github.com/netbox-community/netbox/issues/6398) - Avoid exception when deleting device connected to self via circuit * [#6426](https://github.com/netbox-community/netbox/issues/6426) - Allow assigning virtual chassis member interfaces to LAG on VC master * [#6438](https://github.com/netbox-community/netbox/issues/6438) - Fix missing descriptions and label for device type imports and exports * [#6465](https://github.com/netbox-community/netbox/issues/6465) - Fix typo in installed plugins REST API endpoint * [#6467](https://github.com/netbox-community/netbox/issues/6467) - Fix access to metrics on custom `BASE_PATH` when login is required * [#6468](https://github.com/netbox-community/netbox/issues/6468) - Disable ordering VLAN groups list by scope object 2021-05-25T16:09:28+00:00 netbox v2.11.5 netbox v2.11.5 2021-06-04T13:30:38+00:00 **NOTE:** This release includes a database migration that calculates and annotates prefix depth. It may impose a noticeable delay on the upgrade process: Users should anticipate roughly one minute of delay per 100 thousand prefixes being updated. ## Enhancements * [#6087](https://github.com/netbox-community/netbox/issues/6087) - Improved prefix hierarchy rendering * [#6487](https://github.com/netbox-community/netbox/issues/6487) - Add location filter to cable connection form * [#6501](https://github.com/netbox-community/netbox/issues/6501) - Expose prefix depth and children on REST API serializer * [#6527](https://github.com/netbox-community/netbox/issues/6527) - Support Markdown for report descriptions * [#6540](https://github.com/netbox-community/netbox/issues/6540) - Add a "flat" column to the prefix table ## Bug Fixes * [#6064](https://github.com/netbox-community/netbox/issues/6064) - Fix object permission assignments for user and group models * [#6217](https://github.com/netbox-community/netbox/issues/6217) - Disallow passing of string values for integer custom fields * [#6284](https://github.com/netbox-community/netbox/issues/6284) - Avoid sending redundant webhooks when adding/removing tags * [#6492](https://github.com/netbox-community/netbox/issues/6492) - Correct tag population in post-change data resulting from REST API changes * [#6496](https://github.com/netbox-community/netbox/issues/6496) - Fix upgrade script when Python installed in nonstandard path * [#6502](https://github.com/netbox-community/netbox/issues/6502) - Correct permissions evaluation for running a report via the REST API * [#6517](https://github.com/netbox-community/netbox/issues/6517) - Fix assignment of user when creating rack reservations via REST API * [#6525](https://github.com/netbox-community/netbox/issues/6525) - Paginate related IPs table under IP address view 2021-06-04T13:30:38+00:00 netbox v2.11.6 netbox v2.11.6 2021-06-04T15:13:56+00:00 ## Bug Fixes * [#6544](https://github.com/netbox-community/netbox/issues/6544) - Fix migration error when upgrading with VRF(s) defined 2021-06-04T15:13:56+00:00 netbox v2.11.7 netbox v2.11.7 2021-06-16T20:19:27+00:00 ## Enhancements * [#6455](https://github.com/netbox-community/netbox/issues/6455) - Permit /32 IPv4 and /128 IPv6 prefixes * [#6493](https://github.com/netbox-community/netbox/issues/6493) - Show change log diff for non-atomic (pre-2.11) changes * [#6564](https://github.com/netbox-community/netbox/issues/6564) - Add N connector type for pass-through ports * [#6588](https://github.com/netbox-community/netbox/issues/6588) - Add support for webp files as front/rear device type images * [#6589](https://github.com/netbox-community/netbox/issues/6589) - Standardize breadcrumb navigation for power panels and feeds ## Bug Fixes * [#6553](https://github.com/netbox-community/netbox/issues/6553) - ProviderNetwork search should match on name * [#6562](https://github.com/netbox-community/netbox/issues/6562) - Disable ordering of secrets by assigned object * [#6563](https://github.com/netbox-community/netbox/issues/6563) - Fix filtering by location for cable connection forms * [#6584](https://github.com/netbox-community/netbox/issues/6584) - Fix ordering of nested inventory items * [#6602](https://github.com/netbox-community/netbox/issues/6602) - Fix deletion of devices with cables attached 2021-06-16T20:19:27+00:00 netbox v2.11.8 netbox v2.11.8 2021-07-06T15:29:12+00:00 ## Enhancements * [#5503](https://github.com/netbox-community/netbox/issues/5503) - Annotate short date & time fields with their longer form * [#6138](https://github.com/netbox-community/netbox/issues/6138) - Add an `empty` filter modifier for character fields * [#6200](https://github.com/netbox-community/netbox/issues/6200) - Add rack reservations to global search * [#6368](https://github.com/netbox-community/netbox/issues/6368) - Enable virtual chassis assignment during bulk import of devices * [#6620](https://github.com/netbox-community/netbox/issues/6620) - Show assigned VMs count under device role view * [#6666](https://github.com/netbox-community/netbox/issues/6666) - Show management-only status under interface detail view * [#6667](https://github.com/netbox-community/netbox/issues/6667) - Display VM memory as GB/TB as appropriate ## Bug Fixes * [#6626](https://github.com/netbox-community/netbox/issues/6626) - Fix site field on VM search form; add site group * [#6637](https://github.com/netbox-community/netbox/issues/6637) - Fix group assignment in "available VLANs" link under VLAN group view * [#6640](https://github.com/netbox-community/netbox/issues/6640) - Disallow numeric values in custom text fields * [#6652](https://github.com/netbox-community/netbox/issues/6652) - Fix exception when adding components in bulk to multiple devices * [#6676](https://github.com/netbox-community/netbox/issues/6676) - Fix device/VM counts per cluster under cluster type/group views * [#6680](https://github.com/netbox-community/netbox/issues/6680) - Allow setting custom field values for VM interfaces on initial creation * [#6695](https://github.com/netbox-community/netbox/issues/6695) - Fix exception when importing device type with invalid front port definition 2021-07-06T15:29:12+00:00 netbox v2.11.9 netbox v2.11.9 2021-07-08T13:20:13+00:00 ## Bug Fixes * [#6456](https://github.com/netbox-community/netbox/issues/6456) - API schema type should be boolean for `_occupied` on cable termination models * [#6710](https://github.com/netbox-community/netbox/issues/6710) - Fix assignment of VM interface parent via REST API * [#6714](https://github.com/netbox-community/netbox/issues/6714) - Fix rendering of device type component creation forms 2021-07-08T13:20:13+00:00 netbox v3.0-beta1 netbox v3.0-beta1 2021-07-23T12:16:29+00:00 **NOTE:** Upgrading an existing NetBox deployment to version 3.0 **must** be done from version 2.11.0 or later. If attempting to upgrade a deployment of NetBox v2.10 or earlier, first upgrade to a NetBox v2.11 release, and then upgrade from v2.11 to v3.0. This will avoid any problems with the database migration optimizations implemented in version 3.0. ### Breaking Changes * Python 3.6 is no longer supported. NetBox v3.0 supports Python 3.7, 3.8, and 3.9. * The secrets functionality present in prior releases of NetBox has been removed. The NetBox maintainers strongly recommend the adoption of [Hashicorp Vault](https://github.com/hashicorp/vault) in place of this feature. Development of a NetBox plugin to replace the legacy secrets functionality is also underway. * The default CSV export format for all objects now includes all available data from the object list. Additionally, the CSV headers now use human-friendly titles rather than raw field names. If backward compatibility with the old format is desired, export templates can be written to reproduce it. * The `invalidate` management command (which clears cached database queries) is no longer needed and has been removed (see [#6639](https://github.com/netbox-community/netbox/issues/6639)). * Support for queryset caching configuration (`caching_config`) has been removed from the plugins API (see [#6639](https://github.com/netbox-community/netbox/issues/6639)). * The `cacheops_*` metrics have been removed from the Prometheus exporter (see [#6639](https://github.com/netbox-community/netbox/issues/6639)). * The `display_field` keyword argument has been removed from custom script ObjectVar and MultiObjectVar fields. These widgets will use the `display` value provided by the REST API. * The deprecated `display_name` field has been removed from all REST API serializers. (API clients should reference the `display` field instead.) * The redundant REST API endpoints for console, power, and interface connections have been removed. The same data can be retrieved by querying the respective model endpoints with the `?connected=True` filter applied. ### New Features #### Updated User Interface ([#5893](https://github.com/netbox-community/netbox/issues/5893)) The NetBox user interface has been completely overhauled with a fresh new look! Beyond the cosmetic improvements, this initiative has allowed us to modernize the entire front end, upgrading from Bootstrap 3 to Bootstrap 5, and eliminating dependencies on outdated libraries such as jQuery and jQuery-UI. The new user interface also features a dark mode option. A huge thank you to NetBox maintainer [Matt Love](https://github.com/thatmattlove) for his tremendous work on this! #### GraphQL API ([#2007](https://github.com/netbox-community/netbox/issues/2007)) A new [GraphQL API](https://graphql.org/) has been added to complement NetBox's REST API. GraphQL allows the client to specify which fields of the available data to return in each request. NetBox's implementation, which employs [Graphene](https://graphene-python.org/), also includes a user-friendly query interface known as GraphiQL. Here's an example GraphQL request: ``` { circuit_list { cid provider { name } termination_a { id } termination_z { id } } } ``` And the response: ``` { "data": { "circuit_list": [ { "cid": "1002840283", "provider": { "name": "CenturyLink" }, "termination_a": null, "termination_z": { "id": "23" } }, ... ``` All GraphQL requests are made at the `/graphql` URL (which also serves the GraphiQL UI). The API is currently read-only, however users who wish to disable it until needed can do so by setting the `GRAPHQL_ENABLED` configuration parameter to False. For more detail on NetBox's GraphQL implementation, see [the GraphQL API documentation](../graphql-api/overview.md). #### IP Ranges ([#834](https://github.com/netbox-community/netbox/issues/834)) NetBox now supports modeling arbitrary IP ranges, which are defined by specifying a starting and ending IP address (e.g. to denote DHCP pools). Similar to prefixes, each IP range may optionally be assigned to a VRF and/or tenant, and can be assigned a functional role. An IP range must be assigned a status of active, reserved, or deprecated. The REST API implementation for this model also includes an "available IPs" endpoint which functions similarly to the endpoint for prefixes. More information about IP ranges is available [in the documentation](../models/ipam/iprange.md). #### Custom Model Validation ([#5963](https://github.com/netbox-community/netbox/issues/5963)) This release introduces the [`CUSTOM_VALIDATORS`](../configuration/optional-settings.md#custom_validators) configuration parameter, which allows administrators to map NetBox models to custom validator classes to enforce custom validation logic. For example, the following configuration requires every site to have a name of at least ten characters and a description: ```python from extras.validators import CustomValidator CUSTOM_VALIDATORS = { 'dcim.site': ( CustomValidator({ 'name': { 'min_length': 10, }, 'description': { 'required': True, } }), ) } ``` CustomValidator can also be subclassed to enforce more complex logic by overriding its `validate()` method. See the [custom validation](../customization/custom-validation.md) documentation for more details. #### SVG Cable Traces ([#6000](https://github.com/netbox-community/netbox/issues/6000)) Cable trace diagrams are now rendered as atomic SVG images, similar to rack elevations. These images are embedded in the UI and can be easily downloaded for use outside NetBox. SVG images can also be generated directly through the REST API, by specifying SVG as the render format for the `trace` endpoint on a cable termination: ```no-highlight GET /api/dcim/interfaces/<ID>>/trace/?render=svg ``` The width of the rendered image in pixels may optionally be specified by appending the `&width=<width>` parameter to the request. The default width is 400px. #### New Views for Models Previously Under the Admin UI ([#6466](https://github.com/netbox-community/netbox/issues/6466)) New UI views have been introduced to manage the following models: * Custom fields * Custom links * Export templates * Webhooks These models were previously managed under the admin section of the UI. Moving them to dedicated views ensures a more consistent and convenient user experience. #### REST API Token Provisioning ([#5264](https://github.com/netbox-community/netbox/issues/5264)) The new REST API endpoint `/api/users/tokens/` has been added, which includes a child endpoint for provisioning new REST API tokens using a username and password. This allows a user to gain REST API access without needing to first create a token via the web UI. ``` $ curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json; indent=4" \ https://netbox/api/users/tokens/provision/ { "username": "hankhill", "password: "I<3C3H8", } ``` If the supplied credentials are valid, NetBox will create and return a new token for the user. #### New Housekeeping Command ([#6590](https://github.com/netbox-community/netbox/issues/6590)) A new management command has been added: `manage.py housekeeping`. This command is intended to be run nightly via a system cron job. It performs the following tasks: * Clear expired authentication sessions from the database * Delete change log records which have surpassed the configured retention period (if configured) * Check for new NetBox releases (if enabled) A convenience script for calling this command via an automated scheduler has been included at `/contrib/netbox-housekeeping.sh`. Please see the [housekeeping documentation](../administration/housekeeping.md) for further details. #### Custom Queue Support for Plugins ([#6651](https://github.com/netbox-community/netbox/issues/6651)) NetBox uses Redis and Django-RQ for background task queuing. Whereas previous releases employed only a single default queue, NetBox now provides a high-, medium- (default), and low-priority queue for use by plugins. (These will also likely be used internally as new functionality is added in future releases.) Plugins can also now create their own custom queues by defining a `queues` list within their PluginConfig class: ```python class MyPluginConfig(PluginConfig): name = 'myplugin' ... queues = [ 'queue1', 'queue2', 'queue-whatever-the-name' ] ``` Note that NetBox's `rqworker` process will _not_ service custom queues by default, since it has no way to infer the priority of each queue. Plugin authors should be diligent in including instructions for proper worker configuration in their plugin's documentation. ### Enhancements * [#2434](https://github.com/netbox-community/netbox/issues/2434) - Add option to assign IP address upon creating a new interface * [#3665](https://github.com/netbox-community/netbox/issues/3665) - Enable rendering export templates via REST API * [#3682](https://github.com/netbox-community/netbox/issues/3682) - Add `color` field to front and rear ports * [#4609](https://github.com/netbox-community/netbox/issues/4609) - Allow marking prefixes as fully utilized * [#5203](https://github.com/netbox-community/netbox/issues/5203) - Remember user preference when toggling display of device images in rack elevations * [#5806](https://github.com/netbox-community/netbox/issues/5806) - Add kilometer and mile as choices for cable length unit * [#6154](https://github.com/netbox-community/netbox/issues/6154) - Allow decimal values for cable lengths * [#6328](https://github.com/netbox-community/netbox/issues/6328) - Build and serve documentation locally ### Other Changes * [#5223](https://github.com/netbox-community/netbox/issues/5223) - Remove the console/power/interface connections REST API endpoints * [#5278](https://github.com/netbox-community/netbox/issues/5278) - Remove the secrets functionality from NetBox core * [#5532](https://github.com/netbox-community/netbox/issues/5532) - Drop support for Python 3.6 * [#5994](https://github.com/netbox-community/netbox/issues/5994) - Drop support for `display_field` argument on ObjectVar * [#6068](https://github.com/netbox-community/netbox/issues/6068) - Drop support for legacy static CSV export * [#6338](https://github.com/netbox-community/netbox/issues/6338) - Decimal fields are no longer coerced to strings in REST API * [#6471](https://github.com/netbox-community/netbox/issues/6471) - Optimize database migrations * [#6639](https://github.com/netbox-community/netbox/issues/6639) - Drop support for queryset caching (django-cacheops) * [#6713](https://github.com/netbox-community/netbox/issues/6713) - Checking for new releases is now done as part of the housekeeping routine * [#6767](https://github.com/netbox-community/netbox/issues/6767) - Add support for Python 3.9 ### Configuration Changes * The `CACHE_TIMEOUT` configuration parameter has been removed. * The `RELEASE_CHECK_TIMEOUT` configuration parameter has been removed. ### REST API Changes * Removed all endpoints related to the secrets functionality: * `/api/secrets/generate-rsa-key-pair/` * `/api/secrets/get-session-key/` * `/api/secrets/secrets/` * `/api/secrets/secret-roles/` * Removed the following "connections" endpoints: * `/api/dcim/console-connections/` * `/api/dcim/power-connections/` * `/api/dcim/interface-connections/` * Added the `/api/ipam/ip-ranges/` endpoint * Added the `/api/users/tokens/` endpoint * The `provision/` child endpoint can be used to provision new REST API tokens by supplying a valid username and password * dcim.Cable * `length` is now a decimal value * dcim.Device * Removed the `display_name` attribute (use `display` instead) * dcim.DeviceType * Removed the `display_name` attribute (use `display` instead) * dcim.FrontPort * Added `color` field * dcim.FrontPortTemplate * Added `color` field * dcim.Rack * Removed the `display_name` attribute (use `display` instead) * dcim.RearPort * Added `color` field * dcim.RearPortTemplate * Added `color` field * dcim.Site * `latitude` and `longitude` are now decimal fields rather than strings * extras.ContentType * Removed the `display_name` attribute (use `display` instead) * ipam.Prefix * Added the `mark_utilized` boolean field * ipam.VLAN * Removed the `display_name` attribute (use `display` instead) * ipam.VRF * Removed the `display_name` attribute (use `display` instead) * virtualization.VirtualMachine * `vcpus` is now a decimal field rather than a string 2021-07-23T12:16:29+00:00 netbox v2.11.10 netbox v2.11.10 2021-07-28T19:57:15+00:00 ## Enhancements * [#6560](https://github.com/netbox-community/netbox/issues/6560) - Enable CSV import via uploaded file * [#6644](https://github.com/netbox-community/netbox/issues/6644) - Add 6P/4P pass-through port types * [#6771](https://github.com/netbox-community/netbox/issues/6771) - Add count of inventory items to manufacturer view * [#6785](https://github.com/netbox-community/netbox/issues/6785) - Add "hardwired" type for power port types ## Bug Fixes * [#5442](https://github.com/netbox-community/netbox/issues/5442) - Fix assignment of permissions based on LDAP groups * [#5627](https://github.com/netbox-community/netbox/issues/5627) - Fix filtering of interface connections list * [#6759](https://github.com/netbox-community/netbox/issues/6759) - Fix assignment of parent interfaces for bulk import * [#6773](https://github.com/netbox-community/netbox/issues/6773) - Add missing `display` field to rack unit serializer * [#6774](https://github.com/netbox-community/netbox/issues/6774) - Fix A/Z assignment when swapping circuit terminations * [#6777](https://github.com/netbox-community/netbox/issues/6777) - Fix default value validation for custom text fields * [#6778](https://github.com/netbox-community/netbox/issues/6778) - Rack reservation should display rack's location * [#6780](https://github.com/netbox-community/netbox/issues/6780) - Include rack location in navigation breadcrumbs * [#6794](https://github.com/netbox-community/netbox/issues/6794) - Fix device name display on device status view * [#6812](https://github.com/netbox-community/netbox/issues/6812) - Limit reported prefix utilization to 100% * [#6822](https://github.com/netbox-community/netbox/issues/6822) - Use consistent maximum value for interface MTU ## Other Changes * [#6781](https://github.com/netbox-community/netbox/issues/6781) - Database query caching is now disabled by default 2021-07-28T19:57:15+00:00 netbox v2.11.11 netbox v2.11.11 2021-08-12T15:45:03+00:00 ## Enhancements * [#6883](https://github.com/netbox-community/netbox/issues/6883) - Add C21 & C22 power types * [#6921](https://github.com/netbox-community/netbox/issues/6921) - Employ a sandbox when rendering Jinja2 code for increased security ## Bug Fixes * [#6740](https://github.com/netbox-community/netbox/issues/6740) - Add import button to VM interfaces list * [#6892](https://github.com/netbox-community/netbox/issues/6892) - Fix validation of unit ranges when creating a rack reservation * [#6896](https://github.com/netbox-community/netbox/issues/6896) - Fix validation of IP address assigned as device/VM primary via NAT relation * [#6902](https://github.com/netbox-community/netbox/issues/6902) - Populate device field when cloning device components * [#6908](https://github.com/netbox-community/netbox/issues/6908) - Allow assignment of scope to VLAN groups upon import * [#6909](https://github.com/netbox-community/netbox/issues/6909) - Remove extraneous `site` column from VLAN group import form * [#6910](https://github.com/netbox-community/netbox/issues/6910) - Fix exception on invalid CSV import column name * [#6918](https://github.com/netbox-community/netbox/issues/6918) - Fix return URL persistence when adding multiple objects sequentially * [#6935](https://github.com/netbox-community/netbox/issues/6935) - Remove extraneous columns from inventory item and device bay tables * [#6936](https://github.com/netbox-community/netbox/issues/6936) - Add missing `parent` column to inventory item import form 2021-08-12T15:45:03+00:00 netbox v3.0-beta2 netbox v3.0-beta2 2021-08-13T18:21:32+00:00 ### Enhancements * [#6829](https://github.com/netbox-community/netbox/issues/6829) - Extend GraphQL API to support reverse generic relationships * [#6931](https://github.com/netbox-community/netbox/issues/6931) - Include applied filters on object list view ### Bug Fixes * [#6811](https://github.com/netbox-community/netbox/issues/6811) - Fix exception when editing users * [#6827](https://github.com/netbox-community/netbox/issues/6827) - Fix circuit termination connection dropdown * [#6832](https://github.com/netbox-community/netbox/issues/6832) - Support config context rendering under GraphQL API * [#6846](https://github.com/netbox-community/netbox/issues/6846) - Form-driven REST API calls should use brief mode * [#6871](https://github.com/netbox-community/netbox/issues/6871) - Support dynamic tag types in GraphQL API * [#6894](https://github.com/netbox-community/netbox/issues/6894) - Fix available IP generation for prefix assigned to a VRF * [#6934](https://github.com/netbox-community/netbox/issues/6934) - Correct prefix utilization and available IP reporting to account for child IP ranges * [#6953](https://github.com/netbox-community/netbox/issues/6953) - Remove change log tab from non-applicable object views 2021-08-13T18:21:32+00:00 netbox v2.11.12 netbox v2.11.12 2021-08-23T19:36:40+00:00 ## Enhancements * [#6748](https://github.com/netbox-community/netbox/issues/6748) - Add site group filter to devices list * [#6790](https://github.com/netbox-community/netbox/issues/6790) - Recognize a /32 IPv4 address as a child of a /32 IPv4 prefix * [#6872](https://github.com/netbox-community/netbox/issues/6872) - Add table configuration button to child prefixes view * [#6929](https://github.com/netbox-community/netbox/issues/6929) - Introduce `LOGIN_PERSISTENCE` configuration parameter to persist user sessions * [#7011](https://github.com/netbox-community/netbox/issues/7011) - Add search field to VM interfaces filter form ## Bug Fixes * [#5968](https://github.com/netbox-community/netbox/issues/5968) - Model forms should save empty custom field values as null * [#6326](https://github.com/netbox-community/netbox/issues/6326) - Enable filtering assigned VLANs by group in interface edit form * [#6686](https://github.com/netbox-community/netbox/issues/6686) - Force assignment of null custom field values to objects * [#6776](https://github.com/netbox-community/netbox/issues/6776) - Fix erroneous webhook dispatch on failure to save objects * [#6974](https://github.com/netbox-community/netbox/issues/6974) - Show contextual label for IP address role * [#7012](https://github.com/netbox-community/netbox/issues/7012) - Fix hidden "add components" dropdown on devices list 2021-08-23T19:36:40+00:00 netbox v3.0.0 netbox v3.0.0 2021-08-30T18:48:11+00:00 **WARNING:** Upgrading an existing NetBox deployment to version 3.0 **must** be done from version 2.11.0 or later. If attempting to upgrade a deployment of NetBox v2.10 or earlier, first upgrade to a NetBox v2.11 release, and then upgrade from v2.11 to v3.0. This will avoid any problems with the database migration optimizations implemented in version 3.0. (This is not necessary for _new_ installations.) ### Breaking Changes * Python 3.6 is no longer supported. NetBox v3.0 supports Python 3.7, 3.8, and 3.9. * The secrets functionality present in prior releases of NetBox has been removed. The NetBox maintainers strongly recommend the adoption of [Hashicorp Vault](https://github.com/hashicorp/vault) in place of this feature. Development of a NetBox plugin to replace the legacy secrets functionality is also underway. * The default CSV export format for all objects now includes all available data from the object list. Additionally, the CSV headers now use human-friendly titles rather than raw field names. If backward compatibility with the old format is desired, export templates can be written to reproduce it. * The `invalidate` management command (which clears cached database queries) is no longer needed and has been removed (see [#6639](https://github.com/netbox-community/netbox/issues/6639)). * Support for queryset caching configuration (`caching_config`) has been removed from the plugins API (see [#6639](https://github.com/netbox-community/netbox/issues/6639)). * The `cacheops_*` metrics have been removed from the Prometheus exporter (see [#6639](https://github.com/netbox-community/netbox/issues/6639)). * The `display_field` keyword argument has been removed from custom script ObjectVar and MultiObjectVar fields. These widgets will use the `display` value provided by the REST API. * The deprecated `display_name` field has been removed from all REST API serializers. (API clients should reference the `display` field instead.) * The redundant REST API endpoints for console, power, and interface connections have been removed. The same data can be retrieved by querying the respective model endpoints with the `?connected=True` filter applied. ### New Features #### Updated User Interface ([#5893](https://github.com/netbox-community/netbox/issues/5893)) The NetBox user interface has been completely overhauled with a fresh new look! Beyond the cosmetic improvements, this initiative has allowed us to modernize the entire front end, upgrading from Bootstrap 3 to Bootstrap 5, and eliminating dependencies on outdated libraries such as jQuery and jQuery-UI. The new user interface also features a dark mode option. A huge thank you to NetBox maintainer [Matt Love](https://github.com/thatmattlove) for his tremendous work on this! #### GraphQL API ([#2007](https://github.com/netbox-community/netbox/issues/2007)) A new [GraphQL API](https://graphql.org/) has been added to complement NetBox's REST API. GraphQL allows the client to specify which fields of the available data to return in each request. NetBox's implementation, which employs [Graphene](https://graphene-python.org/), also includes a user-friendly query interface known as GraphiQL. Here's an example GraphQL request: ``` { circuit_list { cid provider { name } termination_a { id } termination_z { id } } } ``` And the response: ``` { "data": { "circuit_list": [ { "cid": "1002840283", "provider": { "name": "CenturyLink" }, "termination_a": null, "termination_z": { "id": "23" } }, ... ``` All GraphQL requests are made at the `/graphql` URL (which also serves the GraphiQL UI). The API is currently read-only, however users who wish to disable it until needed can do so by setting the `GRAPHQL_ENABLED` configuration parameter to False. For more detail on NetBox's GraphQL implementation, see [the GraphQL API documentation](https://netbox.readthedocs.io/en/stable/graphql-api/overview/). #### IP Ranges ([#834](https://github.com/netbox-community/netbox/issues/834)) NetBox now supports modeling arbitrary IP ranges, which are defined by specifying a starting and ending IP address (e.g. to denote DHCP pools). Similar to prefixes, each IP range may optionally be assigned to a VRF and/or tenant, and can be assigned a functional role. An IP range must be assigned a status of active, reserved, or deprecated. The REST API implementation for this model also includes an "available IPs" endpoint which functions similarly to the endpoint for prefixes. More information about IP ranges is available [in the documentation](https://netbox.readthedocs.io/en/stable/core-functionality/ipam/#ip-ranges). #### Custom Model Validation ([#5963](https://github.com/netbox-community/netbox/issues/5963)) This release introduces the [`CUSTOM_VALIDATORS`](https://netbox.readthedocs.io/en/stable/configuration/optional-settings/#custom_validators) configuration parameter, which allows administrators to map NetBox models to custom validator classes to enforce custom validation logic. For example, the following configuration requires every site to have a name of at least ten characters and a description: ```python from extras.validators import CustomValidator CUSTOM_VALIDATORS = { 'dcim.site': ( CustomValidator({ 'name': { 'min_length': 10, }, 'description': { 'required': True, } }), ) } ``` CustomValidator can also be subclassed to enforce more complex logic by overriding its `validate()` method. See the [custom validation](https://netbox.readthedocs.io/en/stable/customization/custom-validation/) documentation for more details. #### SVG Cable Traces ([#6000](https://github.com/netbox-community/netbox/issues/6000)) Cable trace diagrams are now rendered as atomic SVG images, similar to rack elevations. These images are embedded in the UI and can be easily downloaded for use outside NetBox. SVG images can also be generated directly through the REST API, by specifying SVG as the render format for the `trace` endpoint on a cable termination: ```no-highlight GET /api/dcim/interfaces/<ID>>/trace/?render=svg ``` The width of the rendered image in pixels may optionally be specified by appending the `&width=<width>` parameter to the request. The default width is 400px. #### New Views for Models Previously Under the Admin UI ([#6466](https://github.com/netbox-community/netbox/issues/6466)) New UI views have been introduced to manage the following models: * Custom fields * Custom links * Export templates * Webhooks These models were previously managed under the admin section of the UI. Moving them to dedicated views ensures a more consistent and convenient user experience. #### REST API Token Provisioning ([#5264](https://github.com/netbox-community/netbox/issues/5264)) The new REST API endpoint `/api/users/tokens/` has been added, which includes a child endpoint for provisioning new REST API tokens using a username and password. This allows a user to gain REST API access without needing to first create a token via the web UI. ``` $ curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json; indent=4" \ https://netbox/api/users/tokens/provision/ \ --data '{ "username": "hankhill", "password: "I<3C3H8", }' ``` If the supplied credentials are valid, NetBox will create and return a new token for the user. #### New Housekeeping Command ([#6590](https://github.com/netbox-community/netbox/issues/6590)) A new management command has been added: `manage.py housekeeping`. This command is intended to be run nightly via a system cron job. It performs the following tasks: * Clear expired authentication sessions from the database * Delete change log records which have surpassed the configured retention period (if configured) * Check for new NetBox releases (if enabled) A convenience script for calling this command via an automated scheduler has been included at `/contrib/netbox-housekeeping.sh`. Please see the [housekeeping documentation](https://netbox.readthedocs.io/en/stable/administration/housekeeping/) for further details. #### Custom Queue Support for Plugins ([#6651](https://github.com/netbox-community/netbox/issues/6651)) NetBox uses Redis and Django-RQ for background task queuing. Whereas previous releases employed only a single default queue, NetBox now provides a high-, medium- (default), and low-priority queue for use by plugins. (These will also likely be used internally as new functionality is added in future releases.) Plugins can also now create their own custom queues by defining a `queues` list within their PluginConfig class: ```python class MyPluginConfig(PluginConfig): name = 'myplugin' ... queues = [ 'queue1', 'queue2', 'queue-whatever-the-name' ] ``` Note that NetBox's `rqworker` process will _not_ service custom queues by default, since it has no way to infer the priority of each queue. Plugin authors should be diligent in including instructions for proper worker configuration in their plugin's documentation. ### Enhancements * [#2434](https://github.com/netbox-community/netbox/issues/2434) - Add option to assign IP address upon creating a new interface * [#3665](https://github.com/netbox-community/netbox/issues/3665) - Enable rendering export templates via REST API * [#3682](https://github.com/netbox-community/netbox/issues/3682) - Add `color` field to front and rear ports * [#4609](https://github.com/netbox-community/netbox/issues/4609) - Allow marking prefixes as fully utilized * [#5203](https://github.com/netbox-community/netbox/issues/5203) - Remember user preference when toggling display of device images in rack elevations * [#5806](https://github.com/netbox-community/netbox/issues/5806) - Add kilometer and mile as choices for cable length unit * [#6154](https://github.com/netbox-community/netbox/issues/6154) - Allow decimal values for cable lengths * [#6328](https://github.com/netbox-community/netbox/issues/6328) - Build and serve documentation locally ### Bug Fixes (from v3.2-beta2) * [#6977](https://github.com/netbox-community/netbox/issues/6977) - Truncate global search dropdown on small screens * [#6979](https://github.com/netbox-community/netbox/issues/6979) - Hide "create & add another" button for circuit terminations * [#6982](https://github.com/netbox-community/netbox/issues/6982) - Fix styling of empty dropdown list under dark mode * [#6996](https://github.com/netbox-community/netbox/issues/6996) - Global search bar should be full width on mobile * [#7001](https://github.com/netbox-community/netbox/issues/7001) - Fix page focus on load * [#7034](https://github.com/netbox-community/netbox/issues/7034) - Fix toggling of VLAN group scope selector fields * [#7045](https://github.com/netbox-community/netbox/issues/7045) - Fix navigation menu rendering under Chrome ### Other Changes * [#5223](https://github.com/netbox-community/netbox/issues/5223) - Remove the console/power/interface connections REST API endpoints * [#5278](https://github.com/netbox-community/netbox/issues/5278) - Remove the secrets functionality from NetBox core * [#5532](https://github.com/netbox-community/netbox/issues/5532) - Drop support for Python 3.6 * [#5994](https://github.com/netbox-community/netbox/issues/5994) - Drop support for `display_field` argument on ObjectVar * [#6068](https://github.com/netbox-community/netbox/issues/6068) - Drop support for legacy static CSV export * [#6338](https://github.com/netbox-community/netbox/issues/6338) - Decimal fields are no longer coerced to strings in REST API * [#6471](https://github.com/netbox-community/netbox/issues/6471) - Optimize database migrations * [#6639](https://github.com/netbox-community/netbox/issues/6639) - Drop support for queryset caching (django-cacheops) * [#6713](https://github.com/netbox-community/netbox/issues/6713) - Checking for new releases is now done as part of the housekeeping routine * [#6767](https://github.com/netbox-community/netbox/issues/6767) - Add support for Python 3.9 ### Configuration Changes * The `CACHE_TIMEOUT` configuration parameter has been removed. * The `RELEASE_CHECK_TIMEOUT` configuration parameter has been removed. ### REST API Changes * Removed all endpoints related to the secrets functionality: * `/api/secrets/generate-rsa-key-pair/` * `/api/secrets/get-session-key/` * `/api/secrets/secrets/` * `/api/secrets/secret-roles/` * Removed the following "connections" endpoints: * `/api/dcim/console-connections/` * `/api/dcim/power-connections/` * `/api/dcim/interface-connections/` * Added the `/api/ipam/ip-ranges/` endpoint * Added the `/api/users/tokens/` endpoint * The `provision/` child endpoint can be used to provision new REST API tokens by supplying a valid username and password * dcim.Cable * `length` is now a decimal value * dcim.Device * Removed the `display_name` attribute (use `display` instead) * dcim.DeviceType * Removed the `display_name` attribute (use `display` instead) * dcim.FrontPort * Added `color` field * dcim.FrontPortTemplate * Added `color` field * dcim.Rack * Removed the `display_name` attribute (use `display` instead) * dcim.RearPort * Added `color` field * dcim.RearPortTemplate * Added `color` field * dcim.Site * `latitude` and `longitude` are now decimal fields rather than strings * extras.ContentType * Removed the `display_name` attribute (use `display` instead) * ipam.Prefix * Added the `mark_utilized` boolean field * ipam.VLAN * Removed the `display_name` attribute (use `display` instead) * ipam.VRF * Removed the `display_name` attribute (use `display` instead) * virtualization.VirtualMachine * `vcpus` is now a decimal field rather than a string 2021-08-30T18:48:11+00:00 netbox v3.0.1 netbox v3.0.1 2021-09-01T19:10:59+00:00 ## Bug Fixes * [#7041](https://github.com/netbox-community/netbox/issues/7041) - Properly format JSON config object returned from a NAPALM device * [#7070](https://github.com/netbox-community/netbox/issues/7070) - Fix exception when filtering by prefix max length in UI * [#7071](https://github.com/netbox-community/netbox/issues/7071) - Fix exception when removing a primary IP from a device/VM * [#7072](https://github.com/netbox-community/netbox/issues/7072) - Fix table configuration under prefix child object views * [#7075](https://github.com/netbox-community/netbox/issues/7075) - Fix UI bug when a custom field has a space in the name * [#7080](https://github.com/netbox-community/netbox/issues/7080) - Fix missing image previews * [#7081](https://github.com/netbox-community/netbox/issues/7081) - Fix UI bug that did not properly request and handle paginated data * [#7082](https://github.com/netbox-community/netbox/issues/7082) - Avoid exception when referencing invalid content type in table * [#7083](https://github.com/netbox-community/netbox/issues/7083) - Correct labeling for VM memory attribute * [#7084](https://github.com/netbox-community/netbox/issues/7084) - Fix KeyError exception when editing access VLAN on an interface * [#7084](https://github.com/netbox-community/netbox/issues/7084) - Fix issue where hidden VLAN form fields were incorrectly included in the form submission * [#7089](https://github.com/netbox-community/netbox/issues/7089) - Fix filtering of change log by content type * [#7090](https://github.com/netbox-community/netbox/issues/7090) - Allow decimal input on length field when bulk editing cables * [#7091](https://github.com/netbox-community/netbox/issues/7091) - Ensure API requests from the UI are aware of `BASE_PATH` * [#7092](https://github.com/netbox-community/netbox/issues/7092) - Fix missing bulk edit buttons on Prefix IP Addresses table * [#7093](https://github.com/netbox-community/netbox/issues/7093) - Multi-select custom field filters should employ exact match * [#7096](https://github.com/netbox-community/netbox/issues/7096) - Home links should honor `BASE_PATH` configuration * [#7101](https://github.com/netbox-community/netbox/issues/7101) - Enforce `MAX_PAGE_SIZE` for table and REST API pagination * [#7106](https://github.com/netbox-community/netbox/issues/7106) - Fix incorrect "Map It" button URL on a site's physical address field * [#7107](https://github.com/netbox-community/netbox/issues/7107) - Fix missing search button and search results in IP address assignment "Assign IP" tab * [#7109](https://github.com/netbox-community/netbox/issues/7109) - Ensure human readability of exceptions raised during REST API requests * [#7113](https://github.com/netbox-community/netbox/issues/7113) - Show bulk edit/delete actions for prefix child objects * [#7123](https://github.com/netbox-community/netbox/issues/7123) - Remove "Global" placeholder for null VRF field * [#7124](https://github.com/netbox-community/netbox/issues/7124) - Fix duplicate static query param values in API Select 2021-09-01T19:10:59+00:00 netbox v3.4.7 netbox v3.4.7 2023-03-28T18:08:46+00:00 ## Enhancements * [#11645](https://github.com/netbox-community/netbox/issues/11645) - Automatically set the scheduled time when executing reports/scripts at a recurring interval * [#11833](https://github.com/netbox-community/netbox/issues/11833) - Add fieldset support for custom script forms * [#11973](https://github.com/netbox-community/netbox/issues/11833) - Use SSID for representing wireless links, if set * [#11977](https://github.com/netbox-community/netbox/issues/11977) - Support designating multiple backends via `REMOTE_AUTH_BACKEND` config parameter * [#11990](https://github.com/netbox-community/netbox/issues/11990) - Improve error reporting for duplicate CSV column headings * [#11991](https://github.com/netbox-community/netbox/issues/11991) - Enable VDC assignment during bulk import/edit of interfaces ## Bug Fixes * [#11914](https://github.com/netbox-community/netbox/issues/11914) - Include parameters when exporting saved filters * [#11933](https://github.com/netbox-community/netbox/issues/11933) - Fix cloning of saved filters * [#11984](https://github.com/netbox-community/netbox/issues/11984) - Remove erroneous 802.3az PoE type * [#11979](https://github.com/netbox-community/netbox/issues/11979) - Correct URL for tags in route targets list * [#12008](https://github.com/netbox-community/netbox/issues/12008) - Enable cloning of export templates * [#12029](https://github.com/netbox-community/netbox/issues/12029) - Restore missing description field on virtual chassis form * [#12038](https://github.com/netbox-community/netbox/issues/12038) - Correct display of zero values for virtual chassis member priority * [#12048](https://github.com/netbox-community/netbox/issues/12048) - Enable cloning of tags * [#12058](https://github.com/netbox-community/netbox/issues/12058) - Enable cloning of config contexts 2023-03-28T18:08:46+00:00 netbox v3.5-beta1 netbox v3.5-beta1 2023-03-30T19:58:16+00:00 ### Breaking Changes * The JobResult model has been moved from the `extras` app to `core` and renamed to Job. Accordingly, its REST API endpoint has been moved from `/api/extras/job-results/` to `/api/core/jobs/`. * The `obj_type` field on the Job model (previously JobResult) has been renamed to `object_type` for consistency with other models. * The `JOBRESULT_RETENTION` configuration parameter has been renamed to `JOB_RETENTION`. * The REST API schema is now generated using the OpenAPI 3.0 spec * The URLs for the REST API schema documentation have changed: * `/api/docs/` is now `/api/schema/swagger-ui/` * `/api/redoc/` is now `/api/schema/redoc/` ### New Features #### Customizable Dashboard ([#9416](https://github.com/netbox-community/netbox/issues/9416)) The static home view has been replaced with a fully customizable dashboard. Users can construct and rearrange their own personal dashboard to convey the information most pertinent to them. Supported widgets include object statistics, configurable object lists, RSS feeds, and notes, and we expect to continue adding new widgets over time. #### Remote Data Sources ([#11558](https://github.com/netbox-community/netbox/issues/11558)) NetBox now has the ability to synchronize arbitrary data from external sources through the new [DataSource](../models/core/datasource.md) and [DataFile](../models/core/datafile.md) models. Synchronized files are stored in the PostgreSQL database, and may be referenced and consumed by other NetBox models, such as export templates and config contexts. Currently, replication from local filesystem paths, git repositories, and Amazon S3 buckets is supported, and we expect to introduce additional backends in the near future. #### Configuration Template Rendering ([#11559](https://github.com/netbox-community/netbox/issues/11559)) This release introduces the ability to render device configurations from Jinja2 templates natively within NetBox, via both the UI and REST API. The new [ConfigTemplate](../models/extras/configtemplate.md) model stores template code (which may be defined locally or sourced from remote data files). The rendering engine passes data gleaned from both config contexts and request parameters to generate complete configurations suitable for direct application to network devices. #### NAPALM Plugin ([#10520](https://github.com/netbox-community/netbox/issues/10520)) The NAPALM integration feature found in previous NetBox releases has been moved from the core application to a [dedicated plugin](https://github.com/netbox-community/netbox-napalm). This allows greater control over the feature's configuration and will unlock additional potential as a separate project. #### ASN Ranges ([#8550](https://github.com/netbox-community/netbox/issues/8550)) A new ASN range model has been introduced to facilitate the provisioning of new autonomous system numbers from within a prescribed range. For example, an administrator might define an ASN range of 65000-65099 to be used for internal site identification. This includes a REST API endpoint suitable for automatic provisioning, very similar to the allocation of available prefixes and IP addresses. #### Provider Accounts ([#9047](https://github.com/netbox-community/netbox/issues/9047)) A new model has been introduced to represent individual accounts within a common circuit provider. This replaces the `account` field on the provider model, enabling users to track multiple accounts per provider. New provider account instances will be created automatically during upgrade for all providers which currently have an account assigned. The assignment of individual circuits to a provider account remains optional. #### Job-Triggered Webhooks ([#8958](https://github.com/netbox-community/netbox/issues/8958)) Two new webhook trigger events have been introduced: `job_start` and `job_end`. These enable users to configure webhook to trigger when a background job starts or ends, respectively. This new functionality can be used, for example, to inform a remote system when a custom script has been executed. ### Enhancements * [#7947](https://github.com/netbox-community/netbox/issues/7947) - Enable marking IP ranges as fully utilized * [#8184](https://github.com/netbox-community/netbox/issues/8184) - Employ HTMX to dynamically render tables listing related objects * [#8272](https://github.com/netbox-community/netbox/issues/8272) - Support bridge relationships among device type interfaces * [#8749](https://github.com/netbox-community/netbox/issues/8749) - Support replicating custom field values when cloning an object * [#9073](https://github.com/netbox-community/netbox/issues/9073) - Enable syncing config context data from remote sources * [#9653](https://github.com/netbox-community/netbox/issues/9653) - Enable setting a default platform for device types * [#10054](https://github.com/netbox-community/netbox/issues/10054) - Introduce advanced object selector for UI forms * [#10242](https://github.com/netbox-community/netbox/issues/10242) - Redirect to filtered objects list after bulk import * [#10374](https://github.com/netbox-community/netbox/issues/10374) - Require unique tenant names & slugs per group * [#10729](https://github.com/netbox-community/netbox/issues/10729) - Add date & time custom field type * [#11254](https://github.com/netbox-community/netbox/issues/11254) - Introduce the `X-Request-ID` HTTP header to annotate the unique ID of each request for change logging * [#11291](https://github.com/netbox-community/netbox/issues/11291) - Optimized GraphQL API request handling * [#11440](https://github.com/netbox-community/netbox/issues/11440) - Add an `enabled` field for device type interfaces * [#11494](https://github.com/netbox-community/netbox/issues/11494) - Enable filtering objects by create/update request IDs * [#11517](https://github.com/netbox-community/netbox/issues/11517) - Standardize the inclusion of related objects across the entire UI * [#11584](https://github.com/netbox-community/netbox/issues/11584) - Add a list view for contact assignments * [#11625](https://github.com/netbox-community/netbox/issues/11625) - Add HTMX support to ObjectEditView * [#11693](https://github.com/netbox-community/netbox/issues/11693) - Enable syncing export template content from remote sources * [#11780](https://github.com/netbox-community/netbox/issues/11780) - Enable loading import data from remote sources * [#11790](https://github.com/netbox-community/netbox/issues/11790) - Create database indexes for all generic foreign keys * [#11968](https://github.com/netbox-community/netbox/issues/11968) - Add navigation menu buttons to create device & VM components * [#12068](https://github.com/netbox-community/netbox/issues/12068) - Enable generic foreign key relationships from jobs to NetBox objects * [#12085](https://github.com/netbox-community/netbox/issues/12085) - Add a file source view for reports ### Other Changes * [#10604](https://github.com/netbox-community/netbox/issues/10604) - Remove unused `extra_tabs` block from `object.html` generic template * [#10923](https://github.com/netbox-community/netbox/issues/10923) - Remove unused `NetBoxModelCSVForm` class (replaced by `NetBoxModelImportForm`) * [#11489](https://github.com/netbox-community/netbox/issues/11489) - Consoldated several middleware classes * [#11611](https://github.com/netbox-community/netbox/issues/11611) - Refactor API viewset classes and introduce NetBoxReadOnlyModelViewSet * [#11694](https://github.com/netbox-community/netbox/issues/11694) - Remove obsolete `SmallTextarea` form widget * [#11737](https://github.com/netbox-community/netbox/issues/11737) - `ChangeLoggedModel` now inherits `WebhooksMixin` * [#11765](https://github.com/netbox-community/netbox/issues/11765) - Retire the `StaticSelect` and `StaticSelectMultiple` form widgets * [#11955](https://github.com/netbox-community/netbox/issues/11955) - Remove the unused `CSVDataField` and `CSVFileField` classes * [#12067](https://github.com/netbox-community/netbox/issues/12067) - Move & rename `extras.JobResult` to `core.Job` 2023-03-30T19:58:16+00:00 netbox v3.4.8 netbox v3.4.8 2023-04-12T19:30:49+00:00 ## Enhancements * [#10414](https://github.com/netbox-community/netbox/issues/10414) - Enable general purpose image attachments for device types * [#10600](https://github.com/netbox-community/netbox/issues/10600) - Allow custom object fields to reference a user or group * [#11015](https://github.com/netbox-community/netbox/issues/11015) - Remove unit from commit rate column header in circuits table * [#11431](https://github.com/netbox-community/netbox/issues/11431) - Disallow changing custom field type after creation * [#11453](https://github.com/netbox-community/netbox/issues/11453) - Display a warning banner when `DEBUG` is enabled * [#12007](https://github.com/netbox-community/netbox/issues/12007) - Enable filtering of VM Interfaces by assigned VLAN * [#12095](https://github.com/netbox-community/netbox/issues/12095) - Specify UTF-8 encoding for default export template MIME type * [#12207](https://github.com/netbox-community/netbox/issues/12207) - Introduce the `grant_token` permission for controlling the creation of API tokens on behalf of other users ## Bug Fixes * [#10221](https://github.com/netbox-community/netbox/issues/10221) - Validate generic foreign key relations assigned via REST API requests * [#11432](https://github.com/netbox-community/netbox/issues/11432) - Prevent existing components & component templates from being reassigned to different devices/device types via the REST API * [#11454](https://github.com/netbox-community/netbox/issues/11454) - Raise validation error if generic foreign key assignment does not specify both object type and ID * [#11746](https://github.com/netbox-community/netbox/issues/11746) - Fix cleanup of object data when deleting a custom field * [#12011](https://github.com/netbox-community/netbox/issues/12011) - Fix KeyError exception when attempting to add module bays in bulk * [#12040](https://github.com/netbox-community/netbox/issues/12040) - Display relevant UI tab upon bulk import validation failure * [#12074](https://github.com/netbox-community/netbox/issues/12074) - Fix the automatic assignment of racks to devices via the REST API * [#12084](https://github.com/netbox-community/netbox/issues/12084) - Fix exception when attempting to create a saved filter for applied filters * [#12087](https://github.com/netbox-community/netbox/issues/12087) - Fix bulk editing of many-to-many relationships * [#12117](https://github.com/netbox-community/netbox/issues/12117) - Hide clone button for objects with no clonable attributes * [#12118](https://github.com/netbox-community/netbox/issues/12118) - Fix instantiation of nested inventory item templates when creating a device * [#12184](https://github.com/netbox-community/netbox/issues/12184) - Fix filtered bulk deletion for various models * [#12190](https://github.com/netbox-community/netbox/issues/12190) - Fix form layout for plugin textarea fields * [#12227](https://github.com/netbox-community/netbox/issues/12227) - Fix tenant assignment on bulk import of L2VPNs 2023-04-12T19:30:49+00:00 netbox v3.5-beta2 netbox v3.5-beta2 2023-04-18T13:36:15+00:00 ### Bug Fixes (From Beta1) * [#12103](https://github.com/netbox-community/netbox/issues/12103) - Limit the types of objects available for object count & list widgets * [#12105](https://github.com/netbox-community/netbox/issues/12105) - Prevent data sources from becoming stuck in "syncing" status when an exception is raised * [#12106](https://github.com/netbox-community/netbox/issues/12106) - Fix exception when saving dashboard widget with minimum width/height * [#12108](https://github.com/netbox-community/netbox/issues/12108) - Limit the draggable area of widgets to their headers * [#12109](https://github.com/netbox-community/netbox/issues/12109) - Fix migration error when replicating more than 100 job results * [#12112](https://github.com/netbox-community/netbox/issues/12112) - Do not link data source URL for local paths * [#12115](https://github.com/netbox-community/netbox/issues/12115) - Fix rendering config templates from a data file * [#12144](https://github.com/netbox-community/netbox/issues/12144) - Ensure consistent treatment of context data when rendering config templates via UI & API * [#12145](https://github.com/netbox-community/netbox/issues/12145) - Employ `HTMXSelect` widget to fix inclusion of `<select>` field values during form regeneration * [#12146](https://github.com/netbox-community/netbox/issues/12146) - Do not display object selector for disabled fields * [#12151](https://github.com/netbox-community/netbox/issues/12151) - Remove incorrect OpenAPI string mapping for choice fields * [#12167](https://github.com/netbox-community/netbox/issues/12167) - Catch and report on exceptions raised when rendering a config template 2023-04-18T13:36:15+00:00 netbox v3.4.9 netbox v3.4.9 2023-04-26T18:55:04+00:00 ## Enhancements * [#10987](https://github.com/netbox-community/netbox/issues/10987) - Show peer racks as a dropdown list under rack view * [#11386](https://github.com/netbox-community/netbox/issues/11386) - Introduce `CSRF_COOKIE_SECURE`, `SECURE_SSL_REDIRECT`, and `SESSION_COOKIE_SECURE` configuration parameters * [#11623](https://github.com/netbox-community/netbox/issues/11623) - Hide PSK strings under wireless LAN & link views * [#12205](https://github.com/netbox-community/netbox/issues/12205) - Sanitize rendered custom links to mitigate malicious links * [#12226](https://github.com/netbox-community/netbox/issues/12226) - Enable setting user name & email values via remote authenticate headers * [#12337](https://github.com/netbox-community/netbox/issues/12337) - Enable anonymized reporting of census data ## Bug Fixes * [#11383](https://github.com/netbox-community/netbox/issues/11383) - Fix ordering of global search results by object type * [#11902](https://github.com/netbox-community/netbox/issues/11902) - Fix import of inventory items for devices with duplicated names * [#12238](https://github.com/netbox-community/netbox/issues/12238) - Improve error message for API token IP prefix validation failures * [#12255](https://github.com/netbox-community/netbox/issues/12255) - Restore the ability to move inventory items among devices * [#12270](https://github.com/netbox-community/netbox/issues/12270) - Fix pre-population of list values when creating a saved filter * [#12296](https://github.com/netbox-community/netbox/issues/12296) - Fix "mark connected" form field for bulk editing front & rear ports 2023-04-26T18:55:04+00:00 netbox v3.4.10 netbox v3.4.10 2023-04-27T16:03:56+00:00 ## Bug Fixes * [#11607](https://github.com/netbox-community/netbox/issues/11607) - Fix custom object field assignments made via REST API for for cables * [#12252](https://github.com/netbox-community/netbox/issues/12252) - Fix ordering of search results when sorting by object name * [#12355](https://github.com/netbox-community/netbox/issues/12355) - Fix escaping of certain characters in URL when rendering custom links 2023-04-27T16:03:56+00:00 netbox v3.5.0 netbox v3.5.0 2023-04-27T18:40:25+00:00 ## Breaking Changes * The `account` field has been removed from the provider model. This information is now tracked using the new provider account model. Multiple accounts can be assigned per provider. * A minimum length of 50 characters is now enforced for the `SECRET_KEY` configuration parameter. * The JobResult model has been moved from the `extras` app to `core` and renamed to Job. Accordingly, its REST API endpoint has been moved from `/api/extras/job-results/` to `/api/core/jobs/`. * The `obj_type` field on the Job model (previously JobResult) has been renamed to `object_type` for consistency with other models. * The `JOBRESULT_RETENTION` configuration parameter has been renamed to `JOB_RETENTION`. * The `obj` context variable is no longer passed when rendering custom links: Use `object` instead. * The REST API schema is now generated using the OpenAPI 3.0 spec * The URLs for the REST API schema documentation have changed: * `/api/docs/` is now `/api/schema/swagger-ui/` * `/api/redoc/` is now `/api/schema/redoc/` ## New Features ### Customizable Dashboard ([#9416](https://github.com/netbox-community/netbox/issues/9416)) The static home view has been replaced with a fully customizable dashboard. Users can construct and rearrange their own personal dashboard to convey the information most pertinent to them. Supported widgets include object statistics, configurable object lists, RSS feeds, and notes, and we expect to continue adding new widgets over time. ### Remote Data Sources ([#11558](https://github.com/netbox-community/netbox/issues/11558)) NetBox now has the ability to synchronize arbitrary data from external sources through the new [DataSource](../models/core/datasource.md) and [DataFile](../models/core/datafile.md) models. Synchronized files are stored in the PostgreSQL database, and may be referenced and consumed by other NetBox models, such as export templates and config contexts. Currently, replication from local filesystem paths, git repositories, and Amazon S3 buckets is supported, and we expect to introduce additional backends in the near future. ### Configuration Template Rendering ([#11559](https://github.com/netbox-community/netbox/issues/11559)) This release introduces the ability to render device configurations from Jinja2 templates natively within NetBox, via both the UI and REST API. The new [ConfigTemplate](../models/extras/configtemplate.md) model stores template code (which may be defined locally or sourced from remote data files). The rendering engine passes data gleaned from both config contexts and request parameters to generate complete configurations suitable for direct application to network devices. ### NAPALM Integration Plugin ([#10520](https://github.com/netbox-community/netbox/issues/10520)) The NAPALM integration feature found in previous NetBox releases has been moved from the core application to a [dedicated plugin](https://github.com/netbox-community/netbox-napalm). This allows greater control over the feature's configuration and will unlock additional potential as a separate project. ### ASN Ranges ([#8550](https://github.com/netbox-community/netbox/issues/8550)) A new ASN range model has been introduced to facilitate the provisioning of new autonomous system numbers from within a prescribed range. For example, an administrator might define an ASN range of 65000-65099 to be used for internal site identification. This includes a REST API endpoint suitable for automatic provisioning, very similar to the allocation of available prefixes and IP addresses. ### Provider Accounts ([#9047](https://github.com/netbox-community/netbox/issues/9047)) A new model has been introduced to represent individual accounts within a common circuit provider. This replaces the `account` field on the provider model, enabling users to track multiple accounts per provider. New provider account instances will be created automatically during upgrade for all providers which currently have an account assigned. The assignment of individual circuits to a provider account remains optional. ### Job-Triggered Webhooks ([#8958](https://github.com/netbox-community/netbox/issues/8958)) Two new webhook trigger events have been introduced: `job_start` and `job_end`. These enable users to configure webhook to trigger when a background job starts or ends, respectively. This new functionality can be used, for example, to inform a remote system when a custom script has been executed. ## Enhancements * [#7947](https://github.com/netbox-community/netbox/issues/7947) - Enable marking IP ranges as fully utilized * [#8184](https://github.com/netbox-community/netbox/issues/8184) - Employ HTMX to dynamically render tables listing related objects * [#8272](https://github.com/netbox-community/netbox/issues/8272) - Support bridge relationships among device type interfaces * [#8749](https://github.com/netbox-community/netbox/issues/8749) - Support replicating custom field values when cloning an object * [#9073](https://github.com/netbox-community/netbox/issues/9073) - Enable syncing config context data from remote sources * [#9653](https://github.com/netbox-community/netbox/issues/9653) - Enable setting a default platform for device types * [#10054](https://github.com/netbox-community/netbox/issues/10054) - Introduce advanced object selector for UI forms * [#10242](https://github.com/netbox-community/netbox/issues/10242) - Redirect to filtered objects list after bulk import * [#10374](https://github.com/netbox-community/netbox/issues/10374) - Require unique tenant names & slugs per group * [#10729](https://github.com/netbox-community/netbox/issues/10729) - Add date & time custom field type * [#11029](https://github.com/netbox-community/netbox/issues/11029) - Enable change logging for cable terminations * [#11254](https://github.com/netbox-community/netbox/issues/11254) - Introduce the `X-Request-ID` HTTP header to annotate the unique ID of each request for change logging * [#11255](https://github.com/netbox-community/netbox/issues/11255) - Introduce the `scheduling_enabled` settings for reports & scripts * [#11291](https://github.com/netbox-community/netbox/issues/11291) - Optimized GraphQL API request handling * [#11440](https://github.com/netbox-community/netbox/issues/11440) - Add an `enabled` field for device type interfaces * [#11494](https://github.com/netbox-community/netbox/issues/11494) - Enable filtering objects by create/update request IDs * [#11517](https://github.com/netbox-community/netbox/issues/11517) - Standardize the inclusion of related objects across the entire UI * [#11584](https://github.com/netbox-community/netbox/issues/11584) - Add a list view for contact assignments * [#11625](https://github.com/netbox-community/netbox/issues/11625) - Add HTMX support to ObjectEditView * [#11693](https://github.com/netbox-community/netbox/issues/11693) - Enable syncing export template content from remote sources * [#11780](https://github.com/netbox-community/netbox/issues/11780) - Enable loading import data from remote sources * [#11790](https://github.com/netbox-community/netbox/issues/11790) - Create database indexes for all generic foreign keys * [#11968](https://github.com/netbox-community/netbox/issues/11968) - Add navigation menu buttons to create device & VM components * [#12068](https://github.com/netbox-community/netbox/issues/12068) - Enable generic foreign key relationships from jobs to NetBox objects * [#12085](https://github.com/netbox-community/netbox/issues/12085) - Add a file source view for reports * [#12218](https://github.com/netbox-community/netbox/issues/12218) - Provide more relevant API endpoint descriptions in schema * [#12343](https://github.com/netbox-community/netbox/issues/12343) - Enforce a minimum length for `SECRET_KEY` configuration parameter ## Bug Fixes (From Beta2) * [#12149](https://github.com/netbox-community/netbox/issues/12149) - Fix OpenAPI schema warnings relating to enum collisions * [#12195](https://github.com/netbox-community/netbox/issues/12195) - Fix exception when setting IP address role to null via REST API * [#12256](https://github.com/netbox-community/netbox/issues/12256) - Fix OpenAPI schema warnings relating to nested serializers * [#12278](https://github.com/netbox-community/netbox/issues/12278) - Fix schema warnings related to IPAddressField * [#12288](https://github.com/netbox-community/netbox/issues/12288) - Include `servers` definition in OpenAPI spec * [#12299](https://github.com/netbox-community/netbox/issues/12299) - Fix object list widget support for filtering by multiple values ## Other Changes * [#9608](https://github.com/netbox-community/netbox/issues/9608) - Upgrade REST API schema to OpenAPI 3.0 * [#10604](https://github.com/netbox-community/netbox/issues/10604) - Remove unused `extra_tabs` block from `object.html` generic template * [#10923](https://github.com/netbox-community/netbox/issues/10923) - Remove unused `NetBoxModelCSVForm` class (replaced by `NetBoxModelImportForm`) * [#11489](https://github.com/netbox-community/netbox/issues/11489) - Consolidated several middleware classes * [#11611](https://github.com/netbox-community/netbox/issues/11611) - Refactor API viewset classes and introduce NetBoxReadOnlyModelViewSet * [#11694](https://github.com/netbox-community/netbox/issues/11694) - Remove obsolete `SmallTextarea` form widget * [#11737](https://github.com/netbox-community/netbox/issues/11737) - `ChangeLoggedModel` now inherits `WebhooksMixin` * [#11765](https://github.com/netbox-community/netbox/issues/11765) - Retire the `StaticSelect` and `StaticSelectMultiple` form widgets * [#11955](https://github.com/netbox-community/netbox/issues/11955) - Remove the unused `CSVDataField` and `CSVFileField` classes * [#12067](https://github.com/netbox-community/netbox/issues/12067) - Move & rename `extras.JobResult` to `core.Job` 2023-04-27T18:40:25+00:00 netbox v3.5.1 netbox v3.5.1 2023-05-05T16:51:16+00:00 ## Enhancements * [#10759](https://github.com/netbox-community/netbox/issues/10759) - Support Markdown rendering for custom field descriptions * [#11190](https://github.com/netbox-community/netbox/issues/11190) - Including systemd service & timer configurations for housekeeping tasks * [#11422](https://github.com/netbox-community/netbox/issues/11422) - Match on power panel name when searching for power feeds * [#11504](https://github.com/netbox-community/netbox/issues/11504) - Add filter to select individual racks under rack elevations view * [#11652](https://github.com/netbox-community/netbox/issues/11652) - Add a module status column to module bay tables * [#11791](https://github.com/netbox-community/netbox/issues/11791) - Enable configuration of custom database backend via `ENGINE` parameter * [#11801](https://github.com/netbox-community/netbox/issues/11801) - Include device description within rack elevation tooltip * [#11932](https://github.com/netbox-community/netbox/issues/11932) - Introduce a list view for image attachments, orderable by date and other attributes * [#12122](https://github.com/netbox-community/netbox/issues/12122) - Enable bulk import oj journal entries * [#12245](https://github.com/netbox-community/netbox/issues/12245) - Enable the assignment of wireless LANs to interfaces under bulk edit ## Bug Fixes * [#10757](https://github.com/netbox-community/netbox/issues/10757) - Simplify IP address interface and NAT IP assignment form fields to avoid confusion * [#11715](https://github.com/netbox-community/netbox/issues/11715) - Prefix within a VRF should list global prefixes as parents only if they are containers * [#12363](https://github.com/netbox-community/netbox/issues/12363) - Fix whitespace for paragraph elements in Markdown-rendered table columns * [#12367](https://github.com/netbox-community/netbox/issues/12367) - Fix `RelatedObjectDoesNotExist` exception under certain conditions (regression from #11550) * [#12380](https://github.com/netbox-community/netbox/issues/12380) - Allow selecting object change as model under object list widget configuration * [#12384](https://github.com/netbox-community/netbox/issues/12384) - Add a three-second timeout for RSS reader widget * [#12395](https://github.com/netbox-community/netbox/issues/12395) - Fix "create & add another" action for objects with custom fields * [#12396](https://github.com/netbox-community/netbox/issues/12396) - Provider account should not be a required field in REST API serializer * [#12400](https://github.com/netbox-community/netbox/issues/12400) - Validate default values for object and multi-object custom fields * [#12401](https://github.com/netbox-community/netbox/issues/12401) - Support the creation of front ports without a pre-populated device ID * [#12405](https://github.com/netbox-community/netbox/issues/12405) - Fix filtering for VLAN groups displayed under site view * [#12410](https://github.com/netbox-community/netbox/issues/12410) - Fix base path for OpenAPI schema (fixes Swagger UI requests) * [#12416](https://github.com/netbox-community/netbox/issues/12416) - Fix `FileNotFoundError` exception when a managed script file is missing from disk * [#12412](https://github.com/netbox-community/netbox/issues/12412) - Device/VM interface MAC addresses can be nullified via REST API * [#12415](https://github.com/netbox-community/netbox/issues/12415) - Fix `ImportError` exception when running RQ worker * [#12433](https://github.com/netbox-community/netbox/issues/12433) - Correct the application of URL query parameters for object list dashboard widgets * [#12436](https://github.com/netbox-community/netbox/issues/12436) - Remove extraneous "add" button from contact assignments list * [#12463](https://github.com/netbox-community/netbox/issues/12463) - Fix the association of completed jobs with reports & scripts in the REST API * [#12464](https://github.com/netbox-community/netbox/issues/12464) - Apply credentials for git data source only when connecting via HTTP/S * [#12476](https://github.com/netbox-community/netbox/issues/12476) - Fix `TypeError` exception when running the `runscript` management command * [#12483](https://github.com/netbox-community/netbox/issues/12483) - Fix git remote data syncing when with HTTP proxies defined * [#12496](https://github.com/netbox-community/netbox/issues/12496) - Remove obsolete account field from provider UI view 2023-05-05T16:51:16+00:00 netbox v3.5.2 netbox v3.5.2 2023-05-22T20:54:59+00:00 ## Enhancements * [#7671](https://github.com/netbox-community/netbox/issues/7671) - Introduce `REMOTE_AUTH_AUTO_CREATE_GROUPS` config parameter to enable the automatic creation of new groups when remote authentication is in use * [#9068](https://github.com/netbox-community/netbox/issues/9068) - Disallow the assignment of network/broadcast IP addresses to interfaces * [#11017](https://github.com/netbox-community/netbox/issues/11017) - Increase the maximum values for allocated and maximum power draws * [#11233](https://github.com/netbox-community/netbox/issues/11233) - Intercept and cleanly report errors upon attempted database writes when maintenance mode is enabled * [#11599](https://github.com/netbox-community/netbox/issues/11599) - Move contacts panels to separate tabs under object views * [#11670](https://github.com/netbox-community/netbox/issues/11670) - Enable setting device type & module type weight via bulk import * [#11900](https://github.com/netbox-community/netbox/issues/11900) - Add an outline to the reservation markers on rack elevations * [#12131](https://github.com/netbox-community/netbox/issues/12131) - Show custom field description as an icon tooltip under object views * [#12223](https://github.com/netbox-community/netbox/issues/12223) - Add columns for parent device bay and position to devices list * [#12233](https://github.com/netbox-community/netbox/issues/12233) - Move related IP addresses table to a separate tab * [#12286](https://github.com/netbox-community/netbox/issues/12286) - Show height and total weight under device view * [#12323](https://github.com/netbox-community/netbox/issues/12323) - Add 100GE CXP interface type * [#12327](https://github.com/netbox-community/netbox/issues/12327) - Introduce the ability to automatically retry failed background jobs * [#12498](https://github.com/netbox-community/netbox/issues/12498) - Hide map button if `MAPS_URL` is empty * [#12548](https://github.com/netbox-community/netbox/issues/12548) - Optimize REST API performance when retrieving interfaces with L2VPN assignments * [#12554](https://github.com/netbox-community/netbox/issues/12554) - Allow customization or disabling of the maintenance mode banner * [#12605](https://github.com/netbox-community/netbox/issues/12605) - Add LX.5 port types * [#12629](https://github.com/netbox-community/netbox/issues/12629) - Add 400GE CDFP and CFP8 interface types * [#12678](https://github.com/netbox-community/netbox/issues/12678) - Add 200GE QSFP-DD interface type ## Bug Fixes * [#10686](https://github.com/netbox-community/netbox/issues/10686) - Enable specifying termination object by virtual chassis master when importing cables * [#11619](https://github.com/netbox-community/netbox/issues/11619) - Enable assigning VLANs without a site to interfaces during bulk edit * [#12468](https://github.com/netbox-community/netbox/issues/12468) - Custom field names should not permit double underscores * [#12550](https://github.com/netbox-community/netbox/issues/12550) - Fix rear port selection widget under front port creation form * [#12570](https://github.com/netbox-community/netbox/issues/12570) - Disable ordering of synchronized object tables by the "synced" attribute * [#12594](https://github.com/netbox-community/netbox/issues/12594) - Enable selecting config context as object type in object counts dashboard widget * [#12642](https://github.com/netbox-community/netbox/issues/12642) - Fix bulk tenant assignment via cluster import form 2023-05-22T20:54:59+00:00 netbox v3.5.3 netbox v3.5.3 2023-06-02T19:37:57+00:00 ## Enhancements * [#9876](https://github.com/netbox-community/netbox/issues/9876) - Improve support for matching tags in conditional rules * [#12015](https://github.com/netbox-community/netbox/issues/12015) - Add device type & role filters for device components * [#12470](https://github.com/netbox-community/netbox/issues/12470) - Collapse context data by default when viewing a rendered device configuration * [#12562](https://github.com/netbox-community/netbox/issues/12562) - Record client IP address when logging authentication failures * [#12597](https://github.com/netbox-community/netbox/issues/12597) - Add an option to hide custom fields only if unset * [#12599](https://github.com/netbox-community/netbox/issues/12599) - Apply filter parameters to links in object count dashboard widgets ## Bug Fixes * [#7503](https://github.com/netbox-community/netbox/issues/7503) - Improve rack space validation when creating multiple devices via REST API * [#11539](https://github.com/netbox-community/netbox/issues/11539) - Fix exception when applying "empty" filter lookup with invalid value * [#11934](https://github.com/netbox-community/netbox/issues/11934) - Prevent reassignment of an IP address designated as primary for its parent object * [#12538](https://github.com/netbox-community/netbox/issues/12538) - Redirect user to originating view after editing/deleting an image attachment * [#12627](https://github.com/netbox-community/netbox/issues/12627) - Restore hover preview for embedded image attachment tables * [#12694](https://github.com/netbox-community/netbox/issues/12694) - Strip leading & trailing whitespace from custom link URL & text * [#12702](https://github.com/netbox-community/netbox/issues/12702) - Fix sizing of rear port selection widget on front port template creation form * [#12715](https://github.com/netbox-community/netbox/issues/12715) - Use contact assignments table to display the contacts assigned to an object * [#12730](https://github.com/netbox-community/netbox/issues/12730) - Fix extraneous contacts listed in object contact assignments view * [#12742](https://github.com/netbox-community/netbox/issues/12742) - Object counts dashboard widget should support URL-compatible query filters * [#12762](https://github.com/netbox-community/netbox/issues/12762) - Fix GraphiQL UI by reverting graphene-django to earlier version * [#12745](https://github.com/netbox-community/netbox/issues/12745) - Escape display text in API-backed selection widgets * [#12779](https://github.com/netbox-community/netbox/issues/12779) - Correct arithmetic for converting inches to meters 2023-06-02T19:37:57+00:00 netbox v3.5.4 netbox v3.5.4 2023-06-20T18:25:28+00:00 ## Enhancements * [#12828](https://github.com/netbox-community/netbox/issues/12828) - Define colors for staged change action choices * [#12847](https://github.com/netbox-community/netbox/issues/12847) - Include "add" button on all device & virtual machine component list views * [#12862](https://github.com/netbox-community/netbox/issues/12862) - Add menu navigation button to add wireless links directly * [#12865](https://github.com/netbox-community/netbox/issues/12865) - Add "add" buttons for reports & scripts to navigation menu ## Bug Fixes * [#12474](https://github.com/netbox-community/netbox/issues/12474) - Update cable terminations when assigning a location to a new site * [#12622](https://github.com/netbox-community/netbox/issues/12622) - Permit the assignment of non-site VLANs to prefixes assigned to a site * [#12682](https://github.com/netbox-community/netbox/issues/12682) - Correct OpenAPI schema for connected device API endpoint * [#12687](https://github.com/netbox-community/netbox/issues/12687) - Allow the assignment of all /31 IP addresses to interfaces * [#12818](https://github.com/netbox-community/netbox/issues/12818) - Fix permissions evaluation when queuing a data sync job * [#12822](https://github.com/netbox-community/netbox/issues/12822) - Fix encoding of whitespace in custom link URLs * [#12838](https://github.com/netbox-community/netbox/issues/12838) - Correct rounding of rack power utilization values * [#12845](https://github.com/netbox-community/netbox/issues/12845) - Fix pagination of objects for related IP addresses table * [#12850](https://github.com/netbox-community/netbox/issues/12850) - Fix table configuration modal for the contact assignments list * [#12885](https://github.com/netbox-community/netbox/issues/12885) - Permit mounting of devices in rack unit 100 * [#12914](https://github.com/netbox-community/netbox/issues/12914) - Clear stored ordering from user config when cleared by request 2023-06-20T18:25:28+00:00 netbox v3.5.5 netbox v3.5.5 2023-07-06T20:39:11+00:00 ## Enhancements * [#11738](https://github.com/netbox-community/netbox/issues/11738) - Annotate VLAN group utilization * [#12499](https://github.com/netbox-community/netbox/issues/12499) - Add "copy to clipboard" buttons in UI for IP addresses * [#12945](https://github.com/netbox-community/netbox/issues/12945) - Add 100GE QSFP-DD interface type * [#12955](https://github.com/netbox-community/netbox/issues/12955) - Include additional contact details on contact assignments table * [#13065](https://github.com/netbox-community/netbox/issues/13065) - Associate contact assignments with their objects in the change log ## Bug Fixes * [#11335](https://github.com/netbox-community/netbox/issues/11335) - Exclude stale content types when retrieving changelog records * [#12533](https://github.com/netbox-community/netbox/issues/12533) - Fix REST API validation of null values for several interface attributes * [#12579](https://github.com/netbox-community/netbox/issues/12579) - Fix exception when clicking "create and add another" to add a cable * [#12617](https://github.com/netbox-community/netbox/issues/12617) - Populate prechange snapshot on parent object when assigning/removing primary IP address * [#12760](https://github.com/netbox-community/netbox/issues/12760) - Avoid rendering partial HTMX responses when restoring browser tabs * [#12842](https://github.com/netbox-community/netbox/issues/12842) - Improve handling of exceptions when loading reports * [#12849](https://github.com/netbox-community/netbox/issues/12849) - Fix LDAP group permissions assignment for API clients * [#12951](https://github.com/netbox-community/netbox/issues/12951) - Display consistent parent information for each termination under cable view * [#12953](https://github.com/netbox-community/netbox/issues/12953) - Fix designation of primary IP addresses during interface assignment * [#12960](https://github.com/netbox-community/netbox/issues/12960) - Fix OpenAPI schema for various choice fields * [#12961](https://github.com/netbox-community/netbox/issues/12961) - Set correct return URL for object contacts tabs * [#12966](https://github.com/netbox-community/netbox/issues/12966) - Avoid catching database exceptions when maintenance mode is disabled * [#12975](https://github.com/netbox-community/netbox/issues/12975) - Correct URL for VirtualDeviceContext API serializer * [#12977](https://github.com/netbox-community/netbox/issues/12977) - Fix URL parameters for object count dashboard widgets * [#12983](https://github.com/netbox-community/netbox/issues/12983) - Avoid erroneously clearing many-to-many assignments during bulk edit * [#12989](https://github.com/netbox-community/netbox/issues/12989) - Fix bulk import of tags for device & module types * [#13011](https://github.com/netbox-community/netbox/issues/13011) - Do not escape commas when rendering custom links * [#13047](https://github.com/netbox-community/netbox/issues/13047) - Correct ASN count under ASN ranges list * [#13056](https://github.com/netbox-community/netbox/issues/13056) - Add `config_template` field to device API serializer * [#13092](https://github.com/netbox-community/netbox/issues/13092) - Allow nullifying power port max & allocated draw values during bulk edit * [#13100](https://github.com/netbox-community/netbox/issues/13100) - Fix ValueError exception when searching for virtual device context for non-numeric values 2023-07-06T20:39:11+00:00 netbox v3.5.6 netbox v3.5.6 2023-07-10T20:54:16+00:00 ## Bug Fixes * [#13061](https://github.com/netbox-community/netbox/issues/13061) - Fix display of last result for scripts & reports with a custom name defined * [#13096](https://github.com/netbox-community/netbox/issues/13096) - Hide scheduling fields for all scripts with scheduling disabled * [#13105](https://github.com/netbox-community/netbox/issues/13105) - Fix exception when attempting to allocate next available IP address from prefix marked as utilized * [#13116](https://github.com/netbox-community/netbox/issues/13116) - Catch ProgrammingError exception when starting NetBox without pre-populated content types 2023-07-10T20:54:16+00:00 netbox v3.5.7 netbox v3.5.7 2023-07-28T14:30:28+00:00 ## Enhancements * [#11803](https://github.com/netbox-community/netbox/issues/11803) - Move non-rack devices list to a separate tab under the rack view * [#12625](https://github.com/netbox-community/netbox/issues/12625) - Mask sensitive parameters when viewing a configured data source * [#13009](https://github.com/netbox-community/netbox/issues/13009) - Add IEC 10609-1 and NBR 14136 power port & outlet types * [#13097](https://github.com/netbox-community/netbox/issues/13097) - Implement a faster initial poll for report & script results * [#13234](https://github.com/netbox-community/netbox/issues/13234) - Add 100GBASE-X-DSFP and 100GBASE-X-SFPDD interface types ## Bug Fixes * [#13051](https://github.com/netbox-community/netbox/issues/13051) - Fix Markdown support for table cell alignment * [#13167](https://github.com/netbox-community/netbox/issues/13167) - Fix missing script results when fetched via REST API * [#13233](https://github.com/netbox-community/netbox/issues/13233) - Remove extraneous VLAN group field from bulk edit form for interfaces * [#13237](https://github.com/netbox-community/netbox/issues/13237) - Permit unauthenticated access to content types REST API endpoint when `LOGIN_REQUIRED` is false * [#13285](https://github.com/netbox-community/netbox/issues/13285) - Fix exception when importing device type missing rack unit height value 2023-07-28T14:30:28+00:00 netbox v3.6-beta1 netbox v3.6-beta1 2023-08-02T17:33:26+00:00 :warning: **This is a beta release** intended only for testing and evaluation. Do not deploy it in a production environment. ### Breaking Changes * PostgreSQL 11 is no longer supported (dropped in Django 4.2). NetBox v3.6 requires PostgreSQL 12 or later. * The `device_role` field on the Device model has been renamed to `role`. The `device_role` field has been temporarily retained on the REST API serializer for devices for backward compatibility, but is read-only. * The `choices` array field has been removed from the CustomField model. Any defined choices are automatically migrated to CustomFieldChoiceSets, accessible via the new `choice_set` field on the CustomField model. * The `napalm_driver` and `napalm_args` fields (which were deprecated in v3.5) have been removed from the Platform model. ### New Features #### Relocated Admin Views ([#12589](https://github.com/netbox-community/netbox/issues/12589), [#12590](https://github.com/netbox-community/netbox/issues/12590), [#12591](https://github.com/netbox-community/netbox/issues/12591), [#13044](https://github.com/netbox-community/netbox/issues/13044)) Management views for the following object types, previously available only under the backend admin interface, have been relocated to the primary user interface: * Users * Groups * Object permissions * API tokens * Configuration revisions This migration provides a more consistent user experience and unlocks advanced functionality not feasible using Django's built-in views. The admin UI is scheduled for complete removal in NetBox v4.0. #### Configurable Default Permissions ([#13038](https://github.com/netbox-community/netbox/issues/13038)) Administrators now have the option of configuring default permissions for _all_ users globally, regardless of explicit permission or group assignments granted in the database. This is accomplished by defining the `DEFAULT_PERMISSIONS` configuration parameter. By default, all users are granted permission to manage their own bookmarks and API tokens. #### User Bookmarks ([#8248](https://github.com/netbox-community/netbox/issues/8248)) Users can now bookmark their favorite objects in NetBox. Bookmarks are accessible under each user's personal bookmarks list, and can also be added as a dashboard widget. #### Custom Field Choice Sets ([#12988](https://github.com/netbox-community/netbox/issues/12988)) Selection and multi-select custom fields now employ discrete, reusable choice sets containing the valid options for each field. A choice set may be shared by multiple custom fields. Additionally, each choice within a set can now specify both a raw value and a human-friendly label (see [#13241](https://github.com/netbox-community/netbox/issues/13241)). Pre-existing custom field choices are migrated to choice sets automatically during the upgrade process. #### Pre-Defined Location Choices for Custom Fields ([#12194](https://github.com/netbox-community/netbox/issues/12194)) Users now have the option to employ one of several pre-defined sets of choices when creating a custom field. These include: * IATA airport codes * ISO 3166 country codes * UN/LOCODE location identifiers When defining a choice set, one of the above can be employed as the base set, with the option to define extra, custom choices as well. #### Restrict Tag Usage by Object Type ([#11541](https://github.com/netbox-community/netbox/issues/11541)) Tags may now be restricted to use with designated object types. Tags that have no specific object types assigned may be used with any object that supports tag assignment. ### Enhancements * [#6347](https://github.com/netbox-community/netbox/issues/6347) - Cache the number of assigned components for devices and virtual machines * [#8137](https://github.com/netbox-community/netbox/issues/8137) - Add a field for designating the out-of-band (OOB) IP address for devices * [#10197](https://github.com/netbox-community/netbox/issues/10197) - Cache the number of member devices on each virtual chassis * [#11305](https://github.com/netbox-community/netbox/issues/11305) - Add GPS coordinate fields to the device model * [#11519](https://github.com/netbox-community/netbox/issues/11519) - Add a SQL index for IP address host values to optimize queries * [#11732](https://github.com/netbox-community/netbox/issues/11732) - Prevent inadvertent overwriting of object attributes by competing users * [#11936](https://github.com/netbox-community/netbox/issues/11936) - Introduce support for tags and custom fields on webhooks * [#12175](https://github.com/netbox-community/netbox/issues/12175) - Permit racks to start numbering at values greater than one * [#12210](https://github.com/netbox-community/netbox/issues/12210) - Add tenancy assignment for power feeds * [#12882](https://github.com/netbox-community/netbox/issues/12882) - Add tag support for contact assignments * [#13170](https://github.com/netbox-community/netbox/issues/13170) - Add `rf_role` to InterfaceTemplate * [#13269](https://github.com/netbox-community/netbox/issues/13269) - Cache the number of assigned component templates for device types ### Other Changes * Work has begun on introducing translation and localization support in NetBox. This work is being performed in preparation for release 4.0. * [#6391](https://github.com/netbox-community/netbox/issues/6391) - Rename the `device_role` field on Device to `role` for consistency with VirtualMachine * [#9077](https://github.com/netbox-community/netbox/issues/9077) - Prevent the errant execution of dangerous instance methods in Django templates * [#11766](https://github.com/netbox-community/netbox/issues/11766) - Remove obsolete custom `ChoiceField` and `MultipleChoiceField` classes * [#12180](https://github.com/netbox-community/netbox/issues/12180) - All API endpoints for available objects (e.g. IP addresses) now inherit from a common parent view * [#12237](https://github.com/netbox-community/netbox/issues/12237) - Upgrade Django to v4.2 * [#12794](https://github.com/netbox-community/netbox/issues/12794) - Avoid direct imports of Django's stock user model * [#12320](https://github.com/netbox-community/netbox/issues/12320) - Remove obsolete fields `napalm_driver` and `napalm_args` from Platform * [#12964](https://github.com/netbox-community/netbox/issues/12964) - Drop support for PostgreSQL 11 * [#13309](https://github.com/netbox-community/netbox/issues/13309) - User account-specific resources have been moved to a new `account` app for better organization 2023-08-02T17:33:26+00:00 netbox v3.5.8 netbox v3.5.8 2023-08-15T13:57:32+00:00 ## Enhancements * [#10030](https://github.com/netbox-community/netbox/issues/10030) - Ship a validation schema for the device type library with each release * [#11675](https://github.com/netbox-community/netbox/issues/11675) - Add support for specifying import/export route targets during VRF bulk import * [#11922](https://github.com/netbox-community/netbox/issues/11922) - Automatically populate any VDC assignments from the parent when adding a child interface via the UI * [#12889](https://github.com/netbox-community/netbox/issues/12889) - Add 400GE CFP2 interface type * [#13033](https://github.com/netbox-community/netbox/issues/13033) - Add human-friendly speed column to interfaces table * [#13151](https://github.com/netbox-community/netbox/issues/13151) - Add "assigned" filter for IP addresses * [#13368](https://github.com/netbox-community/netbox/issues/13368) - List installed plugins on the server error report page * [#13442](https://github.com/netbox-community/netbox/issues/13442) - Add 200 and 400 Gbps speeds to dropdown choices on interface form ## Bug Fixes * [#11578](https://github.com/netbox-community/netbox/issues/11578) - Fix schema definition for available IP & VLAN REST API endpoints * [#12639](https://github.com/netbox-community/netbox/issues/12639) - Raise validation error for invalid alphanumeric ranges when creating objects * [#12665](https://github.com/netbox-community/netbox/issues/12665) - Avoid escaping semicolons when rendering custom links * [#12750](https://github.com/netbox-community/netbox/issues/12750) - Automatically delete an AutoSyncRecord when its object is deleted * [#13343](https://github.com/netbox-community/netbox/issues/13343) - Fix filtering of circuits under provider network view * [#13369](https://github.com/netbox-community/netbox/issues/13369) - Fix job termination status for failed reports * [#13414](https://github.com/netbox-community/netbox/issues/13414) - Fix support for "hide-if-unset" custom fields on bulk import forms * [#13446](https://github.com/netbox-community/netbox/issues/13446) - Don't disable bulk edit/delete buttons after deselecting "select all" checkbox * [#13451](https://github.com/netbox-community/netbox/issues/13451) - Disable table ordering for custom link columns 2023-08-15T13:57:32+00:00 netbox v3.6-beta2 netbox v3.6-beta2 2023-08-16T15:30:11+00:00 :warning: **This is a beta release** intended only for testing and evaluation. Do not deploy it in a production environment. ### Bug Fixes * [#13351](https://github.com/netbox-community/netbox/issues/13351) - Fix missing text due to incorrectly applied translation tags * [#13361](https://github.com/netbox-community/netbox/issues/13361) - Extra choices field on custom field choice set form should not be required * [#13363](https://github.com/netbox-community/netbox/issues/13363) - Fix API endpoint for custom field choice selector in forms * [#13376](https://github.com/netbox-community/netbox/issues/13376) - Restrict add/remove tag fields by model on bulk edit forms * [#13410](https://github.com/netbox-community/netbox/issues/13410) - Fix rendering of custom choice fields with large number of choices * [#13433](https://github.com/netbox-community/netbox/issues/13433) - User field on API token form should be required * [#13434](https://github.com/netbox-community/netbox/issues/13434) - Randomly generate initial keys prior to the creation of new tokens * [#13437](https://github.com/netbox-community/netbox/issues/13437) - Display bookmark button only for relevant objects 2023-08-16T15:30:11+00:00 netbox v3.5.9 netbox v3.5.9 2023-08-28T21:08:09+00:00 ## Enhancements * [#12489](https://github.com/netbox-community/netbox/issues/12489) - Dynamically render location and device lists under site and location views * [#12825](https://github.com/netbox-community/netbox/issues/12825) - Display assigned values count per object type under custom field view * [#13313](https://github.com/netbox-community/netbox/issues/13313) - Enable filtering IP ranges by containing prefix * [#13415](https://github.com/netbox-community/netbox/issues/13415) - Include request object in custom link renderer on tables * [#13536](https://github.com/netbox-community/netbox/issues/13536) - Move child VLANs list to a separate tab under VLAN group view * [#13542](https://github.com/netbox-community/netbox/issues/13542) - Pass additional HTTP headers through to custom script context * [#13585](https://github.com/netbox-community/netbox/issues/13585) - Introduce `empty` lookup for numeric value filters ## Bug Fixes * [#11272](https://github.com/netbox-community/netbox/issues/11272) - Fix localization support for device position field * [#13358](https://github.com/netbox-community/netbox/issues/13358) - Git backend should send HTTP auth headers only if credentials have been defined * [#13477](https://github.com/netbox-community/netbox/issues/13477) - Fix filtering of modified objects after bulk import/update * [#13478](https://github.com/netbox-community/netbox/issues/13478) - Fix filtering of export templates by content type under web UI * [#13500](https://github.com/netbox-community/netbox/issues/13500) - Fix form validation for bulk update of L2VPN terminations via bulk import form * [#13503](https://github.com/netbox-community/netbox/issues/13503) - Fix utilization graph proportions when localization is enabled * [#13507](https://github.com/netbox-community/netbox/issues/13507) - Avoid raising exception for invalid content type during global search * [#13516](https://github.com/netbox-community/netbox/issues/13516) - Plugin utility functions should be importable from `extras.plugins` * [#13530](https://github.com/netbox-community/netbox/issues/13530) - Ensure script log messages can be serialized as JSON data * [#13543](https://github.com/netbox-community/netbox/issues/13543) - Config context tab under device/VM view should not require `extras.view_configcontext` permission * [#13544](https://github.com/netbox-community/netbox/issues/13544) - Ensure `reindex` command clears all cached values when not in lazy mode * [#13556](https://github.com/netbox-community/netbox/issues/13556) - Correct REST API representation of VDC status choice * [#13569](https://github.com/netbox-community/netbox/issues/13569) - Fix selection widgets for related interfaces when bulk editing interfaces under device view 2023-08-28T21:08:09+00:00 netbox v3.6.0 netbox v3.6.0 2023-08-30T18:53:01+00:00 ## Breaking Changes * PostgreSQL 11 is no longer supported (dropped in Django 4.2). NetBox v3.6 requires PostgreSQL 12 or later. * The `device_role` field on the Device model has been renamed to `role`. The `device_role` field has been temporarily retained on the REST API serializer for devices for backward compatibility, but is read-only. * The `choices` array field has been removed from the CustomField model. Any defined choices are automatically migrated to CustomFieldChoiceSets, accessible via the new `choice_set` field on the CustomField model. * The `napalm_driver` and `napalm_args` fields (which were deprecated in v3.5) have been removed from the Platform model. * The `device` and `device_id` filter for interfaces will no longer include interfaces from virtual chassis peers. Two new filters, `virtual_chassis_member` and `virtual_chassis_member_id`, have been introduced to match all interfaces belonging to the specified device's virtual chassis (if any). * Reports and scripts are now returned within a `results` list when fetched via the REST API, consistent with other models. * Superusers can no longer retrieve API token keys via the web UI if [`ALLOW_TOKEN_RETRIEVAL`](https://docs.netbox.dev/en/stable/configuration/security/#allow_token_retrieval) is disabled. (The admin view has been removed per [#13044](https://github.com/netbox-community/netbox/issues/13044).) ## New Features ### Relocated Admin UI Views ([#12589](https://github.com/netbox-community/netbox/issues/12589), [#12590](https://github.com/netbox-community/netbox/issues/12590), [#12591](https://github.com/netbox-community/netbox/issues/12591), [#13044](https://github.com/netbox-community/netbox/issues/13044)) Management views for the following object types, previously available only under the backend admin interface, have been relocated to the primary user interface: * Users * Groups * Object permissions * API tokens * Configuration revisions This migration provides a more consistent user experience and unlocks advanced functionality not feasible using Django's built-in views. The admin UI is scheduled for complete removal in NetBox v4.0. ### Configurable Default Permissions ([#13038](https://github.com/netbox-community/netbox/issues/13038)) Administrators now have the option of configuring default permissions for _all_ users globally, regardless of explicit permission or group assignments granted in the database. This is accomplished by defining the `DEFAULT_PERMISSIONS` configuration parameter. By default, all users are granted permission to manage their own bookmarks and API tokens. ### User Bookmarks ([#8248](https://github.com/netbox-community/netbox/issues/8248)) Users can now bookmark their favorite objects in NetBox. Bookmarks are accessible under each user's personal bookmarks list, and can also be added as a dashboard widget. ### Custom Field Choice Sets ([#12988](https://github.com/netbox-community/netbox/issues/12988)) Selection and multi-select custom fields now employ discrete, reusable choice sets containing the valid options for each field. A choice set may be shared by multiple custom fields. Additionally, each choice within a set can now specify both a raw value and a human-friendly label (see [#13241](https://github.com/netbox-community/netbox/issues/13241)). Pre-existing custom field choices are migrated to choice sets automatically during the upgrade process. ### Pre-Defined Location Choices for Custom Fields ([#12194](https://github.com/netbox-community/netbox/issues/12194)) Users now have the option to employ one of several pre-defined sets of choices when creating a custom field. These include: * IATA airport codes * ISO 3166 country codes * UN/LOCODE location identifiers When defining a choice set, one of the above can be employed as the base set, with the option to define extra, custom choices as well. ### Restrict Tag Usage by Object Type ([#11541](https://github.com/netbox-community/netbox/issues/11541)) Tags may now be restricted to use with designated object types. Tags that have no specific object types assigned may be used with any object that supports tag assignment. ## Enhancements * [#6347](https://github.com/netbox-community/netbox/issues/6347) - Cache the number of assigned components for devices and virtual machines * [#8137](https://github.com/netbox-community/netbox/issues/8137) - Add a field for designating the out-of-band (OOB) IP address for devices * [#10197](https://github.com/netbox-community/netbox/issues/10197) - Cache the number of member devices on each virtual chassis * [#11305](https://github.com/netbox-community/netbox/issues/11305) - Add GPS coordinate fields to the device model * [#11478](https://github.com/netbox-community/netbox/issues/11478) - Introduce `virtual_chassis_member` filter for interfaces & restore default behavior for `device` filter * [#11519](https://github.com/netbox-community/netbox/issues/11519) - Add a SQL index for IP address host values to optimize queries * [#11732](https://github.com/netbox-community/netbox/issues/11732) - Prevent inadvertent overwriting of object attributes by competing users * [#11936](https://github.com/netbox-community/netbox/issues/11936) - Introduce support for tags and custom fields on webhooks * [#12175](https://github.com/netbox-community/netbox/issues/12175) - Permit racks to start numbering at values greater than one * [#12210](https://github.com/netbox-community/netbox/issues/12210) - Add tenancy assignment for power feeds * [#12461](https://github.com/netbox-community/netbox/issues/12461) - Add config template rendering for virtual machines * [#12814](https://github.com/netbox-community/netbox/issues/12814) - Expose NetBox models within ConfigTemplate rendering context * [#12882](https://github.com/netbox-community/netbox/issues/12882) - Add tag support for contact assignments * [#13037](https://github.com/netbox-community/netbox/issues/13037) - Return reports & scripts within a `results` list when fetched via the REST API * [#13170](https://github.com/netbox-community/netbox/issues/13170) - Add `rf_role` to InterfaceTemplate * [#13269](https://github.com/netbox-community/netbox/issues/13269) - Cache the number of assigned component templates for device types ## Bug Fixes * [#13513](https://github.com/netbox-community/netbox/issues/13513) - Prevent exception when rendering bookmarks widget for anonymous user * [#13599](https://github.com/netbox-community/netbox/issues/13599) - Fix errant counter increments when editing device/VM components * [#13605](https://github.com/netbox-community/netbox/issues/13605) - Optimize cached counter migrations to avoid excessive memory consumption ## Other Changes * Work has begun on introducing translation and localization support in NetBox. This work is being performed in preparation for release 4.0. * [#6391](https://github.com/netbox-community/netbox/issues/6391) - Rename the `device_role` field on Device to `role` for consistency with VirtualMachine * [#9077](https://github.com/netbox-community/netbox/issues/9077) - Prevent the errant execution of dangerous instance methods in Django templates * [#11766](https://github.com/netbox-community/netbox/issues/11766) - Remove obsolete custom `ChoiceField` and `MultipleChoiceField` classes * [#12180](https://github.com/netbox-community/netbox/issues/12180) - All API endpoints for available objects (e.g. IP addresses) now inherit from a common parent view * [#12237](https://github.com/netbox-community/netbox/issues/12237) - Upgrade Django to v4.2 * [#12794](https://github.com/netbox-community/netbox/issues/12794) - Avoid direct imports of Django's stock user model * [#12320](https://github.com/netbox-community/netbox/issues/12320) - Remove obsolete fields `napalm_driver` and `napalm_args` from Platform * [#12964](https://github.com/netbox-community/netbox/issues/12964) - Drop support for PostgreSQL 11 * [#13309](https://github.com/netbox-community/netbox/issues/13309) - User account-specific resources have been moved to a new `account` app for better organization 2023-08-30T18:53:01+00:00 netbox v3.6.1 netbox v3.6.1 2023-09-06T18:24:35+00:00 ## Enhancements * [#12870](https://github.com/netbox-community/netbox/issues/12870) - Support setting token expiration time using the provisioning API endpoint * [#13444](https://github.com/netbox-community/netbox/issues/13444) - Add bulk rename functionality to the global device component lists * [#13638](https://github.com/netbox-community/netbox/issues/13638) - Add optional `staff_only` attribute to MenuItem ## Bug Fixes * [#12553](https://github.com/netbox-community/netbox/issues/12552) - Ensure `family` attribute is always returned when creating aggregates and prefixes via REST API * [#13619](https://github.com/netbox-community/netbox/issues/13619) - Fix exception when viewing IP address assigned to a virtual machine * [#13596](https://github.com/netbox-community/netbox/issues/13596) - Always display "render config" tab for devices and virtual machines * [#13620](https://github.com/netbox-community/netbox/issues/13620) - Show admin menu items only for staff users * [#13622](https://github.com/netbox-community/netbox/issues/13622) - Fix exception when viewing current config and no revisions have been created * [#13626](https://github.com/netbox-community/netbox/issues/13626) - Correct filtering of recent activity list under user view * [#13628](https://github.com/netbox-community/netbox/issues/13628) - Remove stale references to obsolete NAPALM integration * [#13630](https://github.com/netbox-community/netbox/issues/13630) - Fix display of active status under user view * [#13632](https://github.com/netbox-community/netbox/issues/13632) - Avoid raising exception when checking if FHRP group IP address is primary * [#13642](https://github.com/netbox-community/netbox/issues/13642) - Suppress warning about unreflected model changes when applying migrations * [#13657](https://github.com/netbox-community/netbox/issues/13657) - Fix decoding of data file content * [#13674](https://github.com/netbox-community/netbox/issues/13674) - Fix retrieving individual report via REST API * [#13682](https://github.com/netbox-community/netbox/issues/13682) - Fix error message returned when validation of custom field default value fails * [#13684](https://github.com/netbox-community/netbox/issues/13684) - Enable modying the configuration when maintenance mode is enabled 2023-09-06T18:24:35+00:00 netbox v3.6.2 netbox v3.6.2 2023-09-20T19:29:37+00:00 ## Enhancements * [#13245](https://github.com/netbox-community/netbox/issues/13245) - Add interface types for QSFP112 and OSFP-RHS * [#13563](https://github.com/netbox-community/netbox/issues/13563) - Add support for other delimiting characters when using CSV import ## Bug Fixes * [#11209](https://github.com/netbox-community/netbox/issues/11209) - Hide available IP/VLAN listing when sorting under a parent prefix or VLAN range * [#11617](https://github.com/netbox-community/netbox/issues/11617) - Raise validation error on the presence of an unknown CSV header during bulk import * [#12219](https://github.com/netbox-community/netbox/issues/12219) - Fix dashboard widget heading contrast under dark mode * [#12685](https://github.com/netbox-community/netbox/issues/12685) - Render Markdown in custom field help text on object edit forms * [#13653](https://github.com/netbox-community/netbox/issues/13653) - Tweak color of error text to improve legibility * [#13701](https://github.com/netbox-community/netbox/issues/13701) - Correct display of power feed legs under device view * [#13706](https://github.com/netbox-community/netbox/issues/13706) - Restore extra filters dropdown on device interfaces list * [#13721](https://github.com/netbox-community/netbox/issues/13721) - Filter VLAN choices by selected site (if any) when creating a prefix * [#13727](https://github.com/netbox-community/netbox/issues/13727) - Fix exception when viewing rendered config for VM without a role assigned * [#13745](https://github.com/netbox-community/netbox/issues/13745) - Optimize counter field migrations for large databases * [#13756](https://github.com/netbox-community/netbox/issues/13756) - Fix exception when sorting module bay list by installed module status * [#13757](https://github.com/netbox-community/netbox/issues/13757) - Fix RecursionError exception when assigning config context to a device type * [#13767](https://github.com/netbox-community/netbox/issues/13767) - Fix support for comments when creating a new service via web UI * [#13782](https://github.com/netbox-community/netbox/issues/13782) - Fix tag exclusion support for contact assignments * [#13791](https://github.com/netbox-community/netbox/issues/13791) - Preserve whitespace in values when performing bulk rename of objects via web UI * [#13809](https://github.com/netbox-community/netbox/issues/13809) - Avoid TypeError exception when editing active configuration with statically defined `CUSTOM_VALIDATORS` * [#13813](https://github.com/netbox-community/netbox/issues/13813) - Fix member count for newly created virtual chassis * [#13818](https://github.com/netbox-community/netbox/issues/13818) - Restore missing tags field on L2VPN termination edit form 2023-09-20T19:29:37+00:00 netbox v3.6.3 netbox v3.6.3 2023-09-26T20:27:26+00:00 ## Enhancements * [#12732](https://github.com/netbox-community/netbox/issues/12732) - Add toggle to hide disconnected interfaces under device view ## Bug Fixes * [#11079](https://github.com/netbox-community/netbox/issues/11079) - Enable tracing cable paths across multiple cables in parallel * [#11901](https://github.com/netbox-community/netbox/issues/11901) - Fix `IndexError` exception when manipulating terminations for existing cables via REST API * [#13506](https://github.com/netbox-community/netbox/issues/13506) - Enable creating a config template which references a data file via the REST API * [#13666](https://github.com/netbox-community/netbox/issues/13666) - Cleanly handle reports without any test methods defined * [#13839](https://github.com/netbox-community/netbox/issues/13839) - Restore original text color for HTML code elements * [#13843](https://github.com/netbox-community/netbox/issues/13843) - Fix assignment of VLAN group scope during bulk edit * [#13845](https://github.com/netbox-community/netbox/issues/13845) - Fix `AttributeError` exception when attaching front/rear images to a device type * [#13849](https://github.com/netbox-community/netbox/issues/13849) - Fix `KeyError` exception when deleting an object which references a configured choice value that has been removed * [#13859](https://github.com/netbox-community/netbox/issues/13859) - Fix invalid response when searching for custom choice field values returns no matches * [#13864](https://github.com/netbox-community/netbox/issues/13864) - Correct default background color for dashboard widget headers * [#13871](https://github.com/netbox-community/netbox/issues/13871) - Fix rack filtering for empty location during device bulk import * [#13891](https://github.com/netbox-community/netbox/issues/13891) - Allow designating an IP address as primary for device/VM while assigning it to an interface 2023-09-26T20:27:26+00:00 netbox v3.6.4 netbox v3.6.4 2023-10-17T17:05:51+00:00 ### Enhancements * [#12831](https://github.com/netbox-community/netbox/issues/12831) - Include circuit description in cable trace SVG image * [#12872](https://github.com/netbox-community/netbox/issues/12872) - Introduce the `DATA_UPLOAD_MAX_MEMORY_SIZE` configuration parameter * [#13950](https://github.com/netbox-community/netbox/issues/13950) - Display custom choice field labels rather than values in UI * [#13957](https://github.com/netbox-community/netbox/issues/13957) - Add DNS name filter on IP addresses list * [#13962](https://github.com/netbox-community/netbox/issues/13962) - Add a copy-to-clipboard button for API tokens * [#13972](https://github.com/netbox-community/netbox/issues/13972) - Introduce a filter to find unterminated cables ### Bug Fixes * [#11987](https://github.com/netbox-community/netbox/issues/11987) - Fix validation of bulk cable updates via bulk import form * [#12328](https://github.com/netbox-community/netbox/issues/12328) - Ensure generic foreign key relationships are populated in REST API serializations of objects * [#12336](https://github.com/netbox-community/netbox/issues/12336) - Employ PostgreSQL advisory locks to avoid duplicate MPTT tree IDs when bulk creating objects * [#13064](https://github.com/netbox-community/netbox/issues/13064) - Fix resetting of checkbox fields triggered by HTMX form re-rendering * [#13440](https://github.com/netbox-community/netbox/issues/13440) - Fix support for assigning a tenant when creating "next available" VLANs via the REST API * [#13746](https://github.com/netbox-community/netbox/issues/13746) - Fix support for setting custom field values when creating "next available" IP addresses via the REST API * [#13872](https://github.com/netbox-community/netbox/issues/13872) - Add CSV delimiter field to file upload tab under bulk object upload views * [#13876](https://github.com/netbox-community/netbox/issues/13876) - Fix support for assigning an interface when creating "next available" IP addresses via the REST API * [#13910](https://github.com/netbox-community/netbox/issues/13910) - Correct "add device" button link under platform view * [#13944](https://github.com/netbox-community/netbox/issues/13944) - Correct serialization of several report attributes in the REST API * [#13966](https://github.com/netbox-community/netbox/issues/13966) - Restore "last login" column on users table * [#14013](https://github.com/netbox-community/netbox/issues/14013) - Fix device role filter choices under inventory items list filters * [#14023](https://github.com/netbox-community/netbox/issues/14023) - Fix exception when bulk disconnecting interfaces connected to the same cable * [#14025](https://github.com/netbox-community/netbox/issues/14025) - Fix exception when viewing a script that begins with the same name as another * [#14026](https://github.com/netbox-community/netbox/issues/14026) - Optimize the automatic creation of available IP addresses for large prefixes * [#14042](https://github.com/netbox-community/netbox/issues/14042) - Fix duplicated child object count decrements when removing objects in bulk 2023-10-17T17:05:51+00:00 netbox v3.6.5 netbox v3.6.5 2023-11-09T21:01:26+00:00 ## Enhancements * [#12741](https://github.com/netbox-community/netbox/issues/12741) - Add selector widget to platform field on device & virtual machine forms * [#13022](https://github.com/netbox-community/netbox/issues/13022) - Introduce support for assigning IP addresses when bulk importing services * [#13587](https://github.com/netbox-community/netbox/issues/13587) - Annotate units of measurement on power port table columns * [#13669](https://github.com/netbox-community/netbox/issues/13669) - Add bulk import button to contact assignments list view * [#13723](https://github.com/netbox-community/netbox/issues/13723) - Add inventory items column to interfaces table * [#13743](https://github.com/netbox-community/netbox/issues/13743) - Add site column to power feeds table * [#13936](https://github.com/netbox-community/netbox/issues/13936) - Add primary IPv4 and IPv6 filters for virtual machines and VDCs * [#13951](https://github.com/netbox-community/netbox/issues/13951) - Add device & virtual machine fields to service filter form * [#14085](https://github.com/netbox-community/netbox/issues/14085) - Strip trailing port number from value returned by `get_client_ip()` * [#14101](https://github.com/netbox-community/netbox/issues/14101) - Add greater/less than mask length filters for IP addresses * [#14112](https://github.com/netbox-community/netbox/issues/14112) - Add tab listing child items under inventory item view * [#14113](https://github.com/netbox-community/netbox/issues/14113) - Add optional parent column to inventory items table * [#14220](https://github.com/netbox-community/netbox/issues/14220) - Order available columns alphabetically in table configuration form * [#14221](https://github.com/netbox-community/netbox/issues/14221) - Add contact group column on contact assignments table ## Bug Fixes * [#14033](https://github.com/netbox-community/netbox/issues/14033) - Avoid exception when attempting to connect both ends of a cable to the same object * [#14117](https://github.com/netbox-community/netbox/issues/14117) - Check that enough rear port positions have been selected to accommodate the number of front ports being created * [#14166](https://github.com/netbox-community/netbox/issues/14166) - Permit user login when maintenance mode is enabled * [#14182](https://github.com/netbox-community/netbox/issues/14182) - Ensure the active configuration is restored upon clearing cache * [#14195](https://github.com/netbox-community/netbox/issues/14195) - Correct permissions evaluation for ASN range child ASNs view * [#14223](https://github.com/netbox-community/netbox/issues/14223) - Disable ordering of jobs by assigned object 2023-11-09T21:01:26+00:00 netbox v3.6.6 netbox v3.6.6 2023-11-30T00:31:44+00:00 ## Enhancements * [#13735](https://github.com/netbox-community/netbox/issues/13735) - Show complete region hierarchy in UI for all relevant objects ## Bug Fixes * [#14056](https://github.com/netbox-community/netbox/issues/14056) - Record a pre-change snapshot when bulk editing objects via CSV * [#14187](https://github.com/netbox-community/netbox/issues/14187) - Raise a validation error when attempting to create a duplicate script or report * [#14199](https://github.com/netbox-community/netbox/issues/14199) - Fix jobs list for reports with a custom name * [#14239](https://github.com/netbox-community/netbox/issues/14239) - Fix CustomFieldChoiceSet search filter * [#14242](https://github.com/netbox-community/netbox/issues/14242) - Enable export templates for contact assignments * [#14299](https://github.com/netbox-community/netbox/issues/14299) - Webhook timestamps should be in proper ISO 8601 format * [#14325](https://github.com/netbox-community/netbox/issues/14325) - Fix numeric ordering of service ports * [#14339](https://github.com/netbox-community/netbox/issues/14339) - Correctly hash local user password when set via REST API * [#14343](https://github.com/netbox-community/netbox/issues/14343) - Fix ordering ASN table by ASDOT column * [#14346](https://github.com/netbox-community/netbox/issues/14346) - Fix running reports via REST API * [#14349](https://github.com/netbox-community/netbox/issues/14349) - Fix custom validation support for remote data sources * [#14363](https://github.com/netbox-community/netbox/issues/14363) - Fix bulk editing of interfaces assigned to VM with no cluster 2023-11-30T00:31:44+00:00 netbox v3.7-beta1 netbox v3.7-beta1 2023-12-05T13:30:32+00:00 :warning: **This is a beta release** intended only for testing and evaluation. Do not deploy it in a production environment. No upgrade path to future releases will be provided. ### Breaking Changes * The following fields have been removed from the Webhook model: `content_types`, `type_create`, `type_update`, `type_delete`, `type_job_start`, `type_job_end`, `enabled`, and `conditions`. Webhooks are now tied to events via [event rules](https://docs.netbox.dev/en/feature/features/event-rules). Existing webhooks will have event rules created automatically upon upgrade. * The `ui_visibility` field on the [custom field model](https://docs.netbox.dev/en/feature/models/extras/customfield/) has been replaced with two new fields: `ui_visible` and `ui_editable`. Existing values will be migrated automatically upon upgrade. * The `FeatureQuery` class for querying content types by model feature has been removed. Plugins should now use the new `with_feature()` manager method on NetBox's proxy model for ContentType. * The ConfigRevision model has been moved from `extras` to `core`. Configuration history will be retained throughout the upgrade process. * The L2VPN and L2VPNTermination models have been moved from the `ipam` app to the new `vpn` app. All object data will be retained, however please note that the relevant API endpoints have moved to `/api/vpn/`. * The `CustomFieldsMixin`, `SavedFiltersMixin`, and `TagsMixin` classes have moved from the `extras.forms.mixins` module to `netbox.forms.mixins`. ### New Features #### VPN Tunnels ([#9816](https://github.com/netbox-community/netbox/issues/9816)) Several new models have been introduced to enable [VPN tunnel management](https://docs.netbox.dev/en/feature/features/vpn-tunnels/). Users can now define tunnels with two or more terminations to replicate peer-to-peer or hub-and-spoke topologies. Each termination is made to a virtual interface on a device or VM. Additionally, users can define IKE and IPSec policies which can be applied to tunnels to document encryption and authentication strategies. #### Event Rules ([#14132](https://github.com/netbox-community/netbox/issues/14132)) This release introduces [event rules](https://docs.netbox.dev/en/feature/features/event-rules/), which can be used to send webhooks or execute custom scripts automatically in response to NetBox events. For example, it's now possible to run a custom script whenever a new site is created with a particular status or tag. Event rules replace and extend functionality that was previously built into the webhook model. Event rules will be created for any existing webhooks upon upgrade. #### Virtual Machine Disks ([#8356](https://github.com/netbox-community/netbox/issues/8356)) A new [VirtualDisk](https://docs.netbox.dev/en/feature/models/virtualization/virtualdisk/) model has been introduced to enable tracking the assignment of discrete virtual disks to virtual machines. The original `size` field has been retained on the VirtualMachine model, and will be automatically updated with the aggregate size of all assigned virtual disks. (Users who opt to eschew the new model may continue using the VirtualMachine `size` attribute as before.) #### Object Protection Rules ([#10244](https://github.com/netbox-community/netbox/issues/10244)) A new [`PROTECTION_RULES`](https://docs.netbox.dev/en/feature/configuration/data-validation.md#protection_rules) configuration parameter is now available. Similar to how [custom validation rules](https://docs.netbox.dev/en/feature/customization/custom-validation/) can be used to enforce certain values for object attributes, protection rules guard against the deletion of objects which do not meet specified criteria. This enables an administrator to prevent, for example, the deletion of a site which has a status of "active." #### Improved Custom Field Visibility Controls ([#13299](https://github.com/netbox-community/netbox/issues/13299)) The old `ui_visible` field on the custom field model](https://docs.netbox.dev/en/feature/models/extras/customfield/) has been replaced by two new fields, `ui_visible` and `ui_editable`, which control how and whether a custom field is displayed when view and editing an object, respectively. Separating these two functions into discrete fields enables more control over how each custom field is presented to users. The values of these fields will be appropriately set automatically during the upgrade process depending on the value of the original field. #### Improved Global Search Results ([#14134](https://github.com/netbox-community/netbox/issues/14134)) Global search results now include additional context about each object, such as a description, status, and/or related objects. The set of attributes to be displayed is specific to each object type, and is defined by setting `display_attrs` under the object's [SearchIndex class](https://docs.netbox.dev/en/feature/plugins/development/search.md#netbox.search.SearchIndex). #### Table Column Registration for Plugins ([#14173](https://github.com/netbox-community/netbox/issues/14173)) Plugins can now [register their own custom columns](https://docs.netbox.dev/en/feature/plugins/development/tables.md#extending-core-tables) for inclusion on core NetBox tables. For example, a plugin can register a new column on SiteTable using the new `register_table_column()` utility function, and it will become available for users to select for display. #### Data Backend Registration for Plugins ([#13381](https://github.com/netbox-community/netbox/issues/13381)) Plugins can now [register their own data backends](https://docs.netbox.dev/en/feature/plugins/development/data-backends/) for use with [synchronized data sources](https://docs.netbox.dev/en/feature/features/synchronized-data/). This enables plugins to introduce new backends in addition to the git, S3, and local path backends provided natively. ### Enhancements * [#12135](https://github.com/netbox-community/netbox/issues/12135) - Avoid orphaned interfaces by preventing the deletion of interfaces which have children assigned * [#12216](https://github.com/netbox-community/netbox/issues/12216) - Add a `color` field for circuit types * [#13230](https://github.com/netbox-community/netbox/issues/13230) - Allow device types to be excluded from consideration when calculating a rack's utilization * [#13334](https://github.com/netbox-community/netbox/issues/13334) - Added an `error` field to the Job model to record any errors associated with its execution * [#13427](https://github.com/netbox-community/netbox/issues/13427) - Introduced a mechanism for omitting models from general-purpose lists of object types * [#13690](https://github.com/netbox-community/netbox/issues/13690) - Display any dependent objects to be deleted prior to deleting an object via the web UI * [#13794](https://github.com/netbox-community/netbox/issues/13794) - Any models with a relationship to Tenant are now included automatically in the list of related objects under the tenant view * [#13808](https://github.com/netbox-community/netbox/issues/13808) - Added a `/render-config` REST API endpoint for virtual machines * [#14035](https://github.com/netbox-community/netbox/issues/14035) - Order objects of equivalent weight by value in global search results to improve readability * [#14156](https://github.com/netbox-community/netbox/issues/14156) - Enable custom fields for contact assignments * [#14361](https://github.com/netbox-community/netbox/issues/14361) - Add a `description` field for webhooks * [#14365](https://github.com/netbox-community/netbox/issues/14365) - Introduced `job_start` and `job_end` signals ### Other Changes * [#13550](https://github.com/netbox-community/netbox/issues/13550) - Optimized the format for declaring view actions under `ActionsMixin` (backward compatibility has been retained) * [#13645](https://github.com/netbox-community/netbox/issues/13645) - Installation of the `sentry-sdk` Python library is now required only if Sentry reporting is enabled * [#14036](https://github.com/netbox-community/netbox/issues/14036) - Move plugin resources from the `extras` app into `netbox` (backward compatibility has been retained) * [#14153](https://github.com/netbox-community/netbox/issues/14153) - Replace `FeatureQuery` with new `with_feature()` method on ContentType manager * [#14311](https://github.com/netbox-community/netbox/issues/14311) - Move the L2VPN models from the `ipam` app to the new `vpn` app * [#14312](https://github.com/netbox-community/netbox/issues/14312) - Move the ConfigRevision model from the `extras` app to `core` * [#14326](https://github.com/netbox-community/netbox/issues/14326) - Form feature mixin classes have been moved from the `extras` app to `netbox` * [#14395](https://github.com/netbox-community/netbox/issues/14395) - Moved `extras.webhooks_worker.process_webhook()` to `extras.webhooks.send_webhook()` (backward compatibility has been retained) 2023-12-05T13:30:32+00:00 netbox v3.6.7 netbox v3.6.7 2023-12-15T21:45:30+00:00 ## Enhancements * [#12751](https://github.com/netbox-community/netbox/issues/12751) - Designate fields to expand by default for object selector widget * [#14148](https://github.com/netbox-community/netbox/issues/14148) - Add tags column to L2VPN terminations column * [#14390](https://github.com/netbox-community/netbox/issues/14390) - Add `classes` parameter to `copy_content` template tag * [#14467](https://github.com/netbox-community/netbox/issues/14467) - Change custom field choice delimiter from comma to colon ## Bug Fixes * [#13983](https://github.com/netbox-community/netbox/issues/13983) - Fix bulk import support for custom field choices * [#14081](https://github.com/netbox-community/netbox/issues/14081) - Ensure accuracy of parent object counters when deleting related objects * [#14249](https://github.com/netbox-community/netbox/issues/14249) - Fix server error when authenticating via IP-restricted API tokens using IPv6 * [#14392](https://github.com/netbox-community/netbox/issues/14392) - Fix bulk operations for plugin models under admin UI * [#14397](https://github.com/netbox-community/netbox/issues/14397) - Fix exception on non-JSON request to `/available-ips/` API endpoints * [#14401](https://github.com/netbox-community/netbox/issues/14401) - Rack `starting_unit` cannot be zero * [#14432](https://github.com/netbox-community/netbox/issues/14432) - Populate custom field default values for components when creating a device * [#14448](https://github.com/netbox-community/netbox/issues/14448) - Fix exception when creating a power feed with rack and panel in different sites * [#14505](https://github.com/netbox-community/netbox/issues/14505) - Fix the assignment of tags to L2VPN terminations * [#14512](https://github.com/netbox-community/netbox/issues/14512) - Remove unneeded annotations from queries when using REST API brief mode * [#14515](https://github.com/netbox-community/netbox/issues/14515) - Ensure user config is created automatically for all user accounts * [#14522](https://github.com/netbox-community/netbox/issues/14522) - Fix filtering contact assignments by group * [#14533](https://github.com/netbox-community/netbox/issues/14533) - Fix quick search under VLAN group VLANs list 2023-12-15T21:45:30+00:00 netbox v3.6.8 netbox v3.6.8 2023-12-27T21:12:49+00:00 ## Enhancements * [#11039](https://github.com/netbox-community/netbox/issues/11039) - List parent prefixes under IP range view * [#14507](https://github.com/netbox-community/netbox/issues/14507) - Print new NetBox version when running upgrade script * [#14538](https://github.com/netbox-community/netbox/issues/14538) - Add the `available_at_site` filter for VLANs * [#14596](https://github.com/netbox-community/netbox/issues/14596) - Match against description field when searching for devices ## Bug Fixes * [#11816](https://github.com/netbox-community/netbox/issues/11816) - Correct display of error message when attempting invalid VLAN site & group assignment * [#12731](https://github.com/netbox-community/netbox/issues/12731) - Fix custom validation for many-to-many fields * [#13606](https://github.com/netbox-community/netbox/issues/13606) - Fix filtering custom multi-choice fields by null * [#13649](https://github.com/netbox-community/netbox/issues/13649) - Correct calculation of absolute lengths for zero-length cables * [#13812](https://github.com/netbox-community/netbox/issues/13812) - Update status of remote data source when syncing fails via `syncdatasource` management command * [#13909](https://github.com/netbox-community/netbox/issues/13909) - Fix cloning of objects which have a multi-choice custom field * [#14517](https://github.com/netbox-community/netbox/issues/14517) - Ensure reservations tab is always displayed under rack view * [#14532](https://github.com/netbox-community/netbox/issues/14532) - Device/VM change record should accurately reflect when primary/OOB IP is deleted * [#14549](https://github.com/netbox-community/netbox/issues/14549) - Fix association of job results when executing scripts via `runscript` management command * [#14560](https://github.com/netbox-community/netbox/issues/14560) - Do not escape exclamation marks in custom link URLs * [#14575](https://github.com/netbox-community/netbox/issues/14575) - Fix display of the tags column under VDC table * [#14613](https://github.com/netbox-community/netbox/issues/14613) - Fix display of current configuration parameters in UI 2023-12-27T21:12:49+00:00 netbox v3.6.9 netbox v3.6.9 2023-12-28T19:13:59+00:00 ### Enhancements * [#14631](https://github.com/netbox-community/netbox/issues/14631) - All models can be filtered and searched by their description field (where applicable) ### Bug Fixes * [#14482](https://github.com/netbox-community/netbox/issues/14482) - Fix validation error when attempting to move a primary IP address to a new parent object * [#14620](https://github.com/netbox-community/netbox/issues/14620) - Permit setting device type U height to 0 during bulk edit * [#14621](https://github.com/netbox-community/netbox/issues/14621) - Fix error when using the device search filter 2023-12-28T19:13:59+00:00 netbox v3.7.0 netbox v3.7.0 2023-12-29T15:03:26+00:00 ### Breaking Changes * The following fields have been removed from the Webhook model: `content_types`, `type_create`, `type_update`, `type_delete`, `type_job_start`, `type_job_end`, `enabled`, and `conditions`. Webhooks are now tied to events via [event rules](https://docs.netbox.dev/en/stable/features/event-rules/). New event rules will be created for any existing webhooks automatically upon upgrade. * The `ui_visibility` field on the [custom field model](https://docs.netbox.dev/en/stable/models/extras/customfield/) has been replaced with two new fields: `ui_visible` and `ui_editable`. These new fields will have their values mapped from the original field automatically upon upgrade. * The `FeatureQuery` class used internally for querying content types by model feature has been removed. It has been replaced by the new `with_feature()` manager method on NetBox's proxy model for ContentType (`core.models.ContentType`). * The internal ConfigRevision model has moved from `extras` to `core`. Configuration history will be retained throughout the upgrade process. * The [L2VPN](https://docs.netbox.dev/en/stable/models/vpn/l2vpn/) and [L2VPNTermination](https://docs.netbox.dev/en/stable/models/vpn/l2vpntermination/) models have moved from the `ipam` app to the new `vpn` app. All object data will be retained, however please note that the relevant API endpoints have likewise moved to `/api/vpn/`. * The `CustomFieldsMixin`, `SavedFiltersMixin`, and `TagsMixin` classes have moved from the `extras.forms.mixins` module to `netbox.forms.mixins`. ### New Features #### VPN Tunnels ([#9816](https://github.com/netbox-community/netbox/issues/9816)) Several new models have been introduced to enable [VPN tunnel management](https://docs.netbox.dev/en/stable/features/vpn-tunnels/). Users can now define tunnels with two or more terminations to represent peer-to-peer or hub-and-spoke topologies. Each termination is made to a virtual interface on a device or virtual machine. Additionally, users can define IKE and IPSec proposals and policies, which can be applied to tunnels to document encryption and authentication strategies. #### Event Rules ([#14132](https://github.com/netbox-community/netbox/issues/14132)) This release introduces [event rules](https://docs.netbox.dev/en/stable/features/event-rules/), which can be used to send webhooks or execute custom scripts automatically in response to events that occur in NetBox. For example, it's now possible to run a custom script whenever a new site is created with a particular status or tag. Event rules replace and extend functionality that was previously built into the webhook model. New event rules will be created for any existing webhooks automatically upon upgrade. #### Virtual Machine Disks ([#8356](https://github.com/netbox-community/netbox/issues/8356)) A new [VirtualDisk](https://docs.netbox.dev/en/stable/models/virtualization/virtualdisk/) model has been introduced to enable tracking the assignment of discrete virtual disks to virtual machines. The `size` field has been retained on the VirtualMachine model, and will be populated automatically with the aggregate size of all assigned virtual disks. (Users who opt to eschew the new model may continue using the VirtualMachine `size` attribute independently as in previous releases.) #### Object Protection Rules ([#10244](https://github.com/netbox-community/netbox/issues/10244)) A new [`PROTECTION_RULES`](https://docs.netbox.dev/en/stable/configuration/data-validation.md#protection_rules) configuration parameter has been introduced. Similar to how [custom validation rules](https://docs.netbox.dev/en/stable/customization/custom-validation/) can be used to enforce certain values for object attributes, protection rules guard against the deletion of objects which do not meet specified criteria. This enables an administrator to prevent, for example, the deletion of a site which has a status of "active." #### Improved Custom Field Visibility Controls ([#13299](https://github.com/netbox-community/netbox/issues/13299)) The `ui_visible` field on [the custom field model](https://docs.netbox.dev/en/stable/models/extras/customfield/) has been superseded by two new fields, `ui_visible` and `ui_editable`, which control how and whether a custom field is displayed when view and editing an object, respectively. Separating these two functions into discrete fields allows more control over how each custom field is presented to users. The values of these fields will be appropriately set automatically during the upgrade process from the value of the original field. #### Improved Global Search Results ([#14134](https://github.com/netbox-community/netbox/issues/14134)) Global search results now include additional context about each object, such as a description, status, and/or related objects. The set of attributes to be displayed is specific to each object type, and is defined by setting `display_attrs` under the object's [SearchIndex class](https://docs.netbox.dev/en/stable/plugins/development/search.md#netbox.search.SearchIndex). #### Table Column Registration for Plugins ([#14173](https://github.com/netbox-community/netbox/issues/14173)) Plugins can now [register their own custom columns](https://docs.netbox.dev/en/stable/plugins/development/tables.md#extending-core-tables) for inclusion on core NetBox tables. For example, a plugin can register a new column on SiteTable using the new `register_table_column()` utility function, and it will become available for users to select for display. #### Data Backend Registration for Plugins ([#13381](https://github.com/netbox-community/netbox/issues/13381)) Plugins can now [register their own data backends](https://docs.netbox.dev/en/stable/plugins/development/data-backends/) for use with [synchronized data sources](https://docs.netbox.dev/en/stable/features/synchronized-data/). This enables plugins to introduce new backends in addition to the git, S3, and local path backends provided natively. ### Enhancements * [#12135](https://github.com/netbox-community/netbox/issues/12135) - Avoid orphaned interfaces by preventing the deletion of interfaces which have children assigned * [#12216](https://github.com/netbox-community/netbox/issues/12216) - Add a `color` field for circuit types * [#13230](https://github.com/netbox-community/netbox/issues/13230) - Allow device types to be excluded from consideration when calculating a rack's utilization * [#13334](https://github.com/netbox-community/netbox/issues/13334) - Add an `error` field to the Job model to record any errors associated with its execution * [#13427](https://github.com/netbox-community/netbox/issues/13427) - Introduce a mechanism for excluding models from general-purpose lists of object types * [#13690](https://github.com/netbox-community/netbox/issues/13690) - Display any dependent objects to be deleted prior to deleting an object via the web UI * [#13794](https://github.com/netbox-community/netbox/issues/13794) - Any models with a relationship to Tenant are now included automatically in the list of related objects under the tenant view * [#13808](https://github.com/netbox-community/netbox/issues/13808) - Add a `/render-config` REST API endpoint for virtual machines * [#14035](https://github.com/netbox-community/netbox/issues/14035) - Order objects of equivalent weight by value in global search results to improve readability * [#14147](https://github.com/netbox-community/netbox/issues/14147) - Avoid recording empty changelog entries via the new `CHANGELOG_SKIP_EMPTY_CHANGES` config parameter * [#14156](https://github.com/netbox-community/netbox/issues/14156) - Enable custom fields for contact assignments * [#14240](https://github.com/netbox-community/netbox/issues/14240) - Increase maximum values for custom field minimum & maximum numeric validators * [#14361](https://github.com/netbox-community/netbox/issues/14361) - Add a `description` field for webhooks * [#14365](https://github.com/netbox-community/netbox/issues/14365) - Introduce `job_start` and `job_end` signals to allow automated plugin actions * [#14434](https://github.com/netbox-community/netbox/issues/14434) - Add model-specific termination object filters for cables (e.g. `interface_id` and `consoleport_id`) * [#14436](https://github.com/netbox-community/netbox/issues/14436) - Add PostgreSQL indexes for all GenericForeignKey fields * [#14579](https://github.com/netbox-community/netbox/issues/14579) - Allow users to specify a preferred language for UI translations ### Translations * [#14075](https://github.com/netbox-community/netbox/issues/14075) - Add Spanish translation * [#14096](https://github.com/netbox-community/netbox/issues/14096) - Add French translation * [#14145](https://github.com/netbox-community/netbox/issues/14145) - Add Portuguese translation * [#14266](https://github.com/netbox-community/netbox/issues/14266) - Add Russian translation ### Bug Fixes * [#14432](https://github.com/netbox-community/netbox/issues/14432) - Fix hyperlinks for global search result attributes * [#14472](https://github.com/netbox-community/netbox/issues/14472) - Fix display of hidden custom fields in object edit forms * [#14499](https://github.com/netbox-community/netbox/issues/14499) - Relax requirements for encryption/auth algorithms on IKE & IPSec proposals * [#14550](https://github.com/netbox-community/netbox/issues/14550) - Fix changing action type of existing event rule ### Other Changes * [#13550](https://github.com/netbox-community/netbox/issues/13550) - Optimize the format for declaring view actions under `ActionsMixin` (backward compatibility has been retained) * [#13645](https://github.com/netbox-community/netbox/issues/13645) - Installation of the `sentry-sdk` Python library is now required only if Sentry reporting is enabled * [#14036](https://github.com/netbox-community/netbox/issues/14036) - Move plugin resources from the `extras` app into `netbox` (backward compatibility has been retained) * [#14153](https://github.com/netbox-community/netbox/issues/14153) - Replace `FeatureQuery` with new `with_feature()` method on proxy ContentType manager * [#14311](https://github.com/netbox-community/netbox/issues/14311) - Move the L2VPN models from the `ipam` app to the new `vpn` app * [#14312](https://github.com/netbox-community/netbox/issues/14312) - Move the ConfigRevision model from the `extras` app to `core` * [#14326](https://github.com/netbox-community/netbox/issues/14326) - Form feature mixin classes have been moved from the `extras` app to `netbox` * [#14395](https://github.com/netbox-community/netbox/issues/14395) - Move `extras.webhooks_worker.process_webhook()` to `extras.webhooks.send_webhook()` (backward compatibility has been retained) * [#14424](https://github.com/netbox-community/netbox/issues/14424) - Remove change logging functionality from StagedChange * [#14458](https://github.com/netbox-community/netbox/issues/14458) - Remove the obsolete `clearcache` management command * [#14536](https://github.com/netbox-community/netbox/issues/14536) - Enforce uniqueness by default for non-VRF prefixes & IP addresses (`ENFORCE_GLOBAL_UNIQUE` now defaults to true) 2023-12-29T15:03:26+00:00