[PR #20224] [CLOSED] Release v4.4.0 #15852

Closed
opened 2025-12-30 00:24:24 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/netbox-community/netbox/pull/20224
Author: @jeremystretch
Created: 9/2/2025
Status: Closed

Base: mainHead: release-v4.4.0


📝 Commits (10+)

📊 Changes

348 files changed (+6226 additions, -2519 deletions)

View changed files

📝 .github/ISSUE_TEMPLATE/01-feature_request.yaml (+1 -1)
📝 .github/ISSUE_TEMPLATE/02-bug_report.yaml (+1 -1)
📝 .gitignore (+1 -0)
📝 base_requirements.txt (+15 -2)
contrib/netbox-housekeeping.service (+0 -17)
contrib/netbox-housekeeping.sh (+0 -9)
contrib/netbox-housekeeping.timer (+0 -13)
docs/administration/housekeeping.md (+0 -49)
📝 docs/configuration/miscellaneous.md (+0 -2)
📝 docs/configuration/required-parameters.md (+0 -2)
📝 docs/configuration/system.md (+11 -4)
📝 docs/customization/custom-scripts.md (+9 -0)
📝 docs/development/application-registry.md (+3 -18)
📝 docs/development/models.md (+20 -13)
📝 docs/development/release-checklist.md (+3 -17)
📝 docs/features/change-logging.md (+6 -0)
📝 docs/features/ipam.md (+2 -2)
📝 docs/installation/3-netbox.md (+0 -12)
📝 docs/installation/upgrading.md (+15 -46)
📝 docs/integrations/prometheus-metrics.md (+2 -0)

...and 80 more files

📄 Description

New Features

Background Jobs for Bulk Operations (#19589, #19891)

Most bulk operations, such as the import, modification, or deletion of objects can now be executed as a background job. This frees the user to continue working in NetBox while the bulk operation is processed. Once completed, the user will be notified of the job's result.

Logging Mechanism for Background Jobs (#19816)

A dedicated logging mechanism has been implemented for background jobs. Jobs can now easily record log messages by calling e.g. self.logger.info("Log message") under the run() method. These messages are displayed along with the job's resulting data. Supported log levels include DEBUG, INFO, WARNING, and ERROR.

Changelog Comments (#19713)

When creating, editing, or deleting objects in NetBox, users now have the option of providing a short message explaining the change. This message will be recorded on the resulting changelog records for all affected objects.

Config Context Data Validation (#19377)

A new ConfigContextProfile model has been introduced to support JSON schema validation for config context data. If a validation schema has been defined for a profile, all config contexts assigned to it will have their data validated against the schema whenever a change is made. (The assignment of a config context to a profile is optional.)

Enhancements

  • #17413 - Platforms belonging to different manufacturers may now have identical names
  • #18204 - Improved layout of the image attachments view & tables
  • #18528 - Introduced the HOSTNAME configuration parameter to override the system hostname reported by NetBox
  • #18984 - Added a status field for rack reservations
  • #18990 - Image attachments now include an optional description field
  • #19134 - Interface transmit power now accepts negative values
  • #19231 - Bulk renaming support has been implemented in the UI for most object types
  • #19591 - Thumbnails for all images attached to an object are now displayed under a dedicated tab
  • #19722 - The REST API endpoint for object types has been extended to include additional details
  • #19739 - Introduced a user preference for CSV delimiter
  • #19740 - Enable nesting of platforms within a hierarchy for improved organization
  • #19773 - Extend the system UI view with additional information
  • #19893 - The /api/status/ REST API endpoint now includes the system hostname
  • #19920 - Contacts can now be assigned to ASNs
  • #19945 - Introduce a new custom script variable to represent decimal values
  • #19965 - Add REST & GraphQL API request counters to the Prometheus metrics exporter
  • #20029 - Include complete representation of object type in webhook payload data

Plugins

  • #18006 - A Javascript is now triggered when UI is toggled between light and dark mode
  • #19735 - Custom individual and bulk operations can now be registered under individual views using ObjectAction
  • #20003 - Enable registration of callbacks to provide supplementary webhook payload data
  • #20115 - Support the use of ArrayColumn for plugin tables
  • #20129 - Enable plugins to register custom model features

Deprecations

  • #19738 - The direct assignment of VLANs to sites is now discouraged in favor of VLAN groups

Other Changes

  • #18349 - The housekeeping script has been replaced with a system job
  • #18588 - The "Service" model has been renamed to "Application Service" for clarity (UI change only)
  • #19829 - The REST API endpoint for object types is now available under /api/core/
  • #19924 - ObjectTypes are now tracked as concrete objects in the database (alongside ContentTypes)
  • #19973 - Miscellaneous improvements to the nbshell management command

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/netbox-community/netbox/pull/20224 **Author:** [@jeremystretch](https://github.com/jeremystretch) **Created:** 9/2/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `release-v4.4.0` --- ### 📝 Commits (10+) - [`601a77a`](https://github.com/netbox-community/netbox/commit/601a77ac73aea7158b87250d0ecb91fdd0289a7c) Closes #19735: Implement reuable bulk operations classes (#19774) - [`ce12de8`](https://github.com/netbox-community/netbox/commit/ce12de8b6d989c9f7b4ec6dcdcd23623235a7d00) Closes #19231: Add bulk renaming support for all models (#19795) - [`a1cd81f`](https://github.com/netbox-community/netbox/commit/a1cd81ff35ccc3576d6f96c3154a2ef1a7f2a61f) Closes #17413: Permit identical names for platforms belonging to different manufacturers (#19814) - [`90e8a61`](https://github.com/netbox-community/netbox/commit/90e8a61670cf47926a21e6a0bdf14af6b1098f0a) Closes #19739: Add a user preference for CSV delimiter in table exports (#19824) - [`878c624`](https://github.com/netbox-community/netbox/commit/878c624eafbf8a2c6803abe575605b02bcab294e) Closes #19722: Extend the object types REST API endpoint (#19826) - [`6022433`](https://github.com/netbox-community/netbox/commit/6022433a4049bfdbca6212103dba17442e11c40b) Closes #19134: Allow negative values for interface TX power (#19847) - [`875a641`](https://github.com/netbox-community/netbox/commit/875a6416872d645db6d29b55f1a2afa6fa6650f9) Closes #19589: Background job for bulk operations (#19804) - [`21a840c`](https://github.com/netbox-community/netbox/commit/21a840c32e6e1bc40b11c6e7e34fbf143ea24033) Closes #19816: Implement a logging mechanism for background jobs (#19838) - [`5f8a4f6`](https://github.com/netbox-community/netbox/commit/5f8a4f6c432ca54b625d86ddcaad3c374cd74339) Merge branch 'main' into feature - [`c5ffab0`](https://github.com/netbox-community/netbox/commit/c5ffab0c283ec4d7946b1a65f5075fafa6614377) Closes #18349: Replace houskeeping management command with a system job (#19815) ### 📊 Changes **348 files changed** (+6226 additions, -2519 deletions) <details> <summary>View changed files</summary> 📝 `.github/ISSUE_TEMPLATE/01-feature_request.yaml` (+1 -1) 📝 `.github/ISSUE_TEMPLATE/02-bug_report.yaml` (+1 -1) 📝 `.gitignore` (+1 -0) 📝 `base_requirements.txt` (+15 -2) ➖ `contrib/netbox-housekeeping.service` (+0 -17) ➖ `contrib/netbox-housekeeping.sh` (+0 -9) ➖ `contrib/netbox-housekeeping.timer` (+0 -13) ➖ `docs/administration/housekeeping.md` (+0 -49) 📝 `docs/configuration/miscellaneous.md` (+0 -2) 📝 `docs/configuration/required-parameters.md` (+0 -2) 📝 `docs/configuration/system.md` (+11 -4) 📝 `docs/customization/custom-scripts.md` (+9 -0) 📝 `docs/development/application-registry.md` (+3 -18) 📝 `docs/development/models.md` (+20 -13) 📝 `docs/development/release-checklist.md` (+3 -17) 📝 `docs/features/change-logging.md` (+6 -0) 📝 `docs/features/ipam.md` (+2 -2) 📝 `docs/installation/3-netbox.md` (+0 -12) 📝 `docs/installation/upgrading.md` (+15 -46) 📝 `docs/integrations/prometheus-metrics.md` (+2 -0) _...and 80 more files_ </details> ### 📄 Description ### New Features #### Background Jobs for Bulk Operations ([#19589](https://github.com/netbox-community/netbox/issues/19589), [#19891](https://github.com/netbox-community/netbox/issues/19891)) Most bulk operations, such as the import, modification, or deletion of objects can now be executed as a background job. This frees the user to continue working in NetBox while the bulk operation is processed. Once completed, the user will be notified of the job's result. #### Logging Mechanism for Background Jobs ([#19816](https://github.com/netbox-community/netbox/issues/19816)) A dedicated logging mechanism has been implemented for background jobs. Jobs can now easily record log messages by calling e.g. `self.logger.info("Log message")` under the `run()` method. These messages are displayed along with the job's resulting data. Supported log levels include `DEBUG`, `INFO`, `WARNING`, and `ERROR`. #### Changelog Comments ([#19713](https://github.com/netbox-community/netbox/issues/19713)) When creating, editing, or deleting objects in NetBox, users now have the option of providing a short message explaining the change. This message will be recorded on the resulting changelog records for all affected objects. #### Config Context Data Validation ([#19377](https://github.com/netbox-community/netbox/issues/19377)) A new ConfigContextProfile model has been introduced to support JSON schema validation for config context data. If a validation schema has been defined for a profile, all config contexts assigned to it will have their data validated against the schema whenever a change is made. (The assignment of a config context to a profile is optional.) ### Enhancements * [#17413](https://github.com/netbox-community/netbox/issues/17413) - Platforms belonging to different manufacturers may now have identical names * [#18204](https://github.com/netbox-community/netbox/issues/18204) - Improved layout of the image attachments view & tables * [#18528](https://github.com/netbox-community/netbox/issues/18528) - Introduced the `HOSTNAME` configuration parameter to override the system hostname reported by NetBox * [#18984](https://github.com/netbox-community/netbox/issues/18984) - Added a `status` field for rack reservations * [#18990](https://github.com/netbox-community/netbox/issues/18990) - Image attachments now include an optional description field * [#19134](https://github.com/netbox-community/netbox/issues/19134) - Interface transmit power now accepts negative values * [#19231](https://github.com/netbox-community/netbox/issues/19231) - Bulk renaming support has been implemented in the UI for most object types * [#19591](https://github.com/netbox-community/netbox/issues/19591) - Thumbnails for all images attached to an object are now displayed under a dedicated tab * [#19722](https://github.com/netbox-community/netbox/issues/19722) - The REST API endpoint for object types has been extended to include additional details * [#19739](https://github.com/netbox-community/netbox/issues/19739) - Introduced a user preference for CSV delimiter * [#19740](https://github.com/netbox-community/netbox/issues/19740) - Enable nesting of platforms within a hierarchy for improved organization * [#19773](https://github.com/netbox-community/netbox/issues/19773) - Extend the system UI view with additional information * [#19893](https://github.com/netbox-community/netbox/issues/19893) - The `/api/status/` REST API endpoint now includes the system hostname * [#19920](https://github.com/netbox-community/netbox/issues/19920) - Contacts can now be assigned to ASNs * [#19945](https://github.com/netbox-community/netbox/issues/19945) - Introduce a new custom script variable to represent decimal values * [#19965](https://github.com/netbox-community/netbox/issues/19965) - Add REST & GraphQL API request counters to the Prometheus metrics exporter * [#20029](https://github.com/netbox-community/netbox/issues/20029) - Include complete representation of object type in webhook payload data ### Plugins * [#18006](https://github.com/netbox-community/netbox/issues/18006) - A Javascript is now triggered when UI is toggled between light and dark mode * [#19735](https://github.com/netbox-community/netbox/issues/19735) - Custom individual and bulk operations can now be registered under individual views using `ObjectAction` * [#20003](https://github.com/netbox-community/netbox/issues/20003) - Enable registration of callbacks to provide supplementary webhook payload data * [#20115](https://github.com/netbox-community/netbox/issues/20115) - Support the use of ArrayColumn for plugin tables * [#20129](https://github.com/netbox-community/netbox/issues/20129) - Enable plugins to register custom model features ### Deprecations * [#19738](https://github.com/netbox-community/netbox/issues/19738) - The direct assignment of VLANs to sites is now discouraged in favor of VLAN groups ### Other Changes * [#18349](https://github.com/netbox-community/netbox/issues/18349) - The housekeeping script has been replaced with a system job * [#18588](https://github.com/netbox-community/netbox/issues/18588) - The "Service" model has been renamed to "Application Service" for clarity (UI change only) * [#19829](https://github.com/netbox-community/netbox/issues/19829) - The REST API endpoint for object types is now available under `/api/core/` * [#19924](https://github.com/netbox-community/netbox/issues/19924) - ObjectTypes are now tracked as concrete objects in the database (alongside ContentTypes) * [#19973](https://github.com/netbox-community/netbox/issues/19973) - Miscellaneous improvements to the `nbshell` management command --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-30 00:24:24 +01:00
adam closed this issue 2025-12-30 00:24:25 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#15852