git: a08bcb53da1a - main - net-mgmt/netbox: Update to 4.5.4
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 04 Mar 2026 09:22:35 UTC
The branch main has been updated by kai:
URL: https://cgit.FreeBSD.org/ports/commit/?id=a08bcb53da1a746d47d5fc226792578b52e382e9
commit a08bcb53da1a746d47d5fc226792578b52e382e9
Author: Kai Knoblich <kai@FreeBSD.org>
AuthorDate: 2026-03-04 09:20:39 +0000
Commit: Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2026-03-04 09:20:39 +0000
net-mgmt/netbox: Update to 4.5.4
* With the NetBox 4.5 release Python 3.10 and 3.11 are officially no
longer supported. The whole code can still be compiled without any
problems using Python 3.11, which is the current default version in
the ports tree.
Therefore, the minimum version for Python doesn't need to be raised
for the time being, but this may change at any time as soon as
backward-incompatible changes to the code lands into upstream for
the next release.
* Also prune update instructions for NetBox releases older than 3.5
while I'm here.
Netbox 4.5 contains many bugfixes/enhancements and the following new
features:
* Lookup Modifiers in Filter Forms
* Improved API Authentication Tokens
* Object Ownership
* Advanced Port Mappings
* Cable Profiles
https://netbox.readthedocs.io/en/stable/release-notes/version-4.5/
MFH: No (feature release)
---
net-mgmt/netbox/Makefile | 39 ++--
net-mgmt/netbox/distinfo | 6 +-
.../netbox/files/patch-netbox_netbox_settings.py | 17 ++
net-mgmt/netbox/files/pkg-message.in | 238 +++++----------------
net-mgmt/netbox/pkg-plist | 142 +++++++++++-
5 files changed, 234 insertions(+), 208 deletions(-)
diff --git a/net-mgmt/netbox/Makefile b/net-mgmt/netbox/Makefile
index ab6064fecb1e..66a5316e8208 100644
--- a/net-mgmt/netbox/Makefile
+++ b/net-mgmt/netbox/Makefile
@@ -1,6 +1,6 @@
PORTNAME= netbox
DISTVERSIONPREFIX= v
-DISTVERSION= 4.4.10
+DISTVERSION= 4.5.4
CATEGORIES= net-mgmt python
MAINTAINER= kai@FreeBSD.org
@@ -23,50 +23,51 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
# - www/py-dj52-django-tables2
# - www/py-dj52-djangorestframework
#
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django52>=5.2.9<5.3:www/py-django52@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django52>=5.2.11<5.3:www/py-django52@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-cors-headers>=4.9.0<5:www/py-dj52-django-cors-headers@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj52-django-debug-toolbar>=6.1.0<7:www/py-dj52-django-debug-toolbar@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj52-django-debug-toolbar>=6.2.0<7:www/py-dj52-django-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-filter>=25.2<26:www/py-dj52-django-filter@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-htmx>=1.27.0<2:www/py-dj52-django-htmx@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj52-django-mptt>=0.17.0<0.18:www/py-dj52-django-mptt@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj52-django-mptt>=0.18.0<0.19:www/py-dj52-django-mptt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-prometheus>=2.4.1<2.5:www/py-dj52-django-prometheus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-redis>=6.0.0<7:www/py-dj52-django-redis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-rich>=2.2.0<3:www/py-dj52-django-rich@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj52-django-rq>=3.2.1<3.3:devel/py-dj52-django-rq@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj52-django-rq>=3.2.2<3.3:devel/py-dj52-django-rq@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-storages>=1.14.6<2:www/py-dj52-django-storages@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-tables2>=2.8.0<2.9:www/py-dj52-django-tables2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-taggit>=6.1.0<7:www/py-dj52-django-taggit@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-django-timezone-field>=7.2.1<8:www/py-dj52-django-timezone-field@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-djangorestframework>=3.16.1<3.17.0:www/py-dj52-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-drf-spectacular>=0.29.0<1:www/py-dj52-drf-spectacular@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj52-drf-spectacular-sidecar>=2026.1.1:www/py-dj52-drf-spectacular-sidecar@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj52-drf-spectacular-sidecar>=2026.3.1:www/py-dj52-drf-spectacular-sidecar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj52-social-auth-app-django>=5.7.0<6:www/py-dj52-social-auth-app-django@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj52-sorl-thumbnail>=12.11.0<13:graphics/py-dj52-sorl-thumbnail@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj52-strawberry-graphql>=0.288.2<0.300:devel/py-dj52-strawberry-graphql@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}dj52-strawberry-graphql-django>=0.73.0<1:www/py-dj52-strawberry-graphql-django@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj52-sorl-thumbnail>=13.0.0<14:graphics/py-dj52-sorl-thumbnail@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj52-strawberry-graphql>=0.307.1<1:devel/py-dj52-strawberry-graphql@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}dj52-strawberry-graphql-django>=0.79.0<1:www/py-dj52-strawberry-graphql-django@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4<1.1:www/py-django-pglocks@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}colorama>=0.4.6<1:devel/py-colorama@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}feedparser>=6.0.12<7:textproc/py-feedparser@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1.6<4:devel/py-Jinja2@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}jsonschema>=4.25.1<5:devel/py-jsonschema@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}markdown>=3.9<3.11:textproc/py-markdown@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}mkdocs-material>=9.7.1<10:textproc/py-mkdocs-material@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}mkdocstrings>=1.0.0<2:textproc/py-mkdocstrings@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}mkdocstrings-python>=2.0.1:textproc/py-mkdocstrings-python@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jsonschema>=4.26.0<5:devel/py-jsonschema@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}markdown>=3.10<4:textproc/py-markdown@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mkdocs>=1.6.1<2:textproc/py-mkdocs@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mkdocs-material>=9.7.3<10:textproc/py-mkdocs-material@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mkdocstrings>=1.0.3<2:textproc/py-mkdocstrings@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mkdocstrings-python>=2.0.2:textproc/py-mkdocstrings-python@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}netaddr>=1.3.0<2:net/py-netaddr@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}nh3>=0.3.2<1:www/py-nh3@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}nh3>=0.3.3<1:www/py-nh3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=11.3.0:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg>=3.2.13<4:databases/py-psycopg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg-c>=3.2.13<4:databases/py-psycopg-c@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg-pool>=3.3.0<4:databases/py-psycopg-pool@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.32.5<3:www/py-requests@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}rq>=2.6.1<3:devel/py-rq@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.8.3<5:security/py-social-auth-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}rq>=2.7.0<3:devel/py-rq@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.8.5<5:security/py-social-auth-core@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}svgwrite>=1.4.3<2:graphics/py-svgwrite@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tablib>=3.9.0<4:textproc/py-tablib@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}tzdata>=2025.2:devel/py-tzdata@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tzdata>=2025.3:devel/py-tzdata@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0.3<7:devel/py-pyyaml@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}gunicorn>=23.0.0<26:www/py-gunicorn@${PY_FLAVOR}
+ ${PYTHON_PKGNAMEPREFIX}gunicorn>=25.1.0<26:www/py-gunicorn@${PY_FLAVOR}
USES= cpe pgsql:14+ python
CPE_VENDOR= netbox
diff --git a/net-mgmt/netbox/distinfo b/net-mgmt/netbox/distinfo
index 11f5493d55e4..cc01fb385b83 100644
--- a/net-mgmt/netbox/distinfo
+++ b/net-mgmt/netbox/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1767722253
-SHA256 (netbox-community-netbox-v4.4.10_GH0.tar.gz) = cbe9c196e37c0586d5e92480d326f9ec014636e7b0455c96025d1f906458bb8c
-SIZE (netbox-community-netbox-v4.4.10_GH0.tar.gz) = 19526255
+TIMESTAMP = 1772571417
+SHA256 (netbox-community-netbox-v4.5.4_GH0.tar.gz) = a00197bf7b479879c79198eccfad4cd4517c72b66c40ea4a3d6f4753ee2afd9c
+SIZE (netbox-community-netbox-v4.5.4_GH0.tar.gz) = 19296476
diff --git a/net-mgmt/netbox/files/patch-netbox_netbox_settings.py b/net-mgmt/netbox/files/patch-netbox_netbox_settings.py
new file mode 100644
index 000000000000..e6d0b3286751
--- /dev/null
+++ b/net-mgmt/netbox/files/patch-netbox_netbox_settings.py
@@ -0,0 +1,17 @@
+Remove check for Python < 3.12
+
+--- netbox/netbox/settings.py.orig 2026-03-03 21:01:30 UTC
++++ netbox/netbox/settings.py
+@@ -33,12 +33,6 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abs
+ # Set the base directory two levels up
+ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+-# Validate the Python version
+-if sys.version_info < (3, 12): # noqa: UP036
+- raise RuntimeError(
+- f"NetBox requires Python 3.12 or later. (Currently installed: Python {platform.python_version()})"
+- )
+-
+ #
+ # Configuration import
+ #
diff --git a/net-mgmt/netbox/files/pkg-message.in b/net-mgmt/netbox/files/pkg-message.in
index 2dc5df901849..2a61e4e19824 100644
--- a/net-mgmt/netbox/files/pkg-message.in
+++ b/net-mgmt/netbox/files/pkg-message.in
@@ -33,186 +33,6 @@ The following steps are required to finish the upgrade:
2. Restart WSGI/httpd environment (supervisord/apache/nginx/etc.)
EOD
}
-{ type: upgrade
- maximum_version: 3.2.4
- message: <<EOD
-/!\ WARNING /!\
-
-The NetBox 3.2 release contains major changes, so at least items 1.), 2.) and
-3.) must be checked before proceeding with the upgrade!
-
-/!\ WARNING /!\
-
-1. This release includes a database migration that will remove the "asn",
- "contact_name", "contact_phone", and "contact_email" fields from the site
- model. (These fields have been superseded by the ASN and contact models
- introduced in NetBox v3.1.)
-
- To protect against the accidental destruction of data, the upgrade process
- will fail if any sites still have data in any of these fields. To bypass
- this safeguard, set the NETBOX_DELETE_LEGACY_DATA environment variable when
- running the upgrade script, which will permit the destruction of legacy
- data.
-
- A set of migration scripts is available to assist with the migration of
- legacy site data:
-
- https://github.com/netbox-community/migration-scripts
-
-
-2. NetBox v3.2 requires Python 3.8 or later.
-
-
-3. If the NetBox Plugin "net-mgmt/py-netbox-plugin-extension" is used, please
- disable it before the migrations are applied. This can be done by removing
- the entry "netbox_plugin_extensions" from the "PLUGINS" section in the
- NetBox configuration.
-
- Once the upgrade is done, this port/package can be safely removed as it's no
- longer required.
-
-
-4. Following items should be checked as well:
-
- * The embedded documentation now needs to be built locally as the procedure
- requires a running instance of NetBox:
-
- # cd %%DATADIR%%
- # mkdocs build
-
- Please also refer to the general updating instructions as this needs to
- be done with every future update of NetBox.
-
- * Automatic redirection of legacy slug-based URL paths has been removed.
- URL-based slugs were changed to use numeric IDs in v2.11.0.
-
- * The "asn" query filter for sites now matches against the AS number of
- assigned ASN objects.
-
- * The "created" field of all change-logged models now conveys a full
- datetime object, rather than only a date. (Previous date-only values
- will receive a timestamp of 00:00.) While this change is largely
- unconcerning, strictly-typed API consumers may need to be updated.
-
- * A "pre_run()" method has been added to the base Report class. Although
- unlikely to affect most installations, you may need to alter any reports
- which already use this name for a method.
-
- * Webhook URLs now support Jinja2 templating. Although this is unlikely to
- introduce any issues, it's possible that an unusual URL might trigger a
- Jinja2 rendering error, in which case the URL would need to be properly
- escaped.
-
- * Several changes to the REST API were made as well. Please check the
- changelogs for further details.
-EOD
-}
-{ type: upgrade
- maximum_version: 3.2.5
- message: <<EOD
-Please note that the general update instructions got another command that needs
-to be issued after each update:
-
-# python%%PYTHON_VER%% manage.py clearcache
-EOD
-}
-{ type: upgrade
- maximum_version: 3.3.4
- message: <<EOD
-The NetBox 3.3 release contains some breaking API changes, so please check the
-following items before running the database migrations:
-
-* Device position, device type height, and rack unit values are now reported
- as decimals (e.g. 1.0 or 1.5) to support modeling half-height rack units.
-
-* 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).
-
-* Several fields on the cable API serializers have been altered or removed to
- support multiple-object cable terminations:
-
-+------------------------------+------+-------------------------------+------+
-| Old Name | Type | New Name | Type |
-+------------------------------+------+-------------------------------+------+
-| termination_a_type | str | Removed | - |
-| termination_b_type | str | Removed | - |
-| termination_a_id | int | Removed | - |
-| termination_b_id | int | Removed | - |
-| termination_a | obj | a_terminations | list |
-| termination_b | obj | 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 | Type | New Name | Type |
-+------------------------------+------+-------------------------------+------+
-| link_peer | obj | link_peers | list |
-| link_peer_type | str | link_peers_type | str |
-| connected_endpoint | obj | connected_endpoints | list |
-| connected_endpoint_type | str | connected_endpoints_type | str |
-| connected_endpoint_reachable | bool | connected_endpoints_reachable | bool |
-+------------------------------+------+-------------------------------+------+
-
-* The cable path serialization returned by the "/paths/" endpoint for
- pass-through ports has been simplified, and the following fields removed:
-
- "origin_type", "origin", "destination_type", "destination". (Additionally,
- "is_complete" has been added.)
-
-* Several changes to the REST API were made as well. Please check the
- changelogs for further details.
-
-* The netbox sample rc script got a new "upgrade" directive that also
- simplifies the upgrade process (database migrations, building the embedded
- documentation, etc.).
-EOD
-}
-{ type: upgrade
- maximum_version: 3.4.5
- message: <<EOD
-1. Please make sure that the PostgreSQL server for the NetBox instance is
- running version 11 or higher. This is because PostgreSQL 10 is End-of-Life
- since November 2022 and Django 4.1 requires PostgreSQL 11 as a minimum.
-
-2. The NetBox 3.4 release contains some breaking changes, so the following
- items should be checked as well:
-
- * Device and virtual machine names are no longer case-sensitive. Attempting
- to create e.g. "device1" and "DEVICE1" within the same site will raise a
- validation error.
-
- * The "asn", "noc_contact", "admin_contact", and "portal_url" fields have
- been removed from the provider model. Please replicate any data remaining
- in these fields to the ASN and contact models introduced in NetBox v3.1
- prior to upgrading.
-
- * The "content_type" fields on the CustomLink and ExportTemplate models have
- been renamed to "content_types" and now support the assignment of multiple
- content types per object.
-
- * Within the Python API, the "cf" property on an object with custom fields
- now returns deserialized values. For example, a custom field referencing
- an object will return the object instance rather than its numeric ID.
-
- To access the raw serialized values, reference the object's
- "custom_field_data" attribute instead.
-
- * The "NetBoxModelCSVForm" class has been renamed to
- "NetBoxModelImportForm". Backward compatability with the previous name
- has been retained for this release, but will be dropped in NetBox v3.5.
-
-
-3. Please note that the general update instructions got another command that
- needs to be issued after each update:
-
-# python%%PYTHON_VER%% manage.py reindex --lazy
-
- The netbox sample rc script has also been adapted accordingly for this
- purpose.
-EOD
-}
{ type: upgrade
maximum_version: 3.5.2
message: <<EOD
@@ -507,4 +327,62 @@ EOD
* The legacy staged changes functionality has been removed.
EOD
}
+{ type: upgrade
+ maximum_version: 4.5.4
+ message: <<EOD
+1. With the NetBox 4.5 release Python 3.10 and 3.11 are officially no longer
+ supported. The whole code can still be compiled without any problems using
+ Python 3.11, which is the current default version in the ports tree.
+
+ Therefore, the minimum version for Python doesn't need to be raised for the
+ time being, but this may change at any time as soon as backward-incompatible
+ changes to the code lands into upstream for the next release.
+
+ Thus, no further action is required at this time. However, it's still
+ recommended to upgrade to Python 3.12 or newer in the near future.
+
+2. Following items should be checked as well:
+
+ * GraphQL API queries which filter by object IDs or enums must now specify a
+ filter lookup similar to other fields. For example, "id: 123" becomes
+ "id: {exact: 123 }".
+
+ * Rendering a device or virtual machine configuration is now restricted to
+ users with the render_config permission for the applicable object type.
+
+ * Retrieval of API token plaintexts is no longer supported. The
+ ALLOW_TOKEN_RETRIEVAL config parameter has been removed.
+
+ * API tokens can no longer be reassigned from one user to another.
+
+ * A config context assigned to a platform will now also apply to any
+ children of that platform. (Although this is typically desired behavior,
+ it may introduce unanticipated changes for existing deployments.)
+
+ * The /api/dcim/cable-terminations/ REST API endpoint is now read-only.
+ Cable terminations must be set on cables directly via the
+ /api/dcim/cables/ endpoint.
+
+ * The UI view dedicated to swapping A/Z circuit terminations has been
+ removed.
+
+ * The experimental HTMX navigation feature has been removed.
+
+ * The obsolete boolean field is_staff has been removed from the User model.
+
+ * Removal of deprecated behavior:
+
+ * The /api/extras/object-types/ REST API endpoint has been removed.
+ (Use /api/core/object-types/ instead.)
+
+ * Webhooks no longer specify a model in payload data. (Reference
+ "object_type" instead, which includes the parent app label.)
+
+ * The obsolete module core.models.contenttypes has been removed (replaced
+ in v4.4 by core.models.object_types).
+
+ * The load_yaml() and load_json() utility methods have been removed from
+ the base class for custom scripts.
+EOD
+}
]
diff --git a/net-mgmt/netbox/pkg-plist b/net-mgmt/netbox/pkg-plist
index 7455f9c739bd..7e9d02e99369 100644
--- a/net-mgmt/netbox/pkg-plist
+++ b/net-mgmt/netbox/pkg-plist
@@ -8,7 +8,6 @@
%%DATADIR%%/account/migrations/0001_initial.py
%%DATADIR%%/account/migrations/__init__.py
%%DATADIR%%/account/models.py
-%%DATADIR%%/account/tables.py
%%DATADIR%%/account/urls.py
%%DATADIR%%/account/views.py
%%DATADIR%%/circuits/__init__.py
@@ -49,6 +48,10 @@
%%DATADIR%%/circuits/migrations/0050_virtual_circuits.py
%%DATADIR%%/circuits/migrations/0051_virtualcircuit_group_assignment.py
%%DATADIR%%/circuits/migrations/0052_extend_circuit_abs_distance_upper_limit.py
+%%DATADIR%%/circuits/migrations/0053_owner.py
+%%DATADIR%%/circuits/migrations/0054_cable_connector_positions.py
+%%DATADIR%%/circuits/migrations/0055_add_comments_to_organizationalmodel.py
+%%DATADIR%%/circuits/migrations/0056_gfk_indexes.py
%%DATADIR%%/circuits/migrations/__init__.py
%%DATADIR%%/circuits/models/__init__.py
%%DATADIR%%/circuits/models/base.py
@@ -97,6 +100,7 @@
%%DATADIR%%/core/forms/mixins.py
%%DATADIR%%/core/forms/model_forms.py
%%DATADIR%%/core/graphql/__init__.py
+%%DATADIR%%/core/graphql/enums.py
%%DATADIR%%/core/graphql/filter_mixins.py
%%DATADIR%%/core/graphql/filters.py
%%DATADIR%%/core/graphql/mixins.py
@@ -124,11 +128,12 @@
%%DATADIR%%/core/migrations/0017_objectchange_message.py
%%DATADIR%%/core/migrations/0018_concrete_objecttype.py
%%DATADIR%%/core/migrations/0019_configrevision_active.py
+%%DATADIR%%/core/migrations/0020_owner.py
+%%DATADIR%%/core/migrations/0021_job_queue_name.py
%%DATADIR%%/core/migrations/__init__.py
%%DATADIR%%/core/models/__init__.py
%%DATADIR%%/core/models/change_logging.py
%%DATADIR%%/core/models/config.py
-%%DATADIR%%/core/models/contenttypes.py
%%DATADIR%%/core/models/data.py
%%DATADIR%%/core/models/files.py
%%DATADIR%%/core/models/jobs.py
@@ -150,6 +155,7 @@
%%DATADIR%%/core/tests/__init__.py
%%DATADIR%%/core/tests/test_api.py
%%DATADIR%%/core/tests/test_changelog.py
+%%DATADIR%%/core/tests/test_data_backends.py
%%DATADIR%%/core/tests/test_filtersets.py
%%DATADIR%%/core/tests/test_models.py
%%DATADIR%%/core/tests/test_openapi_schema.py
@@ -181,6 +187,7 @@
%%DATADIR%%/dcim/api/views.py
%%DATADIR%%/dcim/apps.py
%%DATADIR%%/dcim/base_filtersets.py
+%%DATADIR%%/dcim/cable_profiles.py
%%DATADIR%%/dcim/choices.py
%%DATADIR%%/dcim/constants.py
%%DATADIR%%/dcim/exceptions.py
@@ -252,6 +259,17 @@
%%DATADIR%%/dcim/migrations/0214_platform_rebuild.py
%%DATADIR%%/dcim/migrations/0215_rackreservation_status.py
%%DATADIR%%/dcim/migrations/0216_latitude_longitude_validators.py
+%%DATADIR%%/dcim/migrations/0217_poweroutlettemplate_color.py
+%%DATADIR%%/dcim/migrations/0218_owner.py
+%%DATADIR%%/dcim/migrations/0219_devicetype_device_count.py
+%%DATADIR%%/dcim/migrations/0220_cable_profile.py
+%%DATADIR%%/dcim/migrations/0221_cable_connector_positions.py
+%%DATADIR%%/dcim/migrations/0222_port_mappings.py
+%%DATADIR%%/dcim/migrations/0223_frontport_positions.py
+%%DATADIR%%/dcim/migrations/0224_add_comments_to_organizationalmodel.py
+%%DATADIR%%/dcim/migrations/0225_gfk_indexes.py
+%%DATADIR%%/dcim/migrations/0226_add_mptt_tree_indexes.py
+%%DATADIR%%/dcim/migrations/0226_modulebay_rebuild_tree.py
%%DATADIR%%/dcim/migrations/__init__.py
%%DATADIR%%/dcim/migrations/initial_data/module_type_profiles/cpu.json
%%DATADIR%%/dcim/migrations/initial_data/module_type_profiles/expansion_card.json
@@ -261,6 +279,7 @@
%%DATADIR%%/dcim/migrations/initial_data/module_type_profiles/memory.json
%%DATADIR%%/dcim/migrations/initial_data/module_type_profiles/power_supply.json
%%DATADIR%%/dcim/models/__init__.py
+%%DATADIR%%/dcim/models/base.py
%%DATADIR%%/dcim/models/cables.py
%%DATADIR%%/dcim/models/device_component_templates.py
%%DATADIR%%/dcim/models/device_components.py
@@ -289,11 +308,15 @@
%%DATADIR%%/dcim/tests/__init__.py
%%DATADIR%%/dcim/tests/test_api.py
%%DATADIR%%/dcim/tests/test_cablepaths.py
+%%DATADIR%%/dcim/tests/test_cablepaths2.py
%%DATADIR%%/dcim/tests/test_filtersets.py
%%DATADIR%%/dcim/tests/test_forms.py
%%DATADIR%%/dcim/tests/test_models.py
%%DATADIR%%/dcim/tests/test_natural_ordering.py
%%DATADIR%%/dcim/tests/test_views.py
+%%DATADIR%%/dcim/tests/utils.py
+%%DATADIR%%/dcim/ui/__init__.py
+%%DATADIR%%/dcim/ui/panels.py
%%DATADIR%%/dcim/urls.py
%%DATADIR%%/dcim/utils.py
%%DATADIR%%/dcim/views.py
@@ -360,6 +383,7 @@
%%DATADIR%%/docs/features/l2vpn-overlay.md
%%DATADIR%%/docs/features/notifications.md
%%DATADIR%%/docs/features/power-tracking.md
+%%DATADIR%%/docs/features/resource-ownership.md
%%DATADIR%%/docs/features/search.md
%%DATADIR%%/docs/features/synchronized-data.md
%%DATADIR%%/docs/features/tenancy.md
@@ -515,6 +539,8 @@
%%DATADIR%%/docs/models/tenancy/contactrole.md
%%DATADIR%%/docs/models/tenancy/tenant.md
%%DATADIR%%/docs/models/tenancy/tenantgroup.md
+%%DATADIR%%/docs/models/users/owner.md
+%%DATADIR%%/docs/models/users/ownergroup.md
%%DATADIR%%/docs/models/virtualization/cluster.md
%%DATADIR%%/docs/models/virtualization/clustergroup.md
%%DATADIR%%/docs/models/virtualization/clustertype.md
@@ -552,6 +578,7 @@
%%DATADIR%%/docs/plugins/development/search.md
%%DATADIR%%/docs/plugins/development/tables.md
%%DATADIR%%/docs/plugins/development/templates.md
+%%DATADIR%%/docs/plugins/development/ui-components.md
%%DATADIR%%/docs/plugins/development/user-interface.md
%%DATADIR%%/docs/plugins/development/views.md
%%DATADIR%%/docs/plugins/development/webhooks.md
@@ -587,6 +614,7 @@
%%DATADIR%%/docs/release-notes/version-4.2.md
%%DATADIR%%/docs/release-notes/version-4.3.md
%%DATADIR%%/docs/release-notes/version-4.4.md
+%%DATADIR%%/docs/release-notes/version-4.5.md
%%DATADIR%%/extras/__init__.py
%%DATADIR%%/extras/api/__init__.py
%%DATADIR%%/extras/api/customfields.py
@@ -689,6 +717,7 @@
%%DATADIR%%/extras/migrations/0131_concrete_objecttype.py
%%DATADIR%%/extras/migrations/0132_configcontextprofile.py
%%DATADIR%%/extras/migrations/0133_make_cf_minmax_decimal.py
+%%DATADIR%%/extras/migrations/0134_owner.py
%%DATADIR%%/extras/migrations/__init__.py
%%DATADIR%%/extras/models/__init__.py
%%DATADIR%%/extras/models/configs.py
@@ -728,6 +757,7 @@
%%DATADIR%%/extras/tests/test_tags.py
%%DATADIR%%/extras/tests/test_utils.py
%%DATADIR%%/extras/tests/test_views.py
+%%DATADIR%%/extras/ui/panels.py
%%DATADIR%%/extras/urls.py
%%DATADIR%%/extras/utils.py
%%DATADIR%%/extras/validators.py
@@ -793,6 +823,9 @@
%%DATADIR%%/ipam/migrations/0081_remove_service_device_virtual_machine_add_parent_gfk_index.py
%%DATADIR%%/ipam/migrations/0082_add_prefix_network_containment_indexes.py
%%DATADIR%%/ipam/migrations/0083_vlangroup_populate_total_vlan_ids.py
+%%DATADIR%%/ipam/migrations/0084_owner.py
+%%DATADIR%%/ipam/migrations/0085_add_comments_to_organizationalmodel.py
+%%DATADIR%%/ipam/migrations/0086_gfk_indexes.py
%%DATADIR%%/ipam/migrations/__init__.py
%%DATADIR%%/ipam/models/__init__.py
%%DATADIR%%/ipam/models/asns.py
@@ -819,12 +852,16 @@
%%DATADIR%%/ipam/tests/test_lookups.py
%%DATADIR%%/ipam/tests/test_models.py
%%DATADIR%%/ipam/tests/test_ordering.py
+%%DATADIR%%/ipam/tests/test_tables.py
%%DATADIR%%/ipam/tests/test_views.py
+%%DATADIR%%/ipam/ui/__init__.py
+%%DATADIR%%/ipam/ui/panels.py
%%DATADIR%%/ipam/urls.py
%%DATADIR%%/ipam/utils.py
%%DATADIR%%/ipam/validators.py
%%DATADIR%%/ipam/views.py
%%DATADIR%%/manage.py
+%%DATADIR%%/media/.gitkeep
%%DATADIR%%/mkdocs.yml
%%DATADIR%%/netbox/__init__.py
%%DATADIR%%/netbox/api/__init__.py
@@ -832,15 +869,18 @@
%%DATADIR%%/netbox/api/exceptions.py
%%DATADIR%%/netbox/api/features.py
%%DATADIR%%/netbox/api/fields.py
+%%DATADIR%%/netbox/api/gfk_fields.py
%%DATADIR%%/netbox/api/metadata.py
%%DATADIR%%/netbox/api/pagination.py
%%DATADIR%%/netbox/api/renderers.py
%%DATADIR%%/netbox/api/routers.py
%%DATADIR%%/netbox/api/serializers/__init__.py
%%DATADIR%%/netbox/api/serializers/base.py
+%%DATADIR%%/netbox/api/serializers/bulk.py
%%DATADIR%%/netbox/api/serializers/features.py
%%DATADIR%%/netbox/api/serializers/fields.py
%%DATADIR%%/netbox/api/serializers/generic.py
+%%DATADIR%%/netbox/api/serializers/models.py
%%DATADIR%%/netbox/api/serializers/nested.py
%%DATADIR%%/netbox/api/views.py
%%DATADIR%%/netbox/api/viewsets/__init__.py
@@ -861,12 +901,18 @@
%%DATADIR%%/netbox/events.py
%%DATADIR%%/netbox/filtersets.py
%%DATADIR%%/netbox/forms/__init__.py
-%%DATADIR%%/netbox/forms/base.py
+%%DATADIR%%/netbox/forms/bulk_edit.py
+%%DATADIR%%/netbox/forms/bulk_import.py
+%%DATADIR%%/netbox/forms/filtersets.py
%%DATADIR%%/netbox/forms/mixins.py
+%%DATADIR%%/netbox/forms/model_forms.py
+%%DATADIR%%/netbox/forms/search.py
%%DATADIR%%/netbox/graphql/__init__.py
%%DATADIR%%/netbox/graphql/enums.py
%%DATADIR%%/netbox/graphql/filter_lookups.py
%%DATADIR%%/netbox/graphql/filter_mixins.py
+%%DATADIR%%/netbox/graphql/filters.py
+%%DATADIR%%/netbox/graphql/pagination.py
%%DATADIR%%/netbox/graphql/scalars.py
%%DATADIR%%/netbox/graphql/schema.py
%%DATADIR%%/netbox/graphql/types.py
@@ -924,6 +970,7 @@
%%DATADIR%%/netbox/tests/dummy_plugin/webhook_callbacks.py
%%DATADIR%%/netbox/tests/test_api.py
%%DATADIR%%/netbox/tests/test_authentication.py
+%%DATADIR%%/netbox/tests/test_base_classes.py
%%DATADIR%%/netbox/tests/test_config.py
%%DATADIR%%/netbox/tests/test_forms.py
%%DATADIR%%/netbox/tests/test_graphql.py
@@ -937,6 +984,11 @@
%%DATADIR%%/netbox/tests/test_search.py
%%DATADIR%%/netbox/tests/test_tables.py
%%DATADIR%%/netbox/tests/test_views.py
+%%DATADIR%%/netbox/ui/__init__.py
+%%DATADIR%%/netbox/ui/actions.py
+%%DATADIR%%/netbox/ui/attrs.py
+%%DATADIR%%/netbox/ui/layout.py
+%%DATADIR%%/netbox/ui/panels.py
%%DATADIR%%/netbox/urls.py
%%DATADIR%%/netbox/utils.py
%%DATADIR%%/netbox/views/__init__.py
@@ -951,12 +1003,10 @@
%%DATADIR%%/netbox/views/htmx.py
%%DATADIR%%/netbox/views/misc.py
%%DATADIR%%/netbox/wsgi.py
-%%DATADIR%%/project-static/.eslintignore
-%%DATADIR%%/project-static/.eslintrc
%%DATADIR%%/project-static/.prettierignore
%%DATADIR%%/project-static/.prettierrc
%%DATADIR%%/project-static/.sassrc
-%%DATADIR%%/project-static/bundle.js
+%%DATADIR%%/project-static/bundle.cjs
%%DATADIR%%/project-static/dist/Inter-Black-7VL4YR6G.woff
%%DATADIR%%/project-static/dist/Inter-Black-NU3KAVPI.woff2
%%DATADIR%%/project-static/dist/Inter-BlackItalic-4BVAVUVI.woff2
@@ -1042,6 +1092,7 @@
%%DATADIR%%/project-static/dist/roboto-mono-latin-700italic-KTWD2UYU.woff
%%DATADIR%%/project-static/dist/roboto-mono-latin-700italic-WWLRMKIN.woff2
%%DATADIR%%/project-static/docs/.info
+%%DATADIR%%/project-static/eslint.config.js
%%DATADIR%%/project-static/img/logo_netbox_bright_teal.svg
%%DATADIR%%/project-static/img/logo_netbox_dark_teal.svg
%%DATADIR%%/project-static/img/motif.svg
@@ -1068,7 +1119,9 @@
%%DATADIR%%/project-static/src/colorMode.ts
%%DATADIR%%/project-static/src/dashboard.ts
%%DATADIR%%/project-static/src/dateSelector.ts
+%%DATADIR%%/project-static/src/forms/clearField.ts
%%DATADIR%%/project-static/src/forms/elements.ts
+%%DATADIR%%/project-static/src/forms/filterModifiers.ts
%%DATADIR%%/project-static/src/forms/index.ts
%%DATADIR%%/project-static/src/forms/savedFiltersSelect.ts
%%DATADIR%%/project-static/src/forms/speedSelector.ts
@@ -1189,6 +1242,10 @@
%%DATADIR%%/templates/dcim/consoleport.html
%%DATADIR%%/templates/dcim/consoleserverport.html
%%DATADIR%%/templates/dcim/device.html
+%%DATADIR%%/templates/dcim/device/attrs/ipaddress.html
+%%DATADIR%%/templates/dcim/device/attrs/parent_device.html
+%%DATADIR%%/templates/dcim/device/attrs/rack.html
+%%DATADIR%%/templates/dcim/device/attrs/total_weight.html
%%DATADIR%%/templates/dcim/device/base.html
%%DATADIR%%/templates/dcim/device/inc/interface_table_controls.html
%%DATADIR%%/templates/dcim/device/interfaces.html
@@ -1198,6 +1255,7 @@
%%DATADIR%%/templates/dcim/devicebay_populate.html
%%DATADIR%%/templates/dcim/devicerole.html
%%DATADIR%%/templates/dcim/devicetype.html
+%%DATADIR%%/templates/dcim/devicetype/attrs/height.html
%%DATADIR%%/templates/dcim/devicetype/base.html
%%DATADIR%%/templates/dcim/frontport.html
%%DATADIR%%/templates/dcim/htmx/cable_edit.html
@@ -1221,12 +1279,18 @@
%%DATADIR%%/templates/dcim/modulebay.html
%%DATADIR%%/templates/dcim/moduletype.html
%%DATADIR%%/templates/dcim/moduletypeprofile.html
+%%DATADIR%%/templates/dcim/panels/device_rack_elevations.html
+%%DATADIR%%/templates/dcim/panels/power_utilization.html
+%%DATADIR%%/templates/dcim/panels/rack_elevations.html
+%%DATADIR%%/templates/dcim/panels/rack_reservation_elevations.html
+%%DATADIR%%/templates/dcim/panels/virtual_chassis_members.html
%%DATADIR%%/templates/dcim/platform.html
%%DATADIR%%/templates/dcim/powerfeed.html
%%DATADIR%%/templates/dcim/poweroutlet.html
%%DATADIR%%/templates/dcim/powerpanel.html
%%DATADIR%%/templates/dcim/powerport.html
%%DATADIR%%/templates/dcim/rack.html
+%%DATADIR%%/templates/dcim/rack/attrs/total_weight.html
%%DATADIR%%/templates/dcim/rack/base.html
%%DATADIR%%/templates/dcim/rack/non_racked_devices.html
%%DATADIR%%/templates/dcim/rack/reservations.html
@@ -1289,6 +1353,8 @@
%%DATADIR%%/templates/extras/object_imageattachments.html
%%DATADIR%%/templates/extras/object_journal.html
%%DATADIR%%/templates/extras/object_render_config.html
+%%DATADIR%%/templates/extras/panels/custom_fields.html
+%%DATADIR%%/templates/extras/panels/tags.html
%%DATADIR%%/templates/extras/report/base.html
%%DATADIR%%/templates/extras/report/jobs.html
%%DATADIR%%/templates/extras/report/source.html
@@ -1359,6 +1425,8 @@
%%DATADIR%%/templates/ipam/asnrange/base.html
%%DATADIR%%/templates/ipam/fhrpgroup.html
%%DATADIR%%/templates/ipam/inc/ipaddress_edit_header.html
+%%DATADIR%%/templates/ipam/inc/max_depth.html
+%%DATADIR%%/templates/ipam/inc/max_length.html
%%DATADIR%%/templates/ipam/inc/panels/fhrp_groups.html
%%DATADIR%%/templates/ipam/inc/toggle_available.html
%%DATADIR%%/templates/ipam/ipaddress.html
@@ -1369,6 +1437,7 @@
%%DATADIR%%/templates/ipam/iprange.html
%%DATADIR%%/templates/ipam/iprange/base.html
%%DATADIR%%/templates/ipam/iprange/ip_addresses.html
+%%DATADIR%%/templates/ipam/panels/fhrp_groups.html
%%DATADIR%%/templates/ipam/prefix.html
%%DATADIR%%/templates/ipam/prefix/base.html
%%DATADIR%%/templates/ipam/prefix/ip_addresses.html
@@ -1397,9 +1466,35 @@
%%DATADIR%%/templates/tenancy/object_contacts.html
%%DATADIR%%/templates/tenancy/tenant.html
%%DATADIR%%/templates/tenancy/tenantgroup.html
+%%DATADIR%%/templates/ui/actions/copy_content.html
+%%DATADIR%%/templates/ui/actions/link.html
+%%DATADIR%%/templates/ui/attrs/address.html
+%%DATADIR%%/templates/ui/attrs/boolean.html
+%%DATADIR%%/templates/ui/attrs/choice.html
+%%DATADIR%%/templates/ui/attrs/color.html
+%%DATADIR%%/templates/ui/attrs/generic_object.html
+%%DATADIR%%/templates/ui/attrs/gps_coordinates.html
+%%DATADIR%%/templates/ui/attrs/image.html
+%%DATADIR%%/templates/ui/attrs/nested_object.html
+%%DATADIR%%/templates/ui/attrs/numeric.html
+%%DATADIR%%/templates/ui/attrs/object.html
+%%DATADIR%%/templates/ui/attrs/text.html
+%%DATADIR%%/templates/ui/attrs/timezone.html
+%%DATADIR%%/templates/ui/attrs/utilization.html
+%%DATADIR%%/templates/ui/panels/_base.html
+%%DATADIR%%/templates/ui/panels/comments.html
+%%DATADIR%%/templates/ui/panels/context_table.html
+%%DATADIR%%/templates/ui/panels/embedded_table.html
+%%DATADIR%%/templates/ui/panels/json.html
+%%DATADIR%%/templates/ui/panels/object_attributes.html
+%%DATADIR%%/templates/ui/panels/objects_table.html
+%%DATADIR%%/templates/ui/panels/related_objects.html
%%DATADIR%%/templates/users/group.html
%%DATADIR%%/templates/users/inc/user_activity.html
%%DATADIR%%/templates/users/objectpermission.html
+%%DATADIR%%/templates/users/owner.html
+%%DATADIR%%/templates/users/ownergroup.html
+%%DATADIR%%/templates/users/panels/token_example.html
%%DATADIR%%/templates/users/token.html
%%DATADIR%%/templates/users/token_edit.html
%%DATADIR%%/templates/users/user.html
@@ -1409,8 +1504,12 @@
%%DATADIR%%/templates/virtualization/cluster_add_devices.html
%%DATADIR%%/templates/virtualization/clustergroup.html
%%DATADIR%%/templates/virtualization/clustertype.html
+%%DATADIR%%/templates/virtualization/panels/cluster_resources.html
+%%DATADIR%%/templates/virtualization/panels/virtual_machine_resources.html
%%DATADIR%%/templates/virtualization/virtualdisk.html
+%%DATADIR%%/templates/virtualization/virtualdisk/attrs/size.html
%%DATADIR%%/templates/virtualization/virtualmachine.html
+%%DATADIR%%/templates/virtualization/virtualmachine/attrs/ipaddress.html
%%DATADIR%%/templates/virtualization/virtualmachine/base.html
%%DATADIR%%/templates/virtualization/vminterface.html
%%DATADIR%%/templates/vpn/ikepolicy.html
@@ -1464,6 +1563,9 @@
%%DATADIR%%/tenancy/migrations/0018_contact_groups.py
%%DATADIR%%/tenancy/migrations/0019_contactgroup_comments_tenantgroup_comments.py
%%DATADIR%%/tenancy/migrations/0020_remove_contactgroupmembership.py
+%%DATADIR%%/tenancy/migrations/0021_owner.py
+%%DATADIR%%/tenancy/migrations/0022_add_comments_to_organizationalmodel.py
+%%DATADIR%%/tenancy/migrations/0023_add_mptt_tree_indexes.py
%%DATADIR%%/tenancy/migrations/__init__.py
%%DATADIR%%/tenancy/models/__init__.py
%%DATADIR%%/tenancy/models/contacts.py
@@ -1516,14 +1618,18 @@
%%DATADIR%%/users/api/__init__.py
%%DATADIR%%/users/api/serializers.py
%%DATADIR%%/users/api/serializers_/__init__.py
+%%DATADIR%%/users/api/serializers_/mixins.py
%%DATADIR%%/users/api/serializers_/nested.py
+%%DATADIR%%/users/api/serializers_/owners.py
%%DATADIR%%/users/api/serializers_/permissions.py
%%DATADIR%%/users/api/serializers_/tokens.py
%%DATADIR%%/users/api/serializers_/users.py
%%DATADIR%%/users/api/urls.py
%%DATADIR%%/users/api/views.py
%%DATADIR%%/users/apps.py
+%%DATADIR%%/users/choices.py
%%DATADIR%%/users/constants.py
+%%DATADIR%%/users/filterset_mixins.py
%%DATADIR%%/users/filtersets.py
%%DATADIR%%/users/forms/__init__.py
%%DATADIR%%/users/forms/bulk_edit.py
@@ -1532,6 +1638,7 @@
%%DATADIR%%/users/forms/model_forms.py
%%DATADIR%%/users/graphql/__init__.py
%%DATADIR%%/users/graphql/filters.py
+%%DATADIR%%/users/graphql/mixins.py
%%DATADIR%%/users/graphql/schema.py
%%DATADIR%%/users/graphql/types.py
%%DATADIR%%/users/migrations/0001_squashed_0011.py
@@ -1544,8 +1651,12 @@
%%DATADIR%%/users/migrations/0010_add_token_meta_ordering.py
%%DATADIR%%/users/migrations/0011_concrete_objecttype.py
%%DATADIR%%/users/migrations/0012_drop_django_admin_log_table.py
+%%DATADIR%%/users/migrations/0013_user_remove_is_staff.py
+%%DATADIR%%/users/migrations/0014_users_token_v2.py
+%%DATADIR%%/users/migrations/0015_owner.py
%%DATADIR%%/users/migrations/__init__.py
%%DATADIR%%/users/models/__init__.py
+%%DATADIR%%/users/models/owners.py
%%DATADIR%%/users/models/permissions.py
%%DATADIR%%/users/models/preferences.py
%%DATADIR%%/users/models/tokens.py
@@ -1558,7 +1669,10 @@
%%DATADIR%%/users/tests/test_filtersets.py
%%DATADIR%%/users/tests/test_models.py
%%DATADIR%%/users/tests/test_preferences.py
+%%DATADIR%%/users/tests/test_tables.py
%%DATADIR%%/users/tests/test_views.py
+%%DATADIR%%/users/ui/__init__.py
+%%DATADIR%%/users/ui/panels.py
%%DATADIR%%/users/urls.py
%%DATADIR%%/users/utils.py
%%DATADIR%%/users/views.py
@@ -1576,6 +1690,7 @@
%%DATADIR%%/utilities/export.py
%%DATADIR%%/utilities/fields.py
%%DATADIR%%/utilities/filters.py
+%%DATADIR%%/utilities/filtersets.py
%%DATADIR%%/utilities/forms/__init__.py
%%DATADIR%%/utilities/forms/bulk_import.py
%%DATADIR%%/utilities/forms/constants.py
@@ -1594,6 +1709,7 @@
%%DATADIR%%/utilities/forms/widgets/apiselect.py
%%DATADIR%%/utilities/forms/widgets/datetime.py
%%DATADIR%%/utilities/forms/widgets/misc.py
+%%DATADIR%%/utilities/forms/widgets/modifiers.py
%%DATADIR%%/utilities/forms/widgets/select.py
%%DATADIR%%/utilities/html.py
%%DATADIR%%/utilities/htmx.py
@@ -1622,6 +1738,7 @@
%%DATADIR%%/utilities/release.py
%%DATADIR%%/utilities/request.py
%%DATADIR%%/utilities/rqworker.py
+%%DATADIR%%/utilities/security.py
%%DATADIR%%/utilities/serialization.py
%%DATADIR%%/utilities/serializers/json.py
%%DATADIR%%/utilities/socks.py
@@ -1658,6 +1775,7 @@
%%DATADIR%%/utilities/templates/widgets/apiselect.html
%%DATADIR%%/utilities/templates/widgets/clearable_file_input.html
%%DATADIR%%/utilities/templates/widgets/colorselect_option.html
+%%DATADIR%%/utilities/templates/widgets/filter_modifier.html
%%DATADIR%%/utilities/templates/widgets/markdown_input.html
%%DATADIR%%/utilities/templates/widgets/number_with_options.html
%%DATADIR%%/utilities/templates/widgets/select_option.html
@@ -1688,6 +1806,7 @@
%%DATADIR%%/utilities/tests/test_conversions.py
%%DATADIR%%/utilities/tests/test_counters.py
%%DATADIR%%/utilities/tests/test_data.py
+%%DATADIR%%/utilities/tests/test_filter_modifiers.py
%%DATADIR%%/utilities/tests/test_filters.py
%%DATADIR%%/utilities/tests/test_forms.py
%%DATADIR%%/utilities/tests/test_managers.py
@@ -1740,6 +1859,10 @@
%%DATADIR%%/virtualization/migrations/0046_alter_cluster__location_alter_cluster__region_and_more.py
%%DATADIR%%/virtualization/migrations/0047_natural_ordering.py
%%DATADIR%%/virtualization/migrations/0048_populate_mac_addresses.py
+%%DATADIR%%/virtualization/migrations/0049_owner.py
+%%DATADIR%%/virtualization/migrations/0050_virtualmachine_start_on_boot.py
+%%DATADIR%%/virtualization/migrations/0051_add_comments_to_organizationalmodel.py
+%%DATADIR%%/virtualization/migrations/0052_gfk_indexes.py
%%DATADIR%%/virtualization/migrations/__init__.py
%%DATADIR%%/virtualization/models/__init__.py
%%DATADIR%%/virtualization/models/clusters.py
@@ -1756,6 +1879,8 @@
%%DATADIR%%/virtualization/tests/test_filtersets.py
%%DATADIR%%/virtualization/tests/test_models.py
%%DATADIR%%/virtualization/tests/test_views.py
+%%DATADIR%%/virtualization/ui/__init__.py
+%%DATADIR%%/virtualization/ui/panels.py
%%DATADIR%%/virtualization/urls.py
%%DATADIR%%/virtualization/views.py
%%DATADIR%%/vpn/__init__.py
@@ -1790,6 +1915,8 @@
%%DATADIR%%/vpn/migrations/0007_natural_ordering.py
%%DATADIR%%/vpn/migrations/0008_add_l2vpn_status.py
%%DATADIR%%/vpn/migrations/0009_remove_redundant_indexes.py
+%%DATADIR%%/vpn/migrations/0010_owner.py
+%%DATADIR%%/vpn/migrations/0011_add_comments_to_organizationalmodel.py
%%DATADIR%%/vpn/migrations/__init__.py
%%DATADIR%%/vpn/models/__init__.py
%%DATADIR%%/vpn/models/crypto.py
@@ -1840,6 +1967,9 @@
%%DATADIR%%/wireless/migrations/0013_natural_ordering.py
%%DATADIR%%/wireless/migrations/0014_wirelesslangroup_comments.py
%%DATADIR%%/wireless/migrations/0015_extend_wireless_link_abs_distance_upper_limit.py
+%%DATADIR%%/wireless/migrations/0016_owner.py
+%%DATADIR%%/wireless/migrations/0017_gfk_indexes.py
+%%DATADIR%%/wireless/migrations/0018_add_mptt_tree_indexes.py
%%DATADIR%%/wireless/migrations/__init__.py
%%DATADIR%%/wireless/models.py
%%DATADIR%%/wireless/search.py