git: 8b9888a61283 - main - net-mgmt/netbox: Update to 3.3.4
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 17 Sep 2022 10:50:14 UTC
The branch main has been updated by kai: URL: https://cgit.FreeBSD.org/ports/commit/?id=8b9888a6128391ae12076603d39548cc9361b569 commit 8b9888a6128391ae12076603d39548cc9361b569 Author: Kai Knoblich <kai@FreeBSD.org> AuthorDate: 2022-09-17 10:45:00 +0000 Commit: Kai Knoblich <kai@FreeBSD.org> CommitDate: 2022-09-17 10:45:00 +0000 net-mgmt/netbox: Update to 3.3.4 * Prune obsolete update instructions/notes for NetBox releases older than 3.0. * Add a directive to the netbox rc sample script that also simplifies the upgrade process. [1] * Fix a typo regarding the housekeeping script in the upgrade instructions. [1] Changelog since 3.2.9: It contains many bugfixes/enhancements and the following new features: * Multi-object Cable Terminations * L2VPN Modeling * PoE Interface Attributes * Half-Height Rack Units * Restrict API Tokens by Client IP * Reference User in Permission Constraints * Custom Field Grouping * Toggle Custom Field Visibility https://netbox.readthedocs.io/en/stable/release-notes/version-3.3/ Reported by: Thomas Kurschel (via e-mail) [1] MFH: No (feature release) --- net-mgmt/netbox/Makefile | 17 ++-- net-mgmt/netbox/distinfo | 6 +- net-mgmt/netbox/files/netboxrc.sample.in | 19 ++++ net-mgmt/netbox/files/pkg-message.in | 161 +++++++++++-------------------- net-mgmt/netbox/pkg-plist | 130 +++++++++++++++++-------- 5 files changed, 176 insertions(+), 157 deletions(-) diff --git a/net-mgmt/netbox/Makefile b/net-mgmt/netbox/Makefile index a9b500eaab9a..b69a8ec44c47 100644 --- a/net-mgmt/netbox/Makefile +++ b/net-mgmt/netbox/Makefile @@ -1,6 +1,6 @@ PORTNAME= netbox DISTVERSIONPREFIX= v -DISTVERSION= 3.2.9 +DISTVERSION= 3.3.4 CATEGORIES= net-mgmt python MAINTAINER= kai@FreeBSD.org @@ -25,35 +25,36 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt # RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django40>=4.0.7<4.1:www/py-django40@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-cors-headers>=3.13.0<4:www/py-dj40-django-cors-headers@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}dj40-django-debug-toolbar>=3.5.0<4:www/py-dj40-django-debug-toolbar@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dj40-django-debug-toolbar>=3.6.0<4:www/py-dj40-django-debug-toolbar@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-filter>=22.1<23:www/py-dj40-django-filter@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-graphiql-debug-toolbar>=0.2.0<1:www/py-dj40-django-graphiql-debug-toolbar@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-mptt>=0.13.4<0.14:www/py-dj40-django-mptt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-prometheus>=2.2.0<2.3:www/py-dj40-django-prometheus@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-redis>=5.2.0<6:www/py-dj40-django-redis@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dj40-django-rich>=1.4.0<2:www/py-dj40-django-rich@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-rq>=2.5.1<2.6:devel/py-dj40-django-rq@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-tables2>=2.4.1<2.5:www/py-dj40-django-tables2@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}dj40-django-taggit>=2.1.0<3:www/py-dj40-django-taggit@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dj40-django-taggit>=3.0.0<4:www/py-dj40-django-taggit@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-django-timezone-field>=5.0<6:www/py-dj40-django-timezone-field@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-djangorestframework>=3.13.1<3.14.0:www/py-dj40-djangorestframework@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}dj40-drf-yasg>=1.20.0<1.22:www/py-dj40-drf-yasg@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dj40-drf-yasg>=1.21.3<1.22:www/py-dj40-drf-yasg@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dj40-graphene-django>=2.15.0<3:devel/py-dj40-graphene-django@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4<1.1:www/py-django-pglocks@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}bleach>=5.0.1<6:www/py-bleach@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.0.1<4:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7<3.5:textproc/py-markdown@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}markdown-include>=0.6.0<1:textproc/py-markdown-include@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}markdown-include>=0.7.0<1:textproc/py-markdown-include@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mkdocs-material>=8.2.11<9:textproc/py-mkdocs-material@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mkdocstrings>=0.17.0<1:textproc/py-mkdocstrings@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}netaddr>=0.8.0<1:net/py-netaddr@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pillow>=9.1.1:graphics/py-pillow@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pillow>=9.2.0:graphics/py-pillow@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}psycopg2>=2.9.3<3:databases/py-psycopg2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sentry-sdk>=1.5.12<2:devel/py-sentry-sdk@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}social-auth-app-django>=5.0.0<6:www/py-social-auth-app-django@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.2.0<5:security/py-social-auth-core@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.3.0<5:security/py-social-auth-core@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}svgwrite>=1.4.3<2:graphics/py-svgwrite@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tablib>=3.2.1<4:textproc/py-tablib@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}tzdata>=2022.1:devel/py-tzdata@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}tzdata>=2022.2:devel/py-tzdata@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}yaml>=5.4.1<7:devel/py-yaml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}gunicorn>=20.1.0<21:www/py-gunicorn@${PY_FLAVOR} diff --git a/net-mgmt/netbox/distinfo b/net-mgmt/netbox/distinfo index a376ac85be58..ffc0da4ea2d1 100644 --- a/net-mgmt/netbox/distinfo +++ b/net-mgmt/netbox/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1660761613 -SHA256 (netbox-community-netbox-v3.2.9_GH0.tar.gz) = 4d22ed99ea9244b4c167b268eda0af2951f832a0a7b4e653c1b72ea4be2bcb3b -SIZE (netbox-community-netbox-v3.2.9_GH0.tar.gz) = 4837923 +TIMESTAMP = 1663407064 +SHA256 (netbox-community-netbox-v3.3.4_GH0.tar.gz) = 88de5e90a7632572416bcd52327bd208b2a96f569cbd2987206bd9f5c841f8ab +SIZE (netbox-community-netbox-v3.3.4_GH0.tar.gz) = 5217432 diff --git a/net-mgmt/netbox/files/netboxrc.sample.in b/net-mgmt/netbox/files/netboxrc.sample.in index 2502f9c0b14e..7510729b0701 100644 --- a/net-mgmt/netbox/files/netboxrc.sample.in +++ b/net-mgmt/netbox/files/netboxrc.sample.in @@ -44,10 +44,12 @@ name="netbox" rcvar=netbox_enable netbox_path=%%DATADIR%% +extra_commands="upgrade" load_rc_config $name start_precmd="netbox_precmd" +upgrade_cmd="netbox_upgrade" command=${netbox_program:-%%LOCALBASE%%/bin/gunicorn} procname=${netbox_procname:-%%PYTHON_CMD%%} netbox_chdir=${netbox_path} @@ -88,4 +90,21 @@ netbox_precmd() install -d -o ${netbox_user} `dirname ${pidfile}` } +netbox_upgrade() +{ + if [ -f ${pidfile} ]; then + cd ${netbox_path} + %%PYTHON_CMD%% manage.py migrate + %%PYTHON_CMD%% manage.py trace_paths --no-input + %%LOCALBASE%%/bin/mkdocs build + %%PYTHON_CMD%% manage.py collectstatic --no-input + %%PYTHON_CMD%% manage.py remove_stale_contenttypes --no-input + %%PYTHON_CMD%% manage.py clearsessions + %%PYTHON_CMD%% manage.py clearcache + echo "Please restart NetBox and the WSGI environment." + else + echo "NetBox is not running!" + fi +} + run_rc_command "$1" diff --git a/net-mgmt/netbox/files/pkg-message.in b/net-mgmt/netbox/files/pkg-message.in index 9cff229b226b..490cbeb03501 100644 --- a/net-mgmt/netbox/files/pkg-message.in +++ b/net-mgmt/netbox/files/pkg-message.in @@ -33,110 +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: 2.9.8 - message: <<EOD -Changes related to the NetBox configuration: - -1. If in use, LDAP authentication must be enabled by setting - REMOTE_AUTH_BACKEND to 'netbox.authentication.LDAPBackend'. (The LDAP - configuration parameters in ldap_config.py remain unchanged.) - -2. 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}. - -3. Support for the DEFAULT_TIMEOUT parameter under REDIS database configuration - was removed. Set RQ_DEFAULT_TIMEOUT as a global configuration parameter - instead. - - -Changes related to permissions: - -1. Any permissions referencing the legacy ReportResult model (e.g. - 'extras.view_reportresult') should be updated to reference the Report model. - -2. 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. - -3. The 'users.delete_token permission' is no longer enforced. All users are - permitted to delete their own API tokens. - - -Changes to the REST API: - -Numerous changes have been made to the REST API. Please check the changelogs -for more details. - - -Workaround for issues with invalid nested data: - -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: - -# cd %%DATADIR%% -# python%%PYTHON_VER%% manage.py nbshell -### NetBox interactive shell (localhost) -### Python 3.x.x | Django 3.1.x | NetBox 2.9.x -### lsmodels() will show available models. Use help(<model>) for more info. ->>> Region.objects.rebuild() ->>> RackGroup.objects.rebuild() ->>> TenantGroup.objects.rebuild() -EOD -} -{ type: upgrade - maximum_version: 2.9.9 - message: <<EOD -An new sample rc script has been added to manage the RQ-worker service. If the -EXAMPLES option is enabled (which is the default) it can be found in the -following directory: - -%%EXAMPLESDIR%%/netbox_rq.sample -EOD -} -{ type: upgrade - maximum_version: 2.10.3 - message: <<EOD -The Django templating language (DTL) is no longer supported for export -templates. Please ensure that all export templates use Jinja2 before -upgrading. - -Also the support for embedded graphs was completely removed and several changes -to the REST API were made. Please check the changelogs for further details. -EOD -} -{ type: upgrade - maximum_version: 2.11.9 - message: <<EOD -* 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". 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. - -* Custom script ObjectVars no longer support the "queryset" parameter: - Use "model" instead. - -Several changes to the REST API were made as well. Please check the changelogs -for further details. -EOD -} { type: upgrade maximum_version: 3.0.4 message: <<EOD @@ -202,8 +98,8 @@ The NetBox 3.0 release contains major changes, so at least items 1.), 2.) and Please run following commands to enable the new script: - # cp %%EXAMPLESDIR%%/850-netbox-housekeeping.sample %%LOCALBASE%%/etc/periodic/daily/850-netbox-housekeeping - # chmod 555 %%LOCALBASE%%/etc/periodic/daily/850-netbox-housekeeping + # cp %%EXAMPLESDIR%%/850.netbox-housekeeping.sample %%LOCALBASE%%/etc/periodic/daily/850.netbox-housekeeping + # chmod 555 %%LOCALBASE%%/etc/periodic/daily/850.netbox-housekeeping # sysrc -f /etc/periodic.conf daily_netbox_housekeeping_enable="YES" EOD } @@ -331,4 +227,57 @@ 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 +} ] diff --git a/net-mgmt/netbox/pkg-plist b/net-mgmt/netbox/pkg-plist index cea826a5998c..4ff53d8694e8 100644 --- a/net-mgmt/netbox/pkg-plist +++ b/net-mgmt/netbox/pkg-plist @@ -29,6 +29,9 @@ %%DATADIR%%/circuits/migrations/0033_standardize_id_fields.py %%DATADIR%%/circuits/migrations/0034_created_datetimefield.py %%DATADIR%%/circuits/migrations/0035_provider_asns.py +%%DATADIR%%/circuits/migrations/0036_circuit_termination_date_tags_custom_fields.py +%%DATADIR%%/circuits/migrations/0037_new_cabling_models.py +%%DATADIR%%/circuits/migrations/0038_cabling_cleanup.py %%DATADIR%%/circuits/migrations/__init__.py %%DATADIR%%/circuits/models/__init__.py %%DATADIR%%/circuits/models/circuits.py @@ -68,6 +71,7 @@ %%DATADIR%%/dcim/forms/object_create.py %%DATADIR%%/dcim/forms/object_import.py %%DATADIR%%/dcim/graphql/__init__.py +%%DATADIR%%/dcim/graphql/mixins.py %%DATADIR%%/dcim/graphql/schema.py %%DATADIR%%/dcim/graphql/types.py %%DATADIR%%/dcim/lookups.py @@ -100,6 +104,14 @@ %%DATADIR%%/dcim/migrations/0151_interface_speed_duplex.py %%DATADIR%%/dcim/migrations/0152_standardize_id_fields.py %%DATADIR%%/dcim/migrations/0153_created_datetimefield.py +%%DATADIR%%/dcim/migrations/0154_half_height_rack_units.py +%%DATADIR%%/dcim/migrations/0155_interface_poe_mode_type.py +%%DATADIR%%/dcim/migrations/0156_location_status.py +%%DATADIR%%/dcim/migrations/0157_new_cabling_models.py +%%DATADIR%%/dcim/migrations/0158_populate_cable_terminations.py +%%DATADIR%%/dcim/migrations/0159_populate_cable_paths.py +%%DATADIR%%/dcim/migrations/0160_populate_cable_ends.py +%%DATADIR%%/dcim/migrations/0161_cabling_cleanup.py %%DATADIR%%/dcim/migrations/__init__.py %%DATADIR%%/dcim/models/__init__.py %%DATADIR%%/dcim/models/cables.py @@ -110,9 +122,12 @@ %%DATADIR%%/dcim/models/racks.py %%DATADIR%%/dcim/models/sites.py %%DATADIR%%/dcim/signals.py -%%DATADIR%%/dcim/svg.py +%%DATADIR%%/dcim/svg/__init__.py +%%DATADIR%%/dcim/svg/cables.py +%%DATADIR%%/dcim/svg/racks.py %%DATADIR%%/dcim/tables/__init__.py %%DATADIR%%/dcim/tables/cables.py +%%DATADIR%%/dcim/tables/connections.py %%DATADIR%%/dcim/tables/devices.py %%DATADIR%%/dcim/tables/devicetypes.py %%DATADIR%%/dcim/tables/modules.py @@ -131,11 +146,7 @@ %%DATADIR%%/dcim/urls.py %%DATADIR%%/dcim/utils.py %%DATADIR%%/dcim/views.py -%%DATADIR%%/docs/additional-features/change-logging.md -%%DATADIR%%/docs/additional-features/journaling.md -%%DATADIR%%/docs/additional-features/napalm.md -%%DATADIR%%/docs/additional-features/prometheus-metrics.md -%%DATADIR%%/docs/additional-features/webhooks.md +%%DATADIR%%/docs/_theme/main.html %%DATADIR%%/docs/administration/authentication/microsoft-azure-ad.md %%DATADIR%%/docs/administration/authentication/okta.md %%DATADIR%%/docs/administration/authentication/overview.md @@ -144,26 +155,21 @@ %%DATADIR%%/docs/administration/netbox-shell.md %%DATADIR%%/docs/administration/permissions.md %%DATADIR%%/docs/administration/replicating-netbox.md -%%DATADIR%%/docs/configuration/dynamic-settings.md +%%DATADIR%%/docs/configuration/data-validation.md +%%DATADIR%%/docs/configuration/date-time.md +%%DATADIR%%/docs/configuration/default-values.md +%%DATADIR%%/docs/configuration/development.md %%DATADIR%%/docs/configuration/error-reporting.md %%DATADIR%%/docs/configuration/index.md -%%DATADIR%%/docs/configuration/optional-settings.md +%%DATADIR%%/docs/configuration/miscellaneous.md +%%DATADIR%%/docs/configuration/napalm.md +%%DATADIR%%/docs/configuration/plugins.md %%DATADIR%%/docs/configuration/remote-authentication.md -%%DATADIR%%/docs/configuration/required-settings.md -%%DATADIR%%/docs/core-functionality/circuits.md -%%DATADIR%%/docs/core-functionality/contacts.md -%%DATADIR%%/docs/core-functionality/device-types.md -%%DATADIR%%/docs/core-functionality/devices.md -%%DATADIR%%/docs/core-functionality/ipam.md -%%DATADIR%%/docs/core-functionality/modules.md -%%DATADIR%%/docs/core-functionality/power.md -%%DATADIR%%/docs/core-functionality/services.md -%%DATADIR%%/docs/core-functionality/sites-and-racks.md -%%DATADIR%%/docs/core-functionality/tenancy.md -%%DATADIR%%/docs/core-functionality/virtualization.md -%%DATADIR%%/docs/core-functionality/vlans.md -%%DATADIR%%/docs/core-functionality/wireless.md +%%DATADIR%%/docs/configuration/required-parameters.md +%%DATADIR%%/docs/configuration/security.md +%%DATADIR%%/docs/configuration/system.md %%DATADIR%%/docs/customization/custom-fields.md +%%DATADIR%%/docs/customization/custom-links.md %%DATADIR%%/docs/customization/custom-scripts.md %%DATADIR%%/docs/customization/custom-validation.md %%DATADIR%%/docs/customization/export-templates.md @@ -172,6 +178,7 @@ %%DATADIR%%/docs/development/application-registry.md %%DATADIR%%/docs/development/extending-models.md %%DATADIR%%/docs/development/getting-started.md +%%DATADIR%%/docs/development/git-cheat-sheet.md %%DATADIR%%/docs/development/index.md %%DATADIR%%/docs/development/models.md %%DATADIR%%/docs/development/release-checklist.md @@ -180,7 +187,25 @@ %%DATADIR%%/docs/development/user-preferences.md %%DATADIR%%/docs/development/web-ui.md %%DATADIR%%/docs/extra.css -%%DATADIR%%/docs/graphql-api/overview.md +%%DATADIR%%/docs/features/api-integration.md +%%DATADIR%%/docs/features/authentication-permissions.md +%%DATADIR%%/docs/features/change-logging.md +%%DATADIR%%/docs/features/circuits.md +%%DATADIR%%/docs/features/contacts.md +%%DATADIR%%/docs/features/context-data.md +%%DATADIR%%/docs/features/customization.md +%%DATADIR%%/docs/features/devices-cabling.md +%%DATADIR%%/docs/features/facilities.md +%%DATADIR%%/docs/features/ipam.md +%%DATADIR%%/docs/features/journaling.md +%%DATADIR%%/docs/features/l2vpn-overlay.md +%%DATADIR%%/docs/features/power-tracking.md +%%DATADIR%%/docs/features/tenancy.md +%%DATADIR%%/docs/features/virtualization.md +%%DATADIR%%/docs/features/vlan-management.md +%%DATADIR%%/docs/features/wireless.md +%%DATADIR%%/docs/getting-started/planning.md +%%DATADIR%%/docs/getting-started/populating-data.md %%DATADIR%%/docs/index.md %%DATADIR%%/docs/installation/1-postgresql.md %%DATADIR%%/docs/installation/2-redis.md @@ -189,8 +214,13 @@ %%DATADIR%%/docs/installation/5-http-server.md %%DATADIR%%/docs/installation/6-ldap.md %%DATADIR%%/docs/installation/index.md -%%DATADIR%%/docs/installation/migrating-to-systemd.md %%DATADIR%%/docs/installation/upgrading.md +%%DATADIR%%/docs/integrations/graphql-api.md +%%DATADIR%%/docs/integrations/napalm.md +%%DATADIR%%/docs/integrations/prometheus-metrics.md +%%DATADIR%%/docs/integrations/rest-api.md +%%DATADIR%%/docs/integrations/webhooks.md +%%DATADIR%%/docs/introduction.md %%DATADIR%%/docs/media/admin_ui_run_permission.png %%DATADIR%%/docs/media/authentication/azure_ad_add_app_registration.png %%DATADIR%%/docs/media/authentication/azure_ad_add_client_secret.png @@ -205,15 +235,18 @@ %%DATADIR%%/docs/media/authentication/okta_integration_parameters.png %%DATADIR%%/docs/media/authentication/okta_login_portal.png %%DATADIR%%/docs/media/authentication/okta_web_app_integration.png +%%DATADIR%%/docs/media/development/github.png %%DATADIR%%/docs/media/development/github_fork_button.png %%DATADIR%%/docs/media/development/github_fork_dialog.png +%%DATADIR%%/docs/media/development/github_new_issue.png %%DATADIR%%/docs/media/installation/netbox_application_stack.png +%%DATADIR%%/docs/media/installation/upgrade_paths.png %%DATADIR%%/docs/media/models/dcim_cable_trace.png %%DATADIR%%/docs/media/power_distribution.png %%DATADIR%%/docs/media/release-notes/netbox30_ui.png %%DATADIR%%/docs/media/screenshots/cable-trace.png %%DATADIR%%/docs/media/screenshots/home-dark.png -%%DATADIR%%/docs/media/screenshots/home-light.png +%%DATADIR%%/docs/media/screenshots/netbox-ui.png %%DATADIR%%/docs/media/screenshots/prefixes-list.png %%DATADIR%%/docs/media/screenshots/rack.png %%DATADIR%%/docs/models/circuits/circuit.md @@ -265,6 +298,7 @@ %%DATADIR%%/docs/models/extras/customlink.md %%DATADIR%%/docs/models/extras/exporttemplate.md %%DATADIR%%/docs/models/extras/imageattachment.md +%%DATADIR%%/docs/models/extras/journalentry.md %%DATADIR%%/docs/models/extras/tag.md %%DATADIR%%/docs/models/extras/webhook.md %%DATADIR%%/docs/models/ipam/aggregate.md @@ -273,6 +307,8 @@ %%DATADIR%%/docs/models/ipam/fhrpgroupassignment.md %%DATADIR%%/docs/models/ipam/ipaddress.md %%DATADIR%%/docs/models/ipam/iprange.md +%%DATADIR%%/docs/models/ipam/l2vpn.md +%%DATADIR%%/docs/models/ipam/l2vpntermination.md %%DATADIR%%/docs/models/ipam/prefix.md %%DATADIR%%/docs/models/ipam/rir.md %%DATADIR%%/docs/models/ipam/role.md @@ -287,8 +323,6 @@ %%DATADIR%%/docs/models/tenancy/contactrole.md %%DATADIR%%/docs/models/tenancy/tenant.md %%DATADIR%%/docs/models/tenancy/tenantgroup.md -%%DATADIR%%/docs/models/users/objectpermission.md -%%DATADIR%%/docs/models/users/token.md %%DATADIR%%/docs/models/virtualization/cluster.md %%DATADIR%%/docs/models/virtualization/clustergroup.md %%DATADIR%%/docs/models/virtualization/clustertype.md @@ -300,6 +334,7 @@ %%DATADIR%%/docs/netbox_logo.png %%DATADIR%%/docs/netbox_logo.svg %%DATADIR%%/docs/plugins/development/background-tasks.md +%%DATADIR%%/docs/plugins/development/exceptions.md %%DATADIR%%/docs/plugins/development/filtersets.md %%DATADIR%%/docs/plugins/development/forms.md %%DATADIR%%/docs/plugins/development/graphql-api.md @@ -312,6 +347,7 @@ %%DATADIR%%/docs/plugins/development/views.md %%DATADIR%%/docs/plugins/index.md %%DATADIR%%/docs/reference/conditions.md +%%DATADIR%%/docs/reference/filtering.md %%DATADIR%%/docs/reference/markdown.md %%DATADIR%%/docs/release-notes/index.md %%DATADIR%%/docs/release-notes/version-2.0.md @@ -329,9 +365,7 @@ %%DATADIR%%/docs/release-notes/version-3.0.md %%DATADIR%%/docs/release-notes/version-3.1.md %%DATADIR%%/docs/release-notes/version-3.2.md -%%DATADIR%%/docs/rest-api/authentication.md -%%DATADIR%%/docs/rest-api/filtering.md -%%DATADIR%%/docs/rest-api/overview.md +%%DATADIR%%/docs/release-notes/version-3.3.md %%DATADIR%%/extras/__init__.py %%DATADIR%%/extras/admin.py %%DATADIR%%/extras/api/__init__.py @@ -386,6 +420,10 @@ %%DATADIR%%/extras/migrations/0071_standardize_id_fields.py %%DATADIR%%/extras/migrations/0072_created_datetimefield.py %%DATADIR%%/extras/migrations/0073_journalentry_tags_custom_fields.py +%%DATADIR%%/extras/migrations/0074_customfield_extensions.py +%%DATADIR%%/extras/migrations/0075_configcontext_locations.py +%%DATADIR%%/extras/migrations/0076_tag_slug_unicode.py +%%DATADIR%%/extras/migrations/0077_customlink_extend_text_and_url.py %%DATADIR%%/extras/migrations/__init__.py %%DATADIR%%/extras/models/__init__.py %%DATADIR%%/extras/models/change_logging.py @@ -486,10 +524,14 @@ %%DATADIR%%/ipam/migrations/0055_servicetemplate.py %%DATADIR%%/ipam/migrations/0056_standardize_id_fields.py %%DATADIR%%/ipam/migrations/0057_created_datetimefield.py +%%DATADIR%%/ipam/migrations/0058_ipaddress_nat_inside_nonunique.py +%%DATADIR%%/ipam/migrations/0059_l2vpn.py +%%DATADIR%%/ipam/migrations/0060_alter_l2vpn_slug.py %%DATADIR%%/ipam/migrations/__init__.py %%DATADIR%%/ipam/models/__init__.py %%DATADIR%%/ipam/models/fhrp.py %%DATADIR%%/ipam/models/ip.py +%%DATADIR%%/ipam/models/l2vpn.py %%DATADIR%%/ipam/models/services.py %%DATADIR%%/ipam/models/vlans.py %%DATADIR%%/ipam/models/vrfs.py @@ -498,6 +540,7 @@ %%DATADIR%%/ipam/tables/__init__.py %%DATADIR%%/ipam/tables/fhrp.py %%DATADIR%%/ipam/tables/ip.py +%%DATADIR%%/ipam/tables/l2vpn.py %%DATADIR%%/ipam/tables/services.py %%DATADIR%%/ipam/tables/vlans.py %%DATADIR%%/ipam/tables/vrfs.py @@ -528,6 +571,7 @@ %%DATADIR%%/netbox/api/serializers/__init__.py %%DATADIR%%/netbox/api/serializers/base.py %%DATADIR%%/netbox/api/serializers/features.py +%%DATADIR%%/netbox/api/serializers/generic.py %%DATADIR%%/netbox/api/serializers/nested.py %%DATADIR%%/netbox/api/views.py %%DATADIR%%/netbox/api/viewsets/__init__.py @@ -539,6 +583,7 @@ %%DATADIR%%/netbox/configuration_testing.py %%DATADIR%%/netbox/constants.py %%DATADIR%%/netbox/context_processors.py +%%DATADIR%%/netbox/denormalized.py %%DATADIR%%/netbox/filtersets.py %%DATADIR%%/netbox/forms/__init__.py %%DATADIR%%/netbox/forms/base.py @@ -574,7 +619,9 @@ %%DATADIR%%/netbox/views/generic/base.py %%DATADIR%%/netbox/views/generic/bulk_views.py %%DATADIR%%/netbox/views/generic/feature_views.py +%%DATADIR%%/netbox/views/generic/mixins.py %%DATADIR%%/netbox/views/generic/object_views.py +%%DATADIR%%/netbox/views/generic/utils.py %%DATADIR%%/netbox/wsgi.py %%DATADIR%%/project-static/.eslintignore %%DATADIR%%/project-static/.eslintrc @@ -703,11 +750,9 @@ %%DATADIR%%/templates/circuits/providernetwork.html %%DATADIR%%/templates/dcim/bulk_disconnect.html %%DATADIR%%/templates/dcim/cable.html -%%DATADIR%%/templates/dcim/cable_connect.html %%DATADIR%%/templates/dcim/cable_edit.html %%DATADIR%%/templates/dcim/cable_trace.html %%DATADIR%%/templates/dcim/component_create.html -%%DATADIR%%/templates/dcim/component_template_create.html %%DATADIR%%/templates/dcim/connections_list.html %%DATADIR%%/templates/dcim/consoleport.html %%DATADIR%%/templates/dcim/consoleport_delete.html @@ -729,7 +774,6 @@ %%DATADIR%%/templates/dcim/device/powerports.html %%DATADIR%%/templates/dcim/device/rearports.html %%DATADIR%%/templates/dcim/device/status.html -%%DATADIR%%/templates/dcim/device_component_edit.html %%DATADIR%%/templates/dcim/device_edit.html %%DATADIR%%/templates/dcim/device_import.html %%DATADIR%%/templates/dcim/device_import_child.html @@ -743,8 +787,6 @@ %%DATADIR%%/templates/dcim/devicetype/base.html %%DATADIR%%/templates/dcim/devicetype/component_templates.html %%DATADIR%%/templates/dcim/frontport.html -%%DATADIR%%/templates/dcim/frontporttemplate_create.html -%%DATADIR%%/templates/dcim/inc/cable_form.html %%DATADIR%%/templates/dcim/inc/cable_termination.html %%DATADIR%%/templates/dcim/inc/cable_toggle_buttons.html %%DATADIR%%/templates/dcim/inc/cabletermination.html @@ -759,15 +801,12 @@ %%DATADIR%%/templates/dcim/interface_edit.html %%DATADIR%%/templates/dcim/inventoryitem.html %%DATADIR%%/templates/dcim/inventoryitem_bulk_delete.html -%%DATADIR%%/templates/dcim/inventoryitem_create.html %%DATADIR%%/templates/dcim/inventoryitem_delete.html %%DATADIR%%/templates/dcim/inventoryitemrole.html -%%DATADIR%%/templates/dcim/inventoryitemtemplate_create.html %%DATADIR%%/templates/dcim/location.html %%DATADIR%%/templates/dcim/manufacturer.html %%DATADIR%%/templates/dcim/module.html %%DATADIR%%/templates/dcim/modulebay.html -%%DATADIR%%/templates/dcim/modulebaytemplate_create.html %%DATADIR%%/templates/dcim/moduletype.html %%DATADIR%%/templates/dcim/moduletype/base.html %%DATADIR%%/templates/dcim/moduletype/component_templates.html @@ -804,7 +843,6 @@ %%DATADIR%%/templates/exceptions/programming_error.html %%DATADIR%%/templates/extras/admin/plugins_list.html %%DATADIR%%/templates/extras/configcontext.html -%%DATADIR%%/templates/extras/configcontext_edit.html %%DATADIR%%/templates/extras/customfield.html %%DATADIR%%/templates/extras/customlink.html %%DATADIR%%/templates/extras/exporttemplate.html @@ -850,6 +888,7 @@ %%DATADIR%%/templates/inc/filter_list.html %%DATADIR%%/templates/inc/htmx_modal.html %%DATADIR%%/templates/inc/messages.html +%%DATADIR%%/templates/inc/missing_prerequisites.html %%DATADIR%%/templates/inc/paginator.html %%DATADIR%%/templates/inc/paginator_htmx.html %%DATADIR%%/templates/inc/panel_table.html @@ -880,6 +919,9 @@ %%DATADIR%%/templates/ipam/iprange.html %%DATADIR%%/templates/ipam/iprange/base.html %%DATADIR%%/templates/ipam/iprange/ip_addresses.html +%%DATADIR%%/templates/ipam/l2vpn.html +%%DATADIR%%/templates/ipam/l2vpntermination.html +%%DATADIR%%/templates/ipam/l2vpntermination_edit.html %%DATADIR%%/templates/ipam/prefix.html %%DATADIR%%/templates/ipam/prefix/base.html %%DATADIR%%/templates/ipam/prefix/ip_addresses.html @@ -927,7 +969,6 @@ %%DATADIR%%/templates/virtualization/virtualmachine/interfaces.html %%DATADIR%%/templates/virtualization/virtualmachine_list.html %%DATADIR%%/templates/virtualization/vminterface.html -%%DATADIR%%/templates/virtualization/vminterface_edit.html %%DATADIR%%/templates/wireless/inc/authentication_attrs.html %%DATADIR%%/templates/wireless/inc/wirelesslink_interface.html %%DATADIR%%/templates/wireless/wirelesslan.html @@ -991,9 +1032,11 @@ %%DATADIR%%/users/graphql/types.py %%DATADIR%%/users/migrations/0001_squashed_0011.py %%DATADIR%%/users/migrations/0002_standardize_id_fields.py +%%DATADIR%%/users/migrations/0003_token_allowed_ips_last_used.py %%DATADIR%%/users/migrations/__init__.py %%DATADIR%%/users/models.py %%DATADIR%%/users/preferences.py +%%DATADIR%%/users/tables.py %%DATADIR%%/users/tests/__init__.py %%DATADIR%%/users/tests/test_api.py %%DATADIR%%/users/tests/test_filtersets.py @@ -1033,9 +1076,11 @@ %%DATADIR%%/utilities/permissions.py %%DATADIR%%/utilities/query_functions.py %%DATADIR%%/utilities/querysets.py +%%DATADIR%%/utilities/request.py %%DATADIR%%/utilities/tables.py %%DATADIR%%/utilities/templates/builtins/badge.html %%DATADIR%%/utilities/templates/builtins/checkmark.html +%%DATADIR%%/utilities/templates/builtins/customfield_value.html %%DATADIR%%/utilities/templates/builtins/tag.html %%DATADIR%%/utilities/templates/buttons/add.html %%DATADIR%%/utilities/templates/buttons/bulk_delete.html @@ -1114,6 +1159,9 @@ %%DATADIR%%/virtualization/migrations/0027_standardize_id_fields.py %%DATADIR%%/virtualization/migrations/0028_vminterface_vrf.py %%DATADIR%%/virtualization/migrations/0029_created_datetimefield.py +%%DATADIR%%/virtualization/migrations/0030_cluster_status.py +%%DATADIR%%/virtualization/migrations/0031_virtualmachine_site_device.py +%%DATADIR%%/virtualization/migrations/0032_virtualmachine_update_sites.py %%DATADIR%%/virtualization/migrations/__init__.py %%DATADIR%%/virtualization/models.py %%DATADIR%%/virtualization/tables/__init__.py @@ -1147,6 +1195,8 @@ %%DATADIR%%/wireless/migrations/0001_wireless.py %%DATADIR%%/wireless/migrations/0002_standardize_id_fields.py %%DATADIR%%/wireless/migrations/0003_created_datetimefield.py +%%DATADIR%%/wireless/migrations/0004_wireless_tenancy.py +%%DATADIR%%/wireless/migrations/0005_wirelesslink_interface_types.py %%DATADIR%%/wireless/migrations/__init__.py %%DATADIR%%/wireless/models.py %%DATADIR%%/wireless/signals.py