2022-04-08 16:00:33 -04:00
# NetBox v3.3
## v3.3.0 (FUTURE)
2022-05-11 16:22:07 -04:00
### Breaking Changes
2022-06-09 17:27:58 -04:00
* Device position and rack unit values are now reported as decimals (e.g. `1.0` or `1.5` ) to support modeling half-height rack units.
2022-05-11 16:22:07 -04:00
* The `nat_outside` relation on the IP address model now returns a list of zero or more related IP addresses, rather than a single instance (or None).
2022-07-06 16:02:53 -04:00
* Several fields on the cable API serializers have been altered to support multiple-object cable terminations:
| Old Name | Old Type | New Name | New Type |
|----------------------|----------|-----------------------|----------|
| `termination_a_type` | string | `a_terminations_type` | string |
| `termination_b_type` | string | `b_terminations_type` | string |
| `termination_a_id` | integer | _Removed_ | - |
| `termination_b_id` | integer | _Removed_ | - |
| `termination_a` | object | `a_terminations` | list |
| `termination_b` | object | `b_terminations` | list |
* As with the cable model, several API fields on all objects to which cables can be connected (interfaces, circuit terminations, etc.) have been changed:
| Old Name | Old Type | New Name | New Type |
|--------------------------------|----------|---------------------------------|----------|
| `link_peer` | object | `link_peers` | list |
| `link_peer_type` | string | `link_peers_type` | string |
| `connected_endpoint` | object | `connected_endpoints` | list |
| `connected_endpoint_type` | string | `connected_endpoints_type` | string |
| `connected_endpoint_reachable` | boolean | `connected_endpoints_reachable` | boolean |
2022-05-11 16:22:07 -04:00
2022-06-09 17:27:58 -04:00
### New Features
#### Half-Height Rack Units ([#51](https://github.com/netbox-community/netbox/issues/51))
2022-06-21 21:22:24 -04:00
#### PoE Interface Attributes ([#1099](https://github.com/netbox-community/netbox/issues/1099))
2022-07-06 13:38:25 -04:00
#### L2VPN Modeling ([#8157](https://github.com/netbox-community/netbox/issues/8157))
2022-06-22 21:51:43 -04:00
#### Restrict API Tokens by Client IP ([#8233](https://github.com/netbox-community/netbox/issues/8233))
2022-07-01 13:34:10 -04:00
#### Reference User in Permission Constraints ([#9074](https://github.com/netbox-community/netbox/issues/9074))
2022-07-06 16:02:53 -04:00
#### Multi-object Cable Terminations ([#9102](https://github.com/netbox-community/netbox/issues/9102))
2022-04-08 16:00:33 -04:00
### Enhancements
2022-05-11 16:22:07 -04:00
* [#1202 ](https://github.com/netbox-community/netbox/issues/1202 ) - Support overlapping assignment of NAT IP addresses
2022-06-21 16:30:27 -04:00
* [#4350 ](https://github.com/netbox-community/netbox/issues/4350 ) - Illustrate reservations vertically alongside rack elevations
2022-06-24 11:04:38 -04:00
* [#4434 ](https://github.com/netbox-community/netbox/issues/4434 ) - Enable highlighting devices within rack elevations
2022-05-26 14:59:49 -04:00
* [#5303 ](https://github.com/netbox-community/netbox/issues/5303 ) - A virtual machine may be assigned to a site and/or cluster
2022-06-22 15:09:50 -04:00
* [#7120 ](https://github.com/netbox-community/netbox/issues/7120 ) - Add `termination_date` field to Circuit
2022-06-22 13:33:19 -04:00
* [#7744 ](https://github.com/netbox-community/netbox/issues/7744 ) - Add `status` field to Location
2022-07-01 16:36:24 -04:00
* [#8171 ](https://github.com/netbox-community/netbox/issues/8171 ) - Populate next available address when cloning an IP
2022-05-25 16:01:10 -04:00
* [#8222 ](https://github.com/netbox-community/netbox/issues/8222 ) - Enable the assignment of a VM to a specific host device within a cluster
2022-05-19 16:13:22 -04:00
* [#8471 ](https://github.com/netbox-community/netbox/issues/8471 ) - Add `status` field to Cluster
2022-04-15 14:45:28 -04:00
* [#8495 ](https://github.com/netbox-community/netbox/issues/8495 ) - Enable custom field grouping
2022-07-01 15:10:31 -04:00
* [#8511 ](https://github.com/netbox-community/netbox/issues/8511 ) - Enable custom fields and tags for circuit terminations
2022-04-08 16:00:33 -04:00
* [#8995 ](https://github.com/netbox-community/netbox/issues/8995 ) - Enable arbitrary ordering of REST API results
2022-06-29 16:36:10 -04:00
* [#9070 ](https://github.com/netbox-community/netbox/issues/9070 ) - Hide navigation menu items based on user permissions
2022-05-24 16:39:05 -04:00
* [#9166 ](https://github.com/netbox-community/netbox/issues/9166 ) - Add UI visibility toggle for custom fields
2022-06-27 11:30:52 -04:00
* [#9177 ](https://github.com/netbox-community/netbox/issues/9177 ) - Add tenant assignment for wireless LANs & links
2022-06-23 12:09:00 -04:00
* [#9536 ](https://github.com/netbox-community/netbox/issues/9536 ) - Track API token usage times
2022-06-22 16:10:48 -04:00
* [#9582 ](https://github.com/netbox-community/netbox/issues/9582 ) - Enable assigning config contexts based on device location
2022-04-15 14:45:28 -04:00
2022-06-23 15:21:10 -04:00
### Plugins API
2022-06-30 15:15:07 -04:00
* [#9075 ](https://github.com/netbox-community/netbox/issues/9075 ) - Introduce `AbortRequest` exception for cleanly interrupting object mutations
2022-06-29 14:30:47 -04:00
* [#9092 ](https://github.com/netbox-community/netbox/issues/9092 ) - Add support for `ObjectChildrenView` generic view
2022-07-01 15:52:16 -04:00
* [#9228 ](https://github.com/netbox-community/netbox/issues/9228 ) - Subclasses of `ChangeLoggingMixin` can override `serialize_object()` to control JSON serialization for change logging
2022-06-23 15:21:10 -04:00
* [#9414 ](https://github.com/netbox-community/netbox/issues/9414 ) - Add `clone()` method to NetBoxModel for copying instance attributes
2022-07-01 14:45:22 -04:00
* [#9647 ](https://github.com/netbox-community/netbox/issues/9647 ) - Introduce `customfield_value` template tag
2022-06-23 15:21:10 -04:00
2022-04-29 13:09:39 -04:00
### Other Changes
* [#9261 ](https://github.com/netbox-community/netbox/issues/9261 ) - `NetBoxTable` no longer automatically clears pre-existing calls to `prefetch_related()` on its queryset
2022-06-09 11:48:32 -04:00
* [#9434 ](https://github.com/netbox-community/netbox/issues/9434 ) - Enabled `django-rich` test runner for more user-friendly output
2022-04-29 13:09:39 -04:00
2022-04-15 14:45:28 -04:00
### REST API Changes
2022-07-06 13:38:25 -04:00
* Added the following endpoints:
2022-07-06 16:02:53 -04:00
* `/api/dcim/cable-terminations/`
2022-07-06 13:38:25 -04:00
* `/api/ipam/l2vpns/`
* `/api/ipam/l2vpn-terminations/`
2022-06-22 15:09:50 -04:00
* circuits.Circuit
* Added optional `termination_date` field
2022-07-01 15:10:31 -04:00
* circuits.CircuitTermination
2022-07-06 16:02:53 -04:00
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
* Added `custom_fields` and `tags` fields
* dcim.Cable
* `termination_a_type` has been renamed to `a_terminations_type`
* `termination_b_type` has been renamed to `b_terminations_type`
* `termination_a` renamed to `a_terminations` and now returns a list of objects
* `termination_b` renamed to `b_terminations` and now returns a list of objects
* `termination_a_id` has been removed
* `termination_b_id` has been removed
* dcim.ConsolePort
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
* dcim.ConsoleServerPort
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
2022-06-09 17:27:58 -04:00
* dcim.Device
* The `position` field has been changed from an integer to a decimal
* dcim.DeviceType
* The `u_height` field has been changed from an integer to a decimal
2022-07-06 16:02:53 -04:00
* dcim.FrontPort
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
2022-06-21 21:22:24 -04:00
* dcim.Interface
2022-07-06 16:02:53 -04:00
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
2022-06-22 13:33:19 -04:00
* Added the optional `poe_mode` and `poe_type` fields
2022-07-06 13:38:25 -04:00
* Added the `l2vpn_termination` read-only field
2022-06-22 13:33:19 -04:00
* dcim.Location
* Added required `status` field (default value: `active` )
2022-07-06 16:02:53 -04:00
* dcim.PowerOutlet
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
* dcim.PowerFeed
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
* dcim.PowerPort
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
2022-06-09 17:27:58 -04:00
* dcim.Rack
* The `elevation` endpoint now includes half-height rack units, and utilizes decimal values for the ID and name of each unit
2022-07-06 16:02:53 -04:00
* dcim.RearPort
* `link_peer` has been renamed to `link_peers` and now returns a list of objects
* `link_peer_type` has been renamed to `link_peers_type`
* `connected_endpoint` has been renamed to `connected_endpoints` and now returns a list of objects
* `connected_endpoint_type` has been renamed to `connected_endpoints_type`
* `connected_endpoint_reachable` has been renamed to `connected_endpoints_reachable`
2022-06-22 16:10:48 -04:00
* extras.ConfigContext
* Added the `locations` many-to-many field to track the assignment of ConfigContexts to Locations
2022-04-15 14:45:28 -04:00
* extras.CustomField
2022-05-24 16:39:05 -04:00
* Added `group_name` and `ui_visibility` fields
2022-05-11 16:22:07 -04:00
* ipam.IPAddress
* The `nat_inside` field no longer requires a unique value
* The `nat_outside` field has changed from a single IP address instance to a list of multiple IP addresses
2022-07-06 13:38:25 -04:00
* ipam.VLAN
* Added the `l2vpn_termination` read-only field
2022-06-23 12:09:00 -04:00
* users.Token
* Added the `allowed_ips` array field
* Added the read-only `last_used` datetime field
2022-05-19 16:13:22 -04:00
* virtualization.Cluster
2022-05-25 16:01:10 -04:00
* Added required `status` field (default value: `active` )
* virtualization.VirtualMachine
2022-05-26 14:59:49 -04:00
* The `site` field is now directly writable (rather than being inferred from the assigned cluster)
* The `cluster` field is now optional. A virtual machine must have a site and/or cluster assigned.
2022-07-06 13:38:25 -04:00
* Added the `device` field
* Added the `l2vpn_termination` read-only field
2022-06-27 11:30:52 -04:00
wireless.WirelessLAN
* Added `tenant` field
wireless.WirelessLink
* Added `tenant` field