Compare commits

...

2225 Commits

Author SHA1 Message Date
Jeremy Stretch
bb2235b05e Merge pull request #9354 from netbox-community/develop
Release v3.2.3
2022-05-12 14:09:30 -04:00
jeremystretch
a6aec9ebac Release v3.2.3 2022-05-12 13:53:26 -04:00
jeremystretch
5f3695d2d0 Closes #8805: Add "mixed" option for device airflow indication 2022-05-12 12:18:58 -04:00
jeremystretch
ad12ad4a77 Closes #9221: Add definition list support for Markdown 2022-05-12 11:05:34 -04:00
jeremystretch
37903776fd Fixes #9296: Improve Markdown link sanitization 2022-05-12 10:41:29 -04:00
jeremystretch
c4c93ee346 Closes #9343: Add Ubiquiti SmartPower power outlet type 2022-05-12 10:17:29 -04:00
jeremystretch
72b2ab03cc #9340: Introduce config parameters for Sentry sampling rates 2022-05-12 10:00:57 -04:00
jeremystretch
4cefe26f80 #9340: Add default Sentry DSN 2022-05-12 09:35:13 -04:00
jeremystretch
991950650b Add Sentry as a sponsor 2022-05-11 16:44:26 -04:00
Jeremy Stretch
8cc94689d8 Merge pull request #9342 from netbox-community/9340-sentry
Closes #9340: Enable Sentry integration
2022-05-11 16:26:46 -04:00
jeremystretch
312d6c890e Add sentry-sdk as a dependency 2022-05-11 15:20:18 -04:00
jeremystretch
c146596564 Implement a custom 404 handler to enable Sentry reporting 2022-05-11 14:27:18 -04:00
jeremystretch
6f5c2f1e29 Enable & document Sentry integration 2022-05-11 14:13:50 -04:00
jeremystretch
1726593fb0 Introduce MODULE_TOKEN constant 2022-05-11 10:37:04 -04:00
jeremystretch
e8575495db Changelog for #9190, #9314 2022-05-11 10:31:04 -04:00
devon-mar
cffc064a33 Add device & vm to FHRPGroupAssignmentFilterSet (#9314)
* Add device & vm to `FHRPGroupAssignmentFilterSet`

* Apply suggestions from code review

* Update netbox/ipam/tests/test_filtersets.py

* Update netbox/ipam/filtersets.py

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-11 10:27:50 -04:00
Jeremy Stretch
3dda7e2da2 Merge pull request #9331 from kkthxbye-code/fix-9001
Fixes #9001 & #9190 - Add form validation to model installation
2022-05-11 10:04:06 -04:00
jeremystretch
22f1863475 Add security document 2022-05-11 09:12:07 -04:00
jeremystretch
bdb21da26e Fixes #9330: Add missing module_type field to REST API serializers for modular device component templates 2022-05-11 08:57:19 -04:00
jeremystretch
e759e123ac Fixes #9333: Annotate unit on interface speed field 2022-05-11 08:09:51 -04:00
kkthxbye-code
d858eceb38 Fix pep8 2022-05-10 17:53:01 +02:00
kkthxbye-code
af126fe7e3 Added form validation to model installation
Raises a ValidationError whenever installation would cause a foreign key violation.
2022-05-10 17:50:33 +02:00
jeremystretch
39a9ebaeee Fixes #9313: Remove HTML code from CSV output of many-to-many relationships 2022-05-06 10:26:02 -04:00
jeremystretch
9b4e016fe4 Fixes #9306: Include VC master interfaces when selecting a LAG/bridge for a VC member interface 2022-05-06 09:47:52 -04:00
jeremystretch
422ec7ecec Fixes #9311: Permit creating contact assignment without a priority via the REST API 2022-05-06 09:25:40 -04:00
kkthxbye
a06a280534 Merge pull request #9312 from kkthxbye-code/fix-9310
Fixes #9310 - Remove stray characters from Config Context tab
2022-05-06 13:58:47 +02:00
kkthxbye
1358469375 Remove stray characters from Config Context tab 2022-05-06 08:01:15 +02:00
jeremystretch
bddca8e232 Changelog for #9280 2022-05-05 14:14:49 -04:00
Jeremy Stretch
e9bf6a7bc5 Merge pull request #9281 from kkthxbye-code/adopt-module-component
Fixes #9280 - Add option to adopt existing DeviceComponents
2022-05-05 10:29:20 -04:00
kkthxbye-code
9c3dfdfd14 Fix test_module_component_adoption 2022-05-05 09:30:13 +02:00
kkthxbye-code
c52aa2196d Prefetch installed components when adding modules 2022-05-04 23:21:03 +02:00
kkthxbye-code
81c7fe2084 Don't adopt components already belonging to a module 2022-05-04 22:59:28 +02:00
jeremystretch
0301aec409 Closes #9260: Apply user preferences to tables under object detail views 2022-05-04 15:46:13 -04:00
jeremystretch
015bc48345 #8998: Add region filter for rack reservations; Add filter tests 2022-05-04 14:29:36 -04:00
jeremystretch
da1aabdfc1 Changelog for #8894, #8998, #9122; PEP8 fix 2022-05-04 14:19:09 -04:00
Jeremy Stretch
c2fe2ba56f Merge pull request #9147 from minitriga/issue_8998
Closes #8998: Add site group filter to racks
2022-05-04 14:16:35 -04:00
Jeremy Stretch
52b18393eb Merge pull request #9150 from minitriga/issue_8894
Closes #8894: Add first and last name username user api select
2022-05-04 14:09:38 -04:00
Jeremy Stretch
b172ae65d2 Merge pull request #9256 from kkthxbye-code/fix-9122
Fix #9122 - Clear the cache when running the upgrade script
2022-05-04 14:03:48 -04:00
jeremystretch
eab187fb6b Changelog for #9267, #9278 2022-05-04 13:59:38 -04:00
Jeremy Stretch
502a14e820 Merge pull request #9288 from huntabyte/develop
Closes #9278: Linkify device type in manufacturer table
2022-05-04 13:43:16 -04:00
kkthxbye
7de27c69c0 Fix PEP8 2022-05-04 09:16:19 +02:00
kkthxbye
f455f91ea3 Add view test for module component adoption 2022-05-04 08:58:42 +02:00
Hunter Johnston
bdaefc0e4d Closes #9278: Linkify device type in manufacturer table 2022-05-03 18:34:32 -04:00
kkthxbye-code
8040804c75 Allow mixture of component replication and adoption 2022-05-03 22:03:12 +02:00
minitriga
7cd840610b Update netbox/dcim/forms/filtersets.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-03 11:47:37 +01:00
minitriga
15e91908e8 Update netbox/dcim/forms/filtersets.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-03 11:47:32 +01:00
Alex Gittings
0a9ba3b2e6 add get_display to users serializer 2022-05-03 10:45:08 +00:00
minitriga
535606a185 Update netbox/users/api/nested_serializers.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-03 09:01:06 +01:00
minitriga
25c266e4de Update netbox/users/api/nested_serializers.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-05-03 09:00:52 +01:00
kkthxbye-code
977ccb01f2 Formatting: Remove whitespace on blank line 2022-05-02 21:55:34 +02:00
kkthxbye-code
c2a6a1c125 Create module components in bulk 2022-05-02 21:37:37 +02:00
Jeremy Stretch
f6402a8b62 Merge pull request #9275 from kkthxbye-code/fix-9267
Fixes #9267 - Fix early terminated tuple in IPAddressRoleChoices
2022-05-02 09:19:11 -04:00
kkthxbye
30d4097fd8 Fix early terminated tuple in IPAddressRoleChoices 2022-05-02 12:09:49 +02:00
kkthxbye-code
3fb967b482 Add ability to adopt components when adding a module 2022-04-30 02:19:11 +02:00
kkthxbye
9f3846ec5f Clear the cache when running the upgrade script 2022-04-29 09:19:37 +02:00
kkthxbye
7b5625a722 Add management command for clearing cache 2022-04-29 09:19:19 +02:00
jeremystretch
152d5a3b9a PRVB 2022-04-28 15:06:27 -04:00
Jeremy Stretch
50b6ded6f0 Merge pull request #9253 from netbox-community/develop
Release v3.2.2
2022-04-28 15:00:11 -04:00
jeremystretch
5ee3ee6181 Release v3.2.2 2022-04-28 14:39:02 -04:00
Jeremy Stretch
cd3e901a60 Merge pull request #9248 from kkthxbye-code/fix-9138
Fixes #9138 - Prevent searching when pressing enter in Quick Search
2022-04-28 12:24:07 -04:00
kkthxbye
314c41f47f Prevent searching when pressing enter in Quick Search 2022-04-28 07:47:04 +02:00
jeremystretch
a1c1532614 Changelog for #4264 2022-04-27 15:36:29 -04:00
Jeremy Stretch
ffef78d426 Merge pull request #9112 from sc68cal/rfc_4291
Closes #4264: Do not allocate subnet router anycast for IPv6 prefixes
2022-04-27 15:30:05 -04:00
jeremystretch
8153406dd0 Fixes #9227: Fix related object assignment when recording change record for interfaces 2022-04-27 14:12:20 -04:00
Sean M. Collins
b5613a2cc6 Do not allocate subnet router anycast in certain IPv6 prefixes 2022-04-26 14:54:52 -04:00
jeremystretch
6a225e53f5 Fixes #9222: Fix circuit ID display under cable view 2022-04-25 21:09:20 -04:00
jeremystretch
6b73d22da1 Changelog for #8959 2022-04-25 10:11:51 -04:00
Jeremy Stretch
8b81c10f84 Merge pull request #9201 from kkthxbye-code/fix-8959
Fixes #8959: Add lock around script loading to prevent race condition
2022-04-25 10:10:06 -04:00
jeremystretch
a6a1bec437 Closes #9218: Update documentation links with docs.netbox.dev 2022-04-25 09:48:39 -04:00
jeremystretch
562d1bfcd0 Fixes #9194: Support position assignment when add module bays to multiple devices 2022-04-25 08:41:38 -04:00
jeremystretch
4f86d6a690 Fixes #9206: Show header for comments field under module & module type creation views 2022-04-25 08:33:41 -04:00
jeremystretch
e63a191373 Closes #9214: Linkify cluster counts in cluster type & group tables 2022-04-25 08:23:21 -04:00
Jeremy Stretch
74b5e55643 Merge pull request #9200 from kkthxbye-code/fix-9189
Fixes #9189:  Correct custom validators docs
2022-04-25 08:11:15 -04:00
Jeremy Stretch
405d0ab972 Merge pull request #9199 from kkthxbye-code/fix-8941
Fixes #8941: Fix apiSelect scrolling while zoomed in chrome
2022-04-25 08:09:04 -04:00
kkthxbye-code
84e4156259 Add lock around script loading to prevent race condition 2022-04-22 21:21:01 +02:00
kkthxbye-code
50428c3f01 Correct custom validators docs 2022-04-22 20:42:29 +02:00
kkthxbye-code
a91c46b4c0 UI: Fix apiSelect scrolling while zoomed in chrome 2022-04-22 20:33:46 +02:00
Kevin Meijer
8315883db9 Adds Ubiquiti SmartPower to the power port types (#9193)
Co-authored-by: Kevin Meijer <kevinmeijer@brightfish.nl>
2022-04-22 08:11:31 -04:00
jeremystretch
d22f9000d6 Add troubleshooting section to Azure AD guide 2022-04-19 10:00:41 -04:00
jeremystretch
bb99cee48a Changelog & test for #9060 2022-04-18 13:14:30 -04:00
minitriga
a3805fe04d Closes #9060: Implement modulebay, iventory items and device bay filters (#9146)
* Closes #9060: Implement modulebay, iventory items and device bay filters

* add blank line
2022-04-18 13:07:41 -04:00
jeremystretch
d4f1cb5d6a Fixes #9158: Do not list tags field for CSV forms which do not support tag assignment 2022-04-18 09:39:36 -04:00
jeremystretch
118bf5152c Fixes #9132: Limit location options by selected site when creating a wireless link 2022-04-18 09:02:03 -04:00
jeremystretch
41244dc677 Closes #9152: Annotate related object type under custom field view 2022-04-18 08:56:28 -04:00
jeremystretch
671e1aed9f Fixes #9151: Child prefix counts not annotated on aggregates list under RIR view 2022-04-18 08:43:46 -04:00
jeremystretch
1636508a6a Fixes #9156: Fix loading UserConfig data from fixtures 2022-04-18 08:36:41 -04:00
Alex Gittings
bc2491e6b7 Closes #8894: Add first and last name to APISelect widget if set 2022-04-15 21:50:24 +00:00
Alex Gittings
69a1cc8759 Closes #8998: Add site group filter to racks 2022-04-15 20:36:40 +00:00
jeremystretch
c21db0ff6a Closes #9137: Add SSO configuration guide for Okta 2022-04-15 16:03:36 -04:00
jeremystretch
a889b3a4be Add title for missing okta-openidconnect backend 2022-04-15 15:04:44 -04:00
jeremystretch
10c7fdb618 Closes #9136: Add SSO configuration guide for Microsoft Azure AD 2022-04-14 21:42:47 -04:00
jeremystretch
7be0a1a55f Changelog for #9133 2022-04-14 15:51:26 -04:00
Jeremy Stretch
a98b2fabe0 Merge pull request #9134 from markkuleinio/python-version
Fixes #9133: Require Python 3.8+ to run upgrade.sh
2022-04-14 15:50:18 -04:00
Markku Leiniö
7779b66972 Require Python 3.8+ to run upgrade.sh 2022-04-14 22:01:21 +03:00
jeremystretch
7463c40c40 Restore documentation search function 2022-04-14 14:24:34 -04:00
jeremystretch
996221147e PRVB 2022-04-14 14:15:48 -04:00
Jeremy Stretch
7cd9bcd3f5 Merge pull request #9131 from netbox-community/develop
Release v3.2.1
2022-04-14 14:12:24 -04:00
jeremystretch
fdc018d809 Release v3.2.1 2022-04-14 13:58:18 -04:00
jeremystretch
fa5cf665ce Fixes #9128: Resolve component labels per module bay position when installing modules 2022-04-14 11:13:04 -04:00
jeremystretch
d6df6b444f Closes #9123: Improve appearance of SSO login providers 2022-04-14 10:54:07 -04:00
jeremystretch
78836389f0 Changelog for #8543 & cleanup 2022-04-14 08:37:58 -04:00
Jeremy Stretch
fa4b88a504 Merge pull request #9124 from tyler-8/wlan_site_filter_3_2
Add filters to VLAN selection group for WirelessLAN Form
2022-04-14 08:33:51 -04:00
Tyler Bigler
1a374a1669 Add filters to VLAN selection group 2022-04-14 00:58:17 -04:00
jeremystretch
01ba1b8c03 Fixes #9118: Fix validation error when importing VM child interfaces 2022-04-13 13:43:18 -04:00
jeremystretch
f09a5aacae Changelog for #9110 2022-04-12 14:17:08 -04:00
Jeremy Stretch
95d084d36d Merge pull request #9110 from JoeIzzard/develop
Closes #8415: Adds Neutrik power connectors
2022-04-12 12:40:31 -04:00
Joe Izzard
d35cd18745 fix: standardisation 2022-04-12 17:06:33 +01:00
jeremystretch
4e493d7836 Changelog for #8920, #8956 2022-04-12 12:05:09 -04:00
Jeremy Stretch
68b8cca540 Merge pull request #8957 from kkthxbye-code/save-job-results
Fix #8956: Save old JobResults
2022-04-12 11:57:48 -04:00
kkthxbye-code
c216405a81 Change default JOBRESULT_RETENTION from 0 to 90 2022-04-12 11:42:47 -04:00
kkthxbye
aa2ec3b9c9 Add dynamic config JOBRESULT_RETENTION
and cleanup functionality to the housekeeping script
2022-04-12 11:42:47 -04:00
kkthxbye
f13a00b2dd Save old JobResults 2022-04-12 11:42:47 -04:00
Jeremy Stretch
8781d03aa7 Merge pull request #9067 from jasonyates/FR8920-nonrackeddevices
Limit amount of nonracked devices displayed
2022-04-12 11:38:14 -04:00
jeremystretch
1266a2f753 Fixes #9116: assigned_to_interface filter for IP addresses should not match FHRP group assignments 2022-04-12 10:07:31 -04:00
jeremystretch
23d2cf1718 Closes #9081: Add fhrpgroup_id filter for IP addresses 2022-04-12 09:56:33 -04:00
jeremystretch
d11031c694 Closes #9099: Enable display of installed module serial & asset tag in module bays list 2022-04-12 09:00:19 -04:00
jeremystretch
916e976297 Tweak changelog for #9061 2022-04-12 08:22:17 -04:00
jeremystretch
27a9313396 #9096: Correct getattr() call 2022-04-12 08:13:08 -04:00
jeremystretch
517d0158b6 Fixes #9096: Remove duplicate filter tag when filtering by "none" 2022-04-11 08:51:11 -04:00
jeremystretch
a9e05aec7c Fixes #9100: Include position field in module type YAML export 2022-04-11 08:28:10 -04:00
Joe Izzard
9b3e43cb21 Closes #8415: Adds Neutrik power connectors 2022-04-11 12:20:44 +01:00
Jason Yates
23fddf74b6 Updating to use a single queryset
Updating to use a single queryset for both template variables
2022-04-10 09:06:14 +01:00
Jeremy Stretch
9b8de19fe6 Merge pull request #9085 from stephanblanke/8913-improve-documentation-regarding-vcs
Closes #8913: Improve documentation regarding VC masters interfaces
2022-04-08 14:17:35 -04:00
jeremystretch
1d8b8aad3b Changelog & documentation for #5479 2022-04-08 14:10:21 -04:00
Jeremy Stretch
84c30580aa Merge pull request #9028 from kkthxbye-code/job-timeout
Fixes #5479 - Allow setting individual timeouts on scripts and reports
2022-04-08 13:54:08 -04:00
Stephan Blanke
a5f25726cd Closes #8913: Improve documentation regarding VC masters interfaces 2022-04-08 19:39:18 +02:00
Jeremy Stretch
7a6e047519 Merge pull request #9082 from danielestevez/doc-remote-auth-default-group
Conflicting documentation on remote default group
2022-04-08 10:44:38 -04:00
jeremystretch
1e65ef0c1a Fixes #9055: Restore ability to move inventory item to other device 2022-04-08 09:41:37 -04:00
jeremystretch
2269bf0167 Fixes #9079: Fail validation when an inventory item is assigned as its own parent 2022-04-08 09:08:55 -04:00
jeremystretch
5526f8e3dc Fix dumpdata ordering for VRFs 2022-04-07 21:19:38 -04:00
Jason Yates
2781b8535c Update nonracked_devices.html
Fixing issue where Displaying 10 of 10 would appear when it's not required.
2022-04-07 08:32:50 +01:00
Jason Yates
c3d9910e08 Limit amount of nonracked devices displayed
Fixes #8920

Limits the amount of non-racked devices on Site and Location view to 10 and provides a link to the device list this is pre-filtered to the relevant site or location.
2022-04-07 08:21:13 +01:00
jeremystretch
b9f6a5625f Update supported Python versions 2022-04-06 20:30:29 -04:00
jeremystretch
f4e78b0ea6 Fixes #9065: Min/max VID should not be required when filtering VLAN groups 2022-04-06 20:29:28 -04:00
jeremystretch
d93e944c07 Closes #8973: Display VLAN group count under site view 2022-04-06 20:12:14 -04:00
jeremystretch
6760533a10 Fixes #8931: Copy assigned tenant when cloning a location 2022-04-06 20:01:09 -04:00
Daniel Sheppard
85e65edb7d Fixes #9057 - Fix missing instance counts for module types 2022-04-06 13:46:31 -05:00
Daniel Sheppard
523390cd8e #9061 - Change inheritance order for DeviceComponentFilterSets 2022-04-06 13:35:22 -05:00
jeremystretch
ea197eff5f PRVB 2022-04-05 17:12:13 -04:00
Jeremy Stretch
d4938b7699 Merge pull request #9041 from netbox-community/develop
Release v3.2.0
2022-04-05 17:03:58 -04:00
jeremystretch
6ee6227b67 Pin Jinja2 to v3.0 2022-04-05 16:34:15 -04:00
jeremystretch
6f0ae8a5b8 Release v3.2.0 2022-04-05 16:26:07 -04:00
jeremystretch
c1b7f09530 Ensure legacy data checks run before other migrations 2022-04-05 15:56:21 -04:00
jeremystretch
9addde00e3 Merge branch 'feature' into develop 2022-04-05 14:51:26 -04:00
Jeremy Stretch
10f8a94399 Merge pull request #9039 from netbox-community/develop
Release v3.1.11
2022-04-05 14:45:41 -04:00
jeremystretch
631de20a8d Release v3.1.11 2022-04-05 14:35:27 -04:00
jeremystretch
66464fd807 Implement bypass for migration safeguard 2022-04-05 14:24:28 -04:00
jeremystretch
0f5fe746e0 Add warning for legacy ASN field on site 2022-04-05 10:22:42 -04:00
jeremystretch
a7fc8621a8 Closes #9036: Add bulk edit capability for site contact fields 2022-04-05 10:18:20 -04:00
jeremystretch
8b92bc6c4a Add migration safeguard to prevent accidental destruction of data 2022-04-05 10:07:48 -04:00
jeremystretch
830b56ac9e Check that ChoiceSet CHOICES is mutable if key is set 2022-04-05 08:40:30 -04:00
jeremystretch
fcfdbfc2b5 Merge branch 'develop' into feature 2022-04-05 08:21:39 -04:00
jeremystretch
e575279738 Changelog for #8365 2022-04-04 15:58:54 -04:00
Jeremy Stretch
796f7258cc Merge pull request #9018 from stephanblanke/8365-filering-for-child-devices-by-parent-device
Closes #8365: Filtering for child devices by parent device
2022-04-04 15:18:20 -04:00
jeremystretch
ea88b040ec Fixes #8658: Fix display of assigned components under inventory item lists 2022-04-04 14:40:22 -04:00
kkthxbye-code
69b4d0d44b #9028 - Fix pep8 syntax 2022-04-04 18:13:13 +02:00
kkthxbye-code
36d6ae33d1 Allow setting individual timeouts on scripts and reports 2022-04-04 18:00:38 +02:00
Stephan Blanke
8126087b3e Merge branch 'netbox-community:develop' into 8365-filering-for-child-devices-by-parent-device 2022-04-02 18:10:12 +02:00
Stephan Blanke
780459d2bf Closes #8365: Filtering for child devices by parent device 2022-04-02 18:08:48 +02:00
jeremystretch
e2b6d69596 Monkey-patch Django's force_text in lieu of graphene-django 2.16 release 2022-04-01 10:15:45 -04:00
jeremystretch
7fff1e6fe5 Closes #9003: Enable bulk module assignment/removal for device components 2022-04-01 09:42:30 -04:00
jeremystretch
b576ce72a1 Merge branch 'develop' into feature 2022-04-01 09:13:37 -04:00
jeremystretch
99a01207bc Closes #9012: Linkify circuits count in providers list 2022-04-01 09:06:44 -04:00
Jeremy Stretch
6d6457ad18 Merge pull request #9010 from kkthxbye-code/fix-9009
Annotate rack search queryset with device count
2022-04-01 08:43:22 -04:00
jeremystretch
35f3a42e7f Remove 2022 survey announcement 2022-04-01 08:31:53 -04:00
kkthxbye
a84ae88214 Annotate rack search queryset with device count 2022-04-01 09:34:16 +02:00
jeremystretch
4fae42de51 Fixes #9007: Fix FieldError exception when instantiating a device type with nested inventory items 2022-03-31 12:07:02 -04:00
jeremystretch
1d55c04c21 Closes #9006: Enable custom fields, custom links, and tags for journal entries 2022-03-31 11:40:02 -04:00
jeremystretch
7a54658710 Fixes #8978: Fix instantiation of front ports when provisioning a module 2022-03-31 09:03:01 -04:00
jeremystretch
bddc35bbc7 Closes #8496: Enable assigning multiple ASNs to a provider 2022-03-30 17:17:36 -04:00
jeremystretch
cdacd2a951 Closes #8593: Add link field to contact model 2022-03-30 16:19:12 -04:00
jeremystretch
58e4d08bb0 Closes #8790: Include site and prefixes columns in VLAN group VLANs table 2022-03-30 15:51:12 -04:00
jeremystretch
3ff4fd814e Merge branch 'develop' into feature 2022-03-30 15:45:40 -04:00
jeremystretch
91e8f57afb Change log & cleanup for #8163, #8866 2022-03-30 15:39:28 -04:00
Jeremy Stretch
e3d0628a06 Merge pull request #8870 from minitriga/issue_8866
APISelect JavaScript only perform fetch if Django substitutes have been replaced.
2022-03-30 15:37:14 -04:00
Jeremy Stretch
9fca9ca7ec Merge pull request #8983 from stephanblanke/8163-bridge-members-panel-in-interface-view
Closes #8163: Add bridge members panel to interface view
2022-03-30 15:27:37 -04:00
jeremystretch
2d09a40663 Closes #8601: Include group when displaying tenant assigned to cluster 2022-03-30 15:04:13 -04:00
jeremystretch
1eaf55c555 Closes #8336: Add note about referening object in custom link template 2022-03-30 14:14:49 -04:00
jeremystretch
db535e6453 Closes #8436: Update token permissions documentation 2022-03-30 14:05:27 -04:00
jeremystretch
dadec9d3cb Add instruction for checking out an older release 2022-03-30 13:03:08 -04:00
jeremystretch
ff780177d0 Clean up exception templates 2022-03-29 16:01:10 -04:00
Stephan Blanke
b7e2ea1ca5 Closes #8163: Add bridge members panel to interface view 2022-03-28 20:37:00 +02:00
jeremystretch
bf50134d94 #8976: Set required=False on serializer field 2022-03-28 14:18:45 -04:00
jeremystretch
227bac7c60 Fixes #8976: Add missing object_type field on CustomField REST API serializer 2022-03-28 13:34:37 -04:00
jeremystretch
340ff82487 Fixes #8970: Permit nested inventory item templates on device types 2022-03-28 13:22:43 -04:00
jeremystretch
894665b067 Changelog for #8785, #8830 2022-03-28 10:35:49 -04:00
jeremystretch
48b7294ff1 #8785: Tweak regex validator to avoid creating no-op migration file 2022-03-28 10:35:00 -04:00
Jeremy Stretch
cde8ff282d Merge pull request #8962 from apellini/patch-2
#8830 Adding ClusterXL
2022-03-28 10:06:50 -04:00
Jeremy Stretch
0b44a595e2 Merge pull request #8945 from fmlshai/develop
Fix #8785 - allow wildcard dns records
2022-03-28 10:04:33 -04:00
Jeremy Stretch
37781bd208 Fix parentheses 2022-03-28 09:37:33 -04:00
fmlshai
e0344e9251 Update validators.py
Updated DNSValidator regex
2022-03-28 15:20:19 +02:00
jeremystretch
a1808a54a4 Fixes #8974: Use monospace font for text areas in config revision form 2022-03-28 09:13:15 -04:00
neope
1cef513f6c Adding ClusterXL as FHRPGroupProtocolChoices
Adding in choices group standard, checkpoint and cisco and ungroupped other.
2022-03-25 19:41:35 +01:00
jeremystretch
22908a12e9 Merge branch 'develop' into feature 2022-03-25 10:38:44 -04:00
jeremystretch
57759aa4a3 PRVB 2022-03-25 10:29:44 -04:00
Jeremy Stretch
d50148fab7 Merge pull request #8968 from netbox-community/develop
Release v3.1.10
2022-03-25 10:28:38 -04:00
jeremystretch
271c2ea3e3 Correct changelog 2022-03-25 10:16:40 -04:00
jeremystretch
20a6f6ac79 Release v3.1.10 2022-03-25 10:14:37 -04:00
jeremystretch
8924d5fa05 Correct change log 2022-03-25 10:04:48 -04:00
jeremystretch
26637d934b Change log for #8232, #8926 2022-03-25 10:02:21 -04:00
jeremystretch
dde4495e20 #8232: Cleanup & test fix 2022-03-25 09:59:58 -04:00
tranthang2404
1278429518 Closes #8232: Add color show full 100% utilization (#8816)
* Closes #8232: Add color show full 100% utilization

* change rounding

* change rounding

* fix hard code html

* format
2022-03-25 09:52:13 -04:00
Jeremy Stretch
421f5a03aa Merge pull request #8963 from minitriga/issue_8926
Closes #8926: Implement type and roll to device bay table
2022-03-25 09:12:45 -04:00
Alex Gittings
a433d5d59d Closes #8926: Implement type and roll to device bay table 2022-03-25 09:25:55 +00:00
neope
934493bf5f #8830 Adding ClusterXL
Adding ClusterCL Choice to FHRP Group
2022-03-25 08:35:57 +01:00
jeremystretch
58f97bc0e7 Merge develop into feature 2022-03-24 16:35:35 -04:00
jeremystretch
a5820e27a6 Fixes #8905: Disable ordering by assigned tags to prevent erroneous results 2022-03-24 11:56:18 -04:00
jeremystretch
d312fe7c2b Fixes #8696: Fix help link under FHRP group assigment creation view 2022-03-24 11:14:24 -04:00
Jeremy Stretch
124fc73386 Merge pull request #8953 from 991jo/fix-8952
Fixed #8952: rack rear faces link not clickable
2022-03-24 10:53:42 -04:00
jeremystretch
c78e7c14d3 Fixes #8947: Retain filter parameters when handling an export template exception 2022-03-24 10:47:39 -04:00
jeremystretch
30a6dc2f64 Fixes #8951: Allow changing device type & platform to different manufacturer simultaneously 2022-03-24 10:34:09 -04:00
Johannes Erwerle
6ceb78fd4c Fixed #8952: rack rear faces link not clickable 2022-03-24 09:34:23 +01:00
jeremystretch
e09ab79a1a Changelog for #8924 2022-03-23 17:01:57 -04:00
Jeremy Stretch
b6587c00ce Merge pull request #8925 from kkthxbye-code/fast_script_list
Fix #8924 - Speed up rendering of the script list
2022-03-23 16:43:15 -04:00
jeremystretch
df2f6d4a7d Fixes #8872: Enable filtering by custom object fields 2022-03-23 14:34:42 -04:00
jeremystretch
3b69f07b86 Clean up module template 2022-03-23 14:00:56 -04:00
jeremystretch
fdc0036872 Closes #8846: Enable image attachments for module types 2022-03-23 13:58:35 -04:00
jeremystretch
fab90ecbe5 Closes #8803: Enable adding components from module view 2022-03-23 13:50:03 -04:00
jeremystretch
f72d160249 Add form examples to plugin dev docs 2022-03-23 12:12:31 -04:00
jeremystretch
b65404a8a9 Fix cable creation view 2022-03-23 10:55:09 -04:00
jeremystretch
42446cb87b Clean up interface template 2022-03-23 10:51:38 -04:00
fmlshai
f45e64c756 Fix #8785 - allow wildcard dns records
Added * to the DNSValidator regex to allow wildcard domains like *.example.com
2022-03-23 14:38:26 +01:00
kkthxbye
ae46cd33b6 - Move do_not_call_in_templates to BaseScript
- Fix the name classproperty
2022-03-23 12:18:14 +01:00
Jeremy Stretch
61eb22f4f7 Merge pull request #8943 from netbox-community/8912-linkify-filter
Closes #8912: Add linkify template filter
2022-03-22 15:47:29 -04:00
jeremystretch
7c14b8d97b Clean up display of tenant groups 2022-03-22 15:29:05 -04:00
jeremystretch
8d682041a4 Extend linkify() to accept an attr name for the link text 2022-03-22 15:17:34 -04:00
jeremystretch
75dae5fbe8 Introduce linkify template filter 2022-03-22 14:51:20 -04:00
jeremystretch
dc92e19f76 Limit custom field object types to suitable models 2022-03-22 13:12:31 -04:00
jeremystretch
ce87e0dfa4 Merge branch 'develop' into feature 2022-03-22 12:57:23 -04:00
jeremystretch
41efad4056 Fixes #8919: Fix filtering of VLAN groups by site under prefix edit form 2022-03-22 11:39:26 -04:00
jeremystretch
5f89226cd7 Update testing instructions 2022-03-22 10:59:43 -04:00
jeremystretch
197dfca5b2 Fixes #8935: Correct ordering of next/previous racks to use naturalized names 2022-03-22 09:50:38 -04:00
jeremystretch
e6980626d8 Fixes #8932: Fix error when setting null value for interface rf_role via REST API 2022-03-22 09:37:57 -04:00
jeremystretch
ca44a654a5 Closes #8794: Support dynamic configuration for JournalEntry kinds 2022-03-21 16:35:24 -04:00
jeremystretch
48dc76a694 Closes #8685: Add modules, module types to global search 2022-03-21 16:27:38 -04:00
jeremystretch
0c5eab680b Document the use of WritableNestedSerializer 2022-03-21 15:22:45 -04:00
jeremystretch
3dc671395e Introduce local ChoiceField and MultipleChoiceField classes 2022-03-21 15:08:05 -04:00
jeremystretch
ba1e6e91b9 Rename ObjectEditView.model_form to form 2022-03-21 10:22:30 -04:00
kkthxbye
22980cea7b Speed up rendering of the script list 2022-03-21 10:46:51 +01:00
jeremystretch
ed0c19807a Link to plugin tutorial in development docs 2022-03-18 13:43:58 -04:00
jeremystretch
15005209d1 Merge branch 'develop' into feature 2022-03-18 13:34:31 -04:00
jeremystretch
f64987d0c4 Changelog for #8813 2022-03-18 13:25:47 -04:00
PieterL75
0da04232f3 Fixes #8813 Retain search value after submitting (#8907)
* Fixes #8813 Retain search value after submitting

* remove autofocus from searchbar

Co-authored-by: Pieter Lambrecht <pieter.lambrecht@sentia.com>
2022-03-18 13:23:39 -04:00
jeremystretch
8d53b46e82 Merge branch 'develop' into feature 2022-03-18 13:17:11 -04:00
jeremystretch
9a0bb14e76 Install tblib to fix tracebacks during parallel test runs 2022-03-18 11:47:43 -04:00
jeremystretch
900825a2af Changelog for #8457, #8575, #8645 2022-03-18 11:46:49 -04:00
Jeremy Stretch
52de50aa64 Merge pull request #8873 from minitriga/issue_8457
Closes: #8457 - Nonracked  Devices Location/Site
2022-03-18 11:32:24 -04:00
Jeremy Stretch
1541060091 Merge pull request #8742 from minitriga/issue_8645
Allow filtering on Core models for Contacts
2022-03-18 11:24:09 -04:00
Alex Gittings
50bc0caccf Fix issues with ordering and add field_groups 2022-03-18 14:58:51 +00:00
minitriga
8f5b14ec84 Update netbox/dcim/forms/filtersets.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-03-18 14:39:37 +00:00
minitriga
da37db1ea9 Update netbox/circuits/filtersets.py
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2022-03-18 14:39:22 +00:00
Alex Gittings
5abde866f1 Closes: #8457 - implement nonracked devices on locations and sites 2022-03-18 14:34:42 +00:00
Jeremy Stretch
32eed72d2b Merge pull request #8874 from minitriga/issue_8575
Closes: #8575 - Show Racks on Cable Table and Cable Page
2022-03-18 10:14:40 -04:00
jeremystretch
585b5a221d Changelog for #8553 2022-03-17 17:06:21 -04:00
Jeremy Stretch
db52fe475a Merge pull request #8573 from 991jo/asn_search_fix
Fixes 8553: Fix contacts and ASNs missing in the search dropdown and …
2022-03-17 16:43:30 -04:00
jeremystretch
57ad730f74 Fixes #8888: Use HTTPS to pull graphene-django branch from GitHub 2022-03-17 08:57:13 -04:00
Jeremy Stretch
c5db99f383 Merge pull request #8887 from sc68cal/sc68cal-patch-1
Update GitHub link for Netaddr
2022-03-16 20:18:47 -04:00
Sean M. Collins
fd6d3205d0 Update GitHub link for Netaddr
The project was renamed/moved to a new location in GitHub and we should update the link
in case the redirect stops functioning
2022-03-16 11:45:14 -04:00
Alex Gittings
9548cf32ff add new line 2022-03-15 00:05:10 +00:00
Alex Gittings
bdbfff911b add new line 2022-03-15 00:04:22 +00:00
Alex Gittings
a143eca57d Closes: #8575 Implement rack_a and rack_b for cable table 2022-03-15 00:02:16 +00:00
jeremystretch
2101f714cc Closes #8848: Show module bay & type in API serilizer display 2022-03-14 14:06:14 -04:00
Alex Gittings
3edff89a4d Fixes: #8866 - Does not perform API Select Search if a django peramiter has not been replaced 2022-03-14 17:57:33 +00:00
jeremystretch
f2079de2cb Fixes #8838: Fix FieldError exception during global search 2022-03-14 13:55:35 -04:00
jeremystretch
93527d892b Fixes #8845: Correct default ASN formatting in table 2022-03-14 13:49:54 -04:00
jeremystretch
b91218308b Fixes #8869: Fix NoReverseMatch exception when displaying tag w/assignments 2022-03-14 13:47:41 -04:00
jeremystretch
6170138124 Rename ActionsColumn sequence to actions 2022-03-14 13:45:21 -04:00
jeremystretch
1add5accf2 Fixes #8844: Correct VLAN ID max value 2022-03-14 09:57:51 -04:00
jeremystretch
faba6c9bdc Fixes #8850: Show airflow field on device REST API serializer when config context data is included 2022-03-14 09:54:11 -04:00
jeremystretch
4eb7cd06b4 Adjust font size for serial number under device status view 2022-03-14 09:46:40 -04:00
jeremystretch
245cff887c Move q filter to NetBoxModelFilterSet 2022-03-11 16:16:58 -05:00
jeremystretch
59aba52b03 Rename OrderedDefaultRouter to NetBoxRouter & document for plugins 2022-03-11 15:59:03 -05:00
jeremystretch
6d05a4117a Update plugins documentation 2022-03-11 15:47:52 -05:00
jeremystretch
49e5268d48 Fitlerset class declration on ObjectListField should be optional 2022-03-11 15:46:16 -05:00
jeremystretch
76445bd19c Move bulk edit/delete buttons to template tags 2022-03-10 16:27:53 -05:00
jeremystretch
5a3e99626d Simplify add/import/export button invocation 2022-03-10 15:56:09 -05:00
jeremystretch
ffc29d14a8 Add tags field to NetBoxModelForm 2022-03-10 15:08:23 -05:00
jeremystretch
7cffa6ebcc Release v3.2.0-beta2 2022-03-09 12:56:20 -05:00
Alex Gittings
342f1d31be fix pycodestyle issues 2022-03-09 17:55:45 +00:00
Alex Gittings
b779bbfc9d add contacts to site table 2022-03-09 17:49:02 +00:00
Alex Gittings
ef6576bdd6 merge develop into issue 2022-03-09 17:47:58 +00:00
Alex Gittings
27dab262de add columns for each model table that has contacts 2022-03-09 17:35:25 +00:00
Jeremy Stretch
f559ceeb7f Merge pull request #8833 from netbox-community/8823-api-serializers
Closes #8823: Add plugin support for REST API components
2022-03-09 12:31:01 -05:00
jeremystretch
e36ae4f0f7 Document support for NetBoxModelSerializer, NetBoxModelViewSet 2022-03-09 11:52:14 -05:00
Alex Gittings
412c1df15a acidentally removed NestedContactAssignmentSerializer in previous commit 2022-03-09 16:48:29 +00:00
Alex Gittings
73af3ba095 remove contacts from api endpoints 2022-03-09 16:45:19 +00:00
jeremystretch
bbdeae0ed9 Move CustomFieldModelViewSet functionality into NetBoxModelViewSet 2022-03-09 11:44:55 -05:00
Alex Gittings
21b7564976 Merge branch 'issue_8645' of https://github.com/minitriga/netbox into issue_8645 2022-03-09 16:36:16 +00:00
Alex Gittings
bf22b820bf Fixes #8645; Allow filtering on core models in the UI 2022-03-09 16:35:47 +00:00
jeremystretch
efd5a73a18 Refactor API views 2022-03-09 11:27:42 -05:00
jeremystretch
a11abf87ec Refactor API serializers 2022-03-09 10:59:22 -05:00
thatmattlove
8cd24b1a67 Fixes #8820: correct navbar color in dark mode 2022-03-08 14:28:52 -07:00
jeremystretch
28f7b411ed Revise plugins documentation 2022-03-08 15:44:35 -05:00
jeremystretch
655bc49fad Clean up form select widgets 2022-03-07 15:11:57 -05:00
jeremystretch
18c9ee2f9d Closes #8804: Include module type count on manufacturer view 2022-03-07 13:44:27 -05:00
jeremystretch
07f2cdac58 Fixes #8810: Enable filtering modules by type 2022-03-07 13:40:49 -05:00
jeremystretch
06781beb81 Fixes #8815: Fix display of custom object fields in table columns 2022-03-07 13:30:52 -05:00
jeremystretch
cd29293dd6 Merge v3.1.9 2022-03-07 10:55:30 -05:00
jeremystretch
1fdc7a9163 Merge branch 'master' into develop 2022-03-07 10:49:06 -05:00
Jeremy Stretch
6807db4967 Merge pull request #8818 from netbox-community/fix-tzdata
Add tzdata dependency
2022-03-07 10:48:12 -05:00
jeremystretch
b0ea416d6d Add tzdata dependency 2022-03-07 10:38:05 -05:00
jeremystretch
c515218760 PRVB 2022-03-07 10:07:07 -05:00
Jeremy Stretch
8053ea0a22 Merge pull request #8814 from netbox-community/develop
Release v3.1.9
2022-03-07 09:59:16 -05:00
jeremystretch
a5603c9953 Release v3.1.9 2022-03-07 09:47:31 -05:00
Jeremy Stretch
bffe63a233 Merge pull request #8793 from seros1521/fix_8715
Fixes #8715: eliminates duplicates when used in many-to-many field constraints
2022-03-07 09:27:14 -05:00
jeremystretch
2cfbfe473e Fixes #8807: Correct REST API URL for FHRP group assignments 2022-03-07 09:02:47 -05:00
jeremystretch
3c78c100b5 Fixes #8808: Fix members count under FHRP group list 2022-03-07 09:00:00 -05:00
jeremystretch
2451b0a5b1 Clean up search results layout 2022-03-07 08:50:58 -05:00
Jeremy Stretch
85e9438ff7 Merge pull request #8734 from emersonfelipesp/add_pluginfooter_block
Closes #8733: Add {% block pluginfooter %} to 'base/layout.html' template
2022-03-04 16:07:54 -05:00
jeremystretch
81610ba86e Fixes #8724: Fix exception during device import with invalid device type 2022-03-04 13:45:59 -05:00
jeremystretch
6423b386d2 Closes #8758: Allow empty string substitution when renaming objects in bulk 2022-03-04 13:30:32 -05:00
jeremystretch
5c48d116eb Closes #8664: Show assigned ASNs/sites under list views 2022-03-04 13:20:17 -05:00
seros1521
90257e9dee Fixes #8715: eliminates duplicates when used in many-to-many field constraints
When using permissions that use tags, a user may receive multiple permissions
of the same type if multiple tags are assigned to the device. This causes the
RestrictedQuerySet class to generate a query similar to this:

>>> dcim.models.Device.objects.filter(Q(tags__name='tag1')|Q(tags__name='tag2'))
<ConfigContextModelQuerySet [<Device: device1>, <Device: device1>]>

This query returns the same object twice if both tags are assigned to it. This
is due to the use of the django-taggit library. The library's documentation
describes this behavior as expected and suggests using an explicit distinct()
call in queries to avoid duplicates.

However, the use of DISTINCT in queries has a global side effect -
deduplication of responses, which may or may not be acceptable behavior
(depending on further use). Since it is not known how RestrictedQuerySet will
be used in the rest of the code, it was decided to dedupe using a subquery.
2022-03-04 14:37:05 +07:00
jeremystretch
a740203444 Fixes #8792: Fix creation of circuit terminations via UI 2022-03-03 16:42:48 -05:00
jeremystretch
25dc9cc14a Fixes #7891: Fix display of form validation failures during device component creation 2022-03-03 16:18:24 -05:00
jeremystretch
d4d2af46ac Refactor tables modules 2022-03-03 15:16:23 -05:00
jeremystretch
64acfc3187 #8787: Fix toggling of PK table column 2022-03-03 14:09:32 -05:00
jeremystretch
62a1d4b3e0 Fixes #8763: Fix inventory item component assignment 2022-03-03 11:52:36 -05:00
jeremystretch
e6072a51f8 Closes #8765: Display and enable bulk clearing of user's table preferences 2022-03-03 10:03:43 -05:00
jeremystretch
21e3159711 Hide table checkboxes when no bulk actions are enabled 2022-03-02 16:13:59 -05:00
jeremystretch
dadd8cb93a Support the direct use of TagFilter 2022-03-02 12:06:07 -05:00
jeremystretch
5f8af6ad66 Closes #8779: Enable the use of ChoiceSet by plugins 2022-03-02 11:43:28 -05:00
Jeremy Stretch
3436905744 Merge pull request #8771 from jasonyates/8770-documentation
Updating mkdocs to automatically adjust theme
2022-03-02 08:38:04 -05:00
Jason Yates
e3258bcf5a Updating mkdocs to automatically adjust theme
Automatically adjusts documentation theme between default/slate based on users preference for dark mode.
2022-03-02 08:45:22 +00:00
jeremystretch
2b6e0405a5 Closes #8736: Add PC and UPC fiber end faces for LC/SC/LSH port types 2022-03-01 11:43:00 -05:00
jeremystretch
7f752d9102 Closes #8762: Link to rack elevations list from site view 2022-03-01 11:32:17 -05:00
jeremystretch
df430394b0 Closes #8766: Add SCTP to service protocols list 2022-03-01 11:07:19 -05:00
Jeremy Stretch
638d89e73b Merge pull request #8767 from peteeckel/fix/plugin-api-endpoint
Correct the endpoint for plugin API view names
2022-03-01 10:11:49 -05:00
jeremystretch
1ab51ca04e Announce 2022 community survey 2022-03-01 09:29:58 -05:00
jeremystretch
cb0386779c Announce 2022 community survey 2022-03-01 09:17:24 -05:00
Peter Eckel
4dc428d75b Closes #8764: Correct the endpoint for plugin API view names 2022-03-01 13:11:49 +01:00
jeremystretch
e7496c8840 Use get_viewname() to resolve view name under ObjectDeleteView 2022-02-28 15:20:41 -05:00
jeremystretch
d6c272cfd6 Fixes #8764: Correct view name resolution for dynamic form fields 2022-02-28 15:17:49 -05:00
jeremystretch
da6ed8ea11 Fixes #8761: Correct view name resolution under journal entry views 2022-02-28 12:10:22 -05:00
Emerson Pereira
28de330b50 Replace 'pluginfooter' block with 'footer' and 'footer_links' blocks
- 'footer' blocks represents the <footer> html tag
- 'footer_links' are the anchor tags inside nav
2022-02-26 01:13:11 -03:00
jeremystretch
7823fa05ef Fix changelog table column ordering 2022-02-25 14:19:50 -05:00
jeremystretch
fab4d95156 Merge branch 'develop' into feature 2022-02-25 14:06:45 -05:00
jeremystretch
06cb7f35f1 Update changelog 2022-02-25 13:26:02 -05:00
thatmattlove
796c5d785e Fix navbar-toggler-icon visibility in dark mode 2022-02-25 11:23:14 -07:00
thatmattlove
c88db77814 Fixes #8633: Recheck sidenav state on window resize
* Recheck sidenav state on window resize
* Remove `data-sidenav-pinned` attribute when hiding sidenav
* Remove `data-sidenav-hidden` attribute when showing sidenav
2022-02-25 11:23:14 -07:00
Jeremy Stretch
6fe0f4cd7d Merge pull request #8741 from djothi/develop
Closes #8594: Add description filter for all models with a description field
2022-02-25 13:18:40 -05:00
Jeremy Stretch
3bf90c3c38 Merge pull request #8735 from minitriga/issue_8629
Add description to tag table search function
2022-02-25 13:13:14 -05:00
Matt Love
992f3535b7 Merge pull request #8722 from stephanblanke/develop
Generalize scopeSelector js to allow easy reuse of existing layout configurations
2022-02-25 10:55:18 -07:00
Djothi Carpentier
06eacb5a5c Add description filter to WirelessLAN & WirelessLink 2022-02-25 18:15:33 +01:00
Djothi Carpentier
c0152ce52f Add description filter to VMInterface 2022-02-25 18:15:33 +01:00
Djothi Carpentier
5a60224d77 Add description filter for Token & ObjectPermission 2022-02-25 18:15:33 +01:00
Djothi Carpentier
c137fa2022 Add description filter for Tenant & ContactRole 2022-02-25 18:15:33 +01:00
Djothi Carpentier
879d01a750 Add description filter for VRF, RouteTarget, Aggregate, ASN, Role, Prefix, IPRange, VLAN & Service 2022-02-25 18:15:33 +01:00
Djothi Carpentier
6db878743c Add description filter for CustomField, ExportTemplate & Tag 2022-02-25 18:15:33 +01:00
Djothi Carpentier
08b90090f5 Add description filter for Site, RackRole, RackReservation & DeviceRole 2022-02-25 18:15:33 +01:00
Djothi Carpentier
42466d5fc4 Add description filter for ProviderNetwork, CircuitType, Circuit & CircuitTermination 2022-02-25 18:15:22 +01:00
Daniel Estévez
a3f172fc77 Conflicting documentation on remote default group
In the current documentation we have two seemingly conflicting sentences:
* REMOTE_AUTH_DEFAULT_GROUPS: (Requires REMOTE_AUTH_ENABLED.)
* REMOTE_AUTH_ENABLED: (REMOTE_AUTH_DEFAULT_GROUPS will not function if REMOTE_AUTH_ENABLED is enabled)
2022-02-25 11:30:13 -05:00
jeremystretch
0953bba0a3 Closes #8747: Rename ObjectListView action_buttons to actions 2022-02-24 16:33:51 -05:00
Alex Gittings
36d6dd1ca9 Fixes #8645; Allow filtering on core models in the UI and API for contact assignments 2022-02-24 17:08:38 +00:00
Alex Gittings
4863591bc8 Fixes #8629; Add description to tag table search function 2022-02-24 10:02:21 +00:00
Emerson Pereira
c489501441 Add {% block pluginfooter %} to 'base/layout.html' template
Makes it easy to insert footer information into Netbox footer.
2022-02-24 00:38:11 -03:00
jeremystretch
6638f560f8 Fixes #8683: Fix ZoneInfoNotFoundError exception under Python 3.9+ 2022-02-23 14:16:12 -05:00
jeremystretch
a2fe23549b Closes #8667: Support position patterning when creating module bays & templates 2022-02-23 13:02:14 -05:00
Stephan Blanke
1a7438acfd Fixed code comments 2022-02-22 23:32:34 +01:00
Stephan Blanke
b1de85a44f Fixes #8710: Show/hide form elements based on scope selection 2022-02-22 23:27:11 +01:00
jeremystretch
6604ebfd01 Fix tag background color 2022-02-22 13:10:04 -05:00
jeremystretch
7872460162 Fixes #8682: Limit available VLANs by group min/max VIDs 2022-02-22 11:39:05 -05:00
jeremystretch
d9696ae34c Fixes #8714: Remove label from comments form field 2022-02-22 10:47:02 -05:00
jeremystretch
7c937bf8b8 Fixes #8692: Restore misisng tabs under cluster, VM views 2022-02-22 09:35:21 -05:00
jeremystretch
4913d7ee39 Fixes #8713: Restore missing "add" button on services list view 2022-02-22 09:05:31 -05:00
jeremystretch
2503a3e3ca Fixes #8717: Fix redirection after bulk edit/delete of prefixes from aggregate view 2022-02-22 09:02:31 -05:00
Johannes Erwerle
538984c6d2 Fixes 8553: Fix Provider network, ASN, and contact options missings from global search selector 2022-02-21 12:26:12 +01:00
jeremystretch
5f92ed492b Update development docs 2022-02-18 15:35:08 -05:00
jeremystretch
bca0978434 Clean up component template creation for ModuleTypes 2022-02-18 11:56:49 -05:00
jeremystretch
e1f06ec862 Enable adding inventory items to components from device component list views 2022-02-18 10:09:51 -05:00
jeremystretch
a5c8bbf79e Closes #8684: Change custom link template context variable 'obj' to 'object' (backward-compatible) 2022-02-18 09:50:02 -05:00
jeremystretch
e8df373abf Change results tab name for clarity 2022-02-18 09:28:34 -05:00
jeremystretch
39b8eb0ae0 Fixes #8656: Fix migration error when upgrading from a v2.11 database 2022-02-17 14:14:23 -05:00
jeremystretch
eb02f6137e Fixes #8670: Fix filtering device components by installed module 2022-02-17 11:42:18 -05:00
jeremystretch
90ee689d5a Closes #8678: Validate minimum required Python version 2022-02-17 10:31:28 -05:00
jeremystretch
90558a2e80 Fixes #8671: Fix AttributeError when viewing console/power/interface connection lists 2022-02-16 16:45:56 -05:00
jeremystretch
b343035060 Fixes #8674: Fix rendering of tabbed content in documentation 2022-02-16 16:21:32 -05:00
jeremystretch
bcdd006dd5 Fixes #8661: Fix ValueError exception when trying to connect a cable 2022-02-16 09:27:16 -05:00
jeremystretch
92c4e5bfaf Fixes #8659: Fix display of multi-object custom fields after deleting related object 2022-02-16 09:07:01 -05:00
jeremystretch
fdbdf26afc Fixes #8655: Fix AttributeError when viewing cabled interfaces 2022-02-16 08:23:57 -05:00
jeremystretch
1aa295dc84 Release v3.2-beta1 2022-02-15 14:56:01 -05:00
Jeremy Stretch
85b534a0b0 Merge pull request #8650 from netbox-community/8649-config-module
Closes #8649: Enable customization of configuration module
2022-02-15 13:11:50 -05:00
jeremystretch
e728738e34 Closes #8649: Enable customization of configuration module using NETBOX_CONFIGURATION environment variable 2022-02-15 12:36:03 -05:00
Daniel Sheppard
6bbf168cec Fixes #8546 - Fix import to restrict bridge, parent, lag to device interfaces 2022-02-15 09:27:55 -06:00
jeremystretch
aa85ae89c1 Merge v3.1.8 2022-02-15 10:05:07 -05:00
jeremystretch
b5e4fdc3d8 PRVB 2022-02-15 09:32:52 -05:00
Jeremy Stretch
90f91eeea4 Merge pull request #8640 from netbox-community/develop
Release v3.1.8
2022-02-15 09:31:00 -05:00
jeremystretch
ae0ae5fd4e Remove outdated installation video 2022-02-15 09:20:19 -05:00
jeremystretch
5b7486cff8 Release v3.1.8 2022-02-15 09:01:58 -05:00
jeremystretch
14240318f1 Fixes #8609: Display validation error when attempting to assign VLANs to interface with no mode during bulk edit 2022-02-15 08:39:45 -05:00
jeremystretch
18eb9ffae6 Changelog for #8391 2022-02-14 10:34:30 -05:00
Jeremy Stretch
c0a62793c4 Merge pull request #8441 from seulsale/8391-install-date-null
Fixes #8391: Install date should appear empty when exported
2022-02-14 10:32:56 -05:00
jeremystretch
dd848d754f Changelog & cleanup for #8556 2022-02-14 10:06:56 -05:00
Jeremy Stretch
f058850598 Merge pull request #8581 from mathieu-mp/8556-add-full-name-to-change-log-tables
Closes #8556: Add 'Full Name' column to Change Log table
2022-02-14 09:49:36 -05:00
Jeremy Stretch
0c7220016b Merge pull request #8621 from JonathonReinhart/nbshell-tab-complete
Enable tab completion in nbshell
2022-02-14 09:27:35 -05:00
jeremystretch
8c19124717 Fixes #8622: Correct help text of status field on VM import form 2022-02-14 08:54:36 -05:00
Mathieu PAYROL
46f4359e1f Closes #8556: Add 'Full Name' column to Change Log table 2022-02-14 09:07:57 +01:00
Sergio Saucedo
f80452c7d9 Update import order 2022-02-14 00:47:48 -06:00
Sergio Saucedo
611f1b57dd Implement custom DateTimeColumn improving null values handling 2022-02-14 00:44:50 -06:00
Jonathon Reinhart
d1b1a45725 Enable tab completion in nbshell 2022-02-13 03:00:57 -05:00
jeremystretch
6e38f7e532 Changelog for #8577 2022-02-11 16:00:01 -05:00
Jeremy Stretch
2c1e681984 Merge pull request #8584 from 991jo/assigned_contacts_fix
Fixes #8577: Contact assignment amounts not shown during contact glob…
2022-02-11 15:49:02 -05:00
jeremystretch
f11ad99983 Fixes #8611: Fix bulk editing for certain custom link, webhook, and journal entry fields 2022-02-11 15:34:41 -05:00
jeremystretch
e1ef911d40 #8564: Fix deepmerge logic to allow nullifying dicts 2022-02-11 15:22:50 -05:00
jeremystretch
b40afd1006 Create custom RTD configuration 2022-02-11 14:49:45 -05:00
jeremystretch
af01122f33 Fix mkdocs requirements specification 2022-02-11 14:43:43 -05:00
jeremystretch
189e835499 Use project requirements to build docs 2022-02-11 14:36:03 -05:00
jeremystretch
1319b62acb Standardize on get_FOO_color() method for returning ChoiceField colors 2022-02-11 14:25:13 -05:00
jeremystretch
9cf9f1bdba Update documentation for v3.2 2022-02-11 12:57:08 -05:00
jeremystretch
0bf1789464 Fix template context for API token views 2022-02-11 12:28:49 -05:00
jeremystretch
fe6acf07a5 Fix component column on InventoryItemTemplateTable 2022-02-11 12:26:26 -05:00
jeremystretch
8e888b4435 Use ColoredLabelColumn for InventoryItem role 2022-02-11 12:08:16 -05:00
jeremystretch
47e99ecb54 Use ContentTypeChoiceField for object_type 2022-02-11 11:33:16 -05:00
jeremystretch
3b80f67e4d #7844: Show module when viewing/editing device components 2022-02-11 11:09:07 -05:00
jeremystretch
71d3dc6e44 Improve ChoiceFieldColumn to not rely on model method to derive label color 2022-02-10 16:29:19 -05:00
jeremystretch
f111380674 Disable I10N to restore pre-4.0 datetime formatting 2022-02-10 15:30:29 -05:00
jeremystretch
d52105b3b8 Merge branch 'develop' into feature 2022-02-10 15:05:54 -05:00
jeremystretch
a4ca585ef2 Remove references to the old mailing list 2022-02-10 14:56:21 -05:00
jeremystretch
076461a1b6 Change notes for #7150, #8398 2022-02-10 14:22:40 -05:00
Jeremy Stretch
0c7407ebb6 Merge pull request #8592 from 991jo/fix_rack_svg_url
Fixes #7150: Devices on the elevations opposite side should be clickable
2022-02-10 14:21:01 -05:00
Jeremy Stretch
f13a3fa549 Merge pull request #8589 from ITJamie/patch-1
small documentation upgrade regarding group syncs
2022-02-10 14:11:12 -05:00
Markku Leiniö
c0a65eb593 Fixes #8398: Add ConfigParam.size to enlarge specific config fields (#8565)
* Fixes #8398: Add ConfigParam.size to enlarge specific config fields

* Revert "Fixes #8398: Add ConfigParam.size to enlarge specific config fields"

This reverts commit 05e8fff458.

* Use forms.Textarea for the banner config fields
2022-02-10 12:15:02 -05:00
jeremystretch
450a7730d3 Fixes #8578: Object change log tables should honor user's configured preferences 2022-02-10 12:07:09 -05:00
jeremystretch
41ee4b642f Fixes #8604: Fix tag filter on config context list filter form 2022-02-10 11:56:41 -05:00
jeremystretch
d42c59792f #8334: Move object changelog & journaling to generic views 2022-02-09 16:24:10 -05:00
jeremystretch
7c105019d8 Closes #8600: Document built-in template tags & filters 2022-02-09 16:01:58 -05:00
jeremystretch
ee566723d7 Document supported table columns 2022-02-09 14:31:40 -05:00
jeremystretch
23a80770e1 Move configure_table() logic to NetBoxTable.configure() 2022-02-09 14:10:54 -05:00
jeremystretch
10e6ae2094 Introduce get_viewname() as a standard utility 2022-02-09 13:47:12 -05:00
jeremystretch
e2286a4c48 Fix plugin name resolution 2022-02-09 12:55:10 -05:00
thatmattlove
3ee3c52e14 Improve CI performance 2022-02-09 10:26:09 -07:00
Johannes Erwerle
e76a5bfd85 Fixes #7150: Devices on the elevations opposite side should be clickable 2022-02-09 15:07:36 +01:00
Jamie (Bear) Murphy
59c89a3b9d small documentation upgrade regarding group syncs
small documentation upgrade regarding group syncs
2022-02-09 13:05:51 +00:00
jeremystretch
272d6e7437 Closes #8463: Change the created field on all change-logged models from date to datetime 2022-02-08 14:41:44 -05:00
Jeremy Stretch
45e5c4eb46 Merge pull request #8586 from netbox-community/template-cleanup
Closes #8585: Support generic templates for plugins
2022-02-08 13:22:44 -05:00
jeremystretch
d9b7c012a6 Document templates supported for plugin use 2022-02-08 12:14:37 -05:00
jeremystretch
270288f730 Rename bulk operation templates 2022-02-08 11:49:18 -05:00
jeremystretch
1e55d064ab Document the base layout template 2022-02-08 11:45:23 -05:00
jeremystretch
e796fd1e11 Clean up and document the bulk import/edit/delete templates 2022-02-08 11:23:52 -05:00
jeremystretch
b0039e938e Clean up and document object edit & delete templates 2022-02-08 11:19:33 -05:00
Sergio Saucedo
8fc605037a Implement custom DateColumn improving null values handling 2022-02-08 01:26:26 -06:00
Johannes Erwerle
311ddf82c5 Fixes #8577: Contact assignment amounts not shown during contact global search 2022-02-08 08:03:48 +01:00
thatmattlove
9d65486c64 Fixes #8564: reset the table config to an empty object when reset is clicked 2022-02-07 16:03:09 -07:00
jeremystretch
624eda297f Clean up and document object, object list templates 2022-02-07 16:50:17 -05:00
thatmattlove
ccce7751a0 Fixes #8564: only use columns form field in user table config form submit 2022-02-07 14:36:28 -07:00
thatmattlove
7252f0b490 Add optional selector to getSelectedOptions for more specific field selection 2022-02-07 14:34:35 -07:00
thatmattlove
094d2e586a Fix code formatting 2022-02-07 14:14:43 -07:00
thatmattlove
6c1507c88c Implement replaceAll utility function
add #8331 release notes
2022-02-07 14:04:58 -07:00
mathieu-mp
60f48326e1 #8331 Maximize browser compatibility 2022-02-07 14:04:49 -07:00
jeremystretch
26db326483 Fix field group header 2022-02-07 15:09:09 -05:00
jeremystretch
d816f797a4 Clean up release notes 2022-02-07 14:31:49 -05:00
Jeremy Stretch
0e827b6ae6 Merge pull request #8562 from netbox-community/8405-plugins-graphql
Closes #8405: GraphQL support for plugins
2022-02-07 13:08:32 -05:00
jeremystretch
049acde5b0 Closes #8572: Add a pre_run() method for reports 2022-02-07 12:57:02 -05:00
Jeremy Stretch
733a9bb2e1 Merge pull request #8510 from netbox-community/8032-django-40
Closes #8032: Upgrade to Django 4.0
2022-02-07 11:47:38 -05:00
jeremystretch
9ac769e4f8 Pull graphene-django from v2 branch 2022-02-07 11:32:02 -05:00
jeremystretch
2157f93f36 Clean up merge conflict remnants 2022-02-07 10:47:07 -05:00
jeremystretch
5b985a924b Changelog for #8548 & misc cleanup 2022-02-07 10:37:11 -05:00
Jeremy Stretch
ee74989f74 Merge pull request #8566 from tijshuisman/develop
Fixes #8548: Virtual Chassis position zero not shown in device page
2022-02-07 10:32:44 -05:00
jeremystretch
3651ef53e3 #7852: Extend VRF assignment to VM interfaces 2022-02-07 09:54:00 -05:00
Tijs Huisman
e2fc7e8cd7 Fixes #8548: Virtual Chassis position zero not shown in device page 2022-02-05 15:10:03 +01:00
jeremystretch
aff55881df Changelog for #8561 2022-02-04 16:22:30 -05:00
Jeremy Stretch
4d066a075d Merge pull request #8563 from jasonyates/8561-rear-console
Fixes #8561 - Unable to connect a cable from rear ports of a patch panel to a device console port
2022-02-04 16:17:07 -05:00
Jason Yates
201077b6f6 Fixes #8561 - Unable to connect a cable from rear ports of a patch panel to a device console port 2022-02-04 20:44:43 +00:00
jeremystretch
dae5c94be0 Expose BaseObjectType and NetBoxObjectType for plugins 2022-02-04 15:07:35 -05:00
jeremystretch
03ea257711 Initial work on GraphQL 2022-02-04 15:06:58 -05:00
jeremystretch
df95115e2e Refactor plugins registry 2022-02-04 14:37:29 -05:00
jeremystretch
5fea012eab Fix GitHub templates 2022-02-04 13:57:30 -05:00
jeremystretch
a2981870ce #7844: Allow installing modules via UI without replicating components 2022-02-04 11:51:30 -05:00
jeremystretch
60e87cd496 Enable the use of fieldsets on bulk edit forms 2022-02-04 09:59:53 -05:00
jeremystretch
ac1c0b0715 #8054: Allow replacing default static choices 2022-02-03 13:52:42 -05:00
jeremystretch
6575af6b93 Fix saving interfaces 2022-02-03 13:25:27 -05:00
jeremystretch
0e95ca7b69 Fix ProgrammingError exception when annotating config context data 2022-02-03 12:58:54 -05:00
jeremystretch
630ff2abb4 Remove dependency on is_safe_url() 2022-02-03 12:58:54 -05:00
jeremystretch
7611cfddae Tweak related names in old migrations to avoid creating new ones 2022-02-03 12:58:54 -05:00
jeremystretch
ef75f7e650 Upgrade to Django 4.0 2022-02-03 12:58:54 -05:00
jeremystretch
478eefb74c Merge v3.1.7 2022-02-03 12:55:34 -05:00
jeremystretch
795134c084 PRVB 2022-02-03 11:34:36 -05:00
Jeremy Stretch
4f689223b4 Merge pull request #8540 from netbox-community/develop
Release v3.1.7
2022-02-03 11:31:48 -05:00
jeremystretch
70ce7293ac Release v3.1.7 2022-02-03 10:51:41 -05:00
jeremystretch
94a0a3b568 Closes #8502: Omit [all] from social-auth-core in base requirements 2022-02-03 10:39:39 -05:00
jeremystretch
69305f0509 Fixes #8315: Fix display of NAT link for primary IPv4 address under device view 2022-02-03 10:30:26 -05:00
jeremystretch
24f48b11e6 Closes #8530: Indicate CSV or YAML as format for "all data" export 2022-02-03 10:22:38 -05:00
jeremystretch
ff3b48fa59 Fixes #8527: Fix display of changelog retention period 2022-02-03 09:48:21 -05:00
jeremystretch
db3f478598 Closes #8517: Render boolean custom fields as icons in object tables 2022-02-02 16:24:51 -05:00
jeremystretch
e20ac803f3 Fixes #8498: Fix display of selected content type filters in object list views 2022-02-02 16:08:12 -05:00
Daniel Sheppard
ea283365e7 Fixes #8425 - Fix exception when viewing change list/records with removed plugins 2022-02-02 11:18:41 -06:00
jeremystretch
8211830bd8 Fixes #8514: Correct several links to config parameters 2022-02-02 09:27:29 -05:00
jeremystretch
2a8e0f9404 Update table accessors to use dunders in path 2022-02-02 09:18:50 -05:00
jeremystretch
c15cfc26f1 Fixes #8512: Correct file permissions to allow execution of housekeeping script 2022-02-01 16:58:09 -05:00
jeremystretch
4f4e6938eb Closes #7504: Include IP range data under IPAM role views 2022-02-01 16:47:29 -05:00
jeremystretch
8545a547b9 Closes #8494: Include locations count under tenant view 2022-02-01 16:31:34 -05:00
jeremystretch
3bb7184f28 Fixes #8499: Content types REST API endpoint should not require model permission 2022-02-01 15:14:13 -05:00
jeremystretch
74c4f12b27 Closes #8509: CSRF_TRUSTED_ORIGINS is now a discrete configuration parameter 2022-02-01 14:29:52 -05:00
jeremystretch
5af18c2d8a Move pk field declaration under NetBoxModelBulkEditForm 2022-02-01 11:40:23 -05:00
jeremystretch
d38620bad2 Fix bulk nullification of custom fields 2022-02-01 11:31:11 -05:00
jeremystretch
3621b1a0d0 Set model as attribute on bulk edit forms 2022-02-01 11:00:18 -05:00
Jeremy Stretch
4347f624d8 Merge pull request #8504 from netbox-community/8488-plugins-forms
Closes #8488: Support form components for plugins
2022-01-31 16:46:33 -05:00
jeremystretch
bfb1a82754 Update docstrings for base form classes 2022-01-31 16:23:23 -05:00
jeremystretch
d1672f8818 Move nullable_fields out of Meta for bulk edit forms 2022-01-31 16:15:40 -05:00
jeremystretch
353e132cf9 Replace filter_groups with fieldsets on filter forms 2022-01-31 16:03:26 -05:00
jeremystretch
ccb3a75281 Move fieldsets out of Meta for model forms 2022-01-31 15:52:36 -05:00
jeremystretch
cf3ca5a661 Refactor & document supported form fields 2022-01-31 14:10:13 -05:00
jeremystretch
e4eee1cdfc Clean up nullable fields declaration for bulk edit forms 2022-01-28 16:47:54 -05:00
jeremystretch
f4776731ec Establish 4 core forms in netbox.forms.base 2022-01-28 15:48:15 -05:00
Jeremy Stretch
dd71942a5e Merge pull request #8489 from 991jo/fix-unittest-docs
Fixes #8477: The commands for running the tests in the development se…
2022-01-28 14:19:57 -05:00
jeremystretch
19fdd5e151 Fixes #8465: Accept empty string values for Interface rf_channel in REST API 2022-01-28 14:03:36 -05:00
jeremystretch
f537dc632e Fixes #8456: Fix redundant display of VRF RD in prefix view 2022-01-28 13:19:23 -05:00
jeremystretch
2221006970 Closes #8462: Linkify manufacturer column in device type table 2022-01-28 13:09:57 -05:00
Johannes Erwerle
5d29c5958b Fixes #8477: The commands for running the tests in the development section are not working 2022-01-28 17:54:37 +01:00
jeremystretch
0fe72376b1 Remove unused form attribute from BulkDeleteView 2022-01-28 10:00:36 -05:00
Jeremy Stretch
64dd46c7e4 Merge pull request #8482 from 991jo/feature-asn-ui-improvement
Fixes #8476: Bring the ASN Web UI up to the standard set by other obj…
2022-01-28 09:37:54 -05:00
Johannes Erwerle
8df382d976 Fixes #8476: Bring the ASN Web UI up to the standard set by other objects 2022-01-28 11:58:29 +01:00
Jeremy Stretch
3a447d5515 Merge pull request #8473 from netbox-community/6221-pluginviews
Closes #8472: Make view name resolution plugin-safe
2022-01-27 16:56:20 -05:00
jeremystretch
75aa1c7b80 Merge feature 2022-01-27 16:38:36 -05:00
jeremystretch
f1697c6856 Add change log for plugins framework additions 2022-01-27 16:21:19 -05:00
jeremystretch
3c1ea5d0fb Closes #8470: Expose NetBoxTable in the plugins framework 2022-01-27 16:14:02 -05:00
jeremystretch
59d3f5c4ea Split out NetBoxTable from BaseTable 2022-01-27 16:00:38 -05:00
jeremystretch
4a1b4e0485 Closes #8469: Move BaseTable, columns to netbox core app 2022-01-27 15:00:10 -05:00
jeremystretch
083d1acb81 Closes #8453: Rename PrimaryModelFilterSet to NetBoxModelFilterSet & expose for plugins 2022-01-27 09:27:33 -05:00
jeremystretch
c5650bb278 Rename PrimaryModel to NetBoxModel 2022-01-26 20:57:14 -05:00
jeremystretch
a795b95f7e Closes #8451: Include ChangeLoggingMixin in BaseModel 2022-01-26 20:41:41 -05:00
jeremystretch
b67859832a Refactor to_objectchange() 2022-01-26 20:25:23 -05:00
jeremystretch
eb00e20269 Revert "Refactor ChangeLoggedModelFilterSet"
This reverts commit 28de9b8913.
2022-01-26 09:03:30 -05:00
jeremystretch
b797b08bcf Remove BigIDModel 2022-01-26 09:02:04 -05:00
jeremystretch
e4abbfb2c6 Closes #8454: Set DEFAULT_AUTO_FIELD to BigAutoField 2022-01-25 17:37:06 -05:00
jeremystretch
28de9b8913 Refactor ChangeLoggedModelFilterSet 2022-01-25 16:18:07 -05:00
jeremystretch
acc9ca7d7d Move TagFilter to PrimaryFilterSet 2022-01-25 16:11:49 -05:00
jeremystretch
497afcc1e4 Rearrange plugins documentation 2022-01-25 13:53:31 -05:00
jeremystretch
571e9801f3 Closes #8195: Ensure all GenericForeignKey ID fields employ PositiveBigIntegerField 2022-01-24 16:02:54 -05:00
Sergio Saucedo
31c58409e1 Set install_date default value as empty string 2022-01-24 02:36:27 -06:00
jeremystretch
5abfe821bc Changelog cnad cleanup for #7853 2022-01-21 15:43:53 -05:00
Jeremy Stretch
05d4c127ee Merge pull request #8428 from netbox-community/8334-plugins-views
Closes #8334: Formally support use of generic views by plugins
2022-01-21 15:37:20 -05:00
jeremystretch
1c94625042 Remove widget_attrs from BulkImportView 2022-01-21 14:48:27 -05:00
jeremystretch
a74ed33b0e Move get_object() to BaseObjectView 2022-01-21 14:41:37 -05:00
jeremystretch
e03593d86f Move get_extra_context() to base views 2022-01-21 14:01:14 -05:00
Jeremy Stretch
3d6c2c5fef Merge pull request #8420 from netbox-community/7853-speed_duplex
Fixes #7853 - Add speed and duplex
2022-01-21 13:07:23 -05:00
jeremystretch
54834c47f8 Refactor generic views; add plugins dev documentation 2022-01-20 16:31:55 -05:00
Daniel Sheppard
d0bfd7e19a #7853 - Add tests 2022-01-20 14:13:13 -06:00
Daniel Sheppard
1a807416b8 #7853 - Add columns to tables 2022-01-20 13:58:37 -06:00
Daniel Sheppard
5f8870d448 #7853 - Change Duplex Filterset to allow multivalues 2022-01-20 13:58:11 -06:00
Daniel Sheppard
375a140343 Merge branch 'feature' of https://github.com/netbox-community/netbox into 7853-speed_duplex 2022-01-20 13:12:04 -06:00
Jeremy Stretch
7002319cc8 Merge pull request #8414 from netbox-community/8392-plugins-features
Closes #8392: Enable NetBox features for plugin models
2022-01-20 12:23:52 -05:00
jeremystretch
e6acae5f94 Omit job results as a supported feature 2022-01-20 11:41:00 -05:00
jeremystretch
1a8f144f5c Include custom validation in BaseModel 2022-01-20 10:53:00 -05:00
jeremystretch
b7682ca9e8 Fix documentation build 2022-01-20 09:27:37 -05:00
jeremystretch
196784474d Update documentation requirements 2022-01-19 16:58:06 -05:00
jeremystretch
d104544d6f Add mkdocstrings 2022-01-19 16:52:00 -05:00
jeremystretch
dd55226455 Draft documentation for model features 2022-01-19 16:47:41 -05:00
jeremystretch
047bed2a86 Tweak registry initialization 2022-01-19 15:22:28 -05:00
jeremystretch
cdae0c2bef Remove extras_features() decorator 2022-01-19 15:16:10 -05:00
jeremystretch
c7825e391c Designate feature mixin classes & employ class_prepared signal to register features 2022-01-19 14:46:50 -05:00
jeremystretch
bf6345aa90 Closes #5429: Enable toggling the placement of table paginators 2022-01-19 09:14:38 -05:00
jeremystretch
3fcae36cf1 Closes #8307: Add data_type indicator to REST API serializer for custom fields 2022-01-18 16:57:54 -05:00
jeremystretch
69eb6b11d0 Closes #8368: Enable controlling the order of custom script form fields with field_order 2022-01-18 16:01:40 -05:00
jeremystretch
1f2d4fd2b3 Closes #8381: Add contacts to global search function 2022-01-18 15:40:19 -05:00
jeremystretch
21468fff25 Closes #8367: Add ASNs to global search function 2022-01-18 15:36:21 -05:00
jeremystretch
4711b4d529 Correct FeatureQuery invocations 2022-01-18 15:17:05 -05:00
Daniel Sheppard
29d4859e02 Fixes #8375 - Change ASN display column from ASDOT to ASPLAIN. Add ASDOT display column. 2022-01-18 11:23:52 -06:00
jeremystretch
4b81d86311 Closes #8376: Correct example condition defitinions; call out value vs label ealuation for choice fields 2022-01-18 11:31:39 -05:00
jeremystretch
38963e7960 Fixes #8377: Fix calculation of absolute cable lengths when specified in fractional units 2022-01-18 11:09:12 -05:00
jeremystretch
3e3880823b Merge v3.1.6 2022-01-17 11:12:54 -05:00
jeremystretch
1584d51433 PRVB 2022-01-17 10:16:37 -05:00
Jeremy Stretch
98571c62a6 Merge pull request #8372 from netbox-community/develop
Release v3.1.6
2022-01-17 10:15:24 -05:00
jeremystretch
69f525bfd3 Release v3.1.6 2022-01-17 09:49:16 -05:00
jeremystretch
2b31154834 Fixes #8358: Fix inconsistent styling of custom fields on filter & bulk edit forms 2022-01-14 14:23:58 -05:00
jeremystretch
b0948ea018 Changelog for #8342, #8357 2022-01-14 11:51:02 -05:00
Jeremy Stretch
a50e4e3380 Merge pull request #8352 from jasonyates/8342-created-updated
Fixes #8342
2022-01-14 11:48:52 -05:00
Jeremy Stretch
5564664b13 Merge pull request #8360 from jasonyates/8357-location-filter
Fixes #8357 - Filter view for Locations is missing tags field
2022-01-14 11:48:36 -05:00
Jason Yates
1ae5a2c808 Fixes #8357 - Filter view for Locations is missing tags field
Adding tag field to Locations filter view
2022-01-14 06:19:25 -08:00
Jason Yates
0181a25d70 Fixes #8342
created & last_updated fields are missing from some REST API calls. Added missing fields to the following API calls

/api/dcim/virtual-chassis/
/api/dcim/cables/
/api/dcim/power-panels/
/api/dcim/rack-reservations/
/api/circuits/circuit-terminations/
/api/extras/webhooks/
/api/extras/custom-fields/
/api/extras/custom-links/
/api/extras/export-templates/
/api/extras/tags/
2022-01-13 19:13:28 -08:00
jeremystretch
60ba4a9830 Changelog for #8337 2022-01-13 15:24:15 -05:00
Jeremy Stretch
3802a78c9d Merge pull request #8341 from jasonyates/8337-created-updated
Add created & last updated as available fields to all tables
2022-01-13 15:23:12 -05:00
jeremystretch
0ca6d73614 #8293: Tweak table column output & add changelog 2022-01-13 15:10:06 -05:00
Jeremy Stretch
aa77f8f0d2 Merge pull request #8329 from jasonyates/8293-asdot
Adding asdot notation to ASN views
2022-01-13 15:02:21 -05:00
jeremystretch
7767692394 Changelog for #8295 2022-01-13 12:10:25 -05:00
Jeremy Stretch
5077ff169e Merge pull request #8343 from netbox-community/1591-service-templates
Closes #1591: Service templates
2022-01-13 12:09:36 -05:00
jeremystretch
b21b6238cf Fix test permissions 2022-01-13 11:52:06 -05:00
Jeremy Stretch
cf89984c7a Merge pull request #8339 from rodvand/feature
Fixes: #8295 Render the payload_url of a Webhook with Jinja2
2022-01-13 11:36:56 -05:00
jeremystretch
707aad234e Add view test for creating service from template 2022-01-13 11:27:29 -05:00
jeremystretch
5b851a2d09 Changelog for #1591 2022-01-13 10:48:08 -05:00
jeremystretch
bb5ded2039 Enable creating services from templates in the UI 2022-01-13 10:32:42 -05:00
Jason Yates
381796e708 Add created & last updated as available fields to all tables
Adds two fields to all relevant tables to allow the addition of Created & Last Updated columns.

All tables with a Configure Table option were updated.

Some sections reformatted to comply with E501 line length as a result of changes
2022-01-13 09:22:32 +00:00
Jason Yates
62fc7717c8 Suggested changes
* Updating asdot computation to use an fstring
* Cleaning code. Custom property now returns either the ASN with ASDOT notation or just the ASN. asn_with_asdot can now be referenced in ASNTable & objet template.
2022-01-13 04:58:51 +00:00
jeremystretch
b07a7ba9bc Fix display of custom object fields within tables 2022-01-12 17:07:54 -05:00
jeremystretch
97e7ef9a3f Introduce ServiceTemplate 2022-01-12 16:42:28 -05:00
Martin Rødvand
5cbc978cad Render the payload_url of the Webhook with Jinja2
- Update markdown documentation
- Expand on the help text for the Webhook model
2022-01-12 21:58:19 +01:00
jeremystretch
e19451bb4f Plug WG8333 in the plugins development docs 2022-01-12 14:40:33 -05:00
Jason Yates
85f588e8c9 Updating page title to include asdot notation 2022-01-12 16:44:22 +00:00
Jason Yates
ea644868a6 Adding asdot notation to ASN views
Adds custom property to asn model to compute asdot notation if required.
Updates asn view to show asdot notation if one exists in the format xxxxx (yyy.yyy)
Adds a custom column renderer to asn table to display asdot notation if one exists
2022-01-12 14:06:22 +00:00
jeremystretch
d08accaaf1 Changelog for #8279 2022-01-11 16:27:30 -05:00
Jeremy Stretch
f49272cacb Merge pull request #8321 from jasonyates/8279-vc-rack-view
Fixes #8279 - No virtual chassis name in rack view
2022-01-11 16:25:50 -05:00
jeremystretch
c8713d94d8 Merge branch 'develop' into feature 2022-01-11 16:16:13 -05:00
Jason Yates
be8fef0228 Fixes #8279
A device that is part of a VC that has no name should display [virtual-chassis name]:[virtual-chassis position] as opposed to [device_type] in the rack rendering.
2022-01-11 21:03:18 +00:00
jeremystretch
b584f09223 Fixes #8319: Custom URL fields should honor ALLOWED_URL_SCHEMES config parameter 2022-01-11 15:32:04 -05:00
jeremystretch
d2968c95df Fixes #8314: Prevent custom fields with default values from appearing as applied filters erroneously 2022-01-11 15:02:10 -05:00
jeremystretch
7421e5f7d7 Fixes #8317: Fix CSV import of multi-select custom field values 2022-01-11 14:52:47 -05:00
jeremystretch
0b2a43cfcc Document formal release cycle 2022-01-11 12:54:07 -05:00
jeremystretch
50309d3ab3 Reference netbox-demo-data repo in development guide 2022-01-10 15:34:27 -05:00
jeremystretch
dd0b16bff5 Fixes #8305: Fix assignment of custom field data to FHRP groups via UI 2022-01-10 15:26:01 -05:00
jeremystretch
d5443adc74 Tweak sidebar colors & remove hover delay 2022-01-10 15:13:12 -05:00
jeremystretch
9152ba72f1 Fixes #8306: Redirect user to previous page after login 2022-01-10 14:44:25 -05:00
jeremystretch
ff396b5953 Fix CSV import test & form cleanup 2022-01-10 14:27:52 -05:00
jeremystretch
21e0e6e495 Closes #6954: Remember users' table ordering preferences 2022-01-10 14:03:07 -05:00
jeremystretch
72e17914e2 Closes #8296: Allow disabling custom links 2022-01-10 12:11:37 -05:00
Jeremy Stretch
17aa37ae21 Merge pull request #8303 from netbox-community/7679-table-actions
Closes #7679: Object table actions menus
2022-01-10 11:38:07 -05:00
jeremystretch
94c116617a Changelog for #7679 2022-01-10 11:20:06 -05:00
jeremystretch
aed23d61fc Replace ButtonsColumn with ActionsColumn 2022-01-10 11:17:40 -05:00
jeremystretch
076ca46ab4 Closes #8302: Linkify role column in device & VM tables 2022-01-10 09:48:14 -05:00
jeremystretch
02519b270e Fixes #8301: Fix delete button for various object children views 2022-01-10 09:30:50 -05:00
jeremystretch
5aa7dedccb Changelog for #8246, #8285 2022-01-10 08:38:08 -05:00
Jeremy Stretch
6383dfa854 Merge pull request #8292 from jasonyates/8246-commit-rate
Fixes #8246 - Circuits list view to display formatted commit rate
2022-01-10 08:36:47 -05:00
Jeremy Stretch
5a4fb0323b Merge pull request #8286 from jasonyates/8285-cluster-count-tenant
Fixes #8285 tenant cluster count
2022-01-10 08:34:02 -05:00
jeremystretch
e84a282aa6 Revert REST API changes from #8284 2022-01-10 08:24:45 -05:00
Jason Yates
f732493473 Fixing code style E302 2022-01-08 22:24:25 +00:00
Jason Yates
f66a265fcf Fixes #8246 - Circuits list view to display formatted commit rate
Adds a custom column class to format the commit rate in the circuits table view using humanize_speed template helper. Export still exports the raw number.
2022-01-08 21:55:07 +00:00
Daniel Sheppard
0f58faaddb #7853 - Initial work on Speed/Duplex.
TODO: Documentation, Tests, Form order
2022-01-08 12:25:30 -06:00
Daniel Sheppard
f1472d218e Update changelog for #8262 and #8265 2022-01-08 00:21:38 -06:00
Daniel Sheppard
d65c05aacd Merge pull request #8269 from bluikko/cisco-stackwise-n
Merge PR from bluikko for #8265
2022-01-08 00:20:43 -06:00
Daniel Sheppard
2b28ffa2f4 Merge pull request #8284 from jasonyates/8262-tenant-cable-stat
Fixes #8262 - Add Cable stat for Tenant
2022-01-08 00:15:35 -06:00
Daniel Sheppard
10ec31df3e Fix #8287 - Correct label in export template form 2022-01-08 00:13:58 -06:00
Jason Yates
184b1055dc Fixes #8285 - Cluster count missing from tenant api output 2022-01-07 20:17:43 +00:00
Jeremy Stretch
447a5f01a9 Merge pull request #8282 from netbox-community/7852-interface-vrf
Closes #7852: Interface VRF assignment
2022-01-07 15:16:11 -05:00
Jason Yates
eaec25e6c2 Fixes #8262 - Add Cable stat for Tenant 2022-01-07 20:02:45 +00:00
jeremystretch
3e277de82d Closes #7852: Enable assigning interfaces to VRFs 2022-01-07 14:57:43 -05:00
jeremystretch
8b07fbc554 Allow passing additional columns & specifying a sequence 2022-01-07 11:56:18 -05:00
jeremystretch
bff7400de4 Convert ActionsMenuItem to dataclass 2022-01-07 11:23:04 -05:00
jeremystretch
1024adca72 Exclude actions column from export 2022-01-07 11:00:35 -05:00
jeremystretch
ededa69e4a Only show relevant links for user permissions 2022-01-07 10:53:00 -05:00
jeremystretch
6d48ce4a25 Always include actions as a default column 2022-01-07 10:36:58 -05:00
jeremystretch
00a8fd654e Refactor table utilities 2022-01-07 09:12:48 -05:00
bluikko
b63e29610e Add Cisco StackWise-n choices 2022-01-07 11:56:54 +07:00
jeremystretch
58f7eb319f Initial work on #7679 2022-01-06 16:53:24 -05:00
Jeremy Stretch
453f2ab02d Merge pull request #8261 from netbox-community/7006-custom-object-fields
Closes #7006: Custom object fields
2022-01-06 14:09:40 -05:00
jeremystretch
3002382edc Documentation and changelog for #7006 2022-01-06 13:44:21 -05:00
jeremystretch
bfc695434c Add object_type validation 2022-01-06 13:43:40 -05:00
jeremystretch
1e80cc6db5 Clean up & extend custom field tests 2022-01-06 13:24:37 -05:00
jeremystretch
b0db5a8b0a PRVB 2022-01-06 09:58:50 -05:00
Jeremy Stretch
d3e2241ff7 Merge pull request #8257 from netbox-community/develop
Release v3.1.5
2022-01-06 09:52:54 -05:00
jeremystretch
e90b9f6c19 Release v3.1.5 2022-01-06 09:24:28 -05:00
jeremystretch
4c1199e009 Fixes #8255: Fix bulk editing of authentication parameters for wireless LANs and links 2022-01-06 08:54:05 -05:00
jeremystretch
65471068b6 Closes #8252: Linkify type and group columns in clusters table 2022-01-05 21:36:20 -05:00
jeremystretch
7aa1fabbd7 Fix tests 2022-01-05 21:21:23 -05:00
jeremystretch
85c06372ff Fix bulk editing for custom object fields 2022-01-05 21:04:44 -05:00
jeremystretch
c6467a824b #8228: Always add a blank choice 2022-01-05 17:10:59 -05:00
jeremystretch
271b7adeb8 Extend to support the assignment of multiple objects per field 2022-01-05 17:05:54 -05:00
jeremystretch
b1d1f3c6b2 Fixes #8228: Optional ChoiceVar fields should not force a selection 2022-01-05 15:46:04 -05:00
jeremystretch
574c2e2770 Closes #8244: Add length & length unit fields to cable filter form 2022-01-05 15:32:34 -05:00
jeremystretch
aec2d233c9 Changelog for #8231 2022-01-05 15:18:49 -05:00
Jeremy Stretch
39418f2bbe Merge pull request #8247 from netbox-community/8231-htmx-confirmation-dialogs
Closes #8231: Use HTMX for object deletion confirmations
2022-01-05 15:14:51 -05:00
jeremystretch
ccda73494f Center modal dialog vertically 2022-01-05 14:57:56 -05:00
jeremystretch
443b4ccc57 Initial work on #8231 2022-01-05 14:06:56 -05:00
Daniel Sheppard
88ac0f5d34 Work on #6221 - Make templatetags safe for consumption when using plugins and update ButtonColumn to use viewname helper. 2022-01-05 11:31:00 -06:00
jeremystretch
511aedd5db Omit table configuration form from rack elevations view 2022-01-05 11:39:58 -05:00
jeremystretch
2524290099 Introduce modals template block 2022-01-05 09:21:48 -05:00
jeremystretch
01e8017265 Clean up template blocks 2022-01-05 09:09:39 -05:00
jeremystretch
8338fc405f Simplify theme color palette 2022-01-04 20:51:10 -05:00
jeremystretch
0a22b3990f #7450: Clean up footer and navbar styles 2022-01-04 20:42:44 -05:00
jeremystretch
954d81147e Reindex migrations 2022-01-04 17:07:37 -05:00
jeremystretch
fa1e28e860 Initial work on #7006 2022-01-04 16:59:52 -05:00
jeremystretch
662cafe416 Form widgets & style cleanup 2022-01-04 15:01:16 -05:00
jeremystretch
ea961ba8f2 Fixes #8224: Fix KeyError exception when creating FHRP group with IP address and protocol "other" 2022-01-04 13:49:07 -05:00
jeremystretch
8c8774cd2f Fixes #8226: Honor return URL after populating a device bay 2022-01-04 13:24:15 -05:00
jeremystretch
2fe02ddb1f Add tests for IPAM object children views 2022-01-04 09:32:41 -05:00
jeremystretch
e11e8a5d64 Fixes #8213: Fix ValueError exception under prefix IP addresses view 2022-01-04 09:15:25 -05:00
jeremystretch
0978777eec Merge v3.1.4 2022-01-03 11:20:58 -05:00
jeremystretch
79bebf7c9b PRVB 2022-01-03 11:18:46 -05:00
Jeremy Stretch
8d3b660ce0 Merge pull request #8212 from netbox-community/develop
Release v3.1.4
2022-01-03 11:16:27 -05:00
jeremystretch
9de53fe070 Release v3.1.4 2022-01-03 11:00:23 -05:00
jeremystretch
ecb9fc65b7 Closes #8197: Allow filtering sites by group when connecting a cable 2022-01-03 10:41:43 -05:00
Jeremy Stretch
7b25d0379f Merge pull request #8202 from netbja/patch-1
Small syntax error
2022-01-03 10:39:56 -05:00
jeremystretch
05d4176d34 Fixes #8201: Custom integer fields should allow negative integers as minimum/maximum values 2022-01-03 10:07:19 -05:00
jeremystretch
7b0dff88ae Closes #8210: Establish netbox/local/ as a path for local resources 2022-01-03 09:45:30 -05:00
jeremystretch
1c7604e0fe Fixes #8200: Correct typo in navigation menu 2022-01-03 09:20:26 -05:00
jeremystretch
e18dc43aae Fixes #8196: Fix IndexError exception when viewing large IPv6 prefixes in UI 2022-01-03 09:17:15 -05:00
netbja
caaad684a4 Small syntax error
No double quotes after password.
2021-12-31 11:25:12 +01:00
jeremystretch
cdd51aee75 Closes #8194: Enable bulk user assignment to groups under admin UI 2021-12-30 13:19:18 -05:00
jeremystretch
51851f6c99 Refactor users.admin 2021-12-30 13:08:09 -05:00
jeremystretch
ab98aa489c Related objects should be prefetched for Prefix/IPRange child object views 2021-12-30 12:43:37 -05:00
jeremystretch
5829985ca8 Remove power utilization as default column from racks table 2021-12-30 12:02:20 -05:00
jeremystretch
2fa8e27f05 Fixes #8192: Add "add prefix" button to aggregate child prefixes view 2021-12-30 12:00:37 -05:00
jeremystretch
68f92dfd5d Fix redirection URL for prefix IP ranges view 2021-12-30 11:47:21 -05:00
jeremystretch
67aeb380e7 Fix DNS name label in IP address bulk edit form 2021-12-30 11:46:09 -05:00
jeremystretch
f7d91b7139 Extend "Adding models" documentation 2021-12-30 10:12:28 -05:00
jeremystretch
b6e157f393 Add features summary to README 2021-12-30 10:08:31 -05:00
jeremystretch
2319fce092 Add tab to cable connect view 2021-12-30 09:51:30 -05:00
jeremystretch
a5f1707662 Fixes #8191: Fix return URL when adding IP addresses to VM interfaces 2021-12-30 09:46:02 -05:00
jeremystretch
6cda55da06 Fixes #8187: Fix rendering of tags column in object tables 2021-12-30 09:41:35 -05:00
jeremystretch
8e69961744 Fix CustomLinkButtonClassChoices references in tests 2021-12-30 08:15:43 -05:00
jeremystretch
9f53497e39 Clean up & expand button color choices 2021-12-29 20:28:12 -05:00
Jeremy Stretch
ae3c871438 Merge pull request #8186 from netbox-community/8118-inventoryitem-template
Closes #8118: Inventory item templates
2021-12-29 16:58:57 -05:00
jeremystretch
1edf80db8e Changelog & documentation for #8118 2021-12-29 16:40:03 -05:00
jeremystretch
791cc093f4 Enable the association of inventory item templates with component templates 2021-12-29 16:30:44 -05:00
jeremystretch
4c15f4a84f Initial work on #8118 2021-12-29 15:37:01 -05:00
jeremystretch
3bb485d0b8 Merge v3.1.3 2021-12-29 12:41:56 -05:00
jeremystretch
c3f2fee633 PRVB 2021-12-29 12:40:04 -05:00
Jeremy Stretch
1f575a2a47 Merge pull request #8185 from netbox-community/develop
Release v3.1.3
2021-12-29 12:31:07 -05:00
jeremystretch
13c4d13157 Release NetBox v3.1.3 2021-12-29 12:10:46 -05:00
jeremystretch
43fadab3bb Closes #8034: Enable specifying custom field validators during CSV import 2021-12-29 11:57:27 -05:00
jeremystretch
82a0240d2e Closes #8182: Introduce checkmark template tag 2021-12-29 10:26:42 -05:00
jeremystretch
f2aa35d3d2 Closes #7600: Include count of available IPs on prefix view 2021-12-29 09:59:25 -05:00
jeremystretch
9c9fcaf42f Fixes #7290: Defer loading API-backed form fields 2021-12-29 09:30:43 -05:00
jeremystretch
146a51ceba Clean up API tokens view 2021-12-29 09:10:56 -05:00
jeremystretch
b0350e9e96 Remove navbar background color 2021-12-29 08:56:59 -05:00
Jeremy Stretch
e0126d971c Merge pull request #8179 from netbox-community/8089-choice-colors
Closes #8089: Color names
2021-12-28 21:23:01 -05:00
jeremystretch
b60ace80be Update documentation for FIELD_CHOICES 2021-12-28 20:21:35 -05:00
jeremystretch
b3ea007e0a Update ChoiceSets to use base colors 2021-12-28 20:18:07 -05:00
jeremystretch
a0d6cb1fd3 Simplify theme color palette 2021-12-28 17:14:04 -05:00
jeremystretch
7b66dae2f0 Merge branch 'develop' into feature 2021-12-28 16:14:24 -05:00
jeremystretch
35e346c4b9 Fix circuit termination button style 2021-12-28 16:13:58 -05:00
jeremystretch
3982f13569 Show parent device/VM when creating new components 2021-12-28 15:19:41 -05:00
jeremystretch
21356b487a #7846: Show assigned component (if any) when creating inventory item 2021-12-28 14:15:06 -05:00
jeremystretch
1987647cc3 Closes #8175: Display parent object when attaching an image 2021-12-28 13:06:27 -05:00
Jeremy Stretch
e9910d1fe2 Merge pull request #8176 from netbox-community/7846-inventoryitem-component
Closes #7846: Associate inventory items with device components
2021-12-28 11:48:36 -05:00
jeremystretch
4c5a5c70b0 Changelog for #7846 2021-12-28 11:19:46 -05:00
jeremystretch
a0836b6876 Add inventory items panel to device component views 2021-12-28 11:06:34 -05:00
jeremystretch
e0319cc894 Clean up form rendering 2021-12-28 10:22:00 -05:00
jeremystretch
4075cc8518 Restore front port component creation 2021-12-28 09:53:56 -05:00
jeremystretch
8ca09ec07f Clean up form display 2021-12-28 08:54:03 -05:00
jeremystretch
ba85101d30 Update component model forms to use DynamicModelChoiceField query_params for related objects 2021-12-27 21:25:47 -05:00
jeremystretch
a237c01b4b Refactor ComponentCreateView to use separate forms for names/labels and model creation 2021-12-27 21:04:29 -05:00
jeremystretch
99d5013de3 Initial work on #7846 2021-12-27 14:01:25 -05:00
Jeremy Stretch
a58f1c6a7d Merge pull request #8172 from netbox-community/3087-inventory-item-roles
Closes #3087: Add inventory item roles
2021-12-27 11:06:50 -05:00
jeremystretch
a748083f26 Changelog for #3087 2021-12-27 10:52:04 -05:00
jeremystretch
6e9afccfd7 #8037: Add role field to InventoryItem 2021-12-27 10:45:33 -05:00
jeremystretch
04fb5e544d #3087: Add InvetoryItemRole 2021-12-27 10:18:39 -05:00
jeremystretch
542534aeba Add direct link to preferences in user menu 2021-12-23 14:41:39 -05:00
jeremystretch
908a2824ba Reduce saturation of 'info' theme color 2021-12-23 14:34:09 -05:00
jeremystretch
77dd684916 Closes #7784: Support cluster type assignment for config contexts 2021-12-23 14:20:03 -05:00
jeremystretch
bffd22038b Closes #7681: Add service_id field for provider networks 2021-12-23 13:50:01 -05:00
jeremystretch
a03ae295f6 Update release notes 2021-12-23 11:39:56 -05:00
jeremystretch
544d991e1e Closes #8168: Add min/max VID fields to VLANGroup 2021-12-23 11:22:10 -05:00
jeremystretch
083fda3172 #2658: Fix test permissions 2021-12-23 10:46:57 -05:00
jeremystretch
e0cfd5e49b Closes #2658: Avalable VLANs API endpoint for VLAN groups 2021-12-23 10:14:28 -05:00
jeremystretch
2dd165bbef Merge branch 'develop' into feature 2021-12-23 08:32:40 -05:00
Jeremy Stretch
cab9733b60 Merge pull request #8159 from netbox-community/6782-custom-link-columns
Closes #6782: Custom link columns
2021-12-22 21:13:13 -05:00
jeremystretch
99e0dcec76 Changelog & docs for #6782 2021-12-22 20:57:59 -05:00
jeremystretch
9dafb36c88 Introduce CustomLinkColumn 2021-12-22 20:56:11 -05:00
jeremystretch
3d7d19b608 Move rendering logic under CustomLink class 2021-12-22 20:25:57 -05:00
jeremystretch
d650d10cb2 #7449: Apply distinctive styling to top navbar 2021-12-22 15:32:35 -05:00
jeremystretch
7fe45018e9 #7449: Remove red color from logout link 2021-12-22 15:22:06 -05:00
jeremystretch
4c4cab87fb #7449: Don't color valid form fields 2021-12-22 15:18:24 -05:00
jeremystretch
94c7f64baf Relocate confirmation_form.html 2021-12-22 15:08:04 -05:00
jeremystretch
f369b5f588 Reorganize & clean up templatetag templates 2021-12-22 15:05:24 -05:00
jeremystretch
37065b7c50 Remove obsolete template 2021-12-22 14:47:42 -05:00
jeremystretch
0a7372460f Changelog for #7887 2021-12-22 12:48:24 -05:00
Jeremy Stretch
063abc8ef7 Merge pull request #8153 from davama/develop
Add missing HTTP_X_FORWARDED_FOR
2021-12-22 12:46:22 -05:00
Jeremy Stretch
d64c88786e Merge pull request #8143 from netbox-community/7759-user-preferences
Closes #7759: User preferences framework
2021-12-22 11:00:18 -05:00
jeremystretch
fb4511d099 Fixes #8140: Restore missing fields on wireless LAN & link REST API serializers 2021-12-22 10:55:06 -05:00
jeremystretch
7343ae7339 Fix invalid key retrieval 2021-12-22 10:45:21 -05:00
jeremystretch
cb6342c874 Reference DEFAULT_USER_PREFERENCES for undefined preferences 2021-12-22 10:13:08 -05:00
jeremystretch
01997efcbe Add tests & cleanup 2021-12-22 09:51:31 -05:00
jeremystretch
7926225e9b Improve preferences form rendering 2021-12-22 09:35:29 -05:00
jeremystretch
1aafcf241f Enable plugins to define user preferences 2021-12-22 09:10:50 -05:00
jeremystretch
1eeac7f4f4 Introduce DEFAULT_USER_PREFERENCES dynamic config setting 2021-12-21 20:30:59 -05:00
jeremystretch
2c01e178c7 Update config context display to reference data_format preference 2021-12-21 19:59:33 -05:00
jeremystretch
36d2422eef Introduce UserPreference to define user preferences 2021-12-21 17:05:06 -05:00
jeremystretch
70f257b1ea Introduce UserConfigForm for managing user preferences 2021-12-21 16:29:01 -05:00
jeremystretch
275560698f Fixes #8139: Fix rendering of table configuration form under VM interfaces view 2021-12-21 14:10:12 -05:00
jeremystretch
d4b6fe14c3 Fixes #8138: Fix alignment of tags panel within IP address view 2021-12-21 14:04:15 -05:00
jeremystretch
f1350a1022 FIxes #7972: Standardize name of RemoteUserBackend logger 2021-12-21 13:57:12 -05:00
jeremystretch
344fb638fd Fixes #8127: Fix disassociation of interface under IP address edit view 2021-12-21 13:17:54 -05:00
thatmattlove
373cc74a33 Fixes #8134: reinitialize event listeners when HTMX swaps elements 2021-12-21 11:11:33 -07:00
jeremystretch
8e95ac42c2 Closes #8100: Add "other" choice for FHRP group protocol 2021-12-21 13:05:38 -05:00
jeremystretch
ceb941df81 Closes #8135: Append version when fetching static assets 2021-12-21 13:00:52 -05:00
jeremystretch
d275538116 Changelog & cleanup for #7246, #8097 2021-12-21 11:53:31 -05:00
Jeremy Stretch
fa38cdbc0d Merge pull request #8121 from kkthxbye-code/fix-8097
Fix #8097: Re-fix markdown table rendering
2021-12-21 11:50:24 -05:00
Jeremy Stretch
7569544b7b Merge pull request #8063 from rizlas/develop
Get_Environment from napalm should not need any decoding
2021-12-21 11:43:23 -05:00
Jeremy Stretch
853a52f3ca Merge branch 'develop' into fix-8097 2021-12-21 11:37:58 -05:00
jeremystretch
5e32c69e0e Merge branch 'develop' into feature 2021-12-21 11:28:16 -05:00
rizlas
39a0b15df4 Update netbox/dcim/api/views.py
Test without decode_dict function

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2021-12-21 17:15:54 +01:00
jeremystretch
a0db10838b Fixes #8131: Restore annotation of available IPs under prefix IPs view 2021-12-21 11:09:30 -05:00
jeremystretch
f2f10dff92 Fix RearPortTemplateTable buttons 2021-12-21 10:57:46 -05:00
jeremystretch
7ba45b2887 Clean up imports 2021-12-21 10:48:10 -05:00
jeremystretch
c91eb8f406 Remove extraneous output from service edit template 2021-12-21 10:30:30 -05:00
jeremystretch
57a78b3cad Clean up device/devicetype tab views 2021-12-21 10:28:28 -05:00
jeremystretch
b755c7dab3 Add changelog for #7962 (via #8114) 2021-12-21 09:03:36 -05:00
Jeremy Stretch
9ffd791ae4 Merge pull request #8130 from netbox-community/8114-htmx-jobs
Closes #8114: Use HTMX to update report/script results
2021-12-21 09:01:15 -05:00
jeremystretch
8af12b22bb Clean up report & script templates 2021-12-21 08:43:01 -05:00
jeremystretch
17ba0a97d5 Remove jobs Javascript 2021-12-20 20:59:14 -05:00
jeremystretch
4ae2b4e0b9 Convert reports to use HTMX 2021-12-20 20:52:29 -05:00
jeremystretch
872691a138 Convert scripts to use HTMX 2021-12-20 20:45:32 -05:00
kkthxbye-code
3a54ecb522 Fix #8097: Re-fix markdown table rendering 2021-12-20 23:31:24 +01:00
jeremystretch
71b4641e18 Merge v3.1.2 2021-12-20 16:28:11 -05:00
jeremystretch
42b590af77 PRVB 2021-12-20 16:06:42 -05:00
Jeremy Stretch
b15ecf7649 Merge pull request #8123 from netbox-community/develop
Release v3.1.2
2021-12-20 16:04:41 -05:00
jeremystretch
df4f80e773 Release v3.1.2 2021-12-20 15:48:28 -05:00
jeremystretch
b8b485af4d Changelog & PEP8 cleanup for #7999 2021-12-20 14:17:52 -05:00
Jeremy Stretch
892d6b55ec Merge pull request #8000 from joni1993/more-channels
feat: add 6GHz & 60Ghz channels
2021-12-20 14:16:12 -05:00
Jeremy Stretch
4a3bc8d365 Merge pull request #8111 from bonktree/opaque-icon
templates: add an opaque icon for mobile home screens
2021-12-20 13:58:25 -05:00
jeremystretch
e12da72615 Fixes #8101: Preserve return URL when using "create and add another" button 2021-12-20 13:41:22 -05:00
jeremystretch
f95e510060 Fixes #8102: Raise validation error when attempting to assign an IP address to multiple objects 2021-12-20 13:09:28 -05:00
Daniel Sheppard
82932ae7a5 Fixes #8102 - Add validation around assigned objects 2021-12-20 11:07:44 -06:00
jeremystretch
ae55ca7fd7 Changelog for #7844 2021-12-20 11:02:56 -05:00
Jeremy Stretch
d69a314bbf Merge pull request #8105 from netbox-community/7844-modules
Closes #7844: Add support for device modules
2021-12-20 10:55:50 -05:00
jeremystretch
e35aa4bd1e Add documentation for modules 2021-12-20 10:31:18 -05:00
jeremystretch
eaa1165611 Add position field for module bays 2021-12-20 09:51:55 -05:00
jeremystretch
14fc37a8b8 Closes #7661: Remove forced styling of custom banners 2021-12-19 15:33:48 -05:00
Arseny Maslennikov
7b23856cc8 templates: add an opaque icon for mobile home screens
The netbox_touch-icon-180.png icon was produced by rendering
netbox_icon.svg into a 160x160 square, centered in a 180x180 PNG filled
by the background colour of #212529.

In other words, it is a screenshot of the following HTML element:
```html
  <div style="width: 180px;height: 180px;background-color: #212529;">
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 320" style="padding: 10px;">
    <g fill="#9cc8f8" stroke="#9cc8f8">
      <circle cx="37" cy="284" r="23"></circle>
      <circle cx="101" cy="37" r="23"></circle>
      <circle cx="101" cy="220" r="23"></circle>
      <circle cx="284" cy="220" r="23"></circle>
      <rect x="93" y="37" width="16" height="180"></rect>
      <rect x="101" y="212" width="180" height="16"></rect>
      <rect x="93" y="212" width="16" height="90" transform="rotate(45 101 220)"></rect>
    </g>
    <g fill="#1685fc" stroke="#1685fc">
      <circle cx="284" cy="37" r="23"></circle>
      <circle cx="37" cy="101" r="23"></circle>
      <circle cx="220" cy="101" r="23"></circle>
      <circle cx="220" cy="284" r="23"></circle>
      <rect x="37" y="93" width="180" height="16"></rect>
      <rect x="212" y="101" width="16" height="180"></rect>
      <rect x="212" y="93" width="16" height="90" transform="rotate(225 220 101)"></rect>
    </g>
  </svg>
  </div>
```
2021-12-19 01:32:15 +03:00
jeremystretch
85f9690377 Closes #8083: Removed "related devices" panel from device view 2021-12-18 14:30:28 -05:00
jeremystretch
4723500c5f Fixes #8092: Rack elevations should not include device asset tags 2021-12-18 14:26:32 -05:00
jeremystretch
2db82a73a5 #8096: Include only first assigned IP in FHRPGroup string representation 2021-12-18 14:19:57 -05:00
jeremystretch
b00eeb86ea Fixes #8096: Fix DataError during change logging of objects with very long string representations 2021-12-18 14:16:37 -05:00
jeremystretch
628e186846 Closes #8108: Improve breadcrumb links for device/VM components 2021-12-18 14:02:01 -05:00
jeremystretch
cf4a55bc2f Closes #8107: Correct template name 2021-12-18 13:52:39 -05:00
jeremystretch
ed6a160372 Add modules to device component serializers 2021-12-17 20:31:15 -05:00
jeremystretch
7dc4e00b4d Add module, module_bay columns to device component tables 2021-12-17 20:15:49 -05:00
jeremystretch
e0d7511eaa Misc cleanup 2021-12-17 16:34:51 -05:00
jeremystretch
7777922bef Add Module model 2021-12-17 16:12:03 -05:00
jeremystretch
5bd223a468 Fix YAML import for ModuleTypes 2021-12-17 13:28:17 -05:00
jeremystretch
7c60e3c0ff Add Module model 2021-12-17 12:18:37 -05:00
jeremystretch
e529d7fd3b Add ModuleBay and ModuleBayTemplate models 2021-12-17 09:35:57 -05:00
jeremystretch
5f9f0e3ed3 Split generic views into separate modules 2021-12-16 16:41:43 -05:00
jeremystretch
e91a76c936 Refactor bulk generic views 2021-12-16 16:28:23 -05:00
Christian Jonak
cab07c7c4b fix: non 20Mhz-wide channel centers 2021-12-16 19:28:39 +01:00
jeremystretch
7735a539e9 Fixes #8088: Improve legibility of text in labels with light-colored backgrounds 2021-12-16 12:44:18 -05:00
Christian Jonak
68eb6fc3c1 fix: use center freq instead of beginning of freq range for 6Ghz 2021-12-16 18:14:56 +01:00
jeremystretch
1dd3d2ec48 Changelog for #8054 2021-12-16 11:32:31 -05:00
jeremystretch
ea6cdc9673 Closes #7650: Add support for local account password validation 2021-12-16 11:28:57 -05:00
Jeremy Stretch
134742a8b7 Merge pull request #8090 from netbox-community/8054-configurable-choice-fields
Closes #8054: Configurable choice fields
2021-12-16 11:17:32 -05:00
jeremystretch
d8be8e25a5 ChoiceSet cleanup 2021-12-16 10:31:32 -05:00
jeremystretch
1902ecb8ca Drop as_dict() method from ChoiceSet 2021-12-16 10:22:05 -05:00
jeremystretch
124302908a Support nested choice groups 2021-12-16 10:19:16 -05:00
jeremystretch
0d3b50a5e5 Support CSS class definition directly in CHOICES iterable 2021-12-16 10:03:23 -05:00
jeremystretch
419f86a4a5 #8054: Support configurable status choices 2021-12-16 09:36:15 -05:00
jeremystretch
fd785fc9a5 Move speed select dropdown menu to widget template 2021-12-16 08:41:43 -05:00
jeremystretch
8d06908353 Bulk component add view should use tabs 2021-12-15 16:57:30 -05:00
jeremystretch
806706ca1d Refresh development documentation 2021-12-15 16:31:06 -05:00
jeremystretch
28f577738a Merge branch 'develop' into feature 2021-12-15 13:19:17 -05:00
jeremystretch
044e203eab Standardize button colors 2021-12-15 12:16:50 -05:00
jeremystretch
fcc7207b67 Restore actions column under VM interfaces table 2021-12-15 12:11:20 -05:00
jeremystretch
8dbd3f332b Closes #8081: Allow creating services directly from navigation menu 2021-12-15 11:55:27 -05:00
jeremystretch
f43ec7c05d Add "add IP range" button to prefix IP ranges view 2021-12-15 11:03:38 -05:00
jeremystretch
997e88af00 Merge branch 'develop' into feature 2021-12-15 10:53:21 -05:00
jeremystretch
ff9dde54e3 Ensure consistent placement of table paginator 2021-12-15 10:34:20 -05:00
jeremystretch
3699f16848 Show per-page selector only when results are present 2021-12-15 09:46:59 -05:00
jeremystretch
fee2ac2ebd Changelog for #8057 2021-12-15 09:36:52 -05:00
Jeremy Stretch
57d3bfcfc9 Merge pull request #8073 from netbox-community/8057-htmx-tables
Closes #8057: Dynamic object tables using HTMX
2021-12-15 09:16:41 -05:00
jeremystretch
b92e34556f Fixes #8077: Fix exception when attaching image to location, circuit, or power panel 2021-12-15 08:45:17 -05:00
jeremystretch
b6ff55309e Fixes #8078: Add missing wireless models to lsmodels() in nbshell 2021-12-15 08:38:19 -05:00
jeremystretch
305d88ebda Fixes #8079: Fix validation of LLDP neighbors when connected device has an asset tag 2021-12-15 08:36:03 -05:00
jeremystretch
cdc73d4f56 Closes #8080: Link to NAT IPs for device/VM primary IPs 2021-12-15 08:35:01 -05:00
jeremystretch
0e50c964d5 Remove obsolete pagination TS/CSS 2021-12-14 21:00:48 -05:00
jeremystretch
863fb9aa47 Sync HTMX and non-HTMX paginator styles 2021-12-14 20:53:24 -05:00
jeremystretch
298fb00a3e Remove obsolete "quick find" TS 2021-12-14 20:04:49 -05:00
jeremystretch
d1e8c06d36 Fixes #8074: Ordering VMs by name should reference naturalized value 2021-12-14 17:03:03 -05:00
jeremystretch
8ed79d5973 Remove obsolete templates 2021-12-14 16:44:03 -05:00
jeremystretch
85b10b59e4 Introduce child prefixes view for aggregates 2021-12-14 16:38:25 -05:00
jeremystretch
9a53c22833 Serve HTMX JS locally 2021-12-14 15:55:40 -05:00
jeremystretch
c981b5cba0 Add prep_table_data() method to ObjectChildrenView 2021-12-14 15:42:28 -05:00
jeremystretch
4ffa823ab8 Enable HTMX for all ObjectChildrenViews 2021-12-14 15:31:42 -05:00
Jeremy Stretch
001c7e4b18 Merge pull request #8070 from netbox-community/8069-generic-children-view
Closes #8069: Generic children view
2021-12-14 14:30:41 -05:00
jeremystretch
402136dc8f Merge branch '8069-generic-children-view' into 8057-htmx-tables 2021-12-14 14:21:08 -05:00
jeremystretch
59ee30f056 Update cluster VM/device views to use ObjectChildrenView 2021-12-14 14:08:44 -05:00
jeremystretch
c795068a78 Update VLAN member interface views to use ObjectChildrenView 2021-12-14 14:03:44 -05:00
jeremystretch
5ce080779b Update IPRange IP addresses view to use ObjectChildrenView 2021-12-14 13:55:09 -05:00
jeremystretch
8d3b296eed Update device/VM component views to use ObjectChildrenView 2021-12-14 13:47:40 -05:00
jeremystretch
cfdb985d00 Update prefix children views to use ObjectChildrenView 2021-12-14 13:33:53 -05:00
jeremystretch
af6f0db284 Introduce ObjectChildrenView 2021-12-14 13:33:36 -05:00
jeremystretch
491eac184e Enable HTMX for connections lists 2021-12-14 11:53:16 -05:00
jeremystretch
414d33eb26 Refactor HTMX table template 2021-12-14 11:41:39 -05:00
jeremystretch
2dad35186a Generic view cleanup 2021-12-14 11:28:13 -05:00
jeremystretch
6dd6094088 Push HTMX URL to browser location 2021-12-14 08:25:17 -05:00
rizlas
2ec64a2ea2 Get_Environment from napalm should not need any decoding 2021-12-14 10:17:00 +01:00
jeremystretch
5c34a75032 Enable HTMX for quick table search 2021-12-13 20:15:03 -05:00
jeremystretch
91f33d3289 #8057: Enable dynamic tables for object list views 2021-12-13 16:51:59 -05:00
jeremystretch
c50dc1eb35 Standardize usage of table template 2021-12-13 15:36:51 -05:00
jeremystretch
dc1331e736 Fixes #7674: Fix inadvertent application of device type context to virtual machines 2021-12-13 13:42:59 -05:00
jeremystretch
afc866eee4 #7665: Refactored add_requested_prefixes(); removed button icons 2021-12-13 12:15:43 -05:00
jeremystretch
b6d93b7c5b Changelog for #7665 2021-12-13 12:10:03 -05:00
Jeremy Stretch
5d6158dd64 Merge pull request #7826 from WillIrvine/develop
Add filter for optionally including assigned prefixes
2021-12-13 12:04:38 -05:00
jeremystretch
f2f6edabf9 Merge branch 'develop' into feature 2021-12-13 11:29:54 -05:00
jeremystretch
e9549ab0bd PRVB 2021-12-13 09:16:55 -05:00
Jeremy Stretch
779249ff81 Merge pull request #8053 from netbox-community/develop
Release v3.1.1
2021-12-13 09:08:33 -05:00
jeremystretch
66d206a710 Release v3.1.1 2021-12-13 08:51:55 -05:00
jeremystretch
bfc1cab6df Fixes #8051: Contact group parent assignment should not be required under REST API 2021-12-13 08:22:48 -05:00
jeremystretch
5b0c79629e Closes #8047: Display sorting indicator in table column headers 2021-12-10 21:03:24 -05:00
jeremystretch
7922d3909a Fixes #8042: Fix filtering cables list by site slug or rack name 2021-12-10 16:41:03 -05:00
jeremystretch
ee6e2e0af1 Fixes #7690: Fix custom field integer support for MultiValueNumberFilter 2021-12-10 16:34:38 -05:00
jeremystretch
326a6be91c #7519: Update REST API tests 2021-12-10 15:45:22 -05:00
jeremystretch
58095e1916 Fixes #8038: Placeholder filter should display zero integer values 2021-12-10 15:38:51 -05:00
jeremystretch
3dae077b4d Fixes #8035: Redirect back to parent prefix after creating IP address(es) where applicable 2021-12-10 15:34:12 -05:00
jeremystretch
7c14c0812b Fixes #7519: Return a 409 status for unfulfillable available prefix/IP requests 2021-12-10 15:11:45 -05:00
Jeremy Stretch
3a05eda63a Merge pull request #8039 from netbox-community/5869-available-prefixes
Fixes #5869: Fix permissions evaluation under available prefix/IP REST API endpoints
2021-12-10 14:22:29 -05:00
jeremystretch
d850b3ac7e Fix available prefix creation test 2021-12-10 13:58:11 -05:00
jeremystretch
08de6c32c9 Changelog for #5869 2021-12-10 13:26:56 -05:00
jeremystretch
91fe158c26 Restore endpoint schema documentation 2021-12-10 13:23:49 -05:00
jeremystretch
661b3c4bfb Fix queryset restrictions 2021-12-10 12:52:48 -05:00
jeremystretch
35eabc0353 Move available IPs endpoints to separate views 2021-12-10 12:37:55 -05:00
jeremystretch
ef5bbdb1e2 Move available prefixes endpoint to its own view 2021-12-10 11:40:57 -05:00
jeremystretch
88fae2171d Closes #7691: Remove field_order from filterset forms 2021-12-10 08:57:19 -05:00
jeremystretch
7d99e15dc3 Closes #7743: Remove legacy ASN field from site model 2021-12-09 17:01:27 -05:00
jeremystretch
d2d2978288 Closes #7748: Remove legacy contact fields from site model 2021-12-09 16:23:39 -05:00
jeremystretch
8680981990 Closes #8031: Remove automatic redirection of legacy slug-based URLs 2021-12-09 15:43:41 -05:00
jeremystretch
78ca6f1a87 Use strings for build matrix 2021-12-09 15:39:50 -05:00
jeremystretch
62e5680eaf Closes #7731: Require Python 3.8 or later 2021-12-09 15:35:40 -05:00
jeremystretch
de698154cd Fixes #8030: Validate custom field names 2021-12-09 15:19:19 -05:00
jeremystretch
1df05715c2 Fixes #8033: Fix display of zero values for custom integer fields in tables 2021-12-09 14:56:12 -05:00
jeremystretch
e5524da40e Fixes #8009: Validate IP addresses for uniqueness when creating an FHRP group 2021-12-09 13:46:19 -05:00
jeremystretch
50d393e0f9 Clean up user preferences view 2021-12-08 16:36:06 -05:00
jeremystretch
cd08836f3e Refresh user profile view; add recent activity 2021-12-08 16:32:31 -05:00
jeremystretch
45ac1cfd54 Fixes #8019: Exclude metrics endpoint when LOGIN_REQUIRED is true 2021-12-08 15:47:41 -05:00
jeremystretch
dda11ec69e Fixes #8003: Fix cable tracing across bridged interfaces with no cable 2021-12-08 11:35:50 -05:00
jeremystretch
7be6206d9d Fixes #8010: Allow filtering devices by multiple serial numbers 2021-12-08 11:08:19 -05:00
jeremystretch
4d896573b1 Fixes #8005: Fix contact email display 2021-12-08 11:04:03 -05:00
jeremystretch
988383648c Fixes #8001: Correct verbose name for wireless LAN group model 2021-12-08 10:45:27 -05:00
Daniel Sheppard
d59847537d Fix #7990 - Fix title display on contact view 2021-12-07 10:58:44 -06:00
jeremystretch
36859d89c8 Fixes #7996: Show WWN field in interface creation form 2021-12-07 10:59:08 -05:00
Christian Jonak-Möchel
cc50e22928 feat: add 6GHz & 60Ghz channels 2021-12-07 15:14:17 +01:00
William Irvine
13414dcd25 pep8 compliance... 2021-12-07 10:13:54 +13:00
jeremystretch
ba8b593351 PRVB 2021-12-06 16:13:48 -05:00
William Irvine
aebfccfd4b Merge branch 'develop' into develop 2021-12-07 10:06:35 +13:00
Jeremy Stretch
5a59f2352c Merge pull request #7986 from netbox-community/develop
Release v3.1.0
2021-12-06 16:00:19 -05:00
jeremystretch
5164b78da1 Release v3.1.0 2021-12-06 15:01:36 -05:00
jeremystretch
5561b46a59 Finalize release notes 2021-12-06 14:58:49 -05:00
jeremystretch
26b2431cbf Bump django-taggit to 2.0.0 2021-12-06 14:38:13 -05:00
jeremystretch
029605f926 Clean up site view 2021-12-06 13:43:02 -05:00
jeremystretch
0cd173f9df Update django-taggit to 2.0 2021-12-06 13:25:09 -05:00
jeremystretch
414810bdf5 Update required dependencies 2021-12-06 13:15:17 -05:00
jeremystretch
f94c1e91ea Merge branch 'develop' into feature 2021-12-06 12:10:31 -05:00
Jeremy Stretch
b7129e1456 Merge pull request #7984 from netbox-community/develop
Release v3.0.12
2021-12-06 12:07:04 -05:00
jeremystretch
dc6decd404 Release v3.0.12 2021-12-06 11:54:50 -05:00
jeremystretch
40c6b172f7 Fixes #7981: Fix Markdown sanitization regex 2021-12-06 11:33:00 -05:00
thatmattlove
7cb9cedfe1 Fixes #7823: Properly handle return_url when Save & Continue button is present 2021-12-03 16:20:05 -07:00
jeremystretch
b43980d660 Fixes #7960: Prevent creation of regions/site groups/locations with duplicate names (see #7354) 2021-12-03 15:09:56 -05:00
jeremystretch
09b612546b Omit actions column from non-paginated child object tables 2021-12-03 11:07:16 -05:00
jeremystretch
a99d14c13f Closes #7924: Include child groups on contact group view 2021-12-03 11:00:00 -05:00
jeremystretch
68f322a03b Closes #7925: Linkify contact phone and email attributes 2021-12-03 10:51:24 -05:00
jeremystretch
97f0414ff3 Changelog for #7751, #7885, #7892 2021-12-03 09:51:05 -05:00
Jeremy Stretch
d5f308d9c9 Merge pull request #7928 from kkthxbye-code/fix-7751
Fix #7751: LDAP: Only get API user from ldap when FIND_GROUP_PERMS is on
2021-12-03 09:48:58 -05:00
Jonathan Senecal
1377eda0ba Add support for L22-30P power port type (#7915)
* Add support for L22-30P power port type

Fixes #7892

* Add support for L22-30R power outlet type
2021-12-03 09:43:42 -05:00
Jeremy Stretch
70259b0d04 Merge pull request #7970 from rhyser9/7885_linkify_vlan_name
Fixes #7885: Linkify VLAN name in VLAN tables
2021-12-03 09:41:28 -05:00
Rhys Barrie
f1466d6da3 netbox-community/netbox#7885: Linkify VLAN name in VLAN tables 2021-12-02 12:27:30 -05:00
Will Irvine
ca07a88674 fix spelling... 2021-12-02 10:47:19 +13:00
jeremystretch
83010e278c Add changelog for #7932, #7941 2021-12-01 09:18:31 -05:00
Will Irvine
dcfd332cbf Moved filtering logic to utils, adjusted show buttons 2021-12-01 19:24:44 +13:00
thatmattlove
dc3040550d Merge branch 'fast-filter' into develop 2021-11-30 10:10:38 -07:00
Daniel Sheppard
3b25db919a Update changelog for #7940 2021-11-30 09:43:14 -06:00
Daniel Sheppard
09f038f997 Merge pull request #7941 from bluikko/patch-9
Add multistandard ITA power outlet type
2021-11-30 09:37:53 -06:00
bluikko
bbdd3804c7 Add multistandard ITA power outlet type 2021-11-26 10:06:52 +07:00
kkthxbye
a0b9ac7bcc UI: Improve performance of the quick filter 2021-11-25 12:14:07 +01:00
kkthxbye
8bb0cba949 Fix #7751 - LDAP: Only get API user from ldap when FIND_GROUP_PERMS is enabled 2021-11-25 08:09:50 +01:00
jeremystretch
870aa3a265 Merge branch 'develop' into feature 2021-11-24 14:00:37 -05:00
jeremystretch
86ada33577 PRVB 2021-11-24 13:58:57 -05:00
Jeremy Stretch
869808b3f9 Merge pull request #7922 from netbox-community/develop
Release v3.0.11
2021-11-24 13:51:17 -05:00
jeremystretch
57ccbf44b8 Release v3.0.11 2021-11-24 13:25:57 -05:00
jeremystretch
416caa8f50 Hide code blocks when not needed 2021-11-24 13:17:59 -05:00
jeremystretch
1e42fecf66 Changelog for #7657 2021-11-24 09:15:30 -05:00
Jeremy Stretch
c9b00891ed Merge pull request #7861 from netbox-community/7657-threadsafe-changelog
Fixes #7657: Make request/webhook caching thread-safe
2021-11-24 09:06:48 -05:00
Jeremy Stretch
497eacbea3 Merge pull request #7898 from ypid/fix/7897
CEE 7/5 exists as power port and power outlet. It is only a power port.
2021-11-22 13:45:08 -05:00
jeremystretch
f90c591c78 Fixes #7890: Correct typo 2021-11-22 13:36:51 -05:00
Robin Schneider
175498940e Fixes #7897: CEE 7/5 is only a power outlet, no power port
Ref:

* https://en.wikipedia.org/wiki/CEE_7_standard_AC_plugs_and_sockets#CEE_7/5_socket_and_CEE_7/6_plug_(French;_Type_E)
* https://blog.packetsar.com/wp-content/uploads/Power_and_Cooling_Cheat_Sheet.pdf
2021-11-21 23:41:36 +01:00
Robin Schneider
eded00cbb3 chore: Always use "CEE 7" (with the space) consistently 2021-11-21 22:23:29 +01:00
Dave
038d7e0fa6 Add missing HTTP_X_FORWARDED_FOR
See discussion [here](https://github.com/netbox-community/netbox/discussions/7876) for background.

From the [doc](https://netbox.readthedocs.io/en/stable/customization/custom-scripts/) i should be able to access `META.HTTP_X_FORWARDED_FOR` but i was not able to since they were not being sent downstream
2021-11-19 15:20:00 -05:00
jeremystretch
b7c9ca720a Closes #7886: Introduce a base FilterForm class 2021-11-19 15:12:45 -05:00
jeremystretch
7072f207c0 Call out all models with cable_peer name changes 2021-11-19 11:42:34 -05:00
jeremystretch
5f59f458f4 Fixes #7880: Include assigned IP addresses in FHRP group object representation 2021-11-19 11:34:59 -05:00
jeremystretch
b6fe613329 Fix redirection after creating FHRP group assignment 2021-11-19 10:42:13 -05:00
jeremystretch
cd128e557c Closes #7884: Add FHRP groups column to interface tables 2021-11-19 10:27:56 -05:00
Jeremy Stretch
30a5c70260 Merge pull request #7878 from netbox-community/7877-bootstrapmixin-cleanup
Closes #7877: BootstrapMixin cleanup
2021-11-18 17:05:29 -05:00
jeremystretch
beca978af5 Clean up imports 2021-11-18 16:48:29 -05:00
jeremystretch
98a830a6a0 Apply BootstrapMixin to ComponentForm 2021-11-18 16:32:22 -05:00
jeremystretch
ed2231e34b Apply BootstrapMixin to CustomFieldModelFilterForm 2021-11-18 16:27:06 -05:00
jeremystretch
55049bb303 Apply BootstrapMixin to BulkEditForm 2021-11-18 16:23:26 -05:00
jeremystretch
c210c6937b Apply BootstrapMixin to CustomFieldModelForm 2021-11-18 16:19:25 -05:00
jeremystretch
d2767f39f0 Closes #7850: Add note about where to assign FHRP groups 2021-11-18 15:12:12 -05:00
jeremystretch
1c9d39d3e6 Fix REST API version reporting for beta releases 2021-11-18 11:19:00 -05:00
jeremystretch
f16c6d81cf Merge branch 'develop' into feature 2021-11-18 11:06:54 -05:00
jeremystretch
e8d6281007 Changelog for #7399 2021-11-18 10:02:23 -05:00
Jeremy Stretch
8299845615 Merge pull request #7676 from kkthxbye-code/develop
Fix #7399: LDAP excessive CPU usage when AUTH_LDAP_FIND_GROUP_PERMS is enabled
2021-11-18 09:58:34 -05:00
jeremystretch
9ae5865c2d Fixes #7865: REST API should support null values for console port speeds 2021-11-18 09:34:41 -05:00
jeremystretch
c2d0cfdfc0 Fixes #7864: power_port can be null when creating power outlets 2021-11-18 09:27:45 -05:00
Jeremy Stretch
5dd252731e Merge pull request #7863 from etcet/sudo-ln-s
Fixes #7862: Docs: Link housekeeping cron using sudo
2021-11-18 09:16:55 -05:00
Chris James
7b9436d2b9 Docs: Run ln with sudo 2021-11-17 20:33:42 -06:00
jeremystretch
6a369ac985 Closes #7531: Add Markdown support for strikethrough formatting 2021-11-17 16:50:23 -05:00
jeremystretch
23d90823a3 Fixes #7720: Fix initialization of custom script MultiObjectVar field with multiple values 2021-11-17 16:22:47 -05:00
jeremystretch
4bfb6b476c Fixes #7859: Fix styling of form widgets under cable connection views 2021-11-17 15:53:26 -05:00
jeremystretch
0d60099588 Move request object and webhook queue to TLS 2021-11-17 15:12:19 -05:00
jeremystretch
9a45547cda Closes #5143: Include a device's asset tag in its display value 2021-11-17 13:06:57 -05:00
jeremystretch
a000ded350 Remove "primary for" references to Device on IPAddress 2021-11-17 12:50:46 -05:00
jeremystretch
424ac29131 Closes #7812: Enable change logging for image attachments 2021-11-17 11:52:50 -05:00
jeremystretch
b7b5a5788f Fixes #7589: Correct 128GFC interface type identifier 2021-11-17 11:18:41 -05:00
jeremystretch
9de179cba8 Closes #7858: Standardize the representation of content types across import & export functions 2021-11-17 11:02:22 -05:00
jeremystretch
94069e76c9 Fixes #7857: Fix ordering IP addresses by assignment status 2021-11-17 08:51:17 -05:00
jeremystretch
df9d67b873 Fixes #7851: Add missing cluster name filter for virtual machines 2021-11-17 08:48:09 -05:00
jeremystretch
6f7fbf7686 Fixes #7849: Fix exception when creating an FHRPGroup with an invalid IP address 2021-11-16 16:50:20 -05:00
jeremystretch
f32e694499 Fixes #7739: Fix exception when tracing cable across circuit with no far end termination 2021-11-15 12:41:57 -05:00
jeremystretch
e5900a3fe3 Correct changelog for #7729 2021-11-15 09:04:18 -05:00
jeremystretch
6e151b044d Changelog for #7229, #7424, #7542 2021-11-15 08:56:03 -05:00
Jeremy Stretch
516bea6a0a Merge pull request #7829 from rhyser9/7542_prefix_vlan_group_column
Fix #7542: Add VLAN Group column to IP Prefix table
2021-11-15 08:54:30 -05:00
Jeremy Stretch
496cabcc53 Merge pull request #7828 from rhyser9/7229_bug_add_vlans_link
Fix #7229: Fix context of VLAN table in VLAN Group view
2021-11-15 08:52:36 -05:00
Jeremy Stretch
d051db5083 Merge pull request #7827 from rhyser9/7424_virtualchassis_id_filter
Fix #7424: Add virtual_chassis_id filter for device components
2021-11-15 08:43:45 -05:00
Rhys Barrie
660fc23e15 netbox-community/netbox#7542: Add VLAN Group column to IP Prefix table 2021-11-13 23:29:26 -05:00
Rhys Barrie
a5a480133f netbox-community/netbox#7229: Fix context of VLAN table in VLAN Group view 2021-11-13 23:08:46 -05:00
Rhys Barrie
68b544c676 netbox-community/netbox#7424: add filterset test for virtual_chassis_id 2021-11-13 22:16:18 -05:00
Rhys Barrie
a8c958ece2 netbox-community/netbox#7424: fix test failure from adding virtual chassis filter field 2021-11-13 22:01:15 -05:00
Rhys Barrie
f77f7ca0ec netbox-community/netbox#7424:make device component device field filter from selected virtual chassis 2021-11-13 21:35:13 -05:00
Rhys Barrie
6b21c8453f netbox-community/netbox#7424: Add virtual_chassis field to device component filter form 2021-11-13 21:33:52 -05:00
Rhys Barrie
fa8a8abc98 netbox-community/netbox#7424: Add virtual_chassis and virtual_chassis_id filter to device components 2021-11-13 21:30:38 -05:00
Will Irvine
80048bfa2b Make the same changes for aggregate views as these use the same adjusted functions 2021-11-13 16:42:38 +13:00
Will Irvine
641a9bc6c5 pep8 compliance 2021-11-13 15:26:07 +13:00
Will Irvine
0edf9b17f6 Closes #7665 add new boolen for filtering assigned prefixes, adjust current filter for avaliabile prefixes to only return avaliable 2021-11-13 13:27:49 +13:00
Jeremy Stretch
98cc36c458 Merge pull request #7824 from netbox-community/2101-q-filters
Closes #2101: Ensure all relevant models have a general purpose search filter
2021-11-12 15:48:19 -05:00
jeremystretch
f3beabba69 Changelog for #2101 2021-11-12 15:33:49 -05:00
jeremystretch
467fa5a847 Add q filters for Token and ObjectPermission filter sets 2021-11-12 15:30:16 -05:00
jeremystretch
50f283cf28 Add q filter for extras models 2021-11-12 15:26:58 -05:00
jeremystretch
f49d7008a0 Add q filters for connection lists 2021-11-12 15:05:33 -05:00
jeremystretch
1fed564c47 Clean up script & report lists 2021-11-12 14:44:14 -05:00
jeremystretch
bb99c3e6f9 Changelog for #7803, #7810 2021-11-12 13:46:06 -05:00
Jeremy Stretch
8820cac792 Merge pull request #7820 from kkthxbye-code/script-reload
Fix #7803: Clear sys.modules cache when reloading scripts
2021-11-12 13:44:42 -05:00
Jeremy Stretch
ada911c20b Merge pull request #7816 from byts-tech/FR7810
Fixes: #7810 Add IEEE 802.15.1 Interface Type
2021-11-12 13:40:41 -05:00
jeremystretch
17e01644f5 Fixes #7813: Fix handling of errors during export template rendering 2021-11-12 13:32:52 -05:00
kkthxbye
9458521f3e Merge branch 'netbox-community:develop' into script-reload 2021-11-12 17:07:11 +01:00
Flo
8aa73c5900 Add IEEE 802.15.1 Interface Type 2021-11-12 16:05:42 +01:00
jeremystretch
500f213c6b Fix erroneous merge resolution 2021-11-12 09:29:55 -05:00
jeremystretch
cede27b5fe Merge branch 'develop' into feature 2021-11-12 09:09:15 -05:00
jeremystretch
c0ca1eaf90 PRVB 2021-11-12 08:54:08 -05:00
Jeremy Stretch
b29a5511df Merge pull request #7815 from netbox-community/develop
Release v3.0.10
2021-11-12 08:50:43 -05:00
jeremystretch
49e77841e0 Release v3.0.10 2021-11-12 08:36:33 -05:00
jeremystretch
daf6c8e327 Fixes #7814: Fix restriction of user & group objects in GraphQL API queries 2021-11-12 08:23:58 -05:00
jeremystretch
9f8068e8d1 Fixes #7808: Fix reference values for content type under custom field import form 2021-11-11 16:21:27 -05:00
jeremystretch
0b705553a5 Fixes #7809: Add missing export template support for various models 2021-11-11 16:16:54 -05:00
jeremystretch
a799094227 Fixes #7788: Improve XSS mitigation in Markdown renderer 2021-11-11 15:38:34 -05:00
jeremystretch
d529c1b5b3 Housekeeping: Use RestrictedQuerySet for default manager on base models 2021-11-11 15:04:22 -05:00
jeremystretch
834f68e6e4 Fixes #7761: Extend cable tracing across bridged interfaces 2021-11-11 14:45:10 -05:00
jeremystretch
83b2102705 Closes #7769: Enable assignment of IP addresses to an existing FHRP group 2021-11-11 14:05:35 -05:00
jeremystretch
2f064cdfd1 Changelog for #7767 2021-11-11 12:30:28 -05:00
Jeremy Stretch
6c28182dd3 Merge pull request #7767 from CironAkono/FR6925
Fixes: #6925 Interfaces Table - bring back the visual aids from v2.9
2021-11-11 12:29:01 -05:00
jeremystretch
3cb8c5db28 Fixes #7654: Fix assignment of members to virtual chassis with initial position of zero 2021-11-11 12:10:47 -05:00
CironAkono
251abdb4dd Apply suggestions from code review
Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2021-11-11 16:36:13 +00:00
jeremystretch
726e4df54b Changelog for #7791 2021-11-11 11:31:51 -05:00
Jeremy Stretch
bd32a6ac8e Merge pull request #7804 from kkthxbye-code/fix-7791
Fix #7791 - Allow devicebay table to be sorted by status
2021-11-11 10:46:15 -05:00
jeremystretch
27d7400c36 Fixes #7802: Differentiate ID and VID columns in VLANs table 2021-11-11 10:23:38 -05:00
kkthxbye-code
53e52aeaa8 Fix sorting devicebay table by status 2021-11-11 14:05:39 +01:00
kkthxbye-code
ae6ed97a80 Clear sys.modules cache when reloading scripts 2021-11-11 11:53:31 +01:00
jeremystretch
34f24de3e4 Fixes #7757: Fix 404 when assigning multiple contacts/FHRP groups in succession 2021-11-09 17:08:28 -05:00
jeremystretch
f93d6813a9 Merge branch 'develop' into feature 2021-11-09 16:52:36 -05:00
jeremystretch
3ad773beb3 Fixes #7741: Fix 404 when attaching multiple images in succession 2021-11-09 16:46:58 -05:00
jeremystretch
be91235858 Changelog for #7740 2021-11-09 16:08:11 -05:00
Jeremy Stretch
95fc0bbc94 Merge pull request #7774 from byts-tech/FR7740
Fixes: #7740 Add Mini-DIN 8 Console-Port-Type
2021-11-09 16:06:58 -05:00
jeremystretch
9dad7e4daf Fixes #7701: Fix conflation of assigned IP status & role in interface tables 2021-11-09 16:04:16 -05:00
jeremystretch
d08ed9fe5f Fixes #7780: Preserve mutli-line values during CSV file import 2021-11-09 15:24:21 -05:00
jeremystretch
82210cc116 Changelog for #7783 2021-11-09 15:15:34 -05:00
Jeremy Stretch
94d3e76517 Merge pull request #7785 from jasonyates/develop
Fixes #7783 - Site location visual changes
2021-11-09 15:12:47 -05:00
Jason Yates
3f72492a59 Fixed #7783 - Site location visual changes
Updating site location list to visually match the /dcim/locations list where child locations are "indtended" with mdi-circle-small.

Also removes the padding-left attribute on each row as it is no longer functional.
2021-11-09 15:18:46 +00:00
Jeremy Stretch
c0653da736 Merge pull request #7778 from netbox-community/7775-dynamic-config
7775 dynamic config
2021-11-08 15:54:25 -05:00
jeremystretch
f3d8f1b1fb Changelog for #7775 2021-11-08 15:38:55 -05:00
jeremystretch
d2391b9c63 Move GRAPHQL_ENABLED to dynamic configuration 2021-11-08 15:31:09 -05:00
jeremystretch
f8e44c09eb Move CUSTOM_VALIDATORS to dynamic configuration 2021-11-08 15:22:29 -05:00
jeremystretch
2a00519b93 Move CHANGELOG_RETENTION to dyanmic configuration 2021-11-08 15:07:58 -05:00
jeremystretch
3292a2aecc Closes #7619: Permit custom validation rules to be defined as plain data or dotted path to class 2021-11-08 14:52:56 -05:00
Flo
b7aa44837f Add Mini-DIN 8 Console-Port-Type 2021-11-08 17:50:13 +01:00
jeremystretch
17fd6e692e Fixes #7768: Validate IP address status when creating a new FHRP group 2021-11-08 08:40:24 -05:00
jeremystretch
2ce8ef5704 Fixes #7771: Group assignment should be optional when creating contacts via REST API 2021-11-08 08:34:10 -05:00
jeremystretch
7b7afd3e7b Changelog for #7765 2021-11-08 08:24:14 -05:00
Nico Domino
9c2514fce4 feat: add outer_width to RackTable (#7766)
* feat: add outer_width to RackTable

* fix: add outer_units to column display

* feat: add outer_depth to available columns
2021-11-08 08:15:26 -05:00
jeremystretch
e04402ed57 Allow bypassing the pre-commit script with NOVALIDATE=1 2021-11-05 13:40:38 -04:00
jeremystretch
3eda8d8482 Closes #7760: Add vid filter field to VLANs list 2021-11-05 13:31:36 -04:00
jeremystretch
79f2f03fb2 Issues policy tweaks 2021-11-05 13:26:18 -04:00
jeremystretch
f7d0db9cd2 Fixes #7756: Fix AttributeError exception when editing an IP address assigned to a FHRPGroup 2021-11-05 13:16:43 -04:00
jeremystretch
fab1d3651b Add new models to developer docs 2021-11-05 13:10:27 -04:00
jeremystretch
e5d7578663 Fixes #7750: Fix cable trace image link 2021-11-05 11:10:17 -04:00
jeremystretch
cf80c1a506 Release v3.1-beta1 2021-11-05 09:03:27 -04:00
jeremystretch
4649ab2d85 Merge branch 'develop' into feature 2021-11-05 08:49:25 -04:00
jeremystretch
773fd47ca6 Fixes #7752: Fix minimum version check under Python v3.10 2021-11-05 08:45:57 -04:00
jeremystretch
2fd526b359 Fix up contact template 2021-11-05 08:33:16 -04:00
kkthxbye-code
830cf4b31f Fix #7399 - LDAP using excessive CPU when AUTH_LDAP_FIND_GROUP_PERMS is enabled 2021-11-05 10:28:30 +01:00
jeremystretch
2826f27153 Split interface edit forms into subsections 2021-11-04 16:36:49 -04:00
jeremystretch
83ac869693 Fix ASNs column in SiteTable 2021-11-04 16:29:43 -04:00
jeremystretch
bc92f9221a Tweak site ASN filters & tests 2021-11-04 16:22:55 -04:00
jeremystretch
c2f85a2877 #6732: Show sites table under ASN view 2021-11-04 16:16:59 -04:00
jeremystretch
0bbd186635 Rearrange site view layout 2021-11-04 15:58:52 -04:00
jeremystretch
806dcd74ec Split circuits models into submodules 2021-11-04 15:58:17 -04:00
jeremystretch
93772e7265 Move remote authentication config parameters to a separate page 2021-11-04 15:41:46 -04:00
jeremystretch
9094f07290 Fix config revision form help texts 2021-11-04 15:35:17 -04:00
jeremystretch
0aae155c80 Refresh installation docs 2021-11-04 15:18:58 -04:00
jeremystretch
54233aba1b Remove extraneous slug field from contact import form 2021-11-04 14:23:24 -04:00
jeremystretch
bd3d2c60d9 FHRP groups cleanup 2021-11-04 14:19:10 -04:00
jeremystretch
2e75a111ed Fix return URLs for contact assignment edit/delete 2021-11-04 14:09:12 -04:00
jeremystretch
e4b0359b8e Include action buttons on contact assignments table 2021-11-04 14:01:07 -04:00
jeremystretch
803e0bfe72 #1344: Show object type & name when assigning a contact 2021-11-04 13:44:02 -04:00
jeremystretch
a5024a65a0 Add warning for Python 3.7 2021-11-04 13:32:52 -04:00
jeremystretch
734a00237a Clean up FHRP group filterset tests 2021-11-04 13:23:02 -04:00
jeremystretch
06f1d15283 Introduce create_test_virtualmachine() 2021-11-04 13:22:21 -04:00
jeremystretch
ff3edc9889 Add NestedContactAssignmentSerializer; add contact assignment API tests 2021-11-04 11:55:00 -04:00
jeremystretch
8f1acb700d Fix ID list creation in API tests 2021-11-04 11:31:39 -04:00
jeremystretch
519884d167 Invert default priority ordering for FHRPGroupAssignment 2021-11-04 11:17:10 -04:00
jeremystretch
3f0a98acbd Add nested FHRPGroupAssignment serializer; add missing API tests 2021-11-04 11:15:34 -04:00
jeremystretch
c023e5f518 Fix up FHRPGroupAssignmentTable 2021-11-04 10:05:47 -04:00
jeremystretch
67c73768c1 Add count_fhrp_groups to interface serializers 2021-11-04 09:58:33 -04:00
jeremystretch
bbb98083eb Clean up filtersets 2021-11-03 16:58:31 -04:00
jeremystretch
8bb9f4b8a2 #1344: Add missing object field to ContactAssignmentSerializer 2021-11-03 16:27:43 -04:00
jeremystretch
96cde7d4af Add wireless_lans to InterfaceSerializer; extend tests 2021-11-03 15:55:16 -04:00
jeremystretch
ea39c8a4c1 Optimize interface REST API endpoints 2021-11-03 15:38:17 -04:00
jeremystretch
7a55832a22 #6732: Add asns relationship to SiteSerializer and extend tests 2021-11-03 15:24:15 -04:00
jeremystretch
7a97d5d4eb Changelog for #6732; misc fixes 2021-11-03 14:40:14 -04:00
Jeremy Stretch
8305f6d1f5 Merge pull request #7662 from netbox-community/6732-asn-model
Closes: #6732 - Add new ASN model
2021-11-03 14:15:24 -04:00
jeremystretch
dcececf9c0 Improve documentation and testing for conditions 2021-11-03 14:02:43 -04:00
jeremystretch
839afe5ac0 Improve webhook tests 2021-11-03 14:01:59 -04:00
Daniel Sheppard
c72f25c693 #6732 - Add documentation 2021-11-03 12:22:44 -05:00
Daniel Sheppard
5fc373f5cc Merge feature -> develop 2021-11-03 12:05:11 -05:00
Daniel Sheppard
cf9eaf2eff Fix dcim/views.py merge error 2021-11-03 11:36:54 -05:00
jeremystretch
04d145d6d8 Add summary page to release notes 2021-11-03 11:47:11 -04:00
Daniel Sheppard
76d73abd81 Update ip.py 2021-11-03 10:04:26 -05:00
Daniel Sheppard
0ec0185d84 Fix Migration 2021-11-03 09:51:03 -05:00
jeremystretch
7b1335825b Closes #7687: Update CentOS installation docs 2021-11-03 10:47:17 -04:00
jeremystretch
2c2e37e9f0 Merge branch 'develop' into feature 2021-11-03 10:29:02 -04:00
Daniel Sheppard
25957bfae3 Fix migration issues 2021-11-03 08:56:04 -05:00
jeremystretch
11e2200acf PRVB 2021-11-03 09:51:28 -04:00
Jeremy Stretch
f5356b84f6 Merge pull request #7730 from netbox-community/develop
Release v3.0.9
2021-11-03 09:47:37 -04:00
Daniel Sheppard
db2d71ed9e Merge branch 'feature' into 6732-asn-model 2021-11-03 08:37:11 -05:00
jeremystretch
1bf100ba15 Release v3.0.9 2021-11-03 09:32:57 -04:00
jeremystretch
7614f423e5 #7612: Use escape() rather than strip_tags() 2021-11-03 08:56:30 -04:00
jeremystretch
318c8b85e9 Fixes #7721: Retain pagination preference when MAX_PAGE_SIZE is zero 2021-11-03 08:25:50 -04:00
jeremystretch
7085fe77da Changelog for #6529 2021-11-03 08:11:38 -04:00
Jeremy Stretch
2e20d7f02b Merge pull request #7677 from netbox-community/6529-command-line-run-scripts
#6529 - Add CLI to run scripts
2021-11-03 08:10:36 -04:00
Steven
831065b5a1 #7717 Missing tags column definition in IP range table (#7724) 2021-11-03 08:05:34 -04:00
Daniel Sheppard
b97167e841 Fix PEP8 error 2021-11-02 21:40:40 -05:00
Daniel Sheppard
19bacc9e23 #6529 - Adjusted the arguments. Fixed documentation 2021-11-02 21:37:11 -05:00
jeremystretch
61b61b1bc0 Fixes #7664: Preserve initial form data when bulk edit validation fails 2021-11-02 17:07:30 -04:00
Daniel Sheppard
7c3318df92 #6529 - Adjusted the arguments. Added documentation 2021-11-02 15:56:42 -05:00
jeremystretch
d0b85586b9 Changelog & cleanup for #6930 2021-11-02 16:24:28 -04:00
Rhys Barrie
cef0d168a5 Closes #6930: Add 'ID' column to object tables (#7673)
* netbox-community/netbox#6930: Add ID column to devices, device types, and components

* netbox-community/netbox#6930: Add ID column to sites, racks, and tenants

* netbox-community/netbox#6930: Add ID column to power, providers, TODO circuits

* netbox-community/netbox#6930: Add ID column to virtualization tables

* netbox-community/netbox#6930: Add ID column to IPAM tables

* netbox-community/netbox#6930: Add ID column to 'extras' tables

* netbox-community/netbox#6930: Move ID column to BaseTable class

* netbox-community/netbox#6930: Don't linkify ID in device component template tables

* netbox-community/netbox#6930: Don't show ID column in interface/console/power connections tables

* netbox-community/netbox#6930: Don't show ID column in device component template tables

* netbox-community/netbox#6930: Add ID column to ObjectJournal, DeviceImport, and Circuit tables

* Exclude ID column from selected tables

* netbox-community/netbox#6930:revert default columns on ObjectChangeTable, not configurable

* netbox-community/netbox#6930: Add object ID to tagged objects table in tag detail view

Co-authored-by: Jeremy Stretch <jstretch@ns1.com>
2021-11-02 16:21:34 -04:00
jeremystretch
3a192223a3 Changelog & cleanup for #7668, #7717 2021-11-02 15:58:14 -04:00
Jeremy Stretch
288a1d23e5 Merge pull request #7693 from rhyser9/7668_location_detail_elevation
Closes #7668: Add 'View Elevations' button to location detail page
2021-11-02 15:53:09 -04:00
Jeremy Stretch
7c05db8e2f Merge pull request #7718 from cybarox/7717-fix-tags-missing-from-ip-ranges-table-fields
Closes #7717 Missing tags column in IP range table
2021-11-02 15:49:35 -04:00
Jeremy Stretch
18080a969e Merge pull request #7714 from netbox-community/6235-fhrp
Closes #6235: FHRP group modeling
2021-11-02 15:43:40 -04:00
jeremystretch
412430e1c3 Docs & changelog for #6235 2021-11-02 15:26:45 -04:00
jeremystretch
131e433880 Rename FHRPGroupAssignment object to interface 2021-11-02 15:10:02 -04:00
Daniel Sheppard
b7c0e8b71f #6529 - Streamline code and resolve some issues 2021-11-02 13:12:12 -05:00
jeremystretch
264652f2c3 REST API optimizations 2021-11-02 14:08:36 -04:00
jeremystretch
2cb53a0f7e Clean up FHRP group templates, forms 2021-11-02 13:32:41 -04:00
Daniel Sheppard
7625a2dd3c #6732 - Swap ASN M2M to Site model and update some templates/filters 2021-11-02 12:26:06 -05:00
jeremystretch
93da5a39be Make assignment priority a required field 2021-11-02 13:22:00 -04:00
jeremystretch
aeb4996ac2 Allow users to create new FHRP group directly from the interface view 2021-11-02 13:06:58 -04:00
Daniel Sheppard
330c498fe4 Merge feature 2021-11-02 11:16:01 -05:00
Daniel Sheppard
5d0a7cb307 #6732 - Remove migration 2021-11-02 11:10:50 -05:00
Daniel Sheppard
8c27ff3859 #6732 - Add ASN back to filtersets 2021-11-02 11:07:19 -05:00
jeremystretch
736d6cb675 Merge branch 'feature' into 6235-fhrp 2021-11-02 12:05:34 -04:00
Jeremy Stretch
200aca470b Merge pull request #7709 from netbox-community/7649-social-auth
Closes #7649: Add support for SSO
2021-11-02 12:04:58 -04:00
jeremystretch
b2dc6c5d3d Changelog & initial docs for #7649 2021-11-02 11:49:10 -04:00
cybarox
a5ec0ee277 Closes #7717 Missing tags column in IP range table 2021-11-02 15:14:08 +01:00
jeremystretch
f48d7aedce Enable filtering FHRP groups by related IP addresses 2021-11-02 09:56:52 -04:00
jeremystretch
bb4f3e1789 Initial work on #6235 2021-11-01 16:56:30 -04:00
jeremystretch
e0230ed104 Remove errant URL path 2021-11-01 13:32:02 -04:00
jeremystretch
704fdf9ccd Optimize wireless migrations 2021-11-01 11:23:58 -04:00
Rhys Barrie
d528614cbf netbox-community/netbox#7668: Relocate elevations button to location details table 2021-11-01 11:17:15 -04:00
bluikko
b5e8157700 Fix #7685: Doc image links (#7698)
* Fix image link in custom-script.md

* Fix image link in cable.md

* Fix image link in power.md
2021-11-01 09:13:18 -04:00
jeremystretch
339776c139 Initial work on SSO support (WIP) 2021-10-29 17:06:14 -04:00
Daniel Sheppard
87e07e731d #6732 - Removed ASN field hiding 2021-10-29 14:56:58 -05:00
Daniel Sheppard
3991115ae5 #6732 - Fix imports and other small items 2021-10-29 14:54:55 -05:00
Daniel Sheppard
a30e7bf34f #6732 - Add ASN field back to bulk edit 2021-10-29 14:28:13 -05:00
Daniel Sheppard
43b983054a #6732 - Corrected model field definitions 2021-10-29 14:26:19 -05:00
Daniel Sheppard
d3364ef4d1 #6732 - Restore resolve_field to the filterset 2021-10-29 14:15:37 -05:00
Rhys Barrie
24d6941cc4 netbox-community/netbox#7668: Add 'View Elevations' button to location detail page 2021-10-29 14:07:02 -04:00
jeremystretch
4099dd3a05 Closes #6615: Add filter lookups for custom fields 2021-10-29 11:23:56 -04:00
Jeremy Stretch
f420435b82 Merge pull request #7678 from netbox-community/6615-custom-field-filters
Closes #6615: Enable filter lookups for custom fields
2021-10-29 11:21:45 -04:00
jeremystretch
696fe7bc0d Add tests for custom field lookups 2021-10-29 09:45:48 -04:00
Daniel Sheppard
7c147db324 #6732 - Fix test exception in Site form 2021-10-28 16:08:32 -05:00
jeremystretch
32205045ba Use multi-value filters for custom fields 2021-10-28 16:40:51 -04:00
jeremystretch
1ce9192369 Move MACAddressField to utilities 2021-10-28 16:26:31 -04:00
Daniel Sheppard
0a62f75a40 #6529 - Add CLI to run scripts 2021-10-28 15:14:42 -05:00
jeremystretch
2e0f15b35f Automatically add additional lookup filters for custom fields 2021-10-28 16:09:36 -04:00
jeremystretch
7c60089692 Ditch CustomFieldFilter 2021-10-28 15:36:12 -04:00
Daniel Sheppard
0a8788eb97 #6732 - Fix Site form and ASN form 2021-10-28 13:57:36 -05:00
Daniel Sheppard
9565addcd4 #6732 - Fix test failure when sending data 2021-10-28 13:12:55 -05:00
jeremystretch
6377d475fc Refactor generation of additional lookup filters 2021-10-28 14:00:07 -04:00
Daniel Sheppard
fff124ebb1 #6732 - Update migration file 2021-10-28 12:06:41 -05:00
Daniel Sheppard
033db83068 Merge branch 'feature' of https://github.com/netbox-community/netbox into 6732-asn-model 2021-10-28 11:55:20 -05:00
Daniel Sheppard
de5c9ef4b2 #6732 - Add graphql support for new ASN model and fix ASN overflow on longs 2021-10-28 11:49:59 -05:00
Daniel Sheppard
3c261b05d9 #6732 - Fix ASN tests 2021-10-28 11:49:21 -05:00
Daniel Sheppard
ada81e31c9 #6732 - Fix CSV import form 2021-10-28 11:48:50 -05:00
Daniel Sheppard
0f68ecda78 #6732 - Fix hiding of ASN field in Site creation form 2021-10-28 11:47:54 -05:00
Daniel Sheppard
1902e112f6 #6732 - Fix tests for utilities 2021-10-28 11:46:55 -05:00
Daniel Sheppard
96565c31d9 #6732 - ASN should be unique 2021-10-28 10:04:12 -05:00
jeremystretch
aa9e68e121 Tweak preformatted block styling 2021-10-28 10:46:00 -04:00
jeremystretch
15e011ae52 Closes #7452: Add JSON custom field type 2021-10-28 10:29:14 -04:00
jeremystretch
a173083e5b Closes #7606: Model transmit power for interfaces 2021-10-28 09:31:45 -04:00
jeremystretch
33c0c8cf6a Extend dynamic config tests 2021-10-28 09:06:07 -04:00
Daniel Sheppard
9b5f45aee1 #6732 - Serializers 2021-10-27 23:07:04 -05:00
Daniel Sheppard
93de6c9f88 #6732 - Tests 2021-10-27 23:06:37 -05:00
Daniel Sheppard
0ad440fea5 #6732 - GraphQL support 2021-10-27 23:06:09 -05:00
Daniel Sheppard
8235b339ee #6732 - Revert some changes to legacy ASN field on site model
* Re-instates ASN field on Site model
* Re-instates ASN field on Site view
* Re-instates ASN field on edit form and API, except for where forms instances are new (add site) or instance does not have any existing AS data
* Does not re-instate asn field on SiteBulkEditForm
* Does not re-instate ASN field on SiteTable
* Does not re-instate filter for filterset, but does allow filtering by query (q=34342)
* Does not include tests for ASN field on Site model due to planned deprecation
2021-10-27 22:25:31 -05:00
Daniel Sheppard
3185cd0b1f #6732 - Correct incorrect field definition in field order 2021-10-27 21:31:59 -05:00
Jeremy Stretch
3a85edba3d Merge pull request #7648 from netbox-community/5883-dyanmic-config
Closes #5883: Enable dynamic configuration of some settings
2021-10-27 16:48:59 -04:00
jeremystretch
a573a35349 Use a key prefix for cache values when running tests 2021-10-27 16:33:59 -04:00
jeremystretch
d67d3f8d6d Add initial tests for dynamic config 2021-10-27 15:58:54 -04:00
jeremystretch
1e317f82f5 Move config parameter value population to ConfigRevisionForm init 2021-10-27 15:55:51 -04:00
jeremystretch
acdebea7f1 Improve visibility of modified values 2021-10-27 15:44:42 -04:00
thatmattlove
a090955918 Fixes #7599: Improve color mode handling 2021-10-27 11:34:21 -07:00
jeremystretch
70f71e0f57 Extend admin UI to allow restoring previous config revisions 2021-10-27 14:05:49 -04:00
jeremystretch
dfdeac4968 Fixes #7647: Require interface assignment when designating IP address as primary for device/VM during CSV import 2021-10-27 10:20:17 -04:00
jeremystretch
e84f2e3ad2 Fixes #7601: Correct devices count for locations within global search results 2021-10-27 10:10:14 -04:00
jeremystretch
98ca4f5b5a Fixes #7643: Fix circuit assignment when creating multiple terminations simultaneously 2021-10-27 10:02:36 -04:00
jeremystretch
87779b7b88 Fixes #7644: Prevent inadvertent deletion of prior change records when deleting objects (#7333 revisited) 2021-10-27 09:44:15 -04:00
jeremystretch
b56cae24c5 Fixes #7628: Fix load_yaml method for custom scripts 2021-10-27 09:04:18 -04:00
jeremystretch
d48a68317d Fixes #7612: Strip HTML from custom field descriptions 2021-10-27 08:41:28 -04:00
jeremystretch
77bd26d17f Work around unapplied migrations when bootstrapping config 2021-10-26 17:28:39 -04:00
jeremystretch
4cdc2601f5 Add descriptions to all config parameters 2021-10-26 16:54:12 -04:00
jeremystretch
ff5c274048 Ensure bootstrapping of config on start 2021-10-26 16:45:53 -04:00
jeremystretch
561e06e7f0 Indicate when dynamic parameters are defined statically 2021-10-26 15:50:33 -04:00
jeremystretch
626a446c3d Docs & changelog for #5883 2021-10-26 15:40:34 -04:00
jeremystretch
26d2da7b98 Initialize Config with empty dict 2021-10-26 14:18:18 -04:00
jeremystretch
66ed39b4b7 Clean up boolean fields 2021-10-26 14:08:03 -04:00
jeremystretch
fbf91dda7d Optimize config queries 2021-10-26 13:41:56 -04:00
jeremystretch
41ff1d0fc9 Add NAPALM config parameters 2021-10-26 11:53:46 -04:00
jeremystretch
64d8512fc3 Add PAGINATE_COUNT, MAX_PAGE_SIZE 2021-10-26 11:43:06 -04:00
jeremystretch
94804fecd8 Add MAINTENANCE_MODE, MAPS_URL 2021-10-26 10:57:33 -04:00
jeremystretch
559dc2f865 Add ALLOWED_URL_SCHEMES 2021-10-26 10:24:33 -04:00
jeremystretch
7c0f32e8ee Introduce ConfigItem; add rack elevation parameters 2021-10-26 10:04:56 -04:00
jeremystretch
82243732a1 Initial work on #5883 2021-10-25 16:10:50 -04:00
jeremystretch
61d2158f76 #6346: Add 'bridge' interface type 2021-10-25 11:11:58 -04:00
jeremystretch
68081fb9a2 Cleanup & API changelog for #3979 2021-10-25 11:07:15 -04:00
Jeremy Stretch
8276933dbb Merge pull request #7630 from netbox-community/6238-conditional-webhooks
Closes #6238: Implement conditional webhooks
2021-10-25 10:42:17 -04:00
jeremystretch
0d84338e28 Add regex condition op 2021-10-25 10:14:18 -04:00
jeremystretch
2423e0872f Documentation & changelog for #6238 2021-10-25 09:52:08 -04:00
jeremystretch
35c967e6f7 Implement condition negation 2021-10-25 09:09:51 -04:00
jeremystretch
b92de63245 Improve validation 2021-10-25 09:01:05 -04:00
Daniel Sheppard
8b529abfe1 Initial work on #6732 2021-10-24 23:47:31 -05:00
Daniel Sheppard
a01068949c Initial work on #6732 2021-10-24 23:42:47 -05:00
Miguel Teixeira
b07e88869a Fix interfaces row colors on device interfaces table 2021-10-24 03:31:29 +01:00
Miguel Teixeira
94bd27bcf5 Fix interface icons on the device interfaces table 2021-10-24 03:24:54 +01:00
jeremystretch
78ecc8673c Add conditions for webhooks 2021-10-22 17:15:08 -04:00
jeremystretch
7e26d92190 Introduce conditions & condition sets 2021-10-22 16:27:08 -04:00
Jeremy Stretch
dbe2f8a6f1 Merge pull request #7622 from netbox-community/6346-interface-bridge
Closes #6346: Bridge group support
2021-10-22 09:37:28 -04:00
jeremystretch
e96f5447f4 Changelog for #6346 2021-10-21 17:03:21 -04:00
jeremystretch
5193fa6483 Add tests for #6346 2021-10-21 16:57:01 -04:00
jeremystretch
e1e2c76ae1 Add bridge field to Interface, VMInterface models 2021-10-21 16:30:18 -04:00
jeremystretch
a3e7cab935 Split tenancy models into separate modules 2021-10-21 15:33:58 -04:00
jeremystretch
c06b3374ce #6497: Add missing tag fields to filter forms 2021-10-21 15:29:52 -04:00
jeremystretch
6f66138a18 Changelog for #3979 2021-10-21 15:15:01 -04:00
Jeremy Stretch
334c97035e Merge pull request #7611 from netbox-community/3979-wireless
Closes #3979: Wireless network modeling
2021-10-21 15:09:08 -04:00
jeremystretch
1c6a84659c #3979 cleanup 2021-10-21 14:20:47 -04:00
jeremystretch
3a3ed8bf64 Merge branch 'feature' into 3979-wireless 2021-10-21 13:19:52 -04:00
Jeremy Stretch
001ab1d067 Merge pull request #7610 from netbox-community/6497-organizational-model-tags
Closes #6297: Extend tag support to organizational models
2021-10-21 11:49:18 -04:00
jeremystretch
4932e4f8c6 Changelog for #6497 2021-10-21 11:28:25 -04:00
jeremystretch
6f05f17c62 Standardize & simplify tags panel inclusion 2021-10-21 11:23:31 -04:00
jeremystretch
cfb3897047 Add tags to organizational & nested group models 2021-10-21 10:51:02 -04:00
jeremystretch
8c058dcd45 Closes #7530: Move device type component lists to separate views 2021-10-20 15:04:40 -04:00
jeremystretch
7b70129974 Refactor device component views 2021-10-20 14:24:02 -04:00
jeremystretch
6a4becfb46 Add tests for wireless 2021-10-20 13:34:39 -04:00
jeremystretch
4a7159389e Add wireless documentation 2021-10-20 11:22:56 -04:00
jeremystretch
a66501250e Add wireless authentication attributes 2021-10-20 10:58:15 -04:00
jeremystretch
efb41b7433 Merge branch 'develop' into feature 2021-10-20 10:10:10 -04:00
jeremystretch
090df05193 PRVB 2021-10-20 09:59:33 -04:00
Jeremy Stretch
2c161c01c1 Merge pull request #7590 from netbox-community/develop
Release v3.0.8
2021-10-20 09:49:15 -04:00
jeremystretch
fc5a23cc88 Release v3.0.8 2021-10-20 09:31:12 -04:00
jeremystretch
73f2f9fc63 Closes #7551: Add UI field to filter interfaces by kind 2021-10-19 15:57:02 -04:00
jeremystretch
eb4b4a6c8d Closes #7561: Add a utilization column to the IP ranges table 2021-10-19 15:51:39 -04:00
jeremystretch
39430e01de Fixes #7550: Fix rendering of UTF8-encoded data in change records 2021-10-19 15:41:19 -04:00
jeremystretch
96015aa590 Fixes #7582: Fix rendering of CustomLink context data table 2021-10-19 15:31:07 -04:00
jeremystretch
c1720505f3 Fixes #7584: Fix alignment of object identifier under object view 2021-10-19 15:22:22 -04:00
Jeremy Stretch
5c338a90a1 Merge pull request #7566 from PieterL75/patch-1
Fix #7556 : NewVersion showing url
2021-10-19 15:20:58 -04:00
jeremystretch
f04dc55030 Reorganize panel inclusion templates 2021-10-19 14:21:31 -04:00
jeremystretch
38bc5de3e8 Changelog for #1344 2021-10-19 14:08:27 -04:00
jeremystretch
7c56b21095 Closes #7354: Relax uniqueness constraints on region, site group, and location names 2021-10-19 13:46:35 -04:00
jeremystretch
8d0ed99bcd Clean up UniqueTogetherValidator workarounds 2021-10-19 13:32:43 -04:00
jeremystretch
8375995680 Closes #1943: Relax uniqueness constraint on cluster names 2021-10-19 13:06:41 -04:00
jeremystretch
0afd3e6189 Closes #6715: Add tenant assignment for cables 2021-10-19 12:33:17 -04:00
PieterL75
79cee12b1e Updated release notes with #7556 2021-10-19 16:23:05 +02:00
Jeremy Stretch
ba7361bdc7 Merge pull request #7575 from netbox-community/1344-contacts
Closes #1344: Contact objects
2021-10-19 08:46:13 -04:00
jeremystretch
554b44b9f2 Fix string repr for ContactAssignment 2021-10-18 16:47:49 -04:00
jeremystretch
b44a5ea609 Prevent duplicate contact assignments 2021-10-18 16:33:31 -04:00
jeremystretch
487d67768b Cleanup and documentation for #1344 2021-10-18 16:20:31 -04:00
jeremystretch
f485a47b48 Tweak uniqueness constraints 2021-10-18 15:41:29 -04:00
jeremystretch
faf1e6a43d Add contact/role assignment tables 2021-10-18 15:30:28 -04:00
jeremystretch
f193f0d3f9 Add contact assignments to models 2021-10-18 15:09:57 -04:00
jeremystretch
2e78568d4d Initial work on contacts 2021-10-18 13:59:05 -04:00
PieterL75
aa5c42683a Fix #7556 : NewVersion showing url 2021-10-18 16:12:23 +02:00
jeremystretch
0c72c20d2a Add WirelessLANs column to interfaces table 2021-10-18 10:05:43 -04:00
thatmattlove
9c6938e7ae Minor Style Improvement: Fix interface table dropdowns being hidden when opened 2021-10-15 17:45:47 -07:00
thatmattlove
811c21ec7e Minor Style Improvement: Add vertical spacing to Device Type component navigation & fix inconsistent component active color 2021-10-15 17:21:36 -07:00
thatmattlove
84c14aadc7 Fixes #7300: Fix incorrect Device LLDP interface row coloring & improve related JS 2021-10-15 17:07:54 -07:00
thatmattlove
f1f0d9cd0d Fixes #7495: Fix sidenav overlapping elements 2021-10-15 15:02:50 -07:00
jeremystretch
717fd760df #3979: UI cleanup 2021-10-15 12:24:07 -04:00
jeremystretch
075f4907ef Store channel frequency & width as independent values 2021-10-15 11:39:53 -04:00
jeremystretch
b7317bfe29 Remove choices from rf_channel_width 2021-10-15 10:06:49 -04:00
jeremystretch
01d3c062f2 Move wireless field choices to wireless app 2021-10-15 10:00:03 -04:00
jeremystretch
6af5a884cd Merge branch 'feature' into 3979-wireless 2021-10-14 16:32:24 -04:00
Jeremy Stretch
6015c47587 Merge pull request #7547 from netbox-community/3839-device-airflow
Closes #3839: Add airflow fields to Device and DeviceType
2021-10-14 16:29:43 -04:00
jeremystretch
33ea8763d5 3839: Add airflow field to Device 2021-10-14 16:15:08 -04:00
jeremystretch
2c2c2e9060 3839: Add airflow field to DeviceType 2021-10-14 15:45:36 -04:00
jeremystretch
64dad7dbd2 Optimize migrations 2021-10-14 15:11:03 -04:00
jeremystretch
176bd2396b Closes #6711: Add longtext custom field type with Markdown support 2021-10-14 14:48:00 -04:00
jeremystretch
e16942dea5 Fixes #7529: Restore horizontal scrolling for tables in narrow viewports 2021-10-14 13:44:54 -04:00
Jeremy Stretch
12efcec3b0 Merge pull request #7546 from miaow2/7545-webhook-events-status
Fixes #7545: Incorrect display of Events status on webhook page
2021-10-14 13:43:00 -04:00
miaow2
a7b6c40596 Fixing display of webhook types 2021-10-14 20:35:21 +03:00
jeremystretch
b95773938d Fixes #7534: Avoid exception when utilizing "create and add another" twice in succession 2021-10-14 12:24:29 -04:00
jeremystretch
6898ae7106 Fixes #7544: Fix multi-value filtering of custom field objects 2021-10-14 11:36:13 -04:00
jeremystretch
909b83c537 Include interface RF attributes on wireless link view 2021-10-14 10:06:46 -04:00
jeremystretch
fb9da87abb Add devices to WirelessLinkForm 2021-10-14 10:02:05 -04:00
jeremystretch
bdf359470e Include WirelessLAN attached interfaces 2021-10-14 09:48:12 -04:00
jeremystretch
4c475c1b33 Extend wireless channel choices 2021-10-13 20:56:14 -04:00
jeremystretch
438b4b4758 Add rf_role to Interface 2021-10-13 20:16:36 -04:00
jeremystretch
01f791a44e Add WirelessLANGroup model 2021-10-13 16:40:12 -04:00
jeremystretch
43f2d4a331 Add SVG trace support for WirelessLinks 2021-10-13 15:00:35 -04:00
jeremystretch
95ed07a95e Add status field to WirelessLink 2021-10-13 14:31:30 -04:00
jeremystretch
ec0560a2c5 Fix trace_paths command for wireless links 2021-10-13 14:16:10 -04:00
jeremystretch
ac2cd552b9 Rename cable_peer fields to link_peer 2021-10-13 14:04:53 -04:00
jeremystretch
1c73bd5079 Resolve test errors 2021-10-13 13:39:14 -04:00
jeremystretch
138af27bf7 Record wireless links as part of cable path 2021-10-13 13:28:14 -04:00
jeremystretch
445e16f668 Reference WirelessLink on both attached Interfaces 2021-10-13 11:54:52 -04:00
jeremystretch
90e9f34494 Add WirelessLink model 2021-10-13 09:46:17 -04:00
jeremystretch
5271680483 Rename SSID model to WirelessLAN 2021-10-12 17:06:31 -04:00
jeremystretch
38f6d22d2d Enable attachment of wireless interfaces to SSIDs 2021-10-12 13:48:06 -04:00
jeremystretch
8b80b0c3df Introduce the wireless app and SSID model 2021-10-12 12:48:36 -04:00
jeremystretch
8e1535f7ec Add RF channel fields to Interface 2021-10-12 10:46:41 -04:00
jeremystretch
3e7922e41e Merge branch 'develop' into feature 2021-10-11 14:43:20 -04:00
jeremystretch
1a4f8c5422 PRVB 2021-10-11 14:42:29 -04:00
Jeremy Stretch
66c4d23119 Merge pull request #7510 from netbox-community/develop
Release v3.0.7
2021-10-08 14:04:34 -04:00
jeremystretch
d66fc8f661 Release v3.0.7 2021-10-08 13:49:15 -04:00
jeremystretch
031876964f #2102: Implement q search filter for device type components 2021-10-08 13:42:43 -04:00
jeremystretch
5a6190e321 Closes #6874: Add tenant assignment for locations 2021-10-07 15:46:21 -04:00
jeremystretch
18c3bb673f Closes #1337: Add WWN field to interfaces 2021-10-07 15:09:42 -04:00
jeremystretch
6463fd902c Merge branch 'develop' into feature 2021-10-07 14:20:42 -04:00
jeremystretch
c63766c4c6 Fix test for #7051 2021-10-07 14:19:29 -04:00
jeremystretch
af6237e12e Fixes #7479: Fix parent interface choices when bulk editing VM interfaces 2021-10-07 13:57:00 -04:00
jeremystretch
00328226ec Fixes #7051: Fix permissions evaluation and improve error handling for connected device REST API endpoint 2021-10-07 13:15:59 -04:00
jeremystretch
b31ba4e9d2 Changelog & UI tweaks for #6879 2021-10-07 12:41:24 -04:00
Jeremy Stretch
4be5d3f9e9 Merge pull request #6960 from candlerb/candlerb/6879-v3
Display device names in front of device front/rear images
2021-10-07 12:35:17 -04:00
jeremystretch
53154746fc Changelog for #7485 2021-10-07 10:40:51 -04:00
Jeremy Stretch
2f4c1b6e8f Merge pull request #7475 from HumanEquivalentUnit/patch-1
Mention data in custom fields, link Jinja2 docs.
2021-10-07 10:38:01 -04:00
Jeremy Stretch
045ec7d3a0 Merge pull request #7486 from alexanderhofstaetter/patch-1
Added "USB Micro AB" combo type to choices
2021-10-07 10:35:40 -04:00
jeremystretch
b73db750e5 Fixes #7471: Correct redirect URL when attaching images via "add another" button 2021-10-07 09:58:42 -04:00
jeremystretch
3f766ffea8 Fixes #7474: Fix AttributeError exception when rendering a report or custom script 2021-10-07 09:37:21 -04:00
Alexander Hofstätter
f28761202f Added "USB Micro AB" combo type to choices 2021-10-07 14:31:54 +02:00
HumanEquivalentUnit
6d1f07df05 Mention data in custom fields, link Jinja2 docs.
Resolves #7367
2021-10-07 00:51:07 +01:00
Brian Candler
eb9f2b36ab Display device names in front of device front/rear images
Fixes #6879
2021-10-06 18:07:28 +00:00
jeremystretch
ca59cd1eb8 Merge branch 'develop' into feature 2021-10-06 14:04:53 -04:00
jeremystretch
2bd29127dc PRVB 2021-10-06 14:04:24 -04:00
Jeremy Stretch
3eef6363fd Merge pull request #7465 from netbox-community/develop
Release v3.0.6
2021-10-06 14:02:44 -04:00
jeremystretch
d451f30bfc Release v3.0.6 2021-10-06 13:45:02 -04:00
jeremystretch
105956f8e6 Closes #7464: Improve documentation for executing housekeeping task as a cron job 2021-10-06 13:24:13 -04:00
jeremystretch
39256afb67 Closes #7394: Enable filtering cables by termination type & ID in REST API 2021-10-06 12:06:32 -04:00
jeremystretch
69aaf28b9c Closes #6955: Include type, ID, and slug on object view 2021-10-06 11:23:06 -04:00
jeremystretch
b806220074 Closes #6850: Default to current user when creating journal entries via REST API 2021-10-06 10:56:50 -04:00
jeremystretch
d2bdf4e822 Closes #7462: Include count of assigned virtual machines under platform view 2021-10-06 10:12:44 -04:00
jeremystretch
3ab5682e7a Fixes #7460: Fix filtering connections by site ID 2021-10-06 10:08:56 -04:00
jeremystretch
c0010ec100 Fixes #7459: Pre-populate location data when adding a device to a rack 2021-10-06 10:00:31 -04:00
jeremystretch
6897c5fadd Fixes #7455: Fix site/provider network validation for circuit termination API serializer 2021-10-06 09:11:42 -04:00
jeremystretch
745aa23ed6 Fixes #7458: Correct tenants count label under tenant group view 2021-10-06 08:44:59 -04:00
jeremystretch
9089f5cf67 #7450: Clean up object edit forms 2021-10-05 15:37:49 -04:00
jeremystretch
dd79aae137 #7450: Misc UI cleanup 2021-10-05 15:21:49 -04:00
jeremystretch
26e470f521 #7449: Use lighter color for top-level nav menu items 2021-10-05 14:57:35 -04:00
jeremystretch
a34c8b80e5 #7449: Use original primary color 2021-10-05 14:52:10 -04:00
jeremystretch
854a12982f #7449: Lighten dropdown widget caret color 2021-10-05 14:36:33 -04:00
jeremystretch
cf173d4f50 #7449: Remove color from table header links 2021-10-05 14:16:19 -04:00
jeremystretch
7041486b93 #7449: Remove color from panel headers on home view 2021-10-05 14:03:14 -04:00
jeremystretch
548a8c3be3 #7449: Fix login banner color 2021-10-05 14:01:24 -04:00
jeremystretch
087a018faf Fix changelog for v3.0.5 2021-10-05 12:08:07 -04:00
jeremystretch
e09024e86f Fixes #7446: Fix exception when viewing a large number of child IPs within a prefix 2021-10-05 12:07:03 -04:00
jeremystretch
1757102536 Fixes #7442: Fix missing actions column on user-configured tables 2021-10-05 09:34:30 -04:00
jeremystretch
9c8432cf13 Merge branch 'develop' into feature 2021-10-04 14:19:16 -04:00
jeremystretch
c262af550d PRVB 2021-10-04 14:18:42 -04:00
Jeremy Stretch
d9c6609b24 Merge pull request #7437 from netbox-community/develop
Release v3.0.5
2021-10-04 14:15:53 -04:00
jeremystretch
339bcb89bb Release v3.0.5 2021-10-04 13:46:34 -04:00
jeremystretch
b5884a5b54 Fixes #7215: Prevent rack elevations from overlapping when higher width is specified 2021-10-04 13:41:16 -04:00
thatmattlove
c818d63043 Fixes #7427: Don't select hidden rows when selecting all in a table 2021-10-04 09:19:18 -07:00
jeremystretch
c9c537a1b9 Fixes #6817: Custom field columns should be removed from tables upon their deletion 2021-10-01 20:22:54 -04:00
jeremystretch
1be748b479 Fixes #6433: Fix bulk editing of child prefixes under aggregate view 2021-10-01 16:21:16 -04:00
jeremystretch
376c776520 Fixes #7425: Housekeeping command should honor zero verbosity 2021-10-01 15:29:22 -04:00
jeremystretch
a1f271d7d9 Fixes #7417: Prevent exception when filtering objects list by invalid tag 2021-10-01 14:07:26 -04:00
jeremystretch
724997cb48 Closes #5925: Always show IP addresses tab under prefix view 2021-10-01 13:39:29 -04:00
jeremystretch
f3fe3f9a18 Closes #6708: Add image attachment support for circuits, power panels 2021-10-01 12:50:51 -04:00
jeremystretch
357a5d1e65 Refactor image attachments panel template 2021-10-01 12:45:41 -04:00
jeremystretch
460e3fd5d6 Introduce a common URL for the creation of image attachments 2021-10-01 12:34:30 -04:00
jeremystretch
257c0afdb5 Closes #6423: Cache rendered REST API specifications 2021-10-01 12:02:04 -04:00
jeremystretch
ed3bc7cdcc Changelog for #7387 2021-10-01 09:30:17 -04:00
Jeremy Stretch
bd181ac84f Merge pull request #7400 from maximumG/7387-order-scripts
Fixes #7387 : possibility to order scripts
2021-10-01 09:20:08 -04:00
jeremystretch
d1f5988db7 Closes #7319: Remove migrations check from upgrade.sh to avoid misleading error messages 2021-10-01 08:57:17 -04:00
jeremystretch
a5b99e7148 Fixes #7412: Fix exception in UI when adding child device to device bay 2021-09-30 12:29:08 -04:00
jeremystretch
114500e7f4 Fixes #7401: Pin jsonschema package to v3.2.0 to fix REST API docs rendering 2021-09-30 11:41:32 -04:00
jeremystretch
d9f178e315 Fixes #7411: Fix exception in UI when adding member devices to virtual chassis 2021-09-30 11:36:16 -04:00
maximumG
7337630704 chore: introduce the script_order notion in the documentation 2021-09-30 09:21:38 +02:00
maximumG
0fdd081869 feat: scripts within a module can now be ordered 2021-09-30 09:17:33 +02:00
jeremystretch
a9761e8dd2 Fixes #7397: Fix AttributeError exception when rendering export template for devices via REST API 2021-09-29 21:09:12 -04:00
jeremystretch
1f1a05dc67 Fixes #6895: Remove errant markup for null values in CSV export 2021-09-29 21:00:45 -04:00
thatmattlove
14b065cf5f Fixes #7373: Improve handling of mismatched server, client, and browser color-mode preferences 2021-09-29 17:44:28 -07:00
jeremystretch
47c3a20fda Correct version number referenced for installation video 2021-09-29 12:40:20 -04:00
jeremystretch
86aed4e073 Closes #7318: Raise minimum required PostgreSQL version from 9.6 to 10 2021-09-29 12:14:15 -04:00
jeremystretch
19c984bdab PRVB 2021-09-29 09:46:39 -04:00
Jeremy Stretch
84d83fbd14 Merge pull request #7393 from netbox-community/develop
Release v3.0.4
2021-09-29 09:41:11 -04:00
jeremystretch
965ba3aca1 Release v3.0.4 2021-09-29 09:18:57 -04:00
jeremystretch
38f34ddb28 Fixes #7392: Fix "help" links for custom fields, other models 2021-09-29 09:09:10 -04:00
jeremystretch
6b3e0d3229 Drop pycryptodome as a Python dependency 2021-09-28 17:07:15 -04:00
jeremystretch
854121b6ec Closes #7314: Add SMA 905/906 fiber port types 2021-09-28 16:42:54 -04:00
jeremystretch
047425dadd Closes #7389: Linkify tenant group in tenants list 2021-09-28 16:28:11 -04:00
jeremystretch
8dc0767cdf Changelog for #7365 2021-09-28 16:22:28 -04:00
Jeremy Stretch
a99753fb0f Merge pull request #7366 from shuichiro-makigaki/optimize-prefix-util
Fix #7365: Optimize calculation of prefix utilization
2021-09-28 16:09:27 -04:00
jeremystretch
ad65e06d0a Closes #7252: Validate IP range size does not exceed max supported value 2021-09-28 15:44:41 -04:00
jeremystretch
bfb37d6283 Closes #7022: Add ITA type C (CEE 7/16) power port type 2021-09-28 13:46:54 -04:00
jeremystretch
fd180e480a Changelog & docs cleanup for #6973 2021-09-28 13:40:24 -04:00
Jeremy Stretch
3e5452d9da Merge pull request #7369 from maximumG/6973-order-reports
Fixes #6973:  order reports
2021-09-28 13:34:23 -04:00
jeremystretch
3ec0fe5519 Closes #7372: Link to local docs for model from object add/edit views 2021-09-28 13:23:57 -04:00
jeremystretch
71449b3414 Fixes #7304: Require explicit values for all required choice fields during CSV import 2021-09-28 12:04:54 -04:00
Jeremy Stretch
16f5e233d0 Merge pull request #7382 from netbox-community/refactor-forms
Refactor forms
2021-09-28 11:40:34 -04:00
Daniel Sheppard
abb72868f2 Update changelog for #7374 2021-09-28 09:50:23 -05:00
jeremystretch
13e9d57d68 Merge branch 'develop' into refactor-forms 2021-09-28 10:49:14 -04:00
jeremystretch
833acc3618 Refactor extras forms 2021-09-28 10:44:53 -04:00
jeremystretch
db522f96be Refactor virtualization forms 2021-09-28 10:25:07 -04:00
Daniel Sheppard
df8b76127e Fixes #7374 - Adds query param on position for rack face 2021-09-28 09:06:35 -05:00
jeremystretch
8e849566d5 Refactored IPAM forms 2021-09-28 09:25:12 -04:00
jeremystretch
dba9602c75 Refactor tenancy forms 2021-09-27 17:19:05 -04:00
jeremystretch
9e2364b246 Refactor DCIM forms 2021-09-27 17:09:37 -04:00
jeremystretch
b5aecfeb91 Refactor circuits forms 2021-09-27 15:23:12 -04:00
jeremystretch
c7523ffc67 Fixes #7358: Add missing choices column to custom field CSV import form 2021-09-27 12:28:52 -04:00
jeremystretch
d87d860a57 Remove obsolete TS for a.formaction 2021-09-27 11:41:05 -04:00
jeremystretch
68b1234388 Fixes #7353: Fix bulk creation of device/VM components via list view 2021-09-27 10:36:01 -04:00
jeremystretch
8fda08a1b5 Fixes #7356: Fix display of model documentation when adding device components 2021-09-27 10:09:32 -04:00
jeremystretch
aaba4b534f Fixes #7360: Correct redirection URL after removing child device from device bay 2021-09-27 09:58:03 -04:00
Jeremy Stretch
6d32aa8a88 Merge pull request #7320 from royreznik/feature-6917
Feature-6917 make ip assigned checkmark link to interface
2021-09-27 09:18:24 -04:00
maximumG
0214c388ae add: document how to order reports 2021-09-27 11:02:37 +02:00
maximumG
e443d719d4 feat: reports within a module can now be ordered 2021-09-27 11:02:31 +02:00
Shuichiro MAKIGAKI
d514290688 Fix #7365: Optimize calculation of prefix utilization 2021-09-25 22:28:31 +09:00
royreznik
694bd231e3 Update changelog with #6917 2021-09-23 06:33:26 -07:00
royreznik
8523ad166e Feature-6917 make ip assigned checkmark link to interface 2021-09-23 06:33:26 -07:00
Daniel Sheppard
7ec6b4ebb7 Fixes #7341 - Corrects url in Circuit breadcrumb 2021-09-22 11:48:22 -05:00
jeremystretch
38172b793b Fixes #7294: Fix SVG rendering for cable traces ending at unoccupied front ports 2021-09-21 15:04:37 -04:00
jeremystretch
6bccb6d90b Fixes #7333: Prevent inadvertent deletion of prior change records when deleting objects 2021-09-21 14:24:23 -04:00
jeremystretch
3cf1d6baf4 Closes #7118: Render URL custom fields as hyperlinks in object tables 2021-09-21 14:04:47 -04:00
jeremystretch
2a1718bfc8 Closes #7323: Add serial filter field for racks & devices 2021-09-21 13:53:11 -04:00
jeremystretch
0db4092266 Fixes #7321: Don't overwrite multi-select custom fields during bulk edit 2021-09-21 13:41:33 -04:00
jeremystretch
41dfdc0aaa Fixes #7324: Fix TypeError exception in web UI when filtering objects using single-choice filters 2021-09-21 09:13:26 -04:00
jeremystretch
6bc72109c1 PRVB 2021-09-20 13:19:53 -04:00
Jeremy Stretch
55e9685d30 Merge pull request #7317 from netbox-community/develop
Release v3.0.3
2021-09-20 13:08:32 -04:00
jeremystretch
d2dcc51430 Changelog cleanup 2021-09-20 12:55:04 -04:00
jeremystretch
214c1d5a50 Release v3.0.3 2021-09-20 12:44:44 -04:00
jeremystretch
38be0b4976 Changelog for #7228 2021-09-20 10:23:29 -04:00
Jeremy Stretch
b86847c57e Merge pull request #7307 from royreznik/fix-7228
Fixes #7228: Round °F temperature to one decimal place
2021-09-20 10:21:43 -04:00
jeremystretch
8ba5d03280 Fixes #7301: Fix exception when deleting a large number of child prefixes 2021-09-20 10:02:03 -04:00
jeremystretch
879ffd648b Fix 'select all' widget display 2021-09-20 09:02:28 -04:00
royreznik
030c573037 Fixes #7228: Round °F temperature to one decimal place 2021-09-20 02:44:40 -07:00
jeremystretch
713e79c1a9 Fixes #7298: Restore missing object names from applied object list filters 2021-09-17 16:55:32 -04:00
Jeremy Stretch
383cdb5340 Merge pull request #7297 from netbox-community/7295-tables-cleanup
Closes #7295: General cleanup of table classes
2021-09-17 15:56:26 -04:00
jeremystretch
7b3f6f1c67 Clean up table classes 2021-09-17 15:37:19 -04:00
jeremystretch
9cb29f48a0 Use exclude() when instantiating tables to omit columns 2021-09-17 14:25:02 -04:00
jeremystretch
5e29679968 Merge 'detail' tables into primaries for each model 2021-09-17 13:55:32 -04:00
jeremystretch
84f3ab90df Changelog for #7273 2021-09-17 12:11:08 -04:00
Jeremy Stretch
34db2eb611 Merge pull request #7285 from netbox-community/7273-apiselect-sorting
Fixes #7273: Disable automatic sorting of select options fetched via API
2021-09-17 12:09:56 -04:00
jeremystretch
16d8981a3f Closes #7284: Include comments field in table/export for all appropriate models 2021-09-17 12:04:22 -04:00
jeremystretch
e67c965180 Closes #7087: Add local_context_data filter for virtual machines list 2021-09-17 10:30:31 -04:00
jeremystretch
b0abfee35b Fixes #7282: Fix KeyError exception when INSECURE_SKIP_TLS_VERIFY is true 2021-09-17 10:16:06 -04:00
jeremystretch
1e8ee5e59b Correct changelog for #7210; revert static asset change 2021-09-16 16:14:20 -04:00
jeremystretch
cc0830bf28 Closes #7087: Add search/filter forms for all organizational models 2021-09-16 16:04:46 -04:00
jeremystretch
e3e005e327 Fixes #7266: Tweak font color for form field placeholder text 2021-09-16 14:41:01 -04:00
jeremystretch
42afd80e82 Changelog for #5775 2021-09-16 14:28:17 -04:00
jeremystretch
0b2862be54 Changelog for #5775 2021-09-16 14:03:28 -04:00
Jeremy Stretch
8d703ffb36 Merge pull request #6730 from MaxRink/remote_groups
Remote groups via HTTP Headers
2021-09-16 14:02:22 -04:00
jeremystretch
6f24a938d9 Fixes #7273: Disable automatic sorting of select options fetched via API 2021-09-16 11:08:05 -04:00
jeremystretch
574b57eadb Treat compiled JS/CSS as binary when diffing 2021-09-16 11:03:55 -04:00
jeremystretch
aa05097fca Fixes #7279: Fix exception when tracing cable with no associated path 2021-09-16 08:56:26 -04:00
jeremystretch
de58f53f9f Closes #7208: Add navigation breadcrumbs for custom scripts & reports 2021-09-15 15:14:24 -04:00
jeremystretch
e738ff2fa7 Closes #6988: Order tenants alphabetically without regard to group assignment 2021-09-15 14:56:20 -04:00
jeremystretch
25f501fb12 Remove obsolete responsive_table.html template 2021-09-15 12:41:21 -04:00
jeremystretch
baf045aed6 Clean up documentation build warnings 2021-09-15 11:46:58 -04:00
jeremystretch
e813dda275 Remove default_app_config (deprecated in Django 3.2) 2021-09-15 11:18:47 -04:00
Jeremy Stretch
ca131f12db Merge pull request #7272 from cimnine/Fix7271
Remove secrets from the feature list
2021-09-15 07:56:28 -04:00
cimnine
ca72b07947 Remove secrets from the feature list 2021-09-15 11:00:51 +02:00
jeremystretch
13d8957cf1 Changelog for #7032 2021-09-14 17:05:07 -04:00
Jeremy Stretch
ca11b74c8e Merge pull request #7052 from tb-killa/#7032
Close #7032
2021-09-14 16:59:16 -04:00
jeremystretch
2ba6a6fc45 Closes #6387: Add xDSL interface type 2021-09-14 16:56:47 -04:00
jeremystretch
a6e79a1d61 Add virtualenv instructions to plugin development docs 2021-09-13 10:58:03 -04:00
jeremystretch
1f4263aa6d Fixes #7253: Remove obsolete reference to queryset cache invalidation 2021-09-13 09:36:01 -04:00
jeremystretch
147a4cbfb0 Closes #7239: Redirect global search to filtered object list when an object type is selected 2021-09-13 09:33:08 -04:00
jeremystretch
ab0a2abc54 Fixes #7248: Fix global search results section links 2021-09-13 09:21:57 -04:00
Jeremy Stretch
57abbf1058 Merge pull request #7245 from dvaccarosenna/issue/7195
Fixes #7195 update base template in plugin dev doc
2021-09-10 11:34:49 -04:00
Daniel Vaccaro-Senna
2a95e1bf71 Fixes #7195 update base template in plugin dev doc 2021-09-10 16:03:46 +01:00
jeremystretch
bd957612c6 Fixes #7167: Ensure consistent font size when using monospace formatting 2021-09-09 16:05:46 -04:00
jeremystretch
908e6a7a38 Update NetBox installation video 2021-09-09 14:46:31 -04:00
jeremystretch
4493c31216 Fixes #7227: Correct placeholder value for webhook CA file path 2021-09-09 09:10:02 -04:00
jeremystretch
7a813349f3 Correct example GraphQL queries 2021-09-09 09:07:28 -04:00
jeremystretch
ad7b8a9ac8 Fixes #7226: Exempt GraphQL API requests from CSRF inspection 2021-09-09 09:06:45 -04:00
jeremystretch
a226f06b1b PRVB 2021-09-08 16:47:04 -04:00
Jeremy Stretch
b55c85b2af Merge pull request #7220 from netbox-community/develop
Release v3.0.2
2021-09-08 16:45:05 -04:00
jeremystretch
0d1d14bcd6 Release v3.0.2 2021-09-08 16:32:37 -04:00
Jeremy Stretch
8c1a01d5ab Merge pull request #7218 from netbox-community/7162-base-path-bug2
Fixes #7162: Decouple base path rendering from API request logic
2021-09-08 16:19:49 -04:00
jeremystretch
cf8fdacfa3 Refactor connection toggle to use API URLs 2021-09-08 14:25:14 -04:00
jeremystretch
2c1745ce28 Refactor checkJobStatus() to use API URLs provided via context 2021-09-08 14:17:27 -04:00
jeremystretch
950ce94653 Refactor ApiRequest to take only full URLs; update TableConfigForm 2021-09-08 13:59:25 -04:00
thatmattlove
851f8a1585 Fixes #7191: Access SlimSelect's internal options when getting current options so selection state is maintained 2021-09-08 09:54:38 -07:00
jeremystretch
d40d1638af Fixes #7179: Prevent obscuring "connect" pop-up for interfaces under device view 2021-09-08 11:27:14 -04:00
Jeremy Stretch
26ceeb61ef Merge pull request #7206 from netbox-community/7205-applied-filters
Handle `null_option` in `applied_filters` template tag
2021-09-08 11:22:54 -04:00
Jeremy Stretch
a39a9c9b56 Merge branch 'develop' into 7205-applied-filters 2021-09-08 11:12:29 -04:00
jeremystretch
45988b9818 Minor cleanup for get_selected_values() 2021-09-08 11:11:52 -04:00
Jeremy Stretch
7234b3bbf8 Merge pull request #7204 from netbox-community/7202-verify-static-assets
Verify integrity of bundled assets in CI
2021-09-08 10:23:51 -04:00
Jeremy Stretch
513ecd7e26 Merge branch 'develop' into 7202-verify-static-assets 2021-09-08 10:13:07 -04:00
jeremystretch
e12314ba60 Fix test user permissions for API pagination tests 2021-09-08 09:57:53 -04:00
jeremystretch
9226302742 Fixes #7209: Allow unlimited API results when MAX_PAGE_SIZE is disabled 2021-09-08 09:38:23 -04:00
jeremystretch
0e8c6ee522 Changelog for #7189 2021-09-08 08:33:30 -04:00
thatmattlove
a9c1c8968e Return cleaned null_option value as None in dynamic multi-select field 2021-09-07 18:43:36 -07:00
thatmattlove
6a15c2ae86 Remove invalid (for Python <3.9) type annotation 2021-09-07 18:37:55 -07:00
thatmattlove
752de0d9c0 Fixes #7205: Handle null_option when getting selected form values in applied_filters template tag 2021-09-07 18:30:45 -07:00
thatmattlove
49617a595d #7205: Handle null_option in dynamic multi-select choices field 2021-09-07 18:28:49 -07:00
thatmattlove
2a293d5d02 Fixes #7188: Re-add missing support for null_option on API select 2021-09-07 18:19:32 -07:00
thatmattlove
9d99ede024 Fixes #7202: Verify integrity of bundled assets in CI 2021-09-07 16:20:36 -07:00
thatmattlove
4a13ee6f40 Fixes #7176: Reset query parameters on APISelect when deep copied 2021-09-07 14:13:53 -07:00
Jeremy Stretch
2ba840c72c Merge pull request #7200 from pierrechev/develop
Enable the alternate connection factory for Redis Sentinel
2021-09-07 16:58:11 -04:00
jeremystretch
46cd55151d Use shallow git clone for production installations 2021-09-07 16:35:48 -04:00
jeremystretch
4d9691c8e5 Extend feature request template to request more detail 2021-09-07 16:25:10 -04:00
jeremystretch
f1687ef53d Remove obsolete entries from .gitignore 2021-09-07 16:21:01 -04:00
Daniel Sheppard
2fb55374b9 Fixes #7193 - Fixes issue with viewing child prefixes when prefix (flat) column is selected and there are available prefixes. 2021-09-07 14:53:12 -05:00
Pierre Chevallereau
312246fec2 Enable the alternate connection factory (https://github.com/jazzband/django-redis#use-the-sentinel-connection-factory) 2021-09-07 16:07:25 +02:00
jeremystretch
27c0e6dd5e Fixes #7164: Fix styling of "decommissioned" label for circuits 2021-09-03 13:52:48 -04:00
jeremystretch
0d7986e082 Fixes #7169: Fix CSV import file upload 2021-09-03 13:46:38 -04:00
Jeremy Stretch
94300b221e Merge pull request #7160 from netbox-community/7149-secrets-changelog
Fixes #7149: Delete all changelog records referencing the old secrets app
2021-09-03 12:51:13 -04:00
jeremystretch
a1110b07de Fixes #7153: Allow clearing of assigned device type images 2021-09-02 16:48:54 -04:00
jeremystretch
a3069239e9 Fixes #7159: Remove NAPALM link 2021-09-02 15:55:41 -04:00
jeremystretch
69f083428d Fixes #7149: Delete all changelog records referencing the old secrets app 2021-09-02 15:27:05 -04:00
thatmattlove
113358f2de Fixes #7148: Handle array values when constructing API URLs 2021-09-02 08:59:26 -07:00
thatmattlove
caa2813d0d Fix regression from ddff193 causing invalid selections 2021-09-02 07:56:08 -07:00
Jeremy Stretch
481046c8b8 Merge pull request #7133 from slowy07/minor-changes
fix: typo spelling grammar
2021-09-02 09:48:58 -04:00
slowy07
83f70dc28c fix: typo spelling grammar
Signed-off-by: slowy07 <slowy.arfy@gmail.com>
2021-09-02 12:01:43 +07:00
thatmattlove
8ede7a9297 Update changelog for #7131 2021-09-01 17:05:50 -07:00
thatmattlove
ddff193786 #7123: Handle empty_option on API Select 2021-09-01 17:02:43 -07:00
thatmattlove
774dff07ee Fixes #7131: Only execute scope selector field visibility logic on specified views 2021-09-01 15:27:37 -07:00
thatmattlove
4b14b31853 Use url_name instead of request.path for view-based styles 2021-09-01 15:22:38 -07:00
jeremystretch
b0addfbe13 PRVB 2021-09-01 15:22:03 -04:00
Jeremy Stretch
593874b45f Merge pull request #7130 from netbox-community/develop
Release v3.0.1
2021-09-01 15:10:17 -04:00
jeremystretch
b207f28402 Release v3.0.1 2021-09-01 14:53:57 -04:00
thatmattlove
7bdde47473 Fixes #7124: Fix duplicate static query param values in API Select 2021-09-01 11:48:13 -07:00
thatmattlove
a2eb0d80d2 #7084: Fix issue where hidden VLAN form fields were incorrectly included in the form submission 2021-09-01 11:41:35 -07:00
jeremystretch
6f94198934 #7123: Remove "Global" placeholder for null VRF field 2021-09-01 13:52:32 -04:00
jeremystretch
707e51d855 #7084: Catch ValueErrors when initializing dynamic form fields 2021-09-01 13:33:41 -04:00
jeremystretch
528df76747 #7082: Handle stale content types 2021-09-01 12:55:25 -04:00
jeremystretch
662c896480 #7113: Add bulk actions under child prefixes view; general cleanup 2021-09-01 11:06:50 -04:00
Jeremy Stretch
29eb2383d6 Merge pull request #7115 from sdktr/7113-fix-prefix-iprange-bulkedit
Fixes #7113: iprange bulk options within Prefix view
2021-09-01 10:56:11 -04:00
Jeremy Stretch
9772c5705f Merge branch 'develop' into 7113-fix-prefix-iprange-bulkedit 2021-09-01 10:55:52 -04:00
jeremystretch
d2fe59ae8f Fixes #7109: Ensure human readability of exceptions raised during REST API requests 2021-09-01 10:43:12 -04:00
Max Rink
d5e5cdda23 Add Remote Group Support to the RemoteUserAuth Backend and Middleware
fix incorrect assumption about when to run the group sync

Add documentation for new Settings

format to autopep8 compliance

add first set of basic testcases

format test to comply with pep8

rename SEPERATOR to SEPARATOR

remove accidentally carried over parameter
2021-09-01 16:34:14 +02:00
jeremystretch
f63dcb1f08 #7091: Simplify access to BASE_PATH variable 2021-09-01 09:34:33 -04:00
Stefan de Kooter
6f66b27507 Changelog for #7113 2021-09-01 11:00:30 +02:00
Stefan de Kooter
909d127c27 Fixes #7113: Correct links to IPRanges bulk actions within Prefix view 2021-09-01 10:25:37 +02:00
Stefan de Kooter
20ef18f98f Fixes #7113: Add permissions to IPRanges bulk actions within Prefix view 2021-09-01 10:24:35 +02:00
thatmattlove
a33e47780b Remove legacy script tags from templates 2021-09-01 00:27:10 -07:00
thatmattlove
691c66d2f5 Fixes #7107: Fix missing search button and search results in IP Address assignment "Assign IP" tab 2021-09-01 00:11:48 -07:00
thatmattlove
14d87a3584 Fixes #7041: Properly format JSON config object returned from a NAPALM device 2021-09-01 00:03:53 -07:00
thatmattlove
d743dc160a Fixes #7080: Re-add missing image preview element 2021-08-31 17:05:02 -07:00
thatmattlove
2b263b054c Fixes #7106: Fix incorrect "Map It" button URL on a site's Physical Address field 2021-08-31 16:27:02 -07:00
thatmattlove
b95e8350d2 Fixes #7092: Fix missing object permissions on Prefix IP Addresses view 2021-08-31 16:03:22 -07:00
thatmattlove
5235866d05 Changelog for #7081, #7091 2021-08-31 15:23:12 -07:00
thatmattlove
093a86bc38 Fixes #7081: Properly handle pre-selected values even when they're outside of pagination limits 2021-08-31 15:13:53 -07:00
thatmattlove
5b87232f59 #7081: Fix APISelect loading of paginated data 2021-08-31 15:13:53 -07:00
thatmattlove
679bbd3e76 Fixes #7091: Ensure API requests from the UI are aware of BASE_PATH 2021-08-31 15:13:53 -07:00
Jeremy Stretch
515b6bf71a Merge pull request #7105 from sdktr/7090-fix-cablebulkedit-length-field
Fix #7090: cable bulk edit form - allow decimal input on length field
2021-08-31 16:12:04 -04:00
Stefan de Kooter
9c389d9dcb Changelog #7090 fix whitespace 2021-08-31 22:01:15 +02:00
Stefan de Kooter
f1e4273a23 Changelog for #7090 2021-08-31 21:24:07 +02:00
Stefan de Kooter
4618cc2b22 Merge branch 'develop' of github.com:netbox-community/netbox into 7090-fix-cablebulkedit-length-field 2021-08-31 21:18:35 +02:00
Stefan de Kooter
1909f0c733 Fix #7090: Cable Bulk Edit, length field should be decimal 2021-08-31 21:17:50 +02:00
Jeremy Stretch
840ea36f70 Merge pull request #7103 from candlerb/candlerb/7102
Redirect users on error to the GitHub discussion forum
2021-08-31 15:08:08 -04:00
jeremystretch
a8cdb3895b Fixes #7093: Multi-select custom field filters should employ exact match 2021-08-31 15:03:39 -04:00
Brian Candler
349733c6dd Redirect users on error to the GitHub discussion forum
Fixes #7102
2021-08-31 19:51:53 +01:00
jeremystretch
1c09ffdd1f Fixes #7101: Enforce MAX_PAGE_SIZE for table and REST API pagination 2021-08-31 13:52:04 -04:00
Daniel Sheppard
c4c6fa6042 Fix misplacement of method for #7089 2021-08-31 11:41:50 -05:00
Daniel Sheppard
86da6c6c14 Fixes #7089 - Adds Q filter to ContentTypeFilterSet 2021-08-31 11:31:40 -05:00
jeremystretch
7b7b01a26b Changelog for #7075 2021-08-31 11:44:51 -04:00
jeremystretch
415313ac2f Fixes #7082: Avoid exception when referencing invalid content type in table 2021-08-31 11:43:44 -04:00
jeremystretch
7db2b9d091 Fixes #7072: Fix table configuration under prefix child object views 2021-08-31 11:15:41 -04:00
jeremystretch
8036d1e5a5 Fixes #7078: Restore styling on server error page 2021-08-31 09:50:24 -04:00
jeremystretch
65c9339687 Fixes #7083: Correct labeling for VM memory attribute 2021-08-31 09:44:59 -04:00
jeremystretch
3090981335 Fixes #7084: Fix KeyError exception when editing access VLAN on an interface 2021-08-31 09:44:59 -04:00
jeremystretch
4f36885c5e Fixes #7096: Home links should honor BASE_PATH configuration 2021-08-31 09:44:59 -04:00
thatmattlove
db2993035d Fixes #7075: Wrap label selectors in quotes to ensure IDs with spaces are properly selected 2021-08-30 17:48:33 -07:00
jeremystretch
bf05bc2986 #7070: Fix filterset test 2021-08-30 17:22:48 -04:00
jeremystretch
88b230f0e4 Fixes #7071: Fix exception when removing a primary IP from a device/VM 2021-08-30 16:55:31 -04:00
jeremystretch
deb53d771d Fixes #7070: Fix exception when filtering by prefix max length in UI 2021-08-30 16:51:07 -04:00
Jeremy Stretch
fd16c47d2e Merge pull request #7069 from netbox-community/develop
Release v3.0.0
2021-08-30 14:43:47 -04:00
jeremystretch
b78451742f Release v3.0.0 2021-08-30 14:22:00 -04:00
jeremystretch
6f23ab5603 Better copy/paste support for installation docs 2021-08-30 14:15:21 -04:00
thatmattlove
5e67627e6b Fix file input font-size 2021-08-30 11:09:44 -07:00
thatmattlove
19e77ed456 Pin Bootstrap 5 to 5.0.2 2021-08-30 11:02:47 -07:00
thatmattlove
ed0f792f04 Fixes #7068: Disable sourcemaps on CSS files, use external sourcemaps 2021-08-30 10:56:02 -07:00
thatmattlove
deda1691e9 Fixes #7066: Migrate division statements in Sass from / to math.div 2021-08-30 09:54:58 -07:00
thatmattlove
94d2ad120c Fixes #7066: Resolve dependency issue between TypeScript/ESLint 2021-08-30 09:54:06 -07:00
jeremystretch
ab1a5f32ef Update references to NAPALM in docs 2021-08-30 11:51:18 -04:00
jeremystretch
2a1de5e28c Delete extraneous v2.11 release notes 2021-08-30 11:35:06 -04:00
thatmattlove
f78fdd6900 Fixes #7063: Update security dependencies, move esbuild to devDependencies, update clipboard 2021-08-30 08:14:24 -07:00
jeremystretch
6b43eafcb4 Update UI screenshots 2021-08-30 10:52:11 -04:00
jeremystretch
844cd154b9 Update dependencies & release notes 2021-08-30 10:30:48 -04:00
Jeremy Stretch
e05fa5c302 Merge pull request #7061 from netbox-community/feature
v3.0 release prep
2021-08-30 10:16:56 -04:00
jeremystretch
f5f74944dd Merge branch 'develop' into feature 2021-08-30 10:05:12 -04:00
jeremystretch
556efcc1d7 Fixes #7045: Fix navigation menu rendering under Chrome 2021-08-30 09:56:05 -04:00
Matt Love
25d1fe2c8d Improve APISelect query parameter handling (#7040)
* Fixes #7035: Refactor APISelect query_param logic

* Add filter_fields to extras.ObjectVar & fix default value handling

* Update ObjectVar docs to reflect new filter_fields attribute

* Revert changes from 89b7f3f

* Maintain current `query_params` API for form fields, transform data structure in widget

* Revert changes from d0208d4
2021-08-30 09:43:32 -04:00
Oliver
b44ec35ade Close #7032
Add URM connector to the list of available types for front and rear ports.

There are URM-P2, URM-P4 and URM-P8 connectors available.
2021-08-27 20:27:26 +02:00
Jeremy Stretch
1a478150d6 Merge pull request #7050 from netbox-community/7034-vlangroup-scope-selectors
Fixes #7034: Update VLAN Scope parent selectors and run change handler on load
2021-08-27 11:42:23 -04:00
jeremystretch
e5643fb1e2 JS & changelog updates for #7034 2021-08-27 11:36:29 -04:00
jeremystretch
13e633778a Closes #7042: Show count of journal entries in tab under object view 2021-08-27 10:36:06 -04:00
jeremystretch
bb57600f0f Fixes #7019: Enable searching VM interfaces by description 2021-08-27 10:14:12 -04:00
jeremystretch
9813f3b696 Clean up custom script templates 2021-08-26 15:04:24 -04:00
jeremystretch
3203db07b7 UI cleanup 2021-08-26 14:48:24 -04:00
jeremystretch
94b8d36065 Introduce ContentTypesColumn for custom field and webhook tables 2021-08-26 12:55:37 -04:00
thatmattlove
0d61dcb1bc Fixes #7034: Update VLAN Scope parent selectors and run change handler on load 2021-08-26 00:11:58 -07:00
jeremystretch
58203dbcfa List device/VM component names first in tables by default 2021-08-25 15:18:00 -04:00
jeremystretch
66619cdc2f Clean up object edit forms 2021-08-25 15:03:19 -04:00
jeremystretch
99cba25108 Misc UI cleanup ahead of v3.0 release 2021-08-25 13:50:59 -04:00
jeremystretch
2fb1d388e3 Omit node 15.x from CI builds 2021-08-24 21:32:28 -04:00
Jeremy Stretch
6a4ed099fc Merge pull request #7031 from netbox-community/object-filter-forms
Object filter forms
2021-08-24 21:31:25 -04:00
jeremystretch
d184ed4712 Enable filtering device components by location 2021-08-24 21:10:30 -04:00
jeremystretch
125a562189 Fix RegionFilterForm model 2021-08-24 20:44:00 -04:00
Matt
a02ba5f7bb Fix incorrect classes in device config & status templates 2021-08-24 14:53:36 -07:00
Matt
2e90f22529 Clean up TypeScript file structure, fix missing VLAN tag visibility logic 2021-08-24 14:53:36 -07:00
jeremystretch
bd681f5908 Clean up object filter forms 2021-08-24 17:29:16 -04:00
jeremystretch
85b61c0b7e Bump django-timezone-field to 4.2.1 2021-08-24 15:52:04 -04:00
jeremystretch
d11ea67bdd Update design of user profile section 2021-08-24 15:24:03 -04:00
jeremystretch
52603c087b Remove unnecessary component creation templates 2021-08-24 14:51:12 -04:00
jeremystretch
545474a1a3 Clean up object edit forms 2021-08-24 13:59:54 -04:00
Jeremy Stretch
b63c838c74 Merge pull request #7024 from netbox-community/feature-precommit-ui
Run UI Lint, Type, and Formatting Checks in Pre-Commit and CI
2021-08-24 12:48:20 -04:00
Matt
1c6fdea27f Improve docs styling 2021-08-24 07:30:52 -07:00
Matt
9d0e6f0c30 Exclude node_modules from CI build 2021-08-24 06:40:00 -07:00
Matt
1d0c72f5fa Add UI checks to pre-commit and CI 2021-08-24 00:41:10 -07:00
Matt
c221b9b4d4 Add UI development docs & update front-end scripts 2021-08-24 00:30:04 -07:00
Matt
a0ba8380c9 Fix eslint misconfiguration and corresponding errors 2021-08-24 00:27:45 -07:00
Matt
82a209bc5b Remove screenshots from docs 2021-08-23 18:24:39 -07:00
jeremystretch
2a338110f2 Remove unused aggregate list template 2021-08-23 16:53:06 -04:00
jeremystretch
e890944160 Use badge template tag for numeric values 2021-08-23 16:47:08 -04:00
jeremystretch
542e01775e Merge branch 'develop' into feature 2021-08-23 15:46:22 -04:00
Jeremy Stretch
9cc4992fad Merge pull request #7018 from netbox-community/develop
Release v2.11.12
2021-08-23 15:36:04 -04:00
jeremystretch
6518d87200 Release v2.11.12 2021-08-23 15:16:42 -04:00
jeremystretch
499005f84d Merge branch 'develop' into feature 2021-08-23 13:23:39 -04:00
jeremystretch
8497965cf7 Fixes #6326: Enable filtering assigned VLANs by group in interface edit form 2021-08-23 12:49:32 -04:00
jeremystretch
0b0ab9277c Fixes #6776: Fix erroneous webhook dispatch on failure to save objects 2021-08-23 12:06:43 -04:00
jeremystretch
75c62ff729 Print request index after webhook data dump 2021-08-23 11:32:47 -04:00
Jeremy Stretch
aef8c5fbb5 Merge pull request #6965 from bluikko/poweroutlet-hardwired
Add hardwired PowerOutlet
2021-08-23 10:04:28 -04:00
jeremystretch
cfa4f5677b Fixes #7012: Fix hidden "add components" dropdown on devices list 2021-08-23 09:41:43 -04:00
jeremystretch
8131feae8a Closes #7011: Add search field to VM interfaces filter form 2021-08-23 09:36:05 -04:00
Matt
a3d5e04946 Fixes #6990: Fix query param and query filter handling in API select 2021-08-20 16:25:31 -07:00
jeremystretch
1fc3c6d9d2 Fixes #6974: Show contextual label for IP address role 2021-08-20 16:12:09 -04:00
jeremystretch
53a5bc2221 Fixes #6929: Introduce LOGIN_PERSISTENCE configuration parameter to persist user sessions 2021-08-20 16:06:37 -04:00
Matt
12f3c2596f Fixes #6966: Migrate to stock fonts 2021-08-20 12:57:41 -07:00
jeremystretch
87dad41c37 Tweak logo size on mobile 2021-08-20 15:21:26 -04:00
jeremystretch
4dbb18d408 Update change log 2021-08-20 15:20:55 -04:00
Matt
a7cb75d73d Fixes #6999: Properly align controls on sm and md breakpoints 2021-08-20 12:15:07 -07:00
Matt
517c0e2fe6 Fixes #6996: Make search bar full width on small screens 2021-08-20 08:54:00 -07:00
Matt
84db2e90ab Fixes #6998: Properly handle merge and replace actions in API Select 2021-08-20 08:41:30 -07:00
Matt
9d469874c0 #6881: Improve device IP address styles 2021-08-20 08:06:41 -07:00
jeremystretch
d850aa0773 Changelog for #6790 2021-08-20 09:17:53 -04:00
Jeremy Stretch
9baebfa241 Merge pull request #6790 from WillIrvine/issue-6632
Fixes #6632  - Allow a /32 prefix to contain a /32 ipaddress
2021-08-20 09:16:05 -04:00
Matt
9e1d2da449 Fixes #7001: Focus the main content container when the page loads 2021-08-19 14:13:54 -07:00
Matt
a71604e79f Closes #6881: Wrap interface IP addresses in a badge that displays status and/or role 2021-08-19 12:35:30 -07:00
Matt
9a8d33e6bf Fixes #6979: Don't show 'Create & Add Another' button when editing/creating a circuit 2021-08-18 16:49:15 -07:00
Matt
09d745d987 Fixes #6976: Improve handling of printing layouts/styling 2021-08-18 16:17:50 -07:00
Matt
8199bb6b62 Fixes: #6982: Remove inherited background-color on disabled options 2021-08-18 14:57:42 -07:00
Matt
643939ea1e Rebundle scripts after rebase 2021-08-18 14:53:28 -07:00
Matt
9b3498d87a Add visibility toggle for object depth indicators 2021-08-18 14:51:49 -07:00
Matt
e4a162b054 Improve prefix hierarchy/depth styling 2021-08-18 14:51:36 -07:00
jeremystretch
bd47d0850e Changelog for #6856 2021-08-18 14:38:30 -04:00
jeremystretch
be3b4f0d3e #6856: Remove ?limit=0 from API queries 2021-08-18 14:35:12 -04:00
Matt
664b02d735 Fixes #6856: Properly handle existence of next property in API select responses 2021-08-17 16:50:29 -07:00
jeremystretch
6d1b981ecb Closes #6975: Reduce footer height 2021-08-17 12:02:30 -04:00
jeremystretch
ac6b1bf422 Fixes #6977: Truncate global search dropdown on small screens 2021-08-17 11:49:32 -04:00
jeremystretch
10847e2956 Optimize addition/removal of default custom field values 2021-08-16 14:48:56 -04:00
jeremystretch
9b0258fef4 Fixes #6686: Force assignment of null custom field values to objects 2021-08-16 14:38:06 -04:00
jeremystretch
5b89cdc868 Fixes #5968: Model forms should save empty custom field values as null 2021-08-16 13:45:46 -04:00
bluikko
5a8cedd63f Add hardwired PowerOutlet 2021-08-16 11:30:13 +07:00
jeremystretch
3feba2997f Closes #6872: Add table configuration button to child prefixes view 2021-08-13 15:56:14 -04:00
jeremystretch
fce419526d Closes #6748: Add site group filter to devices list 2021-08-13 15:26:06 -04:00
jeremystretch
e8fb86a283 Release v3.0-beta2 2021-08-13 14:19:43 -04:00
jeremystretch
90a820e0cf Add "clear all" option for applied filters 2021-08-13 13:50:11 -04:00
jeremystretch
9f59f99663 Set max width for object edit forms 2021-08-13 13:35:23 -04:00
jeremystretch
a6150f2578 Remove select widget hover effect 2021-08-13 11:31:51 -04:00
jeremystretch
b784705cd3 Tweak nav submenu heading color 2021-08-13 11:20:00 -04:00
jeremystretch
0609bcaaf0 Reduce base font size 2021-08-13 11:17:37 -04:00
jeremystretch
7727ec91f4 #6934: Correct prefix utilization and available IP reporting to account for child IP ranges 2021-08-13 10:43:25 -04:00
jeremystretch
5365c866ff #6934: Account for child IP ranges when calculating prefix utilization 2021-08-13 10:33:58 -04:00
jeremystretch
e1fbe89b41 Reduce form text size 2021-08-13 09:56:06 -04:00
jeremystretch
a72e23eddf Fix custom script layout 2021-08-13 09:43:23 -04:00
jeremystretch
dcd49fd97b Fixes #6953: Remove change log tab from non-applicable object views 2021-08-13 09:13:09 -04:00
Jeremy Stretch
1b074d2d53 Merge pull request #6933 from netbox-community/6912-static-resources
Fixes #6912: Fix static asset references when BASE_PATH is in use
2021-08-12 15:15:18 -04:00
jeremystretch
aed07a8ec5 Merge v2.11.11 2021-08-12 11:51:04 -04:00
jeremystretch
1b12185a39 PRVB 2021-08-12 11:47:59 -04:00
Jeremy Stretch
2e895c734e Merge pull request #6947 from netbox-community/develop
Release v2.11.11
2021-08-12 11:44:51 -04:00
Jeremy Stretch
11a9dc57fc Merge branch 'master' into develop 2021-08-12 11:31:29 -04:00
jeremystretch
badd92a50e Update GitHub issue templates 2021-08-12 11:28:55 -04:00
jeremystretch
b2faf8044d Release v2.11.11 2021-08-12 11:22:57 -04:00
jeremystretch
3105e9545a Fixes #6918: Fix return URL persistence when adding multiple objects sequentially 2021-08-12 10:12:42 -04:00
jeremystretch
42c71984f9 Fixes #6896: Fix validation of IP address assigned as device/VM primary via NAT relation 2021-08-11 21:15:45 -04:00
jeremystretch
736da4bcad Merge branch 'develop' into feature 2021-08-10 21:03:10 -04:00
jeremystretch
db359719a9 Closes #6921: Employ a sandbox when rendering Jinja2 code for increased security 2021-08-10 20:52:45 -04:00
jeremystretch
7bceeb714b Fixes #6935: Remove extraneous columns from inventory item and device bay tables 2021-08-10 20:35:39 -04:00
jeremystretch
35b8fc6e83 Fixes #6936: Add missing parent column to inventory item import form 2021-08-10 20:24:57 -04:00
jeremystretch
6d27e11043 #6934: Include child IP ranges under prefix view 2021-08-10 16:26:14 -04:00
jeremystretch
b8e387ce98 #6912: Remove absolute publicPath reference 2021-08-10 14:03:07 -04:00
jeremystretch
c7ebad0fbb Closes #6931: Include applied filters on object list view 2021-08-10 13:11:35 -04:00
jeremystretch
1bb596fc7e Fixes #6908: Allow assignment of scope to VLAN groups upon import 2021-08-09 09:54:27 -04:00
jeremystretch
7bcebd5b0f Fixes #6910: Fix exception on invalid CSV import column name 2021-08-09 09:20:22 -04:00
jeremystretch
a8b6902829 Fixes #6909: Remove extraneous site column from VLAN group import form 2021-08-09 09:17:08 -04:00
Jeremy Stretch
71e6dc8275 Merge pull request #6920 from candlerb/candlerb/6919
Change example ADMINS to show a tuple
2021-08-09 08:56:44 -04:00
Jeremy Stretch
564640213e Merge pull request #6915 from candlerb/candlerb/libpq-dev
Documentation consistency on installation of libpq-dev(el)
2021-08-09 08:51:54 -04:00
Brian Candler
b04f262642 Change example ADMINS to show a tuple
Fixes #6919
2021-08-09 07:37:46 +01:00
Brian Candler
b802127801 Documentation consistency on installation of libpq-dev(el) 2021-08-08 10:19:30 +01:00
Matt
6845fb0f00 Improve object view on small screens 2021-08-06 17:56:38 -07:00
Matt
a312311be9 Improve sidenav link styles 2021-08-06 17:46:49 -07:00
Jeremy Stretch
fe54acef51 v3.0 nav menu tweaks (#6906)
* Clean up nav menu spacing & link colors

* Shrink NetBox icon & collapsed sidebar

* Fix gap between scrollbar and righthand window border
2021-08-06 17:43:02 -04:00
jeremystretch
ef057b3e45 Fix footer fonts 2021-08-06 16:49:17 -04:00
jeremystretch
84ab233571 Fix wrapping of table controls on device interfaces view 2021-08-06 16:40:00 -04:00
jeremystretch
cf381d732d Use red border for confirmation dialog 2021-08-06 16:19:21 -04:00
jeremystretch
8653b0f3d0 Tabify object add/edit views 2021-08-06 16:16:19 -04:00
jeremystretch
65659fb676 Badges use secondary BG by default; add custom option 2021-08-06 15:41:26 -04:00
Jeremy Stretch
939bcfec4b Improve object list layout (#6907)
* Split object list and filters into tabs

* Use object_list template for connections, rack elevations

* Include custom field filters in grouped filter form

* Annotate number of applied filters on tab

* Rearrange table controls
2021-08-06 15:35:14 -04:00
jeremystretch
6ce8dd5ac3 Closes #6823: Improve table configuration form layout 2021-08-06 12:46:57 -04:00
jeremystretch
63f4d81bc0 Remove errant buttons block from cable view 2021-08-06 12:33:21 -04:00
jeremystretch
d0fbbbfb37 Merge branch 'develop' into feature 2021-08-06 10:06:52 -04:00
jeremystretch
f23dc2d405 Fixes #6902: Populate device field when cloning device components 2021-08-06 09:55:47 -04:00
jeremystretch
34aa231436 Closes #6899: Add filterset tests for Token 2021-08-06 09:41:49 -04:00
jeremystretch
51d1b6e0d6 Fixes #6901: Correct example REST API request 2021-08-06 08:39:57 -04:00
jeremystretch
7c8612aadd Update application architecture diagram 2021-08-05 15:51:24 -04:00
Joel McGuire
d347b97f20 Fixes #6887 Add Examples in the Lookup Expression Docs (#6898)
Fixes #6887 Add Examples in the Lookup Expression Docs

Co-authored-by: joel <joelmcguire@email.arizona.edu>
2021-08-05 13:28:32 -04:00
jeremystretch
42b961229f Fixes #6894: Fix available IP generation for prefix assigned to a VRF 2021-08-05 13:23:14 -04:00
Matt
79f726e6cd #6797: Fix various mobile layout issues 2021-08-05 09:59:13 -07:00
Matt
31cd6898d4 #6797: Fix search result layout on small screens when there are no results 2021-08-05 09:40:02 -07:00
Matt
7608ee8450 #6797: Fix initial sidenav handling on smaller screens 2021-08-05 09:35:36 -07:00
Matt
da67a35328 #6797: Automatically collapse inactive sections in the sidenav 2021-08-05 09:28:25 -07:00
jeremystretch
46d0af6cef Fixes #6892: Fix validation of unit ranges when creating a rack reservation 2021-08-05 11:12:08 -04:00
Matt
0ea9c65007 Add common Bootstrap components to window so they can be consumed by plugins 2021-08-04 23:46:34 -07:00
jeremystretch
57dc4c207f Fixes #6832: Support config context rendering under GraphQL API 2021-08-04 15:55:55 -04:00
Matt
582b69de74 #6797: Improve object edit form field layout 2021-08-04 10:57:01 -07:00
Matt
0cf9be2a8d Remove deprecated advanced search template 2021-08-04 10:41:43 -07:00
Matt
0bf39590e3 #6797: Fix object list layout when there is no filter form 2021-08-04 10:40:39 -07:00
Matt
2debeb7475 #6797: Fix empty filter panels 2021-08-04 10:37:59 -07:00
jeremystretch
ee8fd701ae Changelog for #6883 2021-08-04 13:26:53 -04:00
Jeremy Stretch
9379324b07 Merge pull request #6885 from bellwood/6883_add_power_outlet_port_c21_c22
Add power outlet/port choice for C21/C22
2021-08-04 12:59:21 -04:00
Brian Ellwood
55cdbd57cc Add power outlet/port choice for C21/C22
Resolves #6883
2021-08-04 12:06:39 -04:00
jeremystretch
11836cdfb1 Fixes #6871: Support dynamic tag types in GraphQL API 2021-08-03 16:29:34 -04:00
Jeremy Stretch
c411d2a9f1 Merge pull request #6873 from netbox-community/6829-graphql-reverse-relations
Closes #6829: GraphQL reverse generic relations
2021-08-03 16:22:45 -04:00
jeremystretch
1b612816cc Merge branch 'feature' into 6829-graphql-reverse-relations 2021-08-03 16:05:31 -04:00
Matt
051abc00c4 Fix bulk_import button class in test view after naming change in e8ba4b0 2021-08-03 12:43:28 -07:00
Matt
f7ee5e8d78 Fix button class in test view after naming change in e8ba4b0 2021-08-03 12:06:13 -07:00
jeremystretch
cc26bc4858 Changelog for #6829 2021-08-03 14:56:22 -04:00
jeremystretch
88d2441ab3 Add changelog GraphQL relation for changelogged models 2021-08-03 14:51:56 -04:00
Matt
6842879985 #6797: Improve object view styling & responsiveness 2021-08-03 11:41:46 -07:00
jeremystretch
1518a460d5 Rename base Graphene types to match base models 2021-08-03 14:37:39 -04:00
jeremystretch
ea86321da8 Add journal_entries to Graphene object types for all primary models 2021-08-03 13:58:08 -04:00
jeremystretch
c416fce400 Refactor base Graphene object types 2021-08-03 13:49:12 -04:00
Matt
ae28df8abd #6797: Place custom links below native controls 2021-08-03 10:25:27 -07:00
Matt
e8ba4b0564 #6797: Improve controls & custom link styling 2021-08-03 10:21:06 -07:00
Matt
53e21ceed4 #6797: Improve global search styles 2021-08-03 09:19:24 -07:00
jeremystretch
735286d3b0 Add vlan_groups to Region, SiteGroup, Site, Location, Rack, ClusterGroup, Cluster 2021-08-03 11:49:22 -04:00
jeremystretch
8ad958708f Add image_attachments to Device, Location, Rack, Site 2021-08-03 11:38:18 -04:00
Matt
58862e115c Closes #6863: Add search fields back to filter forms 2021-08-03 08:32:53 -07:00
jeremystretch
0df67dbc12 Add ip_addresses relation on InterfaceType, VMInterfaceType 2021-08-03 11:27:14 -04:00
thatmattlove
8bdfa34c7d Merge branch 'feature-object-filter' into feature 2021-08-03 06:57:54 -07:00
thatmattlove
06c730f4dc Merge branch 'feature' into feature-object-filter
# Conflicts:
#	netbox/project-static/dist/netbox-dark.css
#	netbox/project-static/dist/netbox-light.css
#	netbox/project-static/styles/netbox.scss
#	netbox/project-static/styles/select.scss
2021-08-03 06:57:22 -07:00
checktheroads
afc8d5bbbf Fix PEP8 formatting error 2021-08-02 02:31:30 -07:00
checktheroads
1de46f592c Various styling improvements 2021-08-02 02:18:31 -07:00
checktheroads
863048cda2 Deprecate collapsible advanced search and re-implement field-based filtering on object views 2021-08-01 21:24:22 -07:00
checktheroads
0b09365d0d #6797: Improve form error/django messages handling 2021-08-01 13:30:16 -07:00
checktheroads
8e3ab8d5c5 #6797: Improve global bg/color transition 2021-08-01 12:01:40 -07:00
checktheroads
9cf560ceec #6797: Improve table highlight, toast, and alert styling 2021-08-01 11:53:35 -07:00
checktheroads
c3a75d98d4 #6797: Improve sidenav state handling before load 2021-08-01 11:12:07 -07:00
checktheroads
261372289a #6797: Fix sidenav jumpy/glitchy behavior on page reload when pinned 2021-08-01 00:27:27 -07:00
checktheroads
b86edd4a20 #6797: Improve sidenav parent link color 2021-08-01 00:02:20 -07:00
checktheroads
374cf146e2 #6797: Fix login page layout issue 2021-07-31 23:56:56 -07:00
checktheroads
08ed545065 Closes #6855: Bundle and locally serve GraphiQL JS/CSS 2021-07-31 23:49:48 -07:00
checktheroads
80836c725c Fix navigation_menu typing & dataclass property defaults 2021-07-31 22:16:04 -07:00
Jeremy Stretch
9fa2acfe85 Merge pull request #6847 from netbox-community/6834-graphiql-ui
Closes #6834: Customize GraphiQL view
2021-07-30 15:23:59 -04:00
jeremystretch
3ba122afd4 Merge feature 2021-07-30 15:13:55 -04:00
jeremystretch
76df55dfc0 Fixes #6740: Add import button to VM interfaces list 2021-07-30 10:28:56 -04:00
Jeremy Stretch
49a949aa97 Merge pull request #6836 from Ursadon/patch-1
Escaping angle brackets in a device config file
2021-07-30 10:09:04 -04:00
checktheroads
5413263eff #6797: Properly update API select query parameters when values already exist on the element 2021-07-30 01:25:29 -07:00
checktheroads
772c76e0a4 #6797: Don't show depth indicator in API select placeholder 2021-07-30 01:03:26 -07:00
checktheroads
5463fa7390 Closes #6808: Determine option disabled status via disabled-indicator attribute 2021-07-30 00:56:54 -07:00
checktheroads
d18c83beb0 #6828: Fix various mobile UI issues 2021-07-30 00:35:38 -07:00
checktheroads
7aa89c2e73 #6797: Fix new sidenav styles 2021-07-29 18:11:48 -07:00
checktheroads
007d660ce1 Merge branch 'feature-sidebar' into feature
# Conflicts:
#	netbox/project-static/dist/netbox.js
#	netbox/project-static/dist/netbox.js.map
2021-07-29 17:39:07 -07:00
checktheroads
3752cb3e56 #6797: Implement new sidebar 2021-07-29 17:33:10 -07:00
jeremystretch
cdf8d91e1b #6797: Fit device type images to available space 2021-07-29 15:19:42 -04:00
jeremystretch
d082442851 Update REST API web UI title 2021-07-29 15:06:09 -04:00
jeremystretch
689f67b1a8 #6834: Add favicon to REST API web UI 2021-07-29 15:02:52 -04:00
jeremystretch
744f47cb98 Fixes #6846: Form-driven REST API calls should use brief mode 2021-07-29 14:50:30 -04:00
jeremystretch
81e1b7490e #6834: Add title, favicon to GraphiQL view 2021-07-29 13:48:06 -04:00
jeremystretch
22d160b1da Fix display of circuit termination provider network 2021-07-29 11:14:12 -04:00
jeremystretch
c323105696 Fixes #6827: Restore circuit termination connection dropdown 2021-07-29 11:08:15 -04:00
jeremystretch
f6746c7530 Clean up cable connection form 2021-07-29 10:48:12 -04:00
jeremystretch
52c4d54481 Clean up cable trace view 2021-07-29 10:08:43 -04:00
jeremystretch
4c3f584fa6 Fix trace component borders 2021-07-29 09:59:01 -04:00
jeremystretch
2e7d912bdd #6797: Add cable type, length to SVG trace 2021-07-29 09:49:31 -04:00
jeremystretch
288bf477ce Bump GitHub stale action to v4.0 2021-07-29 09:07:23 -04:00
Ursadon
27f3816fc6 Escaping angle brackets in a device config file
The configuration file may contain brackets (">" or "<"), which must be escaped
2021-07-29 15:45:32 +07:00
jeremystretch
33d40d4253 #6797: Improve utilization graph display for small values 2021-07-28 16:42:44 -04:00
jeremystretch
c7e0abc3fb Merge v2.11.10 2021-07-28 16:26:04 -04:00
jeremystretch
18a4232783 PRVB 2021-07-28 16:00:38 -04:00
checktheroads
5a8835f41a Merge branch 'feature' into feature-sidebar 2021-07-26 14:47:31 -07:00
checktheroads
2d32aeb972 Migrate to collapsed sidebar layout 2021-07-26 14:46:05 -07:00
jeremystretch
fc01bedd45 Fixes #6811: Fix exception when editing users 2021-07-26 09:37:58 -04:00
checktheroads
51c1f4b214 #6797: Make default border-radius less rounded 2021-07-24 18:13:08 -07:00
checktheroads
0b80d85c6c #6797: Fix API select styles 2021-07-24 18:11:01 -07:00
checktheroads
4489e130f2 #6797: Fix toast header style 2021-07-24 17:23:37 -07:00
checktheroads
e1cc00ad17 #6797: Fix <small/> element font-size 2021-07-24 17:19:47 -07:00
checktheroads
49191261a1 #6797: Fix incorrect color select label color 2021-07-24 17:13:02 -07:00
checktheroads
0479d5a02a #6797: Improve toast styles 2021-07-24 17:08:18 -07:00
checktheroads
189e733f81 #6797: Fix color flashing when server mode doesn't match select mode or client preference 2021-07-24 10:31:46 -07:00
checktheroads
bf2d535356 Fix incorrect rack elevation file name regression from 0572d03 2021-07-24 01:40:23 -07:00
checktheroads
05cfdd0b69 #6797: Fix search result layout 2021-07-24 01:21:14 -07:00
checktheroads
a60e8d3e12 #6797: Fix Safari anchor element styling issue 2021-07-24 01:07:53 -07:00
checktheroads
7b3d285884 #6797: Fix alert coloring in dark mode 2021-07-24 00:59:11 -07:00
checktheroads
5ba053a1c0 #6797: Fix duplicate ID on searchbar fields 2021-07-24 00:41:49 -07:00
checktheroads
7d5f647cd3 #6797: Improve home page shading 2021-07-24 00:38:28 -07:00
checktheroads
0572d03003 Migrate from ParcelJS to esbuild for UI bundling 2021-07-24 00:00:38 -07:00
jeremystretch
cb804eb3e1 Release v3.0-beta1 2021-07-23 08:13:07 -04:00
jeremystretch
878288fbec Merge branch 'develop' into feature 2021-07-23 08:02:21 -04:00
Jeremy Stretch
407f05629a Merge pull request #6786 from netbox-community/nav-menu-plugins
Refactor navigation menu to support plugin items
2021-07-23 08:00:13 -04:00
WillIrvine
ffae2c5f18 Fixes #6632 2021-07-23 11:08:41 +12:00
jeremystretch
8898d3b558 Update installation docs 2021-07-22 16:38:35 -04:00
jeremystretch
53c29b65bd Prep for v3.0-beta1 2021-07-22 15:07:45 -04:00
jeremystretch
8e7bcd95a4 Update release notes for v3.0 2021-07-22 14:25:30 -04:00
jeremystretch
84479925bf Shrink & center form section titles 2021-07-22 12:31:50 -04:00
jeremystretch
7bfc66e218 Fix help button height on object edit forms 2021-07-22 11:58:47 -04:00
jeremystretch
309247d487 Resize logo 2021-07-22 11:51:11 -04:00
jeremystretch
081054e08c Add missing plugin content injection tags 2021-07-22 11:40:55 -04:00
jeremystretch
adda8c4642 Tweak menu items order 2021-07-22 11:30:50 -04:00
jeremystretch
a0b17e145b Clean up nav menu template 2021-07-22 10:29:21 -04:00
jeremystretch
3f0b355717 Fix typo 2021-07-22 10:26:57 -04:00
jeremystretch
6b09c139e7 Refactor navigation menu 2021-07-22 10:21:39 -04:00
jeremystretch
03b20b00b4 Shade background of home view 2021-07-22 08:14:17 -04:00
Jeremy Stretch
108305a3e3 Merge pull request #6779 from netbox-community/jstretch-ui-work
Pending UI work for v3.0 beta
2021-07-22 08:10:44 -04:00
checktheroads
ae4f4b052e Minor theme improvements 2021-07-21 15:33:07 -07:00
jeremystretch
7be684835b Introduce an inclusion template for object comments 2021-07-21 14:20:14 -04:00
jeremystretch
a9930bd442 Optimize display of ConfigContext assigned objects 2021-07-21 14:11:42 -04:00
jeremystretch
19eafef41e General UI cleanup 2021-07-21 12:06:43 -04:00
jeremystretch
d42138384f Use shaded tabs 2021-07-21 10:13:30 -04:00
jeremystretch
ebe7779f40 Use button role names instead of color shades 2021-07-20 21:21:03 -04:00
jeremystretch
347ea4ca98 Tweak object list sizing, alignment 2021-07-20 21:16:36 -04:00
jeremystretch
f2f9c926bb Fix row header 2021-07-20 21:09:13 -04:00
checktheroads
5e1156abe2 Use display field for all API-backed select options 2021-07-20 14:17:12 -07:00
jeremystretch
803f9b6913 Merge branch 'develop' into feature 2021-07-20 17:06:18 -04:00
jeremystretch
4c31b611b1 Fix form layout for services 2021-07-20 16:51:21 -04:00
jeremystretch
b3909e62f0 Add help text for custom links 2021-07-20 16:51:21 -04:00
jeremystretch
74e0d0396a Fix breadcrumbs display for object changes 2021-07-20 16:51:21 -04:00
checktheroads
dd58ef1de5 Use 'brief=true' query parameter on API calls from API-backed select elements 2021-07-20 13:38:24 -07:00
jeremystretch
7eef726ee1 Fix filtering for platforms, tenant groups 2021-07-20 15:39:58 -04:00
jeremystretch
c0bf1576c2 Layout improvements 2021-07-20 15:30:49 -04:00
jeremystretch
e4c668c252 Split bulk edit content into tabs 2021-07-20 15:16:41 -04:00
jeremystretch
3f4e3f5f84 Fix device type buttons 2021-07-20 14:36:10 -04:00
jeremystretch
30f4eb8da0 Shrink circuit termination buttons; linkify far end termination 2021-07-20 14:01:42 -04:00
jeremystretch
328092f0ef Right-align form field labels 2021-07-20 13:55:15 -04:00
jeremystretch
a5dda0705e Standardize button colors 2021-07-20 13:46:59 -04:00
jeremystretch
ba3552b697 Tweak form widths 2021-07-20 13:21:09 -04:00
jeremystretch
b59c1c693d Restore missing created/updated times for object views 2021-07-20 13:07:18 -04:00
jeremystretch
856956afce Standardize object breadcrumbs 2021-07-20 12:14:01 -04:00
jeremystretch
d938b6621d Add missing nav menu link for rack reservations 2021-07-20 11:36:37 -04:00
jeremystretch
cc5ea61f5a Add top & bottom banners, maintenance notice 2021-07-20 11:05:19 -04:00
jeremystretch
fa617c78af Update sidebar footer links 2021-07-20 10:54:46 -04:00
checktheroads
f671b7e5e2 #6372: Improve form field styles 2021-07-20 01:26:45 -07:00
checktheroads
09066a4c6c #6372: Fix regression from 1661d1f causing API select query delays 2021-07-20 00:36:55 -07:00
checktheroads
07f34c2675 #6372: Migrate away from form-floating field styles 2021-07-20 00:16:13 -07:00
checktheroads
2b9326d75e #6372: Improve search filter dropdown styles 2021-07-19 22:11:41 -07:00
checktheroads
91246b0f81 Add icons to home stat cards 2021-07-19 22:01:05 -07:00
checktheroads
5ec0ad6913 #6372: Integrate changes from c14b546 to IP ranges form 2021-07-19 16:44:08 -07:00
checktheroads
64e6dcb23c #6372: Improve form styling 2021-07-19 16:39:16 -07:00
checktheroads
1661d1f4ca #6372: Fix query issues with & refactor API select 2021-07-19 16:39:16 -07:00
checktheroads
e3008babfe #6372: Fix static select class regression from 08f0a5d 2021-07-19 16:39:16 -07:00
checktheroads
cdc9753009 #6372: Fix bulk form action form handling 2021-07-19 16:39:16 -07:00
checktheroads
29e41e8e2b #6372: Fix sidenav active item shadow 2021-07-19 16:39:16 -07:00
checktheroads
a2158af385 #6372: Add front end error logs to gitignore 2021-07-19 16:39:16 -07:00
checktheroads
c14b546d5f #6372: Refactor Select2 naming 2021-07-19 16:39:16 -07:00
jeremystretch
29ee3e5ac0 Clean up home view stats 2021-07-19 16:57:35 -04:00
jeremystretch
011f35164a Replace changelog template code with table in home view 2021-07-19 16:46:12 -04:00
jeremystretch
47ef8b9cac Upgrade script now looks for Python path as env var 2021-07-19 15:13:30 -04:00
Jeremy Stretch
7058d6ca5a Closes #6328: Local docs build (#6769)
* Incorporate local documentation build in upgrade script

* Add docs build to CI

* Include docs build path in revision control

* Update footer dcos link

* Changelog for #6328

* Clean up errant links
2021-07-19 14:18:08 -04:00
jeremystretch
8592e0af54 Remove cache invalidation from upgrade script 2021-07-19 13:15:27 -04:00
jeremystretch
ae6b2be52c Call out dependency on v2.11+ for upgrades 2021-07-19 11:27:00 -04:00
jeremystretch
31e41f8f02 Closes #6767: Add support for Python 3.9 2021-07-19 10:43:52 -04:00
jeremystretch
717724c9f6 Update release notes 2021-07-19 10:03:42 -04:00
Jeremy Stretch
3cfb0bacf4 Merge pull request #6760 from netbox-community/834-ip-ranges
Closes #834: Add support for IP ranges
2021-07-19 09:47:19 -04:00
jeremystretch
0fe1a426c0 Add available IPs REST API endpoint for IP ranges 2021-07-19 09:32:04 -04:00
checktheroads
0503825f7b #6372: Improve sidebar footer links layout 2021-07-17 13:07:47 -07:00
checktheroads
858d12969a #6372: Migrate back to BS5 native colors, clean up rack/cable bundle process 2021-07-17 12:51:40 -07:00
jeremystretch
443172197b Fix SVG rendering with unspecified width 2021-07-16 17:09:52 -04:00
jeremystretch
05d16b0682 Add changelog for #6000 2021-07-16 17:07:42 -04:00
jeremystretch
8cf9f0d5bc Support specification of image width when rendering cable traces as SVG 2021-07-16 17:06:27 -04:00
Jeremy Stretch
2bfdaf08ee Merge pull request #6755 from netbox-community/6000-cable-trace-svg
Closes #6000: SVG rendering for cable tracing
2021-07-16 16:56:17 -04:00
jeremystretch
145be09cfd Merge branch 'feature' into 6000-cable-trace-svg 2021-07-16 16:46:32 -04:00
jeremystretch
747c065213 Move available IP/prefix endpoints to API view mixins 2021-07-16 14:48:42 -04:00
jeremystretch
8d8ac70070 Add IP range documentation 2021-07-16 13:48:57 -04:00
jeremystretch
11a14927c9 Initial work on IP ranges 2021-07-16 13:35:52 -04:00
jeremystretch
c5178fd90e Extend foreground_color() utility to support custom dark/light colors 2021-07-15 13:59:14 -04:00
jeremystretch
89662124e5 Clean up SVG image styling 2021-07-15 13:54:49 -04:00
checktheroads
337f95e269 #6372: Fix rack spacing 2021-07-15 00:56:26 -07:00
checktheroads
8614b1c74a #6372: Fix previous/next rack elevation buttons 2021-07-15 00:47:01 -07:00
checktheroads
e72982a7f8 #6372: Fix nav menu scrolling and styling 2021-07-15 00:32:28 -07:00
checktheroads
a16098d548 #6372: Fix additional bulk action button layouts 2021-07-15 00:31:12 -07:00
checktheroads
cc3bd8833a #6372: Fix missing new release alert 2021-07-14 17:55:01 -07:00
checktheroads
ab6523af3f #6372: Remove empty footer div 2021-07-14 17:19:39 -07:00
checktheroads
af92417131 #6372: Improve bulk action button layout/styling 2021-07-14 17:14:00 -07:00
checktheroads
ae5c2d49c6 #6372: Simplify & streamline table config & table filter elements 2021-07-14 16:25:59 -07:00
jeremystretch
8b571912cf Add SVG trace support for ProviderNetwork attachments 2021-07-14 15:55:18 -04:00
jeremystretch
9f615cde79 Replace CSS-based cable trace diagrams with SVG images 2021-07-14 15:29:04 -04:00
jeremystretch
ce7fa95546 Initial work on SVG support for cable tracing 2021-07-14 14:14:56 -04:00
checktheroads
7449ea28a5 #6372: Remove extra search box from object change log 2021-07-13 09:23:34 -07:00
checktheroads
fa6661e4ae Merge branch 'feature' of github.com:netbox-community/netbox into feature 2021-07-13 09:17:58 -07:00
checktheroads
bfb1b6ac0a #6372: Implement table-flush styling, improve changelog layout 2021-07-13 09:14:57 -07:00
checktheroads
6b88ed0321 #6372: Clean up project-static directory structure 2021-07-12 15:21:20 -07:00
jeremystretch
faa993acfb Use non-card tables for all tabbed views 2021-07-12 15:36:51 -04:00
jeremystretch
fbcdae9a6b Fix "Select all" boxes for object lists 2021-07-12 15:19:07 -04:00
jeremystretch
12e1681d31 Fix active tab display for prefixes 2021-07-12 14:56:00 -04:00
jeremystretch
4225e28a4b Move changelog table out of card 2021-07-12 12:12:06 -04:00
jeremystretch
23be5694d0 Move device/VM component tables outside of cards 2021-07-12 12:06:11 -04:00
jeremystretch
dc8adfc546 Clean up object titles 2021-07-12 10:57:26 -04:00
jeremystretch
5d98c3337a Simplify home view stats 2021-07-12 10:32:13 -04:00
jeremystretch
5406acf329 Merge branch 'jstretch-ui-work' into feature 2021-07-12 09:56:33 -04:00
Jeremy Stretch
7f121f7518 Merge pull request #6739 from netbox-community/6471-reset-migrations
Closes #6471: Squash database migrations up to v2.11.0
2021-07-12 09:04:54 -04:00
jeremystretch
1b132379be Clean up table sizing; remove cards 2021-07-11 21:24:36 -04:00
jeremystretch
0f99e5fcaa Clean up object list view 2021-07-10 22:06:28 -04:00
jeremystretch
726b148aa9 Clean up sidebar layout 2021-07-10 21:30:55 -04:00
jeremystretch
facf757997 Separate navigation menu structure from template tag 2021-07-10 20:44:33 -04:00
jeremystretch
fe1f221286 Log a warning when rqworker invoked without specified queues 2021-07-09 21:23:27 -04:00
jeremystretch
d3b4a72f4f Update change log 2021-07-09 21:10:51 -04:00
jeremystretch
fa47ad0095 Changelog for #6651 2021-07-09 15:37:21 -04:00
Jeremy Stretch
aa7d38a0a5 Merge pull request #6731 from maximumG/6651-plugins-rq-queues
Fixes #6651:  Add plugin's queueing system
2021-07-09 15:29:19 -04:00
jeremystretch
42b2e2717d Standardize squashed migration names 2021-07-09 13:23:43 -04:00
jeremystretch
3387282de4 Resolve migration dependencies 2021-07-09 11:51:42 -04:00
jeremystretch
c82470e4df Add re-initialized migrations for v2.11.0 2021-07-09 11:11:21 -04:00
jeremystretch
4383425060 Delete pre-2.11.0 migrations 2021-07-09 10:57:07 -04:00
Jeremy Stretch
fd58eeae1d Merge branch 'feature' into 6651-plugins-rq-queues 2021-07-09 08:43:39 -04:00
maximumG
a09e4bf82a chore: avoid the default RQ worker to listen to every queues by default and rather only listen to netbox core queues. 2021-07-09 10:03:51 +02:00
maximumG
dce3e0763f chore: documentation about netbox plugin queueing system 2021-07-09 09:42:03 +02:00
jeremystretch
bc812e4937 Closes #5223: Remove the console/power/interface connections REST API endpoints 2021-07-08 17:30:40 -04:00
jeremystretch
38d7b83ed0 Merge v2.11.9 2021-07-08 12:15:57 -04:00
Jeremy Stretch
65aaab5f38 Merge pull request #6717 from netbox-community/6713-release-checking
Closes #6713: Move release checking to the housekeeping routine
2021-07-07 22:22:02 -04:00
jeremystretch
f426ba3526 Remove the check_releases queue 2021-07-07 22:10:10 -04:00
Jeremy Stretch
028c876bca Merge pull request #6716 from netbox-community/6639-drop-cacheops
Closes #6639: Replace django-cacheops with django-redis for caching
2021-07-07 22:08:01 -04:00
jeremystretch
29299b4644 Changelog for #6713 2021-07-07 21:58:54 -04:00
jeremystretch
7c6e5a68d9 Remove the RELEASE_CHECK_TIMEOUT parameter 2021-07-07 21:55:07 -04:00
jeremystretch
fa99263918 Remove release checkng background task 2021-07-07 21:53:02 -04:00
jeremystretch
e173c8b548 Add release check to the housekeeping task 2021-07-07 21:37:35 -04:00
jeremystretch
3e19038e06 Restore CACHING_REDIS_SKIP_TLS_VERIFY; add CACHE_TIMEOUT usage warning 2021-07-07 21:17:40 -04:00
jeremystretch
2c023ef7a0 Update release check to use django-redis 2021-07-07 20:57:47 -04:00
jeremystretch
d9e27b6a82 Replace django-cacheops with django-redis 2021-07-07 20:35:59 -04:00
jeremystretch
b6ec1d9aa7 Remove cacheops workarounds & queryset caching metrics 2021-07-07 17:15:42 -04:00
jeremystretch
f683f0786e Drop caching_config from plugin configuration 2021-07-07 17:04:21 -04:00
maximumG
995aa65f16 feat: Netbox plugin can defined their own RQ queues 2021-07-07 15:26:33 +02:00
maximumG
8b76db2bca add: RQ queues for netbox core (high, default, low, check_release) 2021-07-07 15:25:53 +02:00
checktheroads
9c247d9a19 #5203: Persist Show/Hide Images state in rack view 2021-07-06 17:56:49 -07:00
checktheroads
d9a6f11c35 #6372: Implement basic state management with localStorage integration 2021-07-06 17:55:13 -07:00
checktheroads
00c4ac8d51 #6372: General cleanup 2021-07-06 17:54:24 -07:00
jeremystretch
88e382e7a1 Merge v2.11.8 changes 2021-07-06 12:10:29 -04:00
Jeremy Stretch
57fc6efd4c Merge pull request #6678 from netbox-community/2007-graphql
Closes #2007: Implement GraphQL API
2021-06-30 10:42:49 -04:00
jeremystretch
2fe734e6f9 Omit _path from CableTermination models 2021-06-30 10:20:20 -04:00
jeremystretch
e6091ee0c9 Consolidate GraphQLTestCase into APIViewTestCase 2021-06-30 10:07:33 -04:00
jeremystretch
728b3bac67 Use _list appendix for GraphQL list queries 2021-06-30 09:57:33 -04:00
jeremystretch
0d7309cb19 Add documentation for GraphQL API 2021-06-30 09:35:50 -04:00
jeremystretch
8d2f79cf24 Add configuration parameter to toggle GraphQL API 2021-06-29 13:30:38 -04:00
jeremystretch
05ba54b6d3 Add GraphQL for users and groups 2021-06-29 13:15:10 -04:00
jeremystretch
ef3cb9544a Clean up GraphQL object types & tests 2021-06-29 12:55:17 -04:00
jeremystretch
79614ed2cf Add GraphQL type for ContentType 2021-06-29 11:36:18 -04:00
jeremystretch
7deabfe9cd Extended GraphQL tests to include all fields 2021-06-29 11:20:54 -04:00
jeremystretch
bd1e019a42 Clean up token-based authentication for GraphQL 2021-06-28 16:19:02 -04:00
jeremystretch
14e27363e0 Add GraphQL for DCIM 2021-06-25 16:17:36 -04:00
jeremystretch
605b7c5b3e Add GraphQL for virtualization 2021-06-25 15:31:43 -04:00
jeremystretch
881b18f6d0 Add GraphQL for tenancy 2021-06-25 14:19:20 -04:00
jeremystretch
7256c7050a Add GraphQL for extras 2021-06-25 14:12:09 -04:00
jeremystretch
7a2a25c13a Use v3.0 enum naming 2021-06-25 14:11:41 -04:00
jeremystretch
3e0bcd58d4 Add GraphQL for IPAM 2021-06-25 10:14:35 -04:00
jeremystretch
4c209ed74c Clean up GraphQL tests 2021-06-25 10:14:06 -04:00
jeremystretch
d5675a5d4a Add support for DRF token authentication 2021-06-25 09:13:08 -04:00
jeremystretch
91d39cc0c0 Added initial GraphQL tests 2021-06-24 09:08:45 -04:00
jeremystretch
930ca8d9a1 Add support for custom field data 2021-06-24 09:08:45 -04:00
jeremystretch
6a07f66cfc Initial work on GraphQL 2021-06-24 09:08:45 -04:00
Jeremy Stretch
442b3fcc48 Merge pull request #6659 from netbox-community/6466-replace-django-admin
Closes #6646: Move extras out of Django admin UI
2021-06-24 09:04:08 -04:00
jeremystretch
6cc4f27ee3 Tables cleanup 2021-06-24 08:51:29 -04:00
jeremystretch
036a068b83 Update extras documentation 2021-06-24 08:37:06 -04:00
jeremystretch
4e0b795a3c Add UI views for webhooks 2021-06-23 21:30:23 -04:00
jeremystretch
10cbbee947 Add UI views for export templates 2021-06-23 20:56:50 -04:00
jeremystretch
276ded0119 Add UI views for custom links 2021-06-23 17:10:04 -04:00
jeremystretch
b017927c69 Add UI views for custom fields 2021-06-23 17:10:04 -04:00
checktheroads
e59d88bbe9 #6372: Fix nav-pill styling 2021-06-23 11:46:43 -07:00
checktheroads
e1391cae20 #6372: Improve sidebar styling 2021-06-23 11:39:32 -07:00
checktheroads
0b819053cf #6372: Add opacity utility classes 2021-06-23 11:39:04 -07:00
checktheroads
25b6f02091 #6372: Fix sidebar tooltip rendering 2021-06-23 11:30:58 -07:00
checktheroads
32b6bc6a74 #6372: Upgrade bootstrap to 5.0.2 2021-06-23 11:22:25 -07:00
checktheroads
18f1b93ae4 #6372: Responsive layout improvements 2021-06-23 10:57:09 -07:00
jeremystretch
c7afc9eb28 Rename custom field model forms 2021-06-23 11:53:58 -04:00
jeremystretch
3f63a02145 Rename and refactor CustomFieldForm 2021-06-23 11:53:58 -04:00
checktheroads
eb0d5c996e #6372: Implement layout improvements 2021-06-22 17:20:17 -07:00
jeremystretch
a8a9e061a1 Merge branch 'develop' into feature 2021-06-22 14:30:47 -04:00
jeremystretch
4a6278f598 Merge v2.11.7 2021-06-16 16:27:37 -04:00
jeremystretch
14f696e824 Merge branch 'develop' into feature 2021-06-14 09:23:01 -04:00
Jeremy Stretch
7c779f4f09 Merge pull request #6592 from netbox-community/5264-tokens-api-endpoint
Closes #5264: REST API endpoint for tokens
2021-06-14 09:01:20 -04:00
jeremystretch
4c4fe80697 Fix schema generation for tokens endpoint 2021-06-14 08:52:22 -04:00
jeremystretch
fdd8e33b58 Revert tweak to TokenPermissions.has_permission() 2021-06-14 08:38:10 -04:00
jeremystretch
c36b190d5d Omit REST API schema view from permissions enforcement 2021-06-11 16:24:02 -04:00
jeremystretch
37c9340499 Docs and release notes for #5264 2021-06-11 16:12:25 -04:00
jeremystretch
b038b1f613 Add a REST API endpoint to provision new tokens using username & password 2021-06-11 15:54:31 -04:00
jeremystretch
48b4bf1683 Initial work on REST API endpoint for tokens 2021-06-11 15:14:19 -04:00
jeremystretch
d87ec82fe3 Closes #6590: Introduce a nightly housekeeping command to clear expired sessions and change records 2021-06-11 10:44:17 -04:00
jeremystretch
a1ba3b567c Introduce ColorField for consistent represention of color choice fields in forms 2021-06-09 17:17:39 -04:00
jeremystretch
b3ed545d6a Closes #3682: Add color field to front and rear ports 2021-06-09 16:51:51 -04:00
jeremystretch
8a7473765e Remove obsolete reference to csv_headers 2021-06-09 16:10:41 -04:00
Jeremy Stretch
eda1c6b2c6 Merge pull request #6579 from netbox-community/6068-csv-export
Closes #6068: Clean up CSV export
2021-06-09 16:09:12 -04:00
jeremystretch
7e55b44610 Changelog for #6068 2021-06-09 15:55:38 -04:00
jeremystretch
7e18b0dd3a Remove csv_headers model attributes 2021-06-09 15:52:49 -04:00
jeremystretch
578885225f Replace 'default format' export with 'all data' 2021-06-09 15:26:02 -04:00
jeremystretch
3ec6194a47 Remove obsolete to_csv() methods 2021-06-09 15:08:49 -04:00
jeremystretch
9d3cac43b7 Modify default CSV export to render from tables 2021-06-09 15:02:31 -04:00
jeremystretch
569041a4c4 Changelog for #5963 2021-06-09 13:27:26 -04:00
Jeremy Stretch
9839885198 Merge pull request #6576 from netbox-community/5963-custom-validation
Closes #5963: Custom model validation
2021-06-09 13:21:38 -04:00
jeremystretch
18472188b9 Renumber docs from v2.12 to v3.0 2021-06-09 13:20:46 -04:00
jeremystretch
44c0dec68b Extend CustomValidator to support required, prohibited fields 2021-06-09 13:10:35 -04:00
jeremystretch
f81b3d4ed6 Rename fail() kwarg from attr to field 2021-06-09 12:11:47 -04:00
jeremystretch
c69ef95c6a Document the custom validation feature 2021-06-09 12:09:30 -04:00
jeremystretch
dfd42c9896 Document the new post_clean signal 2021-06-09 12:08:50 -04:00
jeremystretch
3bfa1cbf41 Initial work on custom model validation 2021-06-09 11:36:29 -04:00
jeremystretch
0e23038e28 Merge v2.11.5 2021-06-04 09:47:14 -04:00
jeremystretch
2d44bade4b Merge branch 'develop' into feature 2021-06-02 20:35:38 -04:00
checktheroads
e12fef7828 #6372: Shrink small buttons when inside a table 2021-05-26 16:37:43 -07:00
checktheroads
dc79f80366 #6372: Remove errant console.log statement 2021-05-26 16:33:33 -07:00
checktheroads
e004f872f9 Closes #4247: Add option to show/hide enabled/disabled interfaces on device 2021-05-26 16:32:09 -07:00
checktheroads
587335e3ba #6372: Fix legacy BS5 classes 2021-05-26 09:07:45 -07:00
checktheroads
7219e3760c #6372: Center-align body footer 2021-05-26 08:57:03 -07:00
checktheroads
d2267ecd71 #6372: NetBox logo should be centered 2021-05-26 08:55:22 -07:00
checktheroads
b159def9b2 #6372: Template cleanup & fix form width 2021-05-26 08:53:05 -07:00
checktheroads
e1eefd1165 #6372: Improve sidebar styles 2021-05-25 17:57:37 -07:00
jeremystretch
5b4dacf0f5 Merge branch 'develop' into feature 2021-05-25 13:19:17 -04:00
checktheroads
1daee79095 #6372: Fix multi-select colors in dark mode 2021-05-25 08:44:06 -07:00
checktheroads
5b68a11f01 #6372: Clone/edit/delete buttons are not top-aligned 2021-05-25 08:35:53 -07:00
checktheroads
0c8195e4f1 #6372: Objects table should be full-width 2021-05-25 08:28:58 -07:00
checktheroads
8fe795102f #6372: Fix native select styling 2021-05-25 08:26:36 -07:00
checktheroads
27a02f64b2 #6372: Device type import: JSON data field not big enough 2021-05-25 08:23:36 -07:00
checktheroads
7bb7747c67 #6372: Device import: Racked/child device tabs are not tabs 2021-05-25 08:02:27 -07:00
checktheroads
8bb47a88f8 #6372: Page should be full-width at 1280px 2021-05-25 07:59:08 -07:00
checktheroads
e8c91ea3a1 #6372: Don't autopopulate collapsible API select data, improve advanced search 2021-05-23 19:01:05 -07:00
checktheroads
429d995270 #6372: Fix object delete confirmation styles 2021-05-23 14:55:32 -07:00
checktheroads
c4bd47eb84 #6372: Form should be centered on page 2021-05-23 13:21:52 -07:00
checktheroads
1811118f28 #6372: Fix nav-pill styles on active nav-links 2021-05-23 13:08:44 -07:00
checktheroads
69ba925ee8 #6372: Object checkboxes are too small 2021-05-23 12:36:18 -07:00
checktheroads
7219c3449f #6372: Fix invalid filter form fields 2021-05-23 11:39:08 -07:00
checktheroads
a5d84c88bf Merge branch 'feature' of github.com:netbox-community/netbox into feature 2021-05-23 00:32:25 -07:00
checktheroads
da0aa38614 #6372: Move object list search panel into collapsed view & remove search field 2021-05-23 00:31:48 -07:00
checktheroads
6b1397d257 #6372: Add "add" and "import" buttons to each item as appropriate 2021-05-23 00:30:28 -07:00
checktheroads
7d640e2aab #6732: Add "add" and "import" buttons to each item as appropriate 2021-05-22 18:11:56 -07:00
checktheroads
0a01629b15 #6372: Fix toast colors in dark mode 2021-05-22 17:17:31 -07:00
checktheroads
ee2de33643 #6372: Fix footer placement 2021-05-22 16:59:55 -07:00
jeremystretch
93534db79e Clean up object.html header 2021-05-17 20:23:14 -04:00
Jeremy Stretch
805892f623 Template cleanup (#6421)
* Clean up & comment base templates

* Clean up login template & form

* Use SVG file for NetBox logo

* Simplify breadcrumbs

* Merge changelog.html into home.html

* Rename title_container block to header

* Move breadcrumbs block to object.html

* Attach names to endblock template tags

* Reorganize root-level templates into base/ and inc/

* Remove obsolete reference to Bootstrap 3.4.1
2021-05-17 16:27:27 -04:00
Daniel Sheppard
744792452f Closes: #5278 - Remove Secrets (#6397)
* Remove Secrets

* #5278: Remove secrets javascript from netbox core

* Remove userkey references

* Fix PEP8

* Remove a few more instances of secrets.  Rebundle

* Remove Secrets

Co-authored-by: checktheroads <matt@allroads.io>
2021-05-17 16:26:02 -04:00
jeremystretch
dc5c765c2a Changelog for #2434 2021-05-14 14:55:38 -04:00
Jeremy Stretch
fed0322ebf Merge pull request #6323 from netbox-community/feature-2434
Closes #2434: Show 'Create & Assign IP Address' Button when Creating …
2021-05-14 14:53:59 -04:00
checktheroads
e429ba6fa2 #2434: Fix database transaction context scoping 2021-05-14 11:21:42 -07:00
checktheroads
234475effe Merge branch 'feature' into feature-2434 2021-05-14 00:12:19 -07:00
checktheroads
7d7d06651c Merge branch 'feature' of github.com:netbox-community/netbox into feature 2021-05-14 00:10:06 -07:00
jeremystretch
43a823d0ac Closes #3665: Enable rendering export templates via REST API 2021-05-11 15:51:36 -04:00
Jeremy Stretch
96ffae3372 Merge pull request #6392 from netbox-community/4609-prefix-mark-utilized
Closes #4609: Mark prefixes as fully utilized
2021-05-11 15:12:56 -04:00
jeremystretch
ecf51406c5 Permit disabling utilization graph warning/danger thresholds 2021-05-11 14:52:27 -04:00
jeremystretch
bf56145a09 Closes #4609: Allow marking prefixes as fully utilized 2021-05-11 14:08:18 -04:00
checktheroads
8056290423 #2434: Apply conditional logic from b9a413d to overridden InterfaceCreateView.post method 2021-05-10 13:58:10 -07:00
checktheroads
892d1214b0 Merge branch 'feature' into feature-2434 2021-05-10 13:57:32 -07:00
jeremystretch
f6823b5704 Closes #6338: Decimal fields are no longer coerced to strings in REST API 2021-05-10 14:22:01 -04:00
jeremystretch
f3abf84e17 Closes #6154: Allow decimal values for cable lengths 2021-05-10 14:14:54 -04:00
jeremystretch
a6d937b366 Closes #5806: Add kilometer and mile as choices for cable length unit 2021-05-10 11:23:21 -04:00
checktheroads
b9a413d19e #2434: Fix redirection logic in generic form validation method 2021-05-08 12:32:13 -07:00
checktheroads
3436780117 #6372: Show standard form validation errors 2021-05-08 12:07:20 -07:00
checktheroads
2d2719cfb2 #2434: Refactor ComponentCreateView to use generic form validation method
New validate_form method on ComponentCreateView handles validation generically, which any post() method on ComponentCreateView can use to validate the form but handle the response differently as needed.
2021-05-08 12:01:25 -07:00
checktheroads
515aed7022 Merge branch 'feature' into feature-2434 2021-05-08 11:08:06 -07:00
checktheroads
22e484edd4 #6732: Change “Update” button to “Save” 2021-05-07 17:02:22 -07:00
checktheroads
616a598940 #6372: Utilization graph columns should have a minimum width 2021-05-07 16:57:38 -07:00
checktheroads
1a843f95b7 #6372: Fix badge & progress-bar foreground color in dark mode 2021-05-07 16:50:50 -07:00
checktheroads
32e1d7e879 #6372: Updating “per page” count does not refresh list 2021-05-07 16:30:13 -07:00
checktheroads
8c67c7efb3 #6372: Fix search filtering when selecting 'All Objects' 2021-05-07 16:21:31 -07:00
checktheroads
252bdcbbe0 #6372: Restructure theme files & build process to avoid SCSS collisions 2021-05-07 16:12:27 -07:00
checktheroads
4dbe047512 #6372: Fix select placeholder font-size 2021-05-07 14:39:57 -07:00
checktheroads
1da7c705e3 #6372: Object list text is too small 2021-05-07 14:32:41 -07:00
checktheroads
fabd751f20 #6372: Reduce padding of top-level menu items & improve home page stat badge coloring 2021-05-07 14:27:32 -07:00
checktheroads
308820b8a1 #6372: Move hostname & current time to end of page body 2021-05-07 13:45:03 -07:00
checktheroads
4fd7eaf8e0 #6372: Fix too-dark body color 2021-05-07 13:25:01 -07:00
checktheroads
789f0bc8ff #6732: Add color mode toggle to login button when not authenticated 2021-05-07 12:11:45 -07:00
checktheroads
042c65a48c #6732: Fix <title/> rendering on home page template 2021-05-07 12:05:56 -07:00
checktheroads
03a1014714 #6732: Fix rendering of stats on home page when not authenticated 2021-05-07 11:55:46 -07:00
checktheroads
6e9c81eddf #6732: Errant righthand margin on "Login" button (if not authenticated) 2021-05-07 11:43:13 -07:00
checktheroads
d7c103d77f #6732: Add color mode toggle to login screen & fix login screen layout issues 2021-05-07 11:40:20 -07:00
checktheroads
63435f2ec1 #6732: Fix search filtering
This was broken after implementing mobile screen size support in #6327
2021-05-07 11:07:06 -07:00
checktheroads
445adbd078 #6372: Border should be consistent for all elements of the search bar 2021-05-07 11:04:57 -07:00
checktheroads
0e088f11ba #6372: FIx Status badge location in attr table 2021-05-07 09:18:40 -07:00
checktheroads
e47f25ac3e #6372: code text should not be pink 2021-05-07 09:16:05 -07:00
checktheroads
df02123b1e #6372: Fix anchor tag underline style in dark mode 2021-05-07 09:09:21 -07:00
checktheroads
6a685df823 #6372: Remove duplicate babel plugin already included in @babel/preset-env 2021-05-07 09:03:45 -07:00
checktheroads
a4add7de67 #6372: Remove focus ring effect from navigation menu headers 2021-05-07 09:02:53 -07:00
checktheroads
8473820f0c #6372: Remove underline style from hyperlinks 2021-05-07 08:56:17 -07:00
jeremystretch
c777daf6e6 Merge branch 'develop' into feature 2021-05-07 10:27:23 -04:00
Jeremy Stretch
43c17b9950 Merge pull request #6352 from netbox-community/5991-remove-display_name
Closes #5991: Remove display_name
2021-05-05 08:45:46 -04:00
jeremystretch
ea5d02b1e6 Remove deprecated display_name() methods from models 2021-05-04 16:05:17 -04:00
jeremystretch
5856275347 Closes #5991: Remove display_name attribute from serializers 2021-05-04 15:56:36 -04:00
jeremystretch
534b0e4cf6 Merge branch 'develop' into feature 2021-05-04 14:25:53 -04:00
Jeremy Stretch
6899a3258a Merge pull request #6327 from netbox-community/feature-ui
Add Basic Support for Smaller Screens in New UI
2021-05-03 09:07:29 -04:00
checktheroads
04cc43b2f0 ensure 'Create & Assign IP Address' button is only shown when the component_type is 'interface' 2021-04-30 17:17:56 -07:00
checktheroads
460a203c29 Add basic support for smaller screens 2021-04-30 15:55:37 -07:00
Jeremy Stretch
79184347f9 Merge pull request #6325 from netbox-community/feature-6321
Integrate changes from #6322 (to fix #6321) into feature
2021-04-30 16:13:44 -04:00
Jeremy Stretch
be48bf06df Merge pull request #6324 from netbox-community/feature-ui
Merge various UI fixes to feature
2021-04-30 16:13:07 -04:00
checktheroads
9ad8065f75 Integrate changes from #6322 (to fix #6321) into feature 2021-04-30 12:13:43 -07:00
checktheroads
58e1a1f1d8 fix api select pagination 2021-04-30 11:29:45 -07:00
checktheroads
aee09d9119 general style improvements 2021-04-30 11:27:51 -07:00
checktheroads
de56e2b405 Closes #2434: Show 'Create & Assign IP Address' Button when Creating Interfaces 2021-04-30 11:13:38 -07:00
Matt Love
abd9ffd31d Merge pull request #6298 from checktheroads/feature
Fix #6297: update screenshot links & remove old screenshots
2021-04-27 16:55:33 -07:00
checktheroads
0b07909386 Merge branch 'feature' of https://github.com/netbox-community/netbox into feature 2021-04-27 16:33:34 -07:00
checktheroads
82b770c1aa Fix #6297: update screenshot links & remove old screenshots 2021-04-27 16:32:00 -07:00
jeremystretch
456ffb79ff Merge v2.11.2 2021-04-27 14:05:38 -04:00
jeremystretch
368c2aac24 Fix path to manage.py 2021-04-27 13:47:29 -04:00
jeremystretch
b6f70ed92a Run collecstatic when preparing test environment 2021-04-27 13:42:57 -04:00
jeremystretch
98c2914eeb Get preferences only if user is authenticated 2021-04-27 13:26:50 -04:00
jeremystretch
5b09e4ac0c Add migration for CustomLink button_class default 2021-04-27 13:25:57 -04:00
Jeremy Stretch
5d8cf22897 Merge pull request #6253 from checktheroads/feature
#5893: Upgrade Bootstrap, Remove jQuery, Improve Layout
2021-04-27 11:37:05 -04:00
checktheroads
eea26d7ece add dark mode, screenshots, and social icons to docs 2021-04-26 01:16:23 -07:00
checktheroads
06182bfce4 update docs & readme with screenshots 2021-04-26 01:15:37 -07:00
checktheroads
77bb9eaa73 fix select styles 2021-04-26 00:56:50 -07:00
checktheroads
10d1378277 don't run pycodestyle on node_modules directory 2021-04-26 00:34:25 -07:00
checktheroads
8b2f4780ed fix type error 2021-04-26 00:32:26 -07:00
checktheroads
aef513f038 improve styles and documentation 2021-04-26 00:31:51 -07:00
checktheroads
bb55df34d7 update bootstrap version 2021-04-26 00:31:03 -07:00
checktheroads
2b159fc40f implement dark mode 2021-04-25 20:11:46 -07:00
checktheroads
d7d004b48e undo home template path change 2021-04-25 20:10:41 -07:00
checktheroads
013fbf79e9 add dict.get template tag helper 2021-04-25 20:09:32 -07:00
checktheroads
8a2d4ab68c update readme screenshots 2021-04-23 11:52:42 -07:00
checktheroads
5e4878843e fix custom link rendering 2021-04-23 09:31:16 -07:00
checktheroads
be484d20a2 fix pep8 formatting 2021-04-23 07:57:33 -07:00
checktheroads
eb55761c38 Merge branch 'feature' of https://github.com/netbox-community/netbox into feature
# Conflicts:
#	netbox/project-static/js/forms.js
#	netbox/templates/dcim/location.html
#	netbox/templates/generic/object_list.html
2021-04-22 19:19:03 -07:00
checktheroads
16b57193f1 fix bulk edit styles 2021-04-22 18:58:36 -07:00
checktheroads
5bb7bf8947 properly handle select all confirmation on tables 2021-04-22 18:58:23 -07:00
checktheroads
2c9aa86bf0 fix checkbox styles 2021-04-22 18:57:43 -07:00
checktheroads
d2b915f6c2 add typed wrapper around document.getElementById 2021-04-22 18:56:37 -07:00
checktheroads
7920eff672 get non-field form errors as toast messages 2021-04-22 15:59:16 -07:00
checktheroads
30415e6220 fix template styles 2021-04-22 15:58:57 -07:00
checktheroads
21db209f47 fix issue where select fields with a pre-populated value were reset when forms were submitted, due to having the disabled attribute set. 2021-04-22 15:58:46 -07:00
checktheroads
c3c79d3715 fix rack elevation show/hide image toggle 2021-04-21 13:20:31 -07:00
checktheroads
8c3229ec38 fix device template styles 2021-04-21 13:20:09 -07:00
checktheroads
8c92cfb814 fix required label styles after migration to material design icons 2021-04-21 13:19:46 -07:00
checktheroads
3eb866f5d2 fix image attachment styles 2021-04-21 13:19:30 -07:00
checktheroads
3471c737b9 fix confirmation form styles 2021-04-21 13:19:08 -07:00
checktheroads
d164ccb6c7 fix image upload field style 2021-04-21 13:18:48 -07:00
checktheroads
ce98957be0 remove old files 2021-04-21 11:31:39 -07:00
checktheroads
fe4a9bff2d remove all bootstrap icons in favor of material design icons 2021-04-21 11:31:28 -07:00
checktheroads
024f3962b2 use getNetboxData utility function in job handling 2021-04-21 10:40:37 -07:00
checktheroads
a55316aef9 fix scripts/reports template layout 2021-04-21 10:39:56 -07:00
checktheroads
08b955f8b6 migrate napalm device status to typescript 2021-04-21 10:19:13 -07:00
jeremystretch
9476fda987 Closes #5994: Drop support for display_field argument on ObjectVar 2021-04-21 10:29:25 -04:00
jeremystretch
b509d96f18 Closes #5532: Drop support for Python 3.6 2021-04-21 10:20:09 -04:00
checktheroads
4827cd24d8 improve styles 2021-04-20 12:45:39 -07:00
checktheroads
acca69a8a9 implement table filtering on generic object list 2021-04-20 12:45:30 -07:00
checktheroads
d171e781d2 fix connection toggle button style 2021-04-20 09:38:13 -07:00
checktheroads
99f0e31810 clean up typescript initialization 2021-04-20 09:34:12 -07:00
checktheroads
0aa8fc2fc2 migrate napalm/device config to typescript 2021-04-20 01:43:36 -07:00
checktheroads
98829b209a fix device template style 2021-04-20 01:18:34 -07:00
checktheroads
f3eb0df081 migrate napalm/lldp to typescript 2021-04-20 01:18:24 -07:00
checktheroads
f83fb57d38 migrate vlan group scope selector to typescript 2021-04-19 21:30:50 -07:00
checktheroads
7d07631f12 migrate connection toggle to typescript 2021-04-19 20:48:03 -07:00
checktheroads
8737e9824f migrate url handling of tab display to typescript 2021-04-19 20:47:36 -07:00
checktheroads
ea472c844e Merge branch 'feature' of https://github.com/netbox-community/netbox into feature
# Conflicts:
#	netbox/templates/generic/object_list.html
2021-04-19 19:40:15 -07:00
checktheroads
a29e2582ed dist updates 2021-04-19 17:10:27 -07:00
checktheroads
98477ef6c6 update device/interfaces template with correct interface filtering elements 2021-04-19 17:09:42 -07:00
checktheroads
86be6aebff fix issue with option re-ordering 2021-04-19 17:09:15 -07:00
checktheroads
f9754bddf1 migrate move up/down buttons to typescript 2021-04-19 17:00:18 -07:00
checktheroads
03390815af migrate table config to typescript & update templates 2021-04-19 17:00:09 -07:00
checktheroads
82ef6f8ac5 implement generic api request function 2021-04-19 16:59:26 -07:00
checktheroads
f7c1bc71d9 migrate templates to bootstrap 5 2021-04-18 16:42:28 -07:00
checktheroads
4b0d5815c0 migrate script job checking to typescript & update templates for bootstrap 5 2021-04-18 14:17:13 -07:00
checktheroads
5c07a968fe update styles 2021-04-18 11:36:41 -07:00
checktheroads
f4ac87af3a add bootstrap mixin subclass to bulk rename form so classes are properly assigned 2021-04-18 11:36:12 -07:00
checktheroads
125965b559 migrate templates to bootstrap 5 2021-04-18 11:35:42 -07:00
checktheroads
43703b6f40 add bootstrap classes to VC membership form 2021-04-18 11:35:21 -07:00
checktheroads
7cdae0f689 add provider networks to navigation 2021-04-18 00:23:06 -07:00
checktheroads
61ce2c95b3 migrate templates to bootstrap 5 2021-04-18 00:22:52 -07:00
checktheroads
08128748a7 migrate generic modal to bootstrap 5 2021-04-17 18:35:20 -07:00
checktheroads
c9fe7f6db6 migrate cluster templates to bootstrap 5 2021-04-17 18:35:09 -07:00
checktheroads
a8cad28da7 migrate interface filtering to typescript 2021-04-17 18:16:13 -07:00
checktheroads
c035af5409 migrate virtual machine & vm interface to bootstrap 5 2021-04-17 18:15:53 -07:00
checktheroads
eb951fdaf1 migrate secrets to bootstrap 5 and deprecate jquery functions 2021-04-17 17:18:13 -07:00
checktheroads
726ab7fc05 fix user key styles 2021-04-16 17:04:08 -07:00
checktheroads
fb25c79b9c migrate yaml nav item definitions to dataclasses 2021-04-16 15:55:06 -07:00
checktheroads
3c0f4278c7 update extras templates 2021-04-16 14:58:44 -07:00
checktheroads
59256cf8b3 update cable trace styles 2021-04-15 16:53:04 -07:00
checktheroads
844186d520 fix object title style 2021-04-15 16:52:46 -07:00
checktheroads
93b6d785f3 fix circuit termination styles 2021-04-15 15:26:59 -07:00
checktheroads
0e6e9c5238 fix table config modal styles 2021-04-14 17:05:10 -07:00
checktheroads
de65ffb99d fix napalm tab layout from merge conflict 2021-04-14 16:11:25 -07:00
checktheroads
2d5472cf2a fix object list layout 2021-04-14 16:05:08 -07:00
checktheroads
c3d908126f Merge branch 'feature' of https://github.com/netbox-community/netbox into feature 2021-04-14 11:33:33 -07:00
checktheroads
4c3b0abe7b Merge branch 'feature' of https://github.com/netbox-community/netbox into feature
# Conflicts:
#	netbox/dcim/tables/template_code.py
#	netbox/netbox/views/__init__.py
#	netbox/project-static/css/base.css
#	netbox/templates/base.html
#	netbox/templates/circuits/circuit.html
#	netbox/templates/circuits/circuittermination_edit.html
#	netbox/templates/circuits/inc/circuit_termination.html
#	netbox/templates/circuits/provider.html
#	netbox/templates/dcim/device.html
#	netbox/templates/dcim/device/base.html
#	netbox/templates/dcim/device_component.html
#	netbox/templates/dcim/devicetype.html
#	netbox/templates/dcim/inc/device_napalm_tabs.html
#	netbox/templates/dcim/rack.html
#	netbox/templates/dcim/site.html
#	netbox/templates/dcim/virtualchassis.html
#	netbox/templates/extras/configcontext.html
#	netbox/templates/extras/object_journal.html
#	netbox/templates/extras/tag.html
#	netbox/templates/generic/object.html
#	netbox/templates/generic/object_list.html
#	netbox/templates/home.html
#	netbox/templates/inc/nav_menu.html
#	netbox/templates/ipam/aggregate.html
#	netbox/templates/ipam/ipaddress.html
#	netbox/templates/ipam/prefix.html
#	netbox/templates/ipam/vlan.html
#	netbox/templates/ipam/vlangroup_edit.html
#	netbox/templates/ipam/vlangroup_vlans.html
#	netbox/templates/secrets/secret.html
#	netbox/templates/tenancy/tenant.html
#	netbox/templates/users/api_tokens.html
#	netbox/templates/virtualization/cluster.html
#	netbox/templates/virtualization/vminterface_edit.html
#	netbox/utilities/forms/fields.py
#	netbox/utilities/templates/buttons/export.html
2021-04-14 11:30:15 -07:00
checktheroads
8ca2884c1c dist updates 2021-04-13 21:51:30 -07:00
checktheroads
d1d2ad6a5c bootstrap 5 class updates 2021-04-13 21:51:12 -07:00
checktheroads
21d31b5747 fix prefix table styles 2021-03-19 09:38:26 -07:00
checktheroads
1ea208ba00 fix handling of filtered-by properties 2021-03-19 09:26:39 -07:00
checktheroads
5fdf2d3416 replace rack elevation logic 2021-03-19 09:25:27 -07:00
checktheroads
5f5df97e59 dist updates 2021-03-17 23:35:05 -07:00
checktheroads
cbd4d2f99a fix journal layout 2021-03-17 23:32:08 -07:00
checktheroads
a1ac1876ad handle selection resets 2021-03-17 23:32:01 -07:00
checktheroads
58841e85db update css classes for bootstrap 5 colors 2021-03-17 23:31:15 -07:00
checktheroads
46cd22ea7e style textareas supporting markdown with monospace font 2021-03-17 23:30:39 -07:00
checktheroads
cf8dad5763 fix object journal styles 2021-03-17 22:37:13 -07:00
checktheroads
8ea2949d84 Update sidenav menu data with Locations and SiteGroups 2021-03-17 22:25:51 -07:00
checktheroads
e4af9ebc6f fix import/export styles 2021-03-17 22:25:20 -07:00
checktheroads
7a3af8de83 Merge branch 'feature' of https://github.com/netbox-community/netbox into feature
# Conflicts:
#	netbox/dcim/tables/template_code.py
#	netbox/netbox/forms.py
#	netbox/templates/dcim/cable_connect.html
#	netbox/templates/dcim/consoleport.html
#	netbox/templates/dcim/consoleserverport.html
#	netbox/templates/dcim/device.html
#	netbox/templates/dcim/device/base.html
#	netbox/templates/dcim/device_edit.html
#	netbox/templates/dcim/interface.html
#	netbox/templates/dcim/rack.html
#	netbox/templates/dcim/rack_edit.html
#	netbox/templates/dcim/site.html
#	netbox/templates/extras/configcontext.html
#	netbox/templates/extras/objectchange.html
#	netbox/templates/generic/object.html
#	netbox/templates/inc/nav_menu.html
#	netbox/templates/ipam/ipaddress_edit.html
#	netbox/templates/ipam/vrf.html
#	netbox/utilities/templates/buttons/export.html
2021-03-17 22:02:43 -07:00
checktheroads
05c0a9256d dist updates 2021-03-17 13:00:29 -07:00
checktheroads
c10b8cf55b bootstrap 5 template updates 2021-03-17 13:00:20 -07:00
checktheroads
4e837c2770 update select to handle display property 2021-03-17 12:39:35 -07:00
checktheroads
9c66e1f01b dist updates 2021-03-15 08:54:09 -07:00
checktheroads
683f75fad1 bootstrap 5 template updates 2021-03-15 08:54:01 -07:00
checktheroads
a303a0dfb7 fix form error rendering 2021-03-15 08:53:48 -07:00
checktheroads
b0d634a89e add startswith helper 2021-03-15 08:53:28 -07:00
checktheroads
f62e49c02b remove console.log 2021-03-15 08:34:35 -07:00
checktheroads
61f137866e customize file upload field 2021-03-15 07:49:59 -07:00
checktheroads
3f1714f076 fix select loading display 2021-03-15 07:49:39 -07:00
checktheroads
afce8e2516 dist updates 2021-03-14 17:32:07 -07:00
checktheroads
4e30ed9693 style fixes 2021-03-14 17:31:55 -07:00
checktheroads
7f02b9436b fix styling when element is not in a form-floating div 2021-03-14 17:31:42 -07:00
checktheroads
a237725d0d improve handling of loading data 2021-03-14 17:31:06 -07:00
checktheroads
91561e9ca5 fix search panel styling 2021-03-14 17:27:03 -07:00
checktheroads
4ab5d15ee6 update templates to bootstrap 5 classes 2021-03-14 17:26:56 -07:00
checktheroads
187f4fa4aa fix device & device component templates 2021-03-14 17:26:33 -07:00
checktheroads
3bb2b9e8f6 dist updates 2021-03-14 01:07:01 -07:00
checktheroads
59d8c0b321 handle server-side form errors 2021-03-14 01:06:51 -07:00
checktheroads
d0cb7d843d fix select data handling 2021-03-14 01:06:35 -07:00
checktheroads
991f71bf28 update templates to bootstrap 5 classes 2021-03-14 01:06:18 -07:00
checktheroads
362392d1de Merge branch 'feature' of github.com:checktheroads/netbox into feature 2021-03-13 14:26:47 -07:00
checktheroads
9e51ddd8d8 fix prefix layout 2021-03-13 14:26:12 -07:00
checktheroads
f65f924011 update templates to bootstrap 5 classes 2021-03-13 14:26:06 -07:00
checktheroads
bc4f19c967 update templates to bootstrap 5 classes 2021-03-13 14:15:23 -07:00
checktheroads
b482c30866 add dist to git 2021-03-13 13:56:40 -07:00
checktheroads
676d93e829 add UI readme 2021-03-13 13:51:55 -07:00
checktheroads
cb93953b2c clean up ui src files 2021-03-13 13:51:51 -07:00
checktheroads
4c60a602b9 bootstrap 5 template updates 2021-03-13 11:16:29 -07:00
checktheroads
912cd220cc add javascript 2021-03-13 02:31:57 -07:00
checktheroads
3b120c0372 add styles 2021-03-13 02:31:46 -07:00
checktheroads
2799d71e93 add ui dependencies 2021-03-13 02:31:28 -07:00
checktheroads
fcd7b42941 remove legacy libraries 2021-03-13 02:29:56 -07:00
checktheroads
6fe2f83435 scaffold new ui directory 2021-03-13 02:28:21 -07:00
checktheroads
94c25b0ff4 update templates & rendering for bootstrap 5 2021-03-13 02:27:32 -07:00
checktheroads
ec38ec8004 restructure home stats for new layout 2021-03-13 02:25:28 -07:00
checktheroads
1d9e55ca6e implement layout changes 2021-03-13 02:20:50 -07:00
checktheroads
9b89afd6dc begin bootstrap 5 migration, update templates 2021-03-13 02:19:42 -07:00
2168 changed files with 76543 additions and 216851 deletions

8
.gitattributes vendored
View File

@@ -1,5 +1,5 @@
*.sh text eol=lf
# Treat minified or packed JS/CSS files as binary, as they're not meant to be human-readable
*.min.* binary
*.map binary
*.pack.js binary
# Treat compiled JS/CSS files as binary, as they're not meant to be human-readable
netbox/project-static/dist/*.css binary
netbox/project-static/dist/*.js binary
netbox/project-static/dist/*.js.map binary

View File

@@ -13,11 +13,8 @@ body:
- type: input
attributes:
label: NetBox version
description: >
What version of NetBox are you currently running? (If you don't have access to the most
recent NetBox release, consider testing on our [demo instance](https://demo.netbox.dev/)
before opening a bug report to see if your issue has already been addressed.)
placeholder: v2.11.10
description: What version of NetBox are you currently running?
placeholder: v3.2.3
validations:
required: true
- type: dropdown
@@ -25,10 +22,9 @@ body:
label: Python version
description: What version of Python are you currently running?
options:
- 3.6
- 3.7
- 3.8
- 3.9
- "3.8"
- "3.9"
- "3.10"
validations:
required: true
- type: textarea

View File

@@ -14,7 +14,7 @@ body:
attributes:
label: NetBox version
description: What version of NetBox are you currently running?
placeholder: v2.11.10
placeholder: v3.2.3
validations:
required: true
- type: dropdown
@@ -30,8 +30,10 @@ body:
attributes:
label: Proposed functionality
description: >
Describe in detail the new feature or behavior you'd like to propose. Include any specific
changes to work flows, data models, or the user interface.
Describe in detail the new feature or behavior you are proposing. Include any specific changes
to work flows, data models, and/or the user interface. The more detail you provide here, the
greater chance your proposal has of being discussed. Feature requests which don't include an
actionable implementation plan will be rejected.
validations:
required: true
- type: textarea

View File

@@ -3,9 +3,12 @@ on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
env:
NETBOX_CONFIGURATION: netbox.configuration_testing
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
python-version: ['3.8', '3.9', '3.10']
node-version: ['14.x']
services:
redis:
image: redis
@@ -33,18 +36,47 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install Yarn Package Manager
run: npm install -g yarn
- name: Setup Node.js with Yarn Caching
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: yarn
cache-dependency-path: netbox/project-static/yarn.lock
- name: Install Frontend Dependencies
run: yarn --cwd netbox/project-static
- name: Install dependencies & set up configuration
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pycodestyle coverage
ln -s configuration.testing.py netbox/netbox/configuration.py
pip install pycodestyle coverage tblib
- name: Build documentation
run: mkdocs build
- name: Collect static files
run: python netbox/manage.py collectstatic --no-input
- name: Check PEP8 compliance
run: pycodestyle --ignore=W504,E501 netbox/
run: pycodestyle --ignore=W504,E501 --exclude=node_modules netbox/
- name: Check UI ESLint, TypeScript, and Prettier Compliance
run: yarn --cwd netbox/project-static validate
- name: Validate Static Asset Integrity
run: scripts/verify-bundles.sh
- name: Run tests
run: coverage run --source="netbox/" netbox/manage.py test netbox/
run: coverage run --source="netbox/" netbox/manage.py test netbox/ --parallel
- name: Show coverage report
run: coverage report --skip-covered --omit *migrations*

View File

@@ -8,7 +8,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
- uses: actions/stale@v4
with:
close-issue-message: >
This issue has been automatically closed due to lack of activity. In an

9
.gitignore vendored
View File

@@ -1,9 +1,14 @@
*.pyc
*.swp
npm-debug.log*
yarn-debug.log*
yarn-error.log*
/netbox/project-static/node_modules
/netbox/project-static/docs/*
!/netbox/project-static/docs/.info
/netbox/netbox/configuration.py
/netbox/netbox/ldap_config.py
/netbox/project-static/.cache
/netbox/project-static/node_modules
/netbox/local/*
/netbox/reports/*
!/netbox/reports/__init__.py
/netbox/scripts/*

10
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,10 @@
version: 2
build:
os: ubuntu-20.04
tools:
python: "3.9"
mkdocs:
configuration: mkdocs.yml
python:
install:
- requirements: requirements.txt

View File

@@ -1 +1 @@
The changelog has been moved to the [project release notes](https://netbox.readthedocs.io/en/stable/release-notes/).
The changelog has been moved to the [project release notes](https://docs.netbox.dev/en/stable/release-notes/).

View File

@@ -16,13 +16,6 @@ categories for discussions:
feature request
* **Q&A** - Request help with installing or using NetBox
### Mailing List
We also have a Google Groups [mailing list](https://groups.google.com/g/netbox-discuss)
for general discussion, however we're encouraging people to use GitHub
discussions where possible, as it's much easier for newcomers to review past
discussions.
### Slack
For real-time chat, you can join the **#netbox** Slack channel on [NetDev Community](https://netdev.chat/).
@@ -76,14 +69,10 @@ free to add a comment with any additional justification for the feature.
(However, note that comments with no substance other than a "+1" will be
deleted. Please use GitHub's reactions feature to indicate your support.)
* Due to a large backlog of feature requests, we are not currently accepting
any proposals which substantially extend NetBox's functionality beyond its
current feature set. This includes the introduction of any new views or models
which have not already been proposed in an existing feature request.
* Before filing a new feature request, consider raising your idea on the
mailing list first. Feedback you receive there will help validate and shape the
proposed feature before filing a formal issue.
* Before filing a new feature request, consider raising your idea in a
[GitHub discussion](https://github.com/netbox-community/netbox/discussions)
first. Feedback you receive there will help validate and shape the proposed
feature before filing a formal issue.
* Good feature requests are very narrowly defined. Be sure to thoroughly
describe the functionality and data model(s) being proposed. The more effort
@@ -110,7 +99,7 @@ appropriate labels will be applied for categorization.
## Submitting Pull Requests
* If you're interested in contributing to NetBox, be sure to check out our
[getting started](https://netbox.readthedocs.io/en/stable/development/getting-started/)
[getting started](https://docs.netbox.dev/en/stable/development/getting-started/)
documentation for tips on setting up your development environment.
* Be sure to open an issue **before** starting work on a pull request, and
@@ -182,7 +171,7 @@ an effort to circumvent the bot: Doing so will not remove the stale label.
the understanding that all contributions are submitted under the Apache 2.0
license and that your employer may not make claim to any contributions.
Contributions include code work, issue management, and community support. All
development must be in accordance with our [development guidance](https://netbox.readthedocs.io/en/stable/development/).
development must be in accordance with our [development guidance](https://docs.netbox.dev/en/stable/development/).
* Maintainers are expected to attend (where feasible) our biweekly ~30-minute
sync to review agenda items. This meeting provides opportunity to present and

View File

@@ -5,16 +5,51 @@
![Master branch build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=master)
NetBox is an infrastructure resource modeling (IRM) tool designed to empower
network automation. Initially conceived by the network engineering team at
network automation, used by thousands of organizations around the world.
Initially conceived by the network engineering team at
[DigitalOcean](https://www.digitalocean.com/), NetBox was developed specifically
to address the needs of network and infrastructure engineers. It is intended to
function as a domain-specific source of truth for network operations.
Myriad infrastructure components can be modeled in NetBox, including:
* Hierarchical regions, site groups, sites, and locations
* Racks, devices, and device components
* Cables and wireless connections
* Power distribution
* Data circuits and providers
* Virtual machines and clusters
* IP prefixes, ranges, and addresses
* VRFs and route targets
* FHRP groups (VRRP, HSRP, etc.)
* AS numbers
* VLANs and scoped VLAN groups
* Organizational tenants and contacts
In addition to its extensive built-in models and functionality, NetBox can be
customized and extended through the use of:
* Custom fields
* Custom links
* Configuration contexts
* Custom model validation rules
* Reports
* Custom scripts
* Export templates
* Conditional webhooks
* Plugins
* Single sign-on (SSO) authentication
* NAPALM integration
* Detailed change logging
NetBox also features a complete REST API as well as a GraphQL API for easily
integrating with other tools and systems.
NetBox runs as a web application atop the [Django](https://www.djangoproject.com/)
Python framework with a [PostgreSQL](https://www.postgresql.org/) database. For a
complete list of requirements, see `requirements.txt`. The code is available [on GitHub](https://github.com/netbox-community/netbox).
The complete documentation for NetBox can be found at [Read the Docs](https://netbox.readthedocs.io/en/stable/). A public demo instance is available at https://demo.netbox.dev.
The complete documentation for NetBox can be found at [docs.netbox.dev](https://docs.netbox.dev/). A public demo instance is available at https://demo.netbox.dev.
<div align="center">
<h4>Thank you to our sponsors!</h4>
@@ -25,6 +60,8 @@ The complete documentation for NetBox can be found at [Read the Docs](https://ne
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[![NS1](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/ns1.png)](https://ns1.com/)
<br />
[![Sentry](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/sentry.png)](https://sentry.io/)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[![Stellar Technologies](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/stellar.png)](https://stellar.tech/)
</div>
@@ -33,11 +70,10 @@ The complete documentation for NetBox can be found at [Read the Docs](https://ne
* [GitHub Discussions](https://github.com/netbox-community/netbox/discussions) - Discussion forum hosted by GitHub; ideal for Q&A and other structured discussions
* [Slack](https://netdev.chat/) - Real-time chat hosted by the NetDev Community; best for unstructured discussion or just hanging out
* [Google Group](https://groups.google.com/g/netbox-discuss) - Legacy mailing list; slowly being replaced by GitHub discussions
### Installation
Please see [the documentation](https://netbox.readthedocs.io/en/stable/) for
Please see [the documentation](https://docs.netbox.dev/) for
instructions on installing NetBox. To upgrade NetBox, please download the
[latest release](https://github.com/netbox-community/netbox/releases) and
run `upgrade.sh`.
@@ -54,11 +90,15 @@ our [contributing guide](CONTRIBUTING.md) prior to beginning any work.
### Screenshots
![Screenshot of main page](docs/media/screenshot1.png "Main page")
![Screenshot of main page (light mode)](docs/media/screenshots/home-light.png "Main page (light mode)")
![Screenshot of rack elevation](docs/media/screenshot2.png "Rack elevation")
![Screenshot of main page (dark mode)](docs/media/screenshots/home-dark.png "Main page (dark mode)")
![Screenshot of prefix hierarchy](docs/media/screenshot3.png "Prefix hierarchy")
![Screenshot of rack elevation](docs/media/screenshots/rack.png "Rack elevation")
![Screenshot of prefixes hierarchy](docs/media/screenshots/prefixes-list.png "Prefixes hierarchy")
![Screenshot of cable trace](docs/media/screenshots/cable-trace.png "Cable tracing")
### Related projects

31
SECURITY.md Normal file
View File

@@ -0,0 +1,31 @@
# Security Policy
## No Warranty
Per the terms of the Apache 2 license, NetBox is offered "as is" and without any guarantee or warranty pertaining to its operation. While every reasonable effort is made by its maintainers to ensure the product remains free of security vulnerabilities, users are ultimately responsible for conducting their own evaluations of each software release.
## Recommendations
Administrators are encouraged to adhere to industry best practices concerning the secure operation of software, such as:
* Do not expose your NetBox installation to the public Internet
* Do not permit multiple users to share an account
* Enforce minimum password complexity requirements for local accounts
* Prohibit access to your database from clients other than the NetBox application
* Keep your deployment updated to the most recent stable release
## Reporting a Suspected Vulnerability
If you believe you've uncovered a security vulnerability and wish to report it confidentially, you may do so via email. Please note that any reported vulnerabilities **MUST** meet all the following conditions:
* Affects the most recent stable release of NetBox, or a current beta release
* Affects a NetBox instance installed and configured per the official documentation
* Is reproducible following a prescribed set of instructions
Please note that we **DO NOT** accept reports generated by automated tooling which merely suggest that a file or file(s) _may_ be vulnerable under certain conditions, as these are most often innocuous.
If you believe that you've found a vulnerability which meets all of these conditions, please email a brief description of the suspected bug and instructions for reproduction to **security@netbox.dev**. For any security concerns regarding NetBox deployed via Docker, please see the [netbox-docker](https://github.com/netbox-community/netbox-docker) project.
### Bug Bounties
As NetBox is provided as free open source software, we do not offer any monetary compensation for vulnerability or bug reports, however your contributions are greatly appreciated.

View File

@@ -2,10 +2,6 @@
# https://github.com/django/django
Django
# Django caching using Redis
# https://github.com/Suor/django-cacheops
django-cacheops
# Django middleware which permits cross-domain API requests
# https://github.com/OttoYiu/django-cors-headers
django-cors-headers
@@ -18,6 +14,10 @@ django-debug-toolbar
# https://github.com/carltongibson/django-filter
django-filter
# Django debug toolbar extension with support for GraphiQL
# https://github.com/flavors/django-graphiql-debug-toolbar/
django-graphiql-debug-toolbar
# Modified Preorder Tree Traversal (recursive nesting of objects)
# https://github.com/django-mptt/django-mptt
django-mptt
@@ -30,6 +30,10 @@ django-pglocks
# https://github.com/korfuri/django-prometheus
django-prometheus
# Django chaching backend using Redis
# https://github.com/jazzband/django-redis
django-redis
# Django integration for RQ (Reqis queuing)
# https://github.com/rq/django-rq
django-rq
@@ -54,6 +58,10 @@ djangorestframework
# https://github.com/axnsan12/drf-yasg
drf-yasg[validation]
# Django wrapper for Graphene (GraphQL support)
# https://github.com/graphql-python/graphene-django
graphene_django
# WSGI HTTP server
# https://gunicorn.org/
gunicorn
@@ -66,8 +74,20 @@ Jinja2
# https://github.com/Python-Markdown/markdown
Markdown
# File inclusion plugin for Python-Markdown
# https://github.com/cmacmackin/markdown-include
markdown-include
# MkDocs Material theme (for documentation build)
# https://github.com/squidfunk/mkdocs-material
mkdocs-material
# Introspection for embedded code
# https://github.com/mkdocstrings/mkdocstrings
mkdocstrings[python-legacy]
# Library for manipulating IP prefixes and addresses
# https://github.com/drkjam/netaddr
# https://github.com/netaddr/netaddr
netaddr
# Fork of PIL (Python Imaging Library) for image processing
@@ -78,17 +98,21 @@ Pillow
# https://github.com/psycopg/psycopg2
psycopg2-binary
# Extensive cryptographic library (fork of pycrypto)
# https://github.com/Legrandin/pycryptodome
pycryptodome
# YAML rendering library
# https://github.com/yaml/pyyaml
PyYAML
# In-memory key/value store used for caching and queuing
# https://github.com/andymccurdy/redis-py
redis
# Sentry SDK
# https://github.com/getsentry/sentry-python
sentry-sdk
# Social authentication framework
# https://github.com/python-social-auth/social-core
social-auth-core
# Django app for social-auth-core
# https://github.com/python-social-auth/social-app-django
social-auth-app-django
# SVG image rendering (used for rack elevations)
# https://github.com/mozman/svgwrite
@@ -97,3 +121,7 @@ svgwrite
# Tabular dataset library (for table-based exports)
# https://github.com/jazzband/tablib
tablib
# Timezone data (required by django-timezone-field on Python 3.9+)
# https://github.com/python/tzdata
tzdata

9
contrib/netbox-housekeeping.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
# This shell script invokes NetBox's housekeeping management command, which
# intended to be run nightly. This script can be copied into your system's
# daily cron directory (e.g. /etc/cron.daily), or referenced directly from
# within the cron configuration file.
#
# If NetBox has been installed into a nonstandard location, update the paths
# below.
/opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py housekeeping

View File

@@ -1,6 +1,6 @@
[Unit]
Description=NetBox Request Queue Worker
Documentation=https://netbox.readthedocs.io/en/stable/
Documentation=https://docs.netbox.dev/
After=network-online.target
Wants=network-online.target
@@ -11,7 +11,7 @@ User=netbox
Group=netbox
WorkingDirectory=/opt/netbox
ExecStart=/opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker
ExecStart=/opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker high default low
Restart=on-failure
RestartSec=30

View File

@@ -1,6 +1,6 @@
[Unit]
Description=NetBox WSGI Service
Documentation=https://netbox.readthedocs.io/en/stable/
Documentation=https://docs.netbox.dev/
After=network-online.target
Wants=network-online.target

View File

@@ -1,28 +0,0 @@
# Caching
NetBox supports database query caching using [django-cacheops](https://github.com/Suor/django-cacheops) and Redis. When a query is made, the results are cached in Redis for a short period of time, as defined by the [CACHE_TIMEOUT](../configuration/optional-settings.md#cache_timeout) parameter. Within that time, all recurrences of that specific query will return the pre-fetched results from the cache.
!!! warning
In NetBox v2.11.10 and later queryset caching is disabled by default, and must be configured.
If a change is made to any of the objects returned by the query within that time, or if the timeout expires, the results are automatically invalidated and the next request for those results will be sent to the database.
## Invalidating Cached Data
Although caching is performed automatically and rarely requires administrative intervention, NetBox provides the `invalidate` management command to force invalidation of cached results. This command can reference a specific object by its type and numeric ID:
```no-highlight
$ python netbox/manage.py invalidate dcim.Device.34
```
Alternatively, it can also delete all cached results for an object type:
```no-highlight
$ python netbox/manage.py invalidate dcim.Device
```
Finally, calling it with the `all` argument will force invalidation of the entire cache database:
```no-highlight
$ python netbox/manage.py invalidate all
```

View File

@@ -1,54 +0,0 @@
# Custom Links
Custom links allow users to display arbitrary hyperlinks to external content within NetBox object views. These are helpful for cross-referencing related records in systems outside of NetBox. For example, you might create a custom link on the device view which links to the current device in a network monitoring system.
Custom links are created under the admin UI. Each link is associated with a particular NetBox object type (site, device, prefix, etc.) and will be displayed on relevant views. Each link is assigned text and a URL, both of which support Jinja2 templating. The text and URL are rendered with the context variable `obj` representing the current object.
For example, you might define a link like this:
* Text: `View NMS`
* URL: `https://nms.example.com/nodes/?name={{ obj.name }}`
When viewing a device named Router4, this link would render as:
```no-highlight
<a href="https://nms.example.com/nodes/?name=Router4">View NMS</a>
```
Custom links appear as buttons at the top right corner of the page. Numeric weighting can be used to influence the ordering of links.
## Context Data
The following context data is available within the template when rendering a custom link's text or URL.
| Variable | Description |
|----------|-------------|
| `obj` | The NetBox object being displayed |
| `debug` | A boolean indicating whether debugging is enabled |
| `request` | The current WSGI request |
| `user` | The current user (if authenticated) |
| `perms` | The [permissions](https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions) assigned to the user |
## Conditional Rendering
Only links which render with non-empty text are included on the page. You can employ conditional Jinja2 logic to control the conditions under which a link gets rendered.
For example, if you only want to display a link for active devices, you could set the link text to
```jinja2
{% if obj.status == 'active' %}View NMS{% endif %}
```
The link will not appear when viewing a device with any status other than "active."
As another example, if you wanted to show only devices belonging to a certain manufacturer, you could do something like this:
```jinja2
{% if obj.device_type.manufacturer.name == 'Cisco' %}View NMS{% endif %}
```
The link will only appear when viewing a device with a manufacturer name of "Cisco."
## Link Groups
Group names can be specified to organize links into groups. Links with the same group name will render as a dropdown menu beneath a single button bearing the name of the group.

View File

@@ -1,6 +1,6 @@
# NAPALM
NetBox supports integration with the [NAPALM automation](https://napalm-automation.net/) library. NAPALM allows NetBox to serve a proxy for operational data, fetching live data from network devices and returning it to a requester via its REST API. Note that NetBox does not store any NAPALM data locally.
NetBox supports integration with the [NAPALM automation](https://github.com/napalm-automation/napalm) library. NAPALM allows NetBox to serve a proxy for operational data, fetching live data from network devices and returning it to a requester via its REST API. Note that NetBox does not store any NAPALM data locally.
The NetBox UI will display tabs for status, LLDP neighbors, and configuration under the device view if the following conditions are met:
@@ -29,7 +29,7 @@ GET /api/dcim/devices/1/napalm/?method=get_environment
## Authentication
By default, the [`NAPALM_USERNAME`](../configuration/optional-settings.md#napalm_username) and [`NAPALM_PASSWORD`](../configuration/optional-settings.md#napalm_password) configuration parameters are used for NAPALM authentication. They can be overridden for an individual API call by specifying the `X-NAPALM-Username` and `X-NAPALM-Password` headers.
By default, the [`NAPALM_USERNAME`](../configuration/dynamic-settings.md#napalm_username) and [`NAPALM_PASSWORD`](../configuration/dynamic-settings.md#napalm_password) configuration parameters are used for NAPALM authentication. They can be overridden for an individual API call by specifying the `X-NAPALM-Username` and `X-NAPALM-Password` headers.
```
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \

View File

@@ -26,4 +26,4 @@ For the exhaustive list of exposed metrics, visit the `/metrics` endpoint on you
When deploying NetBox in a multiprocess manner (e.g. running multiple Gunicorn workers) the Prometheus client library requires the use of a shared directory to collect metrics from all worker processes. To configure this, first create or designate a local directory to which the worker processes have read and write access, and then configure your WSGI service (e.g. Gunicorn) to define this path as the `prometheus_multiproc_dir` environment variable.
!!! warning
If having accurate long-term metrics in a multiprocess environment is crucial to your deployment, it's recommended you use the `uwsgi` library instead of `gunicorn`. The issue lies in the way `gunicorn` tracks worker processes (vs `uwsgi`) which helps manage the metrics files created by the above configurations. If you're using NetBox with gunicorn in a containerized enviroment following the one-process-per-container methodology, then you will likely not need to change to `uwsgi`. More details can be found in [issue #3779](https://github.com/netbox-community/netbox/issues/3779#issuecomment-590547562).
If having accurate long-term metrics in a multiprocess environment is crucial to your deployment, it's recommended you use the `uwsgi` library instead of `gunicorn`. The issue lies in the way `gunicorn` tracks worker processes (vs `uwsgi`) which helps manage the metrics files created by the above configurations. If you're using NetBox with gunicorn in a containerized environment following the one-process-per-container methodology, then you will likely not need to change to `uwsgi`. More details can be found in [issue #3779](https://github.com/netbox-community/netbox/issues/3779#issuecomment-590547562).

View File

@@ -1,83 +1,22 @@
# Webhooks
{!models/extras/webhook.md!}
A webhook is a mechanism for conveying to some external system a change that took place in NetBox. For example, you may want to notify a monitoring system whenever the status of a device is updated in NetBox. This can be done by creating a webhook for the device model in NetBox and identifying the webhook receiver. When NetBox detects a change to a device, an HTTP request containing the details of the change and who made it be sent to the specified receiver. Webhooks are configured in the admin UI under Extras > Webhooks.
## Conditional Webhooks
## Configuration
A webhook may include a set of conditional logic expressed in JSON used to control whether a webhook triggers for a specific object. For example, you may wish to trigger a webhook for devices only when the `status` field of an object is "active":
* **Name** - A unique name for the webhook. The name is not included with outbound messages.
* **Object type(s)** - The type or types of NetBox object that will trigger the webhook.
* **Enabled** - If unchecked, the webhook will be inactive.
* **Events** - A webhook may trigger on any combination of create, update, and delete events. At least one event type must be selected.
* **HTTP method** - The type of HTTP request to send. Options include `GET`, `POST`, `PUT`, `PATCH`, and `DELETE`.
* **URL** - The fuly-qualified URL of the request to be sent. This may specify a destination port number if needed.
* **HTTP content type** - The value of the request's `Content-Type` header. (Defaults to `application/json`)
* **Additional headers** - Any additional headers to include with the request (optional). Add one header per line in the format `Name: Value`. Jinja2 templating is supported for this field (see below).
* **Body template** - The content of the request being sent (optional). Jinja2 templating is supported for this field (see below). If blank, NetBox will populate the request body with a raw dump of the webhook context. (If the HTTP cotent type is set to `application/json`, this will be formatted as a JSON object.)
* **Secret** - A secret string used to prove authenticity of the request (optional). This will append a `X-Hook-Signature` header to the request, consisting of a HMAC (SHA-512) hex digest of the request body using the secret as the key.
* **SSL verification** - Uncheck this option to disable validation of the receiver's SSL certificate. (Disable with caution!)
* **CA file path** - The file path to a particular certificate authority (CA) file to use when validating the receiver's SSL certificate (optional).
## Jinja2 Template Support
[Jinja2 templating](https://jinja.palletsprojects.com/) is supported for the `additional_headers` and `body_template` fields. This enables the user to convey object data in the request headers as well as to craft a customized request body. Request content can be crafted to enable the direct interaction with external systems by ensuring the outgoing message is in a format the receiver expects and understands.
For example, you might create a NetBox webhook to [trigger a Slack message](https://api.slack.com/messaging/webhooks) any time an IP address is created. You can accomplish this using the following configuration:
* Object type: IPAM > IP address
* HTTP method: `POST`
* URL: Slack incoming webhook URL
* HTTP content type: `application/json`
* Body template: `{"text": "IP address {{ data['address'] }} was created by {{ username }}!"}`
### Available Context
The following data is available as context for Jinja2 templates:
* `event` - The type of event which triggered the webhook: created, updated, or deleted.
* `model` - The NetBox model which triggered the change.
* `timestamp` - The time at which the event occurred (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format).
* `username` - The name of the user account associated with the change.
* `request_id` - The unique request ID. This may be used to correlate multiple changes associated with a single request.
* `data` - A detailed representation of the object in its current state. This is typically equivalent to the model's representation in NetBox's REST API.
* `snapshots` - Minimal "snapshots" of the object state both before and after the change was made; provided ass a dictionary with keys named `prechange` and `postchange`. These are not as extensive as the fully serialized representation, but contain enough information to convey what has changed.
### Default Request Body
If no body template is specified, the request body will be populated with a JSON object containing the context data. For example, a newly created site might appear as follows:
```no-highlight
```json
{
"event": "created",
"timestamp": "2021-03-09 17:55:33.968016+00:00",
"model": "site",
"username": "jstretch",
"request_id": "fdbca812-3142-4783-b364-2e2bd5c16c6a",
"data": {
"id": 19,
"name": "Site 1",
"slug": "site-1",
"status":
"value": "active",
"label": "Active",
"id": 1
},
"region": null,
...
},
"snapshots": {
"prechange": null,
"postchange": {
"created": "2021-03-09",
"last_updated": "2021-03-09T17:55:33.851Z",
"name": "Site 1",
"slug": "site-1",
"status": "active",
...
}
"and": [
{
"attr": "status.value",
"value": "active"
}
]
}
```
For more detail, see the reference documentation for NetBox's [conditional logic](../reference/conditions.md).
## Webhook Processing
When a change is detected, any resulting webhooks are placed into a Redis queue for processing. This allows the user's request to complete without needing to wait for the outgoing webhook(s) to be processed. The webhooks are then extracted from the queue by the `rqworker` process and HTTP requests are sent to their respective destinations. The current webhook queue and any failed webhooks can be inspected in the admin UI under System > Background Tasks.

View File

@@ -0,0 +1,88 @@
# Microsoft Azure AD
This guide explains how to configure single sign-on (SSO) support for NetBox using [Microsoft Azure Active Directory (AD)](https://azure.microsoft.com/en-us/services/active-directory/) as an authentication backend.
## Azure AD Configuration
### 1. Create a test user (optional)
Create a new user in AD to be used for testing. You can skip this step if you already have a suitable account created.
### 2. Create an app registration
Under the Azure Active Directory dashboard, navigate to **Add > App registration**.
![Add an app registration](../../media/authentication/azure_ad_add_app_registration.png)
Enter a name for the registration (e.g. "NetBox") and ensure that the "single tenant" option is selected.
Under "Redirect URI", select "Web" for the platform and enter the path to your NetBox installation, ending with `/oauth/complete/azuread-oauth2/`. Note that this URI **must** begin with `https://` unless you are referencing localhost (for development purposes).
![App registration parameters](../../media/authentication/azure_ad_app_registration.png)
Once finished, make note of the application (client) ID; this will be used when configuring NetBox.
![Completed app registration](../../media/authentication/azure_ad_app_registration_created.png)
!!! tip "Multitenant authentication"
NetBox also supports multitenant authentication via Azure AD, however it requires a different backend and an additional configuration parameter. Please see the [`python-social-auth` documentation](https://python-social-auth.readthedocs.io/en/latest/backends/azuread.html#tenant-support) for details concerning multitenant authentication.
### 3. Create a secret
When viewing the newly-created app registration, click the "Add a certificate or secret" link under "Client credentials". Under the "Client secrets" tab, click the "New client secret" button.
![Add a client secret](../../media/authentication/azure_ad_add_client_secret.png)
You can optionally specify a description and select a lifetime for the secret.
![Client secret parameters](../../media/authentication/azure_ad_client_secret.png)
Once finished, make note of the secret value (not the secret ID); this will be used when configuring NetBox.
![Client secret parameters](../../media/authentication/azure_ad_client_secret_created.png)
## NetBox Configuration
### 1. Enter configuration parameters
Enter the following configuration parameters in `configuration.py`, substituting your own values:
```python
REMOTE_AUTH_BACKEND = 'social_core.backends.azuread.AzureADOAuth2'
SOCIAL_AUTH_AZUREAD_OAUTH2_KEY = '{APPLICATION_ID}'
SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET = '{SECRET_VALUE}'
```
### 2. Restart NetBox
Restart the NetBox services so that the new configuration takes effect. This is typically done with the command below:
```no-highlight
sudo systemctl restart netbox
```
## Testing
Log out of NetBox if already authenticated, and click the "Log In" button at top right. You should see the normal login form as well as an option to authenticate using Azure AD. Click that link.
![NetBox Azure AD login form](../../media/authentication/netbox_azure_ad_login.png)
You should be redirected to Microsoft's authentication portal. Enter the username/email and password of your test account to continue. You may also be prompted to grant this application access to your account.
![NetBox Azure AD login form](../../media/authentication/azure_ad_login_portal.png)
If successful, you will be redirected back to the NetBox UI, and will be logged in as the AD user. You can verify this by navigating to your profile (using the button at top right).
This user account has been replicated locally to NetBox, and can now be assigned groups and permissions within the NetBox admin UI.
## Troubleshooting
### Redirect URI does not Match
Azure requires that the authenticating client request a redirect URI that matches what you've configured for the app in step two. This URI **must** begin with `https://` (unless using `localhost` for the domain).
If Azure complains that the requested URI starts with `http://` (not HTTPS), it's likely that your HTTP server is misconfigured or sitting behind a load balancer, so NetBox is not aware that HTTPS is being use. To force the use of an HTTPS redirect URI, set `SOCIAL_AUTH_REDIRECT_IS_HTTPS = True` in `configuration.py` per the [python-social-auth docs](https://python-social-auth.readthedocs.io/en/latest/configuration/settings.html#processing-redirects-and-urlopen).
### Not Logged in After Authenticating
If you are redirected to the NetBox UI after authenticating successfully, but are _not_ logged in, double-check the configured backend and app registration. The instructions in this guide pertain only to the `azuread.AzureADOAuth2` backend using a single-tenant app registration.

View File

@@ -0,0 +1,70 @@
# Okta
This guide explains how to configure single sign-on (SSO) support for NetBox using [Okta](https://www.okta.com/) as an authentication backend.
## Okta Configuration
!!! tip "Okta developer account"
Okta offers free developer accounts at <https://developer.okta.com/>.
### 1. Create a test user (optional)
Create a new user in the Okta admin portal to be used for testing. You can skip this step if you already have a suitable account created.
### 2. Create an app registration
Within the Okta administration dashboard, navigate to **Applications > Applications**, and click the "Create App Integration" button. Select "OIDC" as the sign-in method, and "Web application" for the application type.
![Create an app registration](../../media/authentication/okta_create_app_registration.png)
On the next page, give the app integration a name (e.g. "NetBox") and specify the sign-in and sign-out URIs. These URIs should follow the formats below:
* Sign-in URI: `https://{netbox}/oauth/complete/okta-openidconnect/`
* Sign-out URI: `https://{netbox}/oauth/disconnect/okta-openidconnect/`
![Web app integration](../../media/authentication/okta_web_app_integration.png)
Under "Assignments," select the controlled access setting most appropriate for your organization. Click "Save" to complete the creation.
Once finished, note the following parameters. These will be used to configured NetBox.
* Client ID
* Client secret
* Okta domain
![Okta integration parameters](../../media/authentication/okta_integration_parameters.png)
## NetBox Configuration
### 1. Enter configuration parameters
Enter the following configuration parameters in `configuration.py`, substituting your own values:
```python
REMOTE_AUTH_BACKEND = 'social_core.backends.okta_openidconnect.OktaOpenIdConnect'
SOCIAL_AUTH_OKTA_OPENIDCONNECT_KEY = '{Client ID}'
SOCIAL_AUTH_OKTA_OPENIDCONNECT_SECRET = '{Client secret}'
SOCIAL_AUTH_OKTA_OPENIDCONNECT_API_URL = 'https://{Okta domain}/oauth2/'
```
### 2. Restart NetBox
Restart the NetBox services so that the new configuration takes effect. This is typically done with the command below:
```no-highlight
sudo systemctl restart netbox
```
## Testing
Log out of NetBox if already authenticated, and click the "Log In" button at top right. You should see the normal login form as well as an option to authenticate using Okta. Click that link.
![NetBox Okta login form](../../media/authentication/netbox_okta_login.png)
You should be redirected to Okta's authentication portal. Enter the username/email and password of your test account to continue. You may also be prompted to grant this application access to your account.
![Okta login portal](../../media/authentication/okta_login_portal.png)
If successful, you will be redirected back to the NetBox UI, and will be logged in as the Okta user. You can verify this by navigating to your profile (using the button at top right).
This user account has been replicated locally to NetBox, and can now be assigned groups and permissions within the NetBox admin UI.

View File

@@ -0,0 +1,37 @@
# Authentication
## Local Authentication
Local user accounts and groups can be created in NetBox under the "Authentication and Authorization" section of the administrative user interface. This interface is available only to users with the "staff" permission enabled.
At a minimum, each user account must have a username and password set. User accounts may also denote a first name, last name, and email address. [Permissions](../permissions.md) may also be assigned to users and/or groups within the admin UI.
## Remote Authentication
NetBox may be configured to provide user authenticate via a remote backend in addition to local authentication. This is done by setting the `REMOTE_AUTH_BACKEND` configuration parameter to a suitable backend class. NetBox provides several options for remote authentication.
### LDAP Authentication
```python
REMOTE_AUTH_BACKEND = 'netbox.authentication.LDAPBackend'
```
NetBox includes an authentication backend which supports LDAP. See the [LDAP installation docs](../../installation/6-ldap.md) for more detail about this backend.
### HTTP Header Authentication
```python
REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend'
```
Another option for remote authentication in NetBox is to enable HTTP header-based user assignment. The front end HTTP server (e.g. nginx or Apache) performs client authentication as a process external to NetBox, and passes information about the authenticated user via HTTP headers. By default, the user is assigned via the `REMOTE_USER` header, but this can be customized via the `REMOTE_AUTH_HEADER` configuration parameter.
### Single Sign-On (SSO)
```python
REMOTE_AUTH_BACKEND = 'social_core.backends.google.GoogleOAuth2'
```
NetBox supports single sign-on authentication via the [python-social-auth](https://github.com/python-social-auth) library. To enable SSO, specify the path to the desired authentication backend within the `social_core` Python package. Please see the complete list of [supported authentication backends](https://github.com/python-social-auth/social-core/tree/master/social_core/backends) for the available options.
Most remote authentication backends require some additional configuration through settings prefixed with `SOCIAL_AUTH_`. These will be automatically imported from NetBox's `configuration.py` file. Additionally, the [authentication pipeline](https://python-social-auth.readthedocs.io/en/latest/pipeline.html) can be customized via the `SOCIAL_AUTH_PIPELINE` parameter.

View File

@@ -0,0 +1,46 @@
# Error Reporting
## Sentry
### Enabling Error Reporting
NetBox v3.2.3 and later support native integration with [Sentry](https://sentry.io/) for automatic error reporting. To enable this functionality, simply set `SENTRY_ENABLED` to True in `configuration.py`. Errors will be sent to a Sentry ingestor maintained by the NetBox team for analysis.
```python
SENTRY_ENABLED = True
```
### Using a Custom DSN
If you prefer instead to use your own Sentry ingestor, you'll need to first create a new project under your Sentry account to represent your NetBox deployment and obtain its corresponding data source name (DSN). This looks like a URL similar to the example below:
```
https://examplePublicKey@o0.ingest.sentry.io/0
```
Once you have obtained a DSN, configure Sentry in NetBox's `configuration.py` file with the following parameters:
```python
SENTRY_ENABLED = True
SENTRY_DSN = "https://examplePublicKey@o0.ingest.sentry.io/0"
```
### Assigning Tags
You can optionally attach one or more arbitrary tags to the outgoing error reports if desired by setting the `SENTRY_TAGS` parameter:
```python
SENTRY_TAGS = {
"custom.foo": "123",
"custom.bar": "abc",
}
```
!!! warning "Reserved tag prefixes"
Avoid using any tag names which begin with `netbox.`, as this prefix is reserved by the NetBox application.
### Testing
Once the configuration has been saved, restart the NetBox service.
To test Sentry operation, try generating a 404 (page not found) error by navigating to an invalid URL, such as `https://netbox/404-error-testing`. (Be sure that debug mode has been disabled.) After receiving a 404 response from the NetBox server, you should see the issue appear shortly in Sentry.

View File

@@ -0,0 +1,18 @@
# Housekeeping
NetBox includes a `housekeeping` management command that should be run nightly. This command handles:
* Clearing expired authentication sessions from the database
* Deleting changelog records older than the configured [retention time](../configuration/dynamic-settings.md#changelog_retention)
* Deleting job result records older than the configured [retention time](../configuration/dynamic-settings.md#jobresult_retention)
This command can be invoked directly, or by using the shell script provided at `/opt/netbox/contrib/netbox-housekeeping.sh`. This script can be linked from your cron scheduler's daily jobs directory (e.g. `/etc/cron.daily`) or referenced directly within the cron configuration file.
```shell
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
```
!!! note
On Debian-based systems, be sure to omit the `.sh` file extension when linking to the script from within a cron directory. Otherwise, the task may not run.
The `housekeeping` command can also be run manually at any time: Running the command outside scheduled execution times will not interfere with its operation.

View File

@@ -11,7 +11,7 @@ This will launch a lightly customized version of [the built-in Django shell](htt
```
$ ./manage.py nbshell
### NetBox interactive shell (localhost)
### Python 3.6.9 | Django 2.2.11 | NetBox 2.7.10
### Python 3.7.10 | Django 3.2.5 | NetBox 3.0
### lsmodels() will show available models. Use help(<model>) for more info.
```
@@ -194,7 +194,7 @@ To delete multiple objects at once, call `delete()` on a filtered queryset. It's
>>> Device.objects.filter(name__icontains='test').count()
27
>>> Device.objects.filter(name__icontains='test').delete()
(35, {'dcim.DeviceBay': 0, 'secrets.Secret': 0, 'dcim.InterfaceConnection': 4,
(35, {'dcim.DeviceBay': 0, 'dcim.InterfaceConnection': 4,
'extras.ImageAttachment': 0, 'dcim.Device': 27, 'dcim.Interface': 4,
'dcim.ConsolePort': 0, 'dcim.PowerPort': 0})
```

View File

@@ -1,8 +1,8 @@
# Permissions
NetBox v2.9 introduced a new object-based permissions framework, which replace's Django's built-in permissions model. Object-based permissions enable an administrator to grant users or groups the ability to perform an action on arbitrary subsets of objects in NetBox, rather than all objects of a certain type. For example, it is possible to grant a user permission to view only sites within a particular region, or to modify only VLANs with a numeric ID within a certain range.
NetBox v2.9 introduced a new object-based permissions framework, which replaces Django's built-in permissions model. Object-based permissions enable an administrator to grant users or groups the ability to perform an action on arbitrary subsets of objects in NetBox, rather than all objects of a certain type. For example, it is possible to grant a user permission to view only sites within a particular region, or to modify only VLANs with a numeric ID within a certain range.
{!docs/models/users/objectpermission.md!}
{!models/users/objectpermission.md!}
### Example Constraint Definitions

View File

@@ -71,14 +71,3 @@ To extract the saved archive into a new installation, run the following from the
```no-highlight
tar -xf netbox_media.tar.gz
```
---
## Cache Invalidation
If you are migrating your instance of NetBox to a different machine, be sure to first invalidate the cache on the original instance by issuing the `invalidate all` management command (within the Python virtual environment):
```no-highlight
# source /opt/netbox/venv/bin/activate
(venv) # python3 manage.py invalidate all
```

View File

@@ -0,0 +1,208 @@
# Dynamic Configuration Settings
These configuration parameters are primarily controlled via NetBox's admin interface (under Admin > Extras > Configuration Revisions). These setting may also be overridden in `configuration.py`; this will prevent them from being modified via the UI.
---
## ALLOWED_URL_SCHEMES
Default: `('file', 'ftp', 'ftps', 'http', 'https', 'irc', 'mailto', 'sftp', 'ssh', 'tel', 'telnet', 'tftp', 'vnc', 'xmpp')`
A list of permitted URL schemes referenced when rendering links within NetBox. Note that only the schemes specified in this list will be accepted: If adding your own, be sure to replicate all of the default values as well (excluding those schemes which are not desirable).
---
## BANNER_TOP
## BANNER_BOTTOM
Setting these variables will display custom content in a banner at the top and/or bottom of the page, respectively. HTML is allowed. To replicate the content of the top banner in the bottom banner, set:
```python
BANNER_TOP = 'Your banner text'
BANNER_BOTTOM = BANNER_TOP
```
---
## BANNER_LOGIN
This defines custom content to be displayed on the login page above the login form. HTML is allowed.
---
## CHANGELOG_RETENTION
Default: 90
The number of days to retain logged changes (object creations, updates, and deletions). Set this to `0` to retain
changes in the database indefinitely.
!!! warning
If enabling indefinite changelog retention, it is recommended to periodically delete old entries. Otherwise, the database may eventually exceed capacity.
---
## JOBRESULT_RETENTION
Default: 90
The number of days to retain job results (scripts and reports). Set this to `0` to retain
job results in the database indefinitely.
!!! warning
If enabling indefinite job results retention, it is recommended to periodically delete old entries. Otherwise, the database may eventually exceed capacity.
---
## CUSTOM_VALIDATORS
This is a mapping of models to [custom validators](../customization/custom-validation.md) that have been defined locally to enforce custom validation logic. An example is provided below:
```python
CUSTOM_VALIDATORS = {
"dcim.site": [
{
"name": {
"min_length": 5,
"max_length": 30
}
},
"my_plugin.validators.Validator1"
],
"dim.device": [
"my_plugin.validators.Validator1"
]
}
```
---
## DEFAULT_USER_PREFERENCES
This is a dictionary defining the default preferences to be set for newly-created user accounts. For example, to set the default page size for all users to 100, define the following:
```python
DEFAULT_USER_PREFERENCES = {
"pagination": {
"per_page": 100
}
}
```
For a complete list of available preferences, log into NetBox and navigate to `/user/preferences/`. A period in a preference name indicates a level of nesting in the JSON data. The example above maps to `pagination.per_page`.
---
## ENFORCE_GLOBAL_UNIQUE
Default: False
By default, NetBox will permit users to create duplicate prefixes and IP addresses in the global table (that is, those which are not assigned to any VRF). This behavior can be disabled by setting `ENFORCE_GLOBAL_UNIQUE` to True.
---
## GRAPHQL_ENABLED
Default: True
Setting this to False will disable the GraphQL API.
---
## MAINTENANCE_MODE
Default: False
Setting this to True will display a "maintenance mode" banner at the top of every page. Additionally, NetBox will no longer update a user's "last active" time upon login. This is to allow new logins when the database is in a read-only state. Recording of login times will resume when maintenance mode is disabled.
---
## MAPS_URL
Default: `https://maps.google.com/?q=` (Google Maps)
This specifies the URL to use when presenting a map of a physical location by street address or GPS coordinates. The URL must accept either a free-form street address or a comma-separated pair of numeric coordinates appended to it.
---
## MAX_PAGE_SIZE
Default: 1000
A web user or API consumer can request an arbitrary number of objects by appending the "limit" parameter to the URL (e.g. `?limit=1000`). This parameter defines the maximum acceptable limit. Setting this to `0` or `None` will allow a client to retrieve _all_ matching objects at once with no limit by specifying `?limit=0`.
---
## NAPALM_USERNAME
## NAPALM_PASSWORD
NetBox will use these credentials when authenticating to remote devices via the supported [NAPALM integration](../additional-features/napalm.md), if installed. Both parameters are optional.
!!! note
If SSH public key authentication has been set up on the remote device(s) for the system account under which NetBox runs, these parameters are not needed.
---
## NAPALM_ARGS
A dictionary of optional arguments to pass to NAPALM when instantiating a network driver. See the NAPALM documentation for a [complete list of optional arguments](https://napalm.readthedocs.io/en/latest/support/#optional-arguments). An example:
```python
NAPALM_ARGS = {
'api_key': '472071a93b60a1bd1fafb401d9f8ef41',
'port': 2222,
}
```
Some platforms (e.g. Cisco IOS) require an argument named `secret` to be passed in addition to the normal password. If desired, you can use the configured `NAPALM_PASSWORD` as the value for this argument:
```python
NAPALM_USERNAME = 'username'
NAPALM_PASSWORD = 'MySecretPassword'
NAPALM_ARGS = {
'secret': NAPALM_PASSWORD,
# Include any additional args here
}
```
---
## NAPALM_TIMEOUT
Default: 30 seconds
The amount of time (in seconds) to wait for NAPALM to connect to a device.
---
## PAGINATE_COUNT
Default: 50
The default maximum number of objects to display per page within each list of objects.
---
## PREFER_IPV4
Default: False
When determining the primary IP address for a device, IPv6 is preferred over IPv4 by default. Set this to True to prefer IPv4 instead.
---
## RACK_ELEVATION_DEFAULT_UNIT_HEIGHT
Default: 22
Default height (in pixels) of a unit within a rack elevation. For best results, this should be approximately one tenth of `RACK_ELEVATION_DEFAULT_UNIT_WIDTH`.
---
## RACK_ELEVATION_DEFAULT_UNIT_WIDTH
Default: 220
Default width (in pixels) of a unit within a rack elevation.

View File

@@ -0,0 +1,54 @@
# Error Reporting Settings
## SENTRY_DSN
Default: None
Defines a Sentry data source name (DSN) for automated error reporting. `SENTRY_ENABLED` must be True for this parameter to take effect. For example:
```
SENTRY_DSN = "https://examplePublicKey@o0.ingest.sentry.io/0"
```
---
## SENTRY_ENABLED
Default: False
Set to True to enable automatic error reporting via [Sentry](https://sentry.io/).
---
## SENTRY_SAMPLE_RATE
Default: 1.0 (all)
The sampling rate for errors. Must be a value between 0 (disabled) and 1.0 (report on all errors).
---
## SENTRY_TAGS
An optional dictionary of tag names and values to apply to Sentry error reports.For example:
```
SENTRY_TAGS = {
"custom.foo": "123",
"custom.bar": "abc",
}
```
!!! warning "Reserved tag prefixes"
Avoid using any tag names which begin with `netbox.`, as this prefix is reserved by the NetBox application.
---
## SENTRY_TRACES_SAMPLE_RATE
Default: 0 (disabled)
The sampling rate for transactions. Must be a value between 0 (disabled) and 1.0 (report on all transactions).
!!! warning "Consider performance implications"
A high sampling rate for transactions can induce significant performance penalties. If transaction reporting is desired, it is recommended to use a relatively low sample rate of 10% to 20% (0.1 to 0.2).

View File

@@ -1,18 +1,27 @@
# NetBox Configuration
NetBox's local configuration is stored in `$INSTALL_ROOT/netbox/netbox/configuration.py`. An example configuration is provided as `configuration.example.py`. You may copy or rename the example configuration and make changes as appropriate. NetBox will not run without a configuration file.
NetBox's local configuration is stored in `$INSTALL_ROOT/netbox/netbox/configuration.py` by default. An example configuration is provided as `configuration_example.py`. You may copy or rename the example configuration and make changes as appropriate. NetBox will not run without a configuration file. While NetBox has many configuration settings, only a few of them must be defined at the time of installation: these are defined under "required settings" below.
While NetBox has many configuration settings, only a few of them must be defined at the time of installation.
!!! info "Customizing the Configuration Module"
A custom configuration module may be specified by setting the `NETBOX_CONFIGURATION` environment variable. This must be a dotted path to the desired Python module. For example, a file named `my_config.py` in the same directory as `settings.py` would be referenced as `netbox.my_config`.
For the sake of brevity, the NetBox documentation refers to the configuration file simply as `configuration.py`.
Some configuration parameters may alternatively be defined either in `configuration.py` or within the administrative section of the user interface. Settings which are "hard-coded" in the configuration file take precedence over those defined via the UI.
## Configuration Parameters
* [Required settings](required-settings.md)
* [Optional settings](optional-settings.md)
* [Dynamic settings](dynamic-settings.md)
* [Remote authentication settings](remote-authentication.md)
## Changing the Configuration
Configuration settings may be changed at any time. However, the WSGI service (e.g. Gunicorn) must be restarted before the changes will take effect:
The configuration file may be modified at any time. However, the WSGI service (e.g. Gunicorn) must be restarted before the changes will take effect:
```no-highlight
$ sudo systemctl restart netbox
```
Configuration parameters which are set via the admin UI (those listed under "dynamic settings") take effect immediately.

View File

@@ -13,33 +13,23 @@ ADMINS = [
---
## ALLOWED_URL_SCHEMES
## AUTH_PASSWORD_VALIDATORS
Default: `('file', 'ftp', 'ftps', 'http', 'https', 'irc', 'mailto', 'sftp', 'ssh', 'tel', 'telnet', 'tftp', 'vnc', 'xmpp')`
A list of permitted URL schemes referenced when rendering links within NetBox. Note that only the schemes specified in this list will be accepted: If adding your own, be sure to replicate all of the default values as well (excluding those schemes which are not desirable).
---
## BANNER_TOP
## BANNER_BOTTOM
Setting these variables will display custom content in a banner at the top and/or bottom of the page, respectively. HTML is allowed. To replicate the content of the top banner in the bottom banner, set:
This parameter acts as a pass-through for configuring Django's built-in password validators for local user accounts. If configured, these will be applied whenever a user's password is updated to ensure that it meets minimum criteria such as length or complexity. An example is provided below. For more detail on the available options, please see [the Django documentation](https://docs.djangoproject.com/en/stable/topics/auth/passwords/#password-validation).
```python
BANNER_TOP = 'Your banner text'
BANNER_BOTTOM = BANNER_TOP
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
'OPTIONS': {
'min_length': 10,
}
},
]
```
---
## BANNER_LOGIN
This defines custom content to be displayed on the login page above the login form. HTML is allowed.
---
## BASE_PATH
Default: None
@@ -52,26 +42,6 @@ BASE_PATH = 'netbox/'
---
## CACHE_TIMEOUT
Default: 0 (disabled)
The number of seconds that cached database queries will be retained before expiring.
---
## CHANGELOG_RETENTION
Default: 90
The number of days to retain logged changes (object creations, updates, and deletions). Set this to `0` to retain
changes in the database indefinitely.
!!! warning
If enabling indefinite changelog retention, it is recommended to periodically delete old entries. Otherwise, the database may eventually exceed capacity.
---
## CORS_ORIGIN_ALLOW_ALL
Default: False
@@ -96,6 +66,21 @@ CORS_ORIGIN_WHITELIST = [
---
## CSRF_TRUSTED_ORIGINS
Default: `[]`
Defines a list of trusted origins for unsafe (e.g. `POST`) requests. This is a pass-through to Django's [`CSRF_TRUSTED_ORIGINS`](https://docs.djangoproject.com/en/4.0/ref/settings/#std:setting-CSRF_TRUSTED_ORIGINS) setting. Note that each host listed must specify a scheme (e.g. `http://` or `https://).
```python
CSRF_TRUSTED_ORIGINS = (
'http://netbox.local',
'https://netbox.local',
)
```
---
## DEBUG
Default: False
@@ -144,7 +129,7 @@ In order to send email, NetBox needs an email server configured. The following i
!!! note
The `USE_SSL` and `USE_TLS` parameters are mutually exclusive.
Email is sent from NetBox only for critical events or if configured for [logging](#logging). If you would like to test the email server configuration, Django provides a convenient [send_mail()](https://docs.djangoproject.com/en/stable/topics/email/#send-mail) fuction accessible within the NetBox shell:
Email is sent from NetBox only for critical events or if configured for [logging](#logging). If you would like to test the email server configuration, Django provides a convenient [send_mail()](https://docs.djangoproject.com/en/stable/topics/email/#send-mail) function accessible within the NetBox shell:
```no-highlight
# python ./manage.py nbshell
@@ -160,14 +145,6 @@ Email is sent from NetBox only for critical events or if configured for [logging
---
## ENFORCE_GLOBAL_UNIQUE
Default: False
By default, NetBox will permit users to create duplicate prefixes and IP addresses in the global table (that is, those which are not assigned to any VRF). This behavior can be disabled by setting `ENFORCE_GLOBAL_UNIQUE` to True.
---
## EXEMPT_VIEW_PERMISSIONS
Default: Empty list
@@ -195,6 +172,66 @@ EXEMPT_VIEW_PERMISSIONS = ['*']
---
## FIELD_CHOICES
Some static choice fields on models can be configured with custom values. This is done by defining `FIELD_CHOICES` as a dictionary mapping model fields to their choices. Each choice in the list must have a database value and a human-friendly label, and may optionally specify a color. (A list of available colors is provided below.)
The choices provided can either replace the stock choices provided by NetBox, or append to them. To _replace_ the available choices, specify the app, model, and field name separated by dots. For example, the site model would be referenced as `dcim.Site.status`. To _extend_ the available choices, append a plus sign to the end of this string (e.g. `dcim.Site.status+`).
For example, the following configuration would replace the default site status choices with the options Foo, Bar, and Baz:
```python
FIELD_CHOICES = {
'dcim.Site.status': (
('foo', 'Foo', 'red'),
('bar', 'Bar', 'green'),
('baz', 'Baz', 'blue'),
)
}
```
Appending a plus sign to the field identifier would instead _add_ these choices to the ones already offered:
```python
FIELD_CHOICES = {
'dcim.Site.status+': (
...
)
}
```
The following model fields support configurable choices:
* `circuits.Circuit.status`
* `dcim.Device.status`
* `dcim.PowerFeed.status`
* `dcim.Rack.status`
* `dcim.Site.status`
* `extras.JournalEntry.kind`
* `ipam.IPAddress.status`
* `ipam.IPRange.status`
* `ipam.Prefix.status`
* `ipam.VLAN.status`
* `virtualization.VirtualMachine.status`
The following colors are supported:
* `blue`
* `indigo`
* `purple`
* `pink`
* `red`
* `orange`
* `yellow`
* `green`
* `teal`
* `cyan`
* `gray`
* `black`
* `white`
---
## HTTP_PROXIES
Default: None
@@ -257,11 +294,21 @@ LOGGING = {
---
## LOGIN_PERSISTENCE
Default: False
If true, the lifetime of a user's authentication session will be automatically reset upon each valid request. For example, if [`LOGIN_TIMEOUT`](#login_timeout) is configured to 14 days (the default), and a user whose session is due to expire in five days makes a NetBox request (with a valid session cookie), the session's lifetime will be reset to 14 days.
Note that enabling this setting causes NetBox to update a user's session in the database (or file, as configured per [`SESSION_FILE_PATH`](#session_file_path)) with each request, which may introduce significant overhead in very active environments. It also permits an active user to remain authenticated to NetBox indefinitely.
---
## LOGIN_REQUIRED
Default: False
Setting this to True will permit only authenticated users to access any part of NetBox. By default, anonymous users are permitted to access most data in NetBox (excluding secrets) but not make any changes.
Setting this to True will permit only authenticated users to access any part of NetBox. By default, anonymous users are permitted to access most data in NetBox but not make any changes.
---
@@ -273,30 +320,6 @@ The lifetime (in seconds) of the authentication cookie issued to a NetBox user u
---
## MAINTENANCE_MODE
Default: False
Setting this to True will display a "maintenance mode" banner at the top of every page. Additionally, NetBox will no longer update a user's "last active" time upon login. This is to allow new logins when the database is in a read-only state. Recording of login times will resume when maintenance mode is disabled.
---
## MAPS_URL
Default: `https://maps.google.com/?q=` (Google Maps)
This specifies the URL to use when presenting a map of a physical location by street address or GPS coordinates. The URL must accept either a free-form street address or a comma-separated pair of numeric coordinates appended to it.
---
## MAX_PAGE_SIZE
Default: 1000
A web user or API consumer can request an arbitrary number of objects by appending the "limit" parameter to the URL (e.g. `?limit=1000`). This parameter defines the maximum acceptable limit. Setting this to `0` or `None` will allow a client to retrieve _all_ matching objects at once with no limit by specifying `?limit=0`.
---
## MEDIA_ROOT
Default: $INSTALL_ROOT/netbox/media/
@@ -313,57 +336,6 @@ Toggle the availability Prometheus-compatible metrics at `/metrics`. See the [Pr
---
## NAPALM_USERNAME
## NAPALM_PASSWORD
NetBox will use these credentials when authenticating to remote devices via the [NAPALM library](https://napalm-automation.net/), if installed. Both parameters are optional.
!!! note
If SSH public key authentication has been set up on the remote device(s) for the system account under which NetBox runs, these parameters are not needed.
---
## NAPALM_ARGS
A dictionary of optional arguments to pass to NAPALM when instantiating a network driver. See the NAPALM documentation for a [complete list of optional arguments](https://napalm.readthedocs.io/en/latest/support/#optional-arguments). An example:
```python
NAPALM_ARGS = {
'api_key': '472071a93b60a1bd1fafb401d9f8ef41',
'port': 2222,
}
```
Some platforms (e.g. Cisco IOS) require an argument named `secret` to be passed in addition to the normal password. If desired, you can use the configured `NAPALM_PASSWORD` as the value for this argument:
```python
NAPALM_USERNAME = 'username'
NAPALM_PASSWORD = 'MySecretPassword'
NAPALM_ARGS = {
'secret': NAPALM_PASSWORD,
# Include any additional args here
}
```
---
## NAPALM_TIMEOUT
Default: 30 seconds
The amount of time (in seconds) to wait for NAPALM to connect to a device.
---
## PAGINATE_COUNT
Default: 50
The default maximum number of objects to display per page within each list of objects.
---
## PLUGINS
Default: Empty
@@ -397,94 +369,11 @@ Note that a plugin must be listed in `PLUGINS` for its configuration to take eff
---
## PREFER_IPV4
Default: False
When determining the primary IP address for a device, IPv6 is preferred over IPv4 by default. Set this to True to prefer IPv4 instead.
---
## RACK_ELEVATION_DEFAULT_UNIT_HEIGHT
Default: 22
Default height (in pixels) of a unit within a rack elevation. For best results, this should be approximately one tenth of `RACK_ELEVATION_DEFAULT_UNIT_WIDTH`.
---
## RACK_ELEVATION_DEFAULT_UNIT_WIDTH
Default: 220
Default width (in pixels) of a unit within a rack elevation.
---
## REMOTE_AUTH_AUTO_CREATE_USER
Default: `False`
If true, NetBox will automatically create local accounts for users authenticated via a remote service. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_BACKEND
Default: `'netbox.authentication.RemoteUserBackend'`
This is the Python path to the custom [Django authentication backend](https://docs.djangoproject.com/en/stable/topics/auth/customizing/) to use for external user authentication. NetBox provides two built-in backends (listed below), though custom authentication backends may also be provided by other packages or plugins.
* `netbox.authentication.RemoteUserBackend`
* `netbox.authentication.LDAPBackend`
---
## REMOTE_AUTH_DEFAULT_GROUPS
Default: `[]` (Empty list)
The list of groups to assign a new user account when created using remote authentication. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_DEFAULT_PERMISSIONS
Default: `{}` (Empty dictionary)
A mapping of permissions to assign a new user account when created using remote authentication. Each key in the dictionary should be set to a dictionary of the attributes to be applied to the permission, or `None` to allow all objects. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_ENABLED
Default: `False`
NetBox can be configured to support remote user authentication by inferring user authentication from an HTTP header set by the HTTP reverse proxy (e.g. nginx or Apache). Set this to `True` to enable this functionality. (Local authentication will still take effect as a fallback.)
---
## REMOTE_AUTH_HEADER
Default: `'HTTP_REMOTE_USER'`
When remote user authentication is in use, this is the name of the HTTP header which informs NetBox of the currently authenticated user. For example, to use the request header `X-Remote-User` it needs to be set to `HTTP_X_REMOTE_USER`. (Requires `REMOTE_AUTH_ENABLED`.)
---
## RELEASE_CHECK_TIMEOUT
Default: 86,400 (24 hours)
The number of seconds to retain the latest version that is fetched from the GitHub API before automatically invalidating it and fetching it from the API again. This must be set to at least one hour (3600 seconds).
---
## RELEASE_CHECK_URL
Default: None (disabled)
This parameter defines the URL of the repository that will be checked periodically for new NetBox releases. When a new release is detected, a message will be displayed to administrative users on the home page. This can be set to the official repository (`'https://api.github.com/repos/netbox-community/netbox/releases'`) or a custom fork. Set this to `None` to disable automatic update checks.
This parameter defines the URL of the repository that will be checked for new NetBox releases. When a new release is detected, a message will be displayed to administrative users on the home page. This can be set to the official repository (`'https://api.github.com/repos/netbox-community/netbox/releases'`) or a custom fork. Set this to `None` to disable automatic update checks.
!!! note
The URL provided **must** be compatible with the [GitHub REST API](https://docs.github.com/en/rest).
@@ -495,7 +384,7 @@ This parameter defines the URL of the repository that will be checked periodical
Default: `$INSTALL_ROOT/netbox/reports/`
The file path to the location where custom reports will be kept. By default, this is the `netbox/reports/` directory within the base NetBox installation path.
The file path to the location where [custom reports](../customization/reports.md) will be kept. By default, this is the `netbox/reports/` directory within the base NetBox installation path.
---
@@ -511,7 +400,7 @@ The maximum execution time of a background task (such as running a custom script
Default: `$INSTALL_ROOT/netbox/scripts/`
The file path to the location where custom scripts will be kept. By default, this is the `netbox/scripts/` directory within the base NetBox installation path.
The file path to the location where [custom scripts](../customization/custom-scripts.md) will be kept. By default, this is the `netbox/scripts/` directory within the base NetBox installation path.
---

View File

@@ -0,0 +1,110 @@
# Remote Authentication Settings
The configuration parameters listed here control remote authentication for NetBox. Note that `REMOTE_AUTH_ENABLED` must be true in order for these settings to take effect.
---
## REMOTE_AUTH_AUTO_CREATE_USER
Default: `False`
If true, NetBox will automatically create local accounts for users authenticated via a remote service. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_BACKEND
Default: `'netbox.authentication.RemoteUserBackend'`
This is the Python path to the custom [Django authentication backend](https://docs.djangoproject.com/en/stable/topics/auth/customizing/) to use for external user authentication. NetBox provides two built-in backends (listed below), though custom authentication backends may also be provided by other packages or plugins.
* `netbox.authentication.RemoteUserBackend`
* `netbox.authentication.LDAPBackend`
---
## REMOTE_AUTH_DEFAULT_GROUPS
Default: `[]` (Empty list)
The list of groups to assign a new user account when created using remote authentication. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_DEFAULT_PERMISSIONS
Default: `{}` (Empty dictionary)
A mapping of permissions to assign a new user account when created using remote authentication. Each key in the dictionary should be set to a dictionary of the attributes to be applied to the permission, or `None` to allow all objects. (Requires `REMOTE_AUTH_ENABLED` as True and `REMOTE_AUTH_GROUP_SYNC_ENABLED` as False.)
---
## REMOTE_AUTH_ENABLED
Default: `False`
NetBox can be configured to support remote user authentication by inferring user authentication from an HTTP header set by the HTTP reverse proxy (e.g. nginx or Apache). Set this to `True` to enable this functionality. (Local authentication will still take effect as a fallback.) (`REMOTE_AUTH_DEFAULT_GROUPS` will not function if `REMOTE_AUTH_ENABLED` is disabled)
---
## REMOTE_AUTH_GROUP_SYNC_ENABLED
Default: `False`
NetBox can be configured to sync remote user groups by inferring user authentication from an HTTP header set by the HTTP reverse proxy (e.g. nginx or Apache). Set this to `True` to enable this functionality. (Local authentication will still take effect as a fallback.) (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_HEADER
Default: `'HTTP_REMOTE_USER'`
When remote user authentication is in use, this is the name of the HTTP header which informs NetBox of the currently authenticated user. For example, to use the request header `X-Remote-User` it needs to be set to `HTTP_X_REMOTE_USER`. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_GROUP_HEADER
Default: `'HTTP_REMOTE_USER_GROUP'`
When remote user authentication is in use, this is the name of the HTTP header which informs NetBox of the currently authenticated user. For example, to use the request header `X-Remote-User-Groups` it needs to be set to `HTTP_X_REMOTE_USER_GROUPS`. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_SUPERUSER_GROUPS
Default: `[]` (Empty list)
The list of groups that promote an remote User to Superuser on Login. If group isn't present on next Login, the Role gets revoked. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_SUPERUSERS
Default: `[]` (Empty list)
The list of users that get promoted to Superuser on Login. If user isn't present in list on next Login, the Role gets revoked. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_STAFF_GROUPS
Default: `[]` (Empty list)
The list of groups that promote an remote User to Staff on Login. If group isn't present on next Login, the Role gets revoked. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_STAFF_USERS
Default: `[]` (Empty list)
The list of users that get promoted to Staff on Login. If user isn't present in list on next Login, the Role gets revoked. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )
---
## REMOTE_AUTH_GROUP_SEPARATOR
Default: `|` (Pipe)
The Seperator upon which `REMOTE_AUTH_GROUP_HEADER` gets split into individual Groups. This needs to be coordinated with your authentication Proxy. (Requires `REMOTE_AUTH_ENABLED` and `REMOTE_AUTH_GROUP_SYNC_ENABLED` )

View File

@@ -25,7 +25,7 @@ ALLOWED_HOSTS = ['*']
## DATABASE
NetBox requires access to a PostgreSQL 9.6 or later database service to store data. This service can run locally on the NetBox server or on a remote system. The following parameters must be defined within the `DATABASE` dictionary:
NetBox requires access to a PostgreSQL 10 or later database service to store data. This service can run locally on the NetBox server or on a remote system. The following parameters must be defined within the `DATABASE` dictionary:
* `NAME` - Database name
* `USER` - PostgreSQL username

View File

@@ -1,10 +1,10 @@
# Circuits
{!docs/models/circuits/provider.md!}
{!docs/models/circuits/providernetwork.md!}
{!models/circuits/provider.md!}
{!models/circuits/providernetwork.md!}
---
{!docs/models/circuits/circuit.md!}
{!docs/models/circuits/circuittype.md!}
{!docs/models/circuits/circuittermination.md!}
{!models/circuits/circuit.md!}
{!models/circuits/circuittype.md!}
{!models/circuits/circuittermination.md!}

View File

@@ -0,0 +1,5 @@
# Contacts
{!models/tenancy/contact.md!}
{!models/tenancy/contactgroup.md!}
{!models/tenancy/contactrole.md!}

View File

@@ -1,7 +1,7 @@
# Device Types
{!docs/models/dcim/devicetype.md!}
{!docs/models/dcim/manufacturer.md!}
{!models/dcim/devicetype.md!}
{!models/dcim/manufacturer.md!}
---
@@ -30,11 +30,12 @@ Once component templates have been created, every new device that you create as
!!! note
Assignment of components from templates occurs only at the time of device creation. If you modify the templates of a device type, it will not affect devices which have already been created. However, you always have the option of adding, modifying, or deleting components on existing devices.
{!docs/models/dcim/consoleporttemplate.md!}
{!docs/models/dcim/consoleserverporttemplate.md!}
{!docs/models/dcim/powerporttemplate.md!}
{!docs/models/dcim/poweroutlettemplate.md!}
{!docs/models/dcim/interfacetemplate.md!}
{!docs/models/dcim/frontporttemplate.md!}
{!docs/models/dcim/rearporttemplate.md!}
{!docs/models/dcim/devicebaytemplate.md!}
{!models/dcim/consoleporttemplate.md!}
{!models/dcim/consoleserverporttemplate.md!}
{!models/dcim/powerporttemplate.md!}
{!models/dcim/poweroutlettemplate.md!}
{!models/dcim/interfacetemplate.md!}
{!models/dcim/frontporttemplate.md!}
{!models/dcim/rearporttemplate.md!}
{!models/dcim/modulebaytemplate.md!}
{!models/dcim/devicebaytemplate.md!}

View File

@@ -1,8 +1,8 @@
# Devices and Cabling
{!docs/models/dcim/device.md!}
{!docs/models/dcim/devicerole.md!}
{!docs/models/dcim/platform.md!}
{!models/dcim/device.md!}
{!models/dcim/devicerole.md!}
{!models/dcim/platform.md!}
---
@@ -10,20 +10,31 @@
Device components represent discrete objects within a device which are used to terminate cables, house child devices, or track resources.
{!docs/models/dcim/consoleport.md!}
{!docs/models/dcim/consoleserverport.md!}
{!docs/models/dcim/powerport.md!}
{!docs/models/dcim/poweroutlet.md!}
{!docs/models/dcim/interface.md!}
{!docs/models/dcim/frontport.md!}
{!docs/models/dcim/rearport.md!}
{!docs/models/dcim/devicebay.md!}
{!docs/models/dcim/inventoryitem.md!}
{!models/dcim/consoleport.md!}
{!models/dcim/consoleserverport.md!}
{!models/dcim/powerport.md!}
{!models/dcim/poweroutlet.md!}
{!models/dcim/interface.md!}
{!models/dcim/frontport.md!}
{!models/dcim/rearport.md!}
{!models/dcim/modulebay.md!}
{!models/dcim/devicebay.md!}
{!models/dcim/inventoryitem.md!}
---
{!docs/models/dcim/virtualchassis.md!}
{!models/dcim/virtualchassis.md!}
---
{!docs/models/dcim/cable.md!}
{!models/dcim/cable.md!}
In the example below, three individual cables comprise a path between devices A and D:
![Cable path](../media/models/dcim_cable_trace.png)
Traced from Interface 1 on Device A, NetBox will show the following path:
* Cable 1: Interface 1 to Front Port 1
* Cable 2: Rear Port 1 to Rear Port 2
* Cable 3: Front Port 2 to Interface 2

View File

@@ -1,18 +1,28 @@
# IP Address Management
{!docs/models/ipam/aggregate.md!}
{!docs/models/ipam/rir.md!}
{!models/ipam/aggregate.md!}
{!models/ipam/rir.md!}
---
{!docs/models/ipam/prefix.md!}
{!docs/models/ipam/role.md!}
{!models/ipam/prefix.md!}
{!models/ipam/role.md!}
---
{!docs/models/ipam/ipaddress.md!}
{!models/ipam/iprange.md!}
{!models/ipam/ipaddress.md!}
---
{!docs/models/ipam/vrf.md!}
{!docs/models/ipam/routetarget.md!}
{!models/ipam/vrf.md!}
{!models/ipam/routetarget.md!}
---
{!models/ipam/fhrpgroup.md!}
{!models/ipam/fhrpgroupassignment.md!}
---
{!models/ipam/asn.md!}

View File

@@ -0,0 +1,4 @@
# Modules
{!models/dcim/moduletype.md!}
{!models/dcim/module.md!}

View File

@@ -1,8 +1,8 @@
# Power Tracking
{!docs/models/dcim/powerpanel.md!}
{!docs/models/dcim/powerfeed.md!}
{!models/dcim/powerpanel.md!}
{!models/dcim/powerfeed.md!}
# Example Power Topology
![Power distribution model](../../media/power_distribution.png)
![Power distribution model](../media/power_distribution.png)

View File

@@ -1,8 +0,0 @@
# Secrets
{!docs/models/secrets/secret.md!}
{!docs/models/secrets/secretrole.md!}
---
{!docs/models/secrets/userkey.md!}

View File

@@ -1,3 +1,4 @@
# Service Mapping
{!docs/models/ipam/service.md!}
{!models/ipam/servicetemplate.md!}
{!models/ipam/service.md!}

View File

@@ -1,12 +1,12 @@
# Sites and Racks
{!docs/models/dcim/region.md!}
{!docs/models/dcim/sitegroup.md!}
{!docs/models/dcim/site.md!}
{!docs/models/dcim/location.md!}
{!models/dcim/region.md!}
{!models/dcim/sitegroup.md!}
{!models/dcim/site.md!}
{!models/dcim/location.md!}
---
{!docs/models/dcim/rack.md!}
{!docs/models/dcim/rackrole.md!}
{!docs/models/dcim/rackreservation.md!}
{!models/dcim/rack.md!}
{!models/dcim/rackrole.md!}
{!models/dcim/rackreservation.md!}

View File

@@ -1,4 +1,4 @@
# Tenancy Assignment
{!docs/models/tenancy/tenant.md!}
{!docs/models/tenancy/tenantgroup.md!}
{!models/tenancy/tenant.md!}
{!models/tenancy/tenantgroup.md!}

View File

@@ -1,10 +1,10 @@
# Virtualization
{!docs/models/virtualization/cluster.md!}
{!docs/models/virtualization/clustertype.md!}
{!docs/models/virtualization/clustergroup.md!}
{!models/virtualization/cluster.md!}
{!models/virtualization/clustertype.md!}
{!models/virtualization/clustergroup.md!}
---
{!docs/models/virtualization/virtualmachine.md!}
{!docs/models/virtualization/vminterface.md!}
{!models/virtualization/virtualmachine.md!}
{!models/virtualization/vminterface.md!}

View File

@@ -1,4 +1,4 @@
# VLAN Management
{!docs/models/ipam/vlan.md!}
{!docs/models/ipam/vlangroup.md!}
{!models/ipam/vlan.md!}
{!models/ipam/vlangroup.md!}

View File

@@ -0,0 +1,8 @@
# Wireless Networks
{!models/wireless/wirelesslan.md!}
{!models/wireless/wirelesslangroup.md!}
---
{!models/wireless/wirelesslink.md!}

View File

@@ -0,0 +1,36 @@
{!models/extras/customfield.md!}
## Custom Fields in Templates
Several features within NetBox, such as export templates and webhooks, utilize Jinja2 templating. For convenience, objects which support custom field assignment expose custom field data through the `cf` property. This is a bit cleaner than accessing custom field data through the actual field (`custom_field_data`).
For example, a custom field named `foo123` on the Site model is accessible on an instance as `{{ site.cf.foo123 }}`.
## Custom Fields and the REST API
When retrieving an object via the REST API, all of its custom data will be included within the `custom_fields` attribute. For example, below is the partial output of a site with two custom fields defined:
```json
{
"id": 123,
"url": "http://localhost:8000/api/dcim/sites/123/",
"name": "Raleigh 42",
...
"custom_fields": {
"deployed": "2018-06-19",
"site_code": "US-NC-RAL42"
},
...
```
To set or change these values, simply include nested JSON data. For example:
```json
{
"name": "New Site",
"slug": "new-site",
"custom_fields": {
"deployed": "2019-03-24"
}
}
```

View File

@@ -45,6 +45,20 @@ Defining script variables is optional: You may create a script with only a `run(
Any output generated by the script during its execution will be displayed under the "output" tab in the UI.
By default, scripts within a module are ordered alphabetically in the scripts list page. To return scripts in a specific order, you can define the `script_order` variable at the end of your module. The `script_order` variable is a tuple which contains each Script class in the desired order. Any scripts that are omitted from this list will be listed last.
```python
from extras.scripts import Script
class MyCustomScript(Script):
...
class AnotherCustomScript(Script):
...
script_order = (MyCustomScript, AnotherCustomScript)
```
## Module Attributes
### `name`
@@ -63,6 +77,10 @@ This is the human-friendly names of your script. If omitted, the class name will
A human-friendly description of what your script does.
### `field_order`
By default, script variables will be ordered in the form as they are defined in the script. `field_order` may be defined as an iterable of field names to determine the order in which variables are rendered. Any fields not included in this iterable be listed last.
### `commit_default`
The checkbox to commit database changes when executing a script is checked by default. Set `commit_default` to False under the script's Meta class to leave this option unchecked by default.
@@ -71,6 +89,12 @@ The checkbox to commit database changes when executing a script is checked by de
commit_default = False
```
### `job_timeout`
Set the maximum allowed runtime for the script. If not set, `RQ_DEFAULT_TIMEOUT` will be used.
!!! info "This feature was introduced in v3.2.1"
## Accessing Request Data
Details of the current HTTP request (the one being made to execute the script) are available as the instance attribute `self.request`. This can be used to infer, for example, the user executing the script and the client IP address:
@@ -170,14 +194,9 @@ Similar to `ChoiceVar`, but allows for the selection of multiple choices.
A particular object within NetBox. Each ObjectVar must specify a particular model, and allows the user to select one of the available instances. ObjectVar accepts several arguments, listed below.
* `model` - The model class
* `display_field` - The name of the REST API object field to display in the selection list (default: `'display'`)
* `query_params` - A dictionary of query parameters to use when retrieving available options (optional)
* `null_option` - A label representing a "null" or empty choice (optional)
!!! warning
The `display_field` parameter is now deprecated, and will be removed in NetBox v3.0. All ObjectVar instances will
instead use the new standard `display` field for all serializers (introduced in NetBox v2.11).
To limit the selections available within the list, additional query parameters can be passed as the `query_params` dictionary. For example, to show only devices with an "active" status:
```python
@@ -231,7 +250,7 @@ An IPv4 or IPv6 network with a mask. Returns a `netaddr.IPNetwork` object. Two a
!!! note
To run a custom script, a user must be assigned the `extras.run_script` permission. This is achieved by assigning the user (or group) a permission on the Script object and specifying the `run` action in the admin UI as shown below.
![Adding the run action to a permission](../../media/admin_ui_run_permission.png)
![Adding the run action to a permission](../media/admin_ui_run_permission.png)
### Via the Web UI
@@ -250,6 +269,22 @@ http://netbox/api/extras/scripts/example.MyReport/ \
--data '{"data": {"foo": "somevalue", "bar": 123}, "commit": true}'
```
### Via the CLI
Scripts can be run on the CLI by invoking the management command:
```
python3 manage.py runscript [--commit] [--loglevel {debug,info,warning,error,critical}] [--data "<data>"] <module>.<script>
```
The required ``<module>.<script>`` argument is the script to run where ``<module>`` is the name of the python file in the ``scripts`` directory without the ``.py`` extension and ``<script>`` is the name of the script class in the ``<module>`` to run.
The optional ``--data "<data>"`` argument is the data to send to the script
The optional ``--loglevel`` argument is the desired logging level to output to the console.
The optional ``--commit`` argument will commit any changes in the script to the database.
## Example
Below is an example script that creates new objects for a planned site. The user is prompted for three variables:
@@ -288,7 +323,6 @@ class NewBranchScript(Script):
switch_model = ObjectVar(
description="Access switch model",
model=DeviceType,
display_field='model',
query_params={
'manufacturer_id': '$manufacturer'
}

View File

@@ -0,0 +1,118 @@
# Custom Validation
NetBox validates every object prior to it being written to the database to ensure data integrity. This validation includes things like checking for proper formatting and that references to related objects are valid. However, you may wish to supplement this validation with some rules of your own. For example, perhaps you require that every site's name conforms to a specific pattern. This can be done using custom validation rules.
## Custom Validation Rules
Custom validation rules are expressed as a mapping of model attributes to a set of rules to which that attribute must conform. For example:
```json
{
"name": {
"min_length": 5,
"max_length": 30
}
}
```
This defines a custom validator which checks that the length of the `name` attribute for an object is at least five characters long, and no longer than 30 characters. This validation is executed _after_ NetBox has performed its own internal validation.
The `CustomValidator` class supports several validation types:
* `min`: Minimum value
* `max`: Maximum value
* `min_length`: Minimum string length
* `max_length`: Maximum string length
* `regex`: Application of a [regular expression](https://en.wikipedia.org/wiki/Regular_expression)
* `required`: A value must be specified
* `prohibited`: A value must _not_ be specified
The `min` and `max` types should be defined for numeric values, whereas `min_length`, `max_length`, and `regex` are suitable for character strings (text values). The `required` and `prohibited` validators may be used for any field, and should be passed a value of `True`.
!!! warning
Bear in mind that these validators merely supplement NetBox's own validation: They will not override it. For example, if a certain model field is required by NetBox, setting a validator for it with `{'prohibited': True}` will not work.
### Custom Validation Logic
There may be instances where the provided validation types are insufficient. NetBox provides a `CustomValidator` class which can be extended to enforce arbitrary validation logic by overriding its `validate()` method, and calling `fail()` when an unsatisfactory condition is detected.
```python
from extras.validators import CustomValidator
class MyValidator(CustomValidator):
def validate(self, instance):
if instance.status == 'active' and not instance.description:
self.fail("Active sites must have a description set!", field='status')
```
The `fail()` method may optionally specify a field with which to associate the supplied error message. If specified, the error message will appear to the user as associated with this field. If omitted, the error message will not be associated with any field.
## Assigning Custom Validators
Custom validators are associated with specific NetBox models under the [CUSTOM_VALIDATORS](../configuration/dynamic-settings.md#custom_validators) configuration parameter. There are three manners by which custom validation rules can be defined:
1. Plain JSON mapping (no custom logic)
2. Dotted path to a custom validator class
3. Direct reference to a custom validator class
### Plain Data
For cases where custom logic is not needed, it is sufficient to pass validation rules as plain JSON-compatible objects. This approach typically affords the most portability for your configuration. For instance:
```python
CUSTOM_VALIDATORS = {
"dcim.site": [
{
"name": {
"min_length": 5,
"max_length": 30,
}
}
],
"dcim.device": [
{
"platform": {
"required": True,
}
}
]
}
```
### Dotted Path
In instances where a custom validator class is needed, it can be referenced by its Python path (relative to NetBox's working directory):
```python
CUSTOM_VALIDATORS = {
'dcim.site': (
'my_validators.Validator1',
'my_validators.Validator2',
),
'dcim.device': (
'my_validators.Validator3',
)
}
```
### Direct Class Reference
This approach requires each class being instantiated to be imported directly within the Python configuration file.
```python
from my_validators import Validator1, Validator2, Validator3
CUSTOM_VALIDATORS = {
'dcim.site': (
Validator1(),
Validator2(),
),
'dcim.device': (
Validator3(),
)
}
```
!!! note
Even if defining only a single validator, it must be passed as an iterable.

View File

@@ -0,0 +1,44 @@
{!models/extras/exporttemplate.md!}
## REST API Integration
When it is necessary to provide authentication credentials (such as when [`LOGIN_REQUIRED`](../configuration/optional-settings.md#login_required) has been enabled), it is recommended to render export templates via the REST API. This allows the client to specify an authentication token. To render an export template via the REST API, make a `GET` request to the model's list endpoint and append the `export` parameter specifying the export template name. For example:
```
GET /api/dcim/sites/?export=MyTemplateName
```
Note that the body of the response will contain only the rendered export template content, as opposed to a JSON object or list.
## Example
Here's an example device export template that will generate a simple Nagios configuration from a list of devices.
```
{% for device in queryset %}{% if device.status and device.primary_ip %}define host{
use generic-switch
host_name {{ device.name }}
address {{ device.primary_ip.address.ip }}
}
{% endif %}{% endfor %}
```
The generated output will look something like this:
```
define host{
use generic-switch
host_name switch1
address 192.0.2.1
}
define host{
use generic-switch
host_name switch2
address 192.0.2.2
}
define host{
use generic-switch
host_name switch3
address 192.0.2.3
}
```

View File

@@ -85,6 +85,20 @@ As you can see, reports are completely customizable. Validation logic can be as
!!! warning
Reports should never alter data: If you find yourself using the `create()`, `save()`, `update()`, or `delete()` methods on objects within reports, stop and re-evaluate what you're trying to accomplish. Note that there are no safeguards against the accidental alteration or destruction of data.
## Report Attributes
### `description`
A human-friendly description of what your report does.
### `job_timeout`
Set the maximum allowed runtime for the report. If not set, `RQ_DEFAULT_TIMEOUT` will be used.
!!! info "This feature was introduced in v3.2.1"
## Logging
The following methods are available to log results within a report:
* log(message)
@@ -95,7 +109,21 @@ The following methods are available to log results within a report:
The recording of one or more failure messages will automatically flag a report as failed. It is advised to log a success for each object that is evaluated so that the results will reflect how many objects are being reported on. (The inclusion of a log message is optional for successes.) Messages recorded with `log()` will appear in a report's results but are not associated with a particular object or status. Log messages also support using markdown syntax and will be rendered on the report result page.
To perform additional tasks, such as sending an email or calling a webhook, after a report has been run, extend the `post_run()` method. The status of the report is available as `self.failed` and the results object is `self.result`.
To perform additional tasks, such as sending an email or calling a webhook, before or after a report is run, extend the `pre_run()` and/or `post_run()` methods, respectively. The status of a completed report is available as `self.failed` and the results object is `self.result`.
By default, reports within a module are ordered alphabetically in the reports list page. To return reports in a specific order, you can define the `report_order` variable at the end of your module. The `report_order` variable is a tuple which contains each Report class in the desired order. Any reports that are omitted from this list will be listed last.
```
from extras.reports import Report
class DeviceConnectionsReport(Report)
pass
class DeviceIPsReport(Report)
pass
report_order = (DeviceIPsReport, DeviceConnectionsReport)
```
Once you have created a report, it will appear in the reports list. Initially, reports will have no results associated with them. To generate results, run the report.
@@ -104,7 +132,7 @@ Once you have created a report, it will appear in the reports list. Initially, r
!!! note
To run a report, a user must be assigned the `extras.run_report` permission. This is achieved by assigning the user (or group) a permission on the Report object and specifying the `run` action in the admin UI as shown below.
![Adding the run action to a permission](../../media/admin_ui_run_permission.png)
![Adding the run action to a permission](/media/admin_ui_run_permission.png)
### Via the Web UI

View File

@@ -2,13 +2,13 @@
## 1. Define the model class
Models within each app are stored in either `models.py` or within a submodule under the `models/` directory. When creating a model, be sure to subclass the [appropriate base model](models.md) from `netbox.models`. This will typically be PrimaryModel or OrganizationalModel. Remember to add the model class to the `__all__` listing for the module.
Models within each app are stored in either `models.py` or within a submodule under the `models/` directory. When creating a model, be sure to subclass the [appropriate base model](models.md) from `netbox.models`. This will typically be NetBoxModel or OrganizationalModel. Remember to add the model class to the `__all__` listing for the module.
Each model should define, at a minimum:
* A `Meta` class specifying a deterministic ordering (if ordered by fields other than the primary ID)
* A `__str__()` method returning a user-friendly string representation of the instance
* A `get_absolute_url()` method returning an instance's direct URL (using `reverse()`)
* A `Meta` class specifying a deterministic ordering (if ordered by fields other than the primary ID)
## 2. Define field choices
@@ -16,9 +16,9 @@ If the model has one or more fields with static choices, define those choices in
## 3. Generate database migrations
Once your model definition is complete, generate database migrations by running `manage.py -n $NAME --no-header`. Always specify a short unique name when generating migrations.
Once your model definition is complete, generate database migrations by running `manage.py makemigrations -n $NAME --no-header`. Always specify a short unique name when generating migrations.
!!! info
!!! info "Configuration Required"
Set `DEVELOPER = True` in your NetBox configuration to enable the creation of new migrations.
## 4. Add all standard views
@@ -37,25 +37,32 @@ Most models will need view classes created in `views.py` to serve the following
Add the relevant URL path for each view created in the previous step to `urls.py`.
## 6. Create the FilterSet
## 6. Add relevant forms
Depending on the type of model being added, you may need to define several types of form classes. These include:
* A base model form (for creating/editing individual objects)
* A bulk edit form
* A bulk import form (for CSV-based import)
* A filterset form (for filtering the object list view)
## 7. Create the FilterSet
Each model should have a corresponding FilterSet class defined. This is used to filter UI and API queries. Subclass the appropriate class from `netbox.filtersets` that matches the model's parent class.
Every model FilterSet should define a `q` filter to support general search queries.
## 7. Create the table
## 8. Create the table class
Create a table class for the model in `tables.py` by subclassing `utilities.tables.BaseTable`. Under the table's `Meta` class, be sure to list both the fields and default columns.
## 8. Create the object template
## 9. Create the object template
Create the HTML template for the object view. (The other views each typically employ a generic template.) This template should extend `generic/object.html`.
## 9. Add the model to the navigation menu
## 10. Add the model to the navigation menu
For NetBox releases prior to v3.0, add the relevant link(s) to the navigation menu template. For later releases, add the relevant items in `netbox/netbox/navigation_menu.py`.
Add the relevant navigation menu items in `netbox/netbox/navigation_menu.py`.
## 10. REST API components
## 11. REST API components
Create the following for each model:
@@ -64,13 +71,13 @@ Create the following for each model:
* API view in `api/views.py`
* Endpoint route in `api/urls.py`
## 11. GraphQL API components (v3.0+)
## 12. GraphQL API components
Create a Graphene object type for the model in `graphql/types.py` by subclassing the appropriate class from `netbox.graphql.types`.
Also extend the schema class defined in `graphql/schema.py` with the individual object and object list fields per the established convention.
## 12. Add tests
## 13. Add tests
Add tests for the following:
@@ -78,7 +85,7 @@ Add tests for the following:
* API views
* Filter sets
## 13. Documentation
## 14. Documentation
Create a new documentation page for the model in `docs/models/<app_label>/<model_name>.md`. Include this file under the "features" documentation where appropriate.

View File

@@ -4,16 +4,16 @@ Below is a list of tasks to consider when adding a new field to a core model.
## 1. Generate and run database migrations
Django migrations are used to express changes to the database schema. In most cases, Django can generate these automatically, however very complex changes may require manual intervention. Always remember to specify a short but descriptive name when generating a new migration.
[Django migrations](https://docs.djangoproject.com/en/stable/topics/migrations/) are used to express changes to the database schema. In most cases, Django can generate these automatically, however very complex changes may require manual intervention. Always remember to specify a short but descriptive name when generating a new migration.
```
./manage.py makemigrations <app> -n <name>
./manage.py migrate
```
Where possible, try to merge related changes into a single migration. For example, if three new fields are being added to different models within an app, these can be expressed in the same migration. You can merge a new migration with an existing one by combining their `operations` lists.
Where possible, try to merge related changes into a single migration. For example, if three new fields are being added to different models within an app, these can be expressed in a single migration. You can merge a newly generated migration with an existing one by combining their `operations` lists.
!!! note
!!! warning "Do not alter existing migrations"
Migrations can only be merged within a release. Once a new release has been published, its migrations cannot be altered (other than for the purpose of correcting a bug).
## 2. Add validation logic to `clean()`
@@ -24,7 +24,6 @@ If the new field introduces additional validation requirements (beyond what's in
class Foo(models.Model):
def clean(self):
super().clean()
# Custom validation goes here
@@ -32,40 +31,36 @@ class Foo(models.Model):
raise ValidationError()
```
## 3. Add CSV helpers
## 3. Update relevant querysets
Add the name of the new field to `csv_headers` and included a CSV-friendly representation of its data in the model's `to_csv()` method. These will be used when exporting objects in CSV format.
If you're adding a relational field (e.g. `ForeignKey`) and intend to include the data when retrieving a list of objects, be sure to include the field using `prefetch_related()` as appropriate. This will optimize the view and avoid extraneous database queries.
## 4. Update relevant querysets
## 4. Update API serializer
If you're adding a relational field (e.g. `ForeignKey`) and intend to include the data when retreiving a list of objects, be sure to include the field using `prefetch_related()` as appropriate. This will optimize the view and avoid extraneous database queries.
Extend the model's API serializer in `<app>.api.serializers` to include the new field. In most cases, it will not be necessary to also extend the nested serializer, which produces a minimal representation of the model.
## 5. Update API serializer
## 5. Add fields to forms
Extend the model's API serializer in `<app>.api.serializers` to include the new field. In most cases, it will not be necessary to also extend the nested serializer, which produces a minimal represenation of the model.
## 6. Add field to forms
Extend any forms to include the new field as appropriate. Common forms include:
Extend any forms to include the new field(s) as appropriate. These are found under the `forms/` directory within each app. Common forms include:
* **Credit/edit** - Manipulating a single object
* **Bulk edit** - Performing a change on many objects at once
* **CSV import** - The form used when bulk importing objects in CSV format
* **Filter** - Displays the options available for filtering a list of objects (both UI and API)
## 7. Extend object filter set
## 6. Extend object filter set
If the new field should be filterable, add it to the `FilterSet` for the model. If the field should be searchable, remember to reference it in the FilterSet's `search()` method.
If the new field should be filterable, add it to the `FilterSet` for the model. If the field should be searchable, remember to query it in the FilterSet's `search()` method.
## 8. Add column to object table
## 7. Add column to object table
If the new field will be included in the object list view, add a column to the model's table. For simple fields, adding the field name to `Meta.fields` will be sufficient. More complex fields may require declaring a custom column.
If the new field will be included in the object list view, add a column to the model's table. For simple fields, adding the field name to `Meta.fields` will be sufficient. More complex fields may require declaring a custom column. Also add the field name to `default_columns` if the column should be present in the table by default.
## 9. Update the UI templates
## 8. Update the UI templates
Edit the object's view template to display the new field. There may also be a custom add/edit form template that needs to be updated.
## 10. Create/extend test cases
## 9. Create/extend test cases
Create or extend the relevant test cases to verify that the new field and any accompanying validation logic perform as expected. This is especially important for relational fields. NetBox incorporates various test suites, including:
@@ -77,6 +72,6 @@ Create or extend the relevant test cases to verify that the new field and any ac
Be diligent to ensure all of the relevant test suites are adapted or extended as necessary to test any new functionality.
## 11. Update the model's documentation
## 10. Update the model's documentation
Each model has a dedicated page in the documentation, at `models/<app>/<model>.md`. Update this file to include any relevant information about the new field.

View File

@@ -11,17 +11,25 @@ Getting started with NetBox development is pretty straightforward, and should fe
### Fork the Repo
Assuming you'll be working on your own fork, your first step will be to fork the [official git repository](https://github.com/netbox-community/netbox). (If you're a maintainer who's going to be working directly with the official repo, skip this step.) You can then clone your GitHub fork locally for development:
Assuming you'll be working on your own fork, your first step will be to fork the [official git repository](https://github.com/netbox-community/netbox). (If you're a maintainer who's going to be working directly with the official repo, skip this step.) Click the "fork" button at top right (be sure that you've logged into GitHub first).
![GitHub fork button](../media/development/github_fork_button.png)
Copy the URL provided in the dialog box.
![GitHub fork dialog](../media/development/github_fork_dialog.png)
You can then clone your GitHub fork locally for development:
```no-highlight
$ git clone https://github.com/youruseraccount/netbox.git
$ git clone https://github.com/$username/netbox.git
Cloning into 'netbox'...
remote: Enumerating objects: 231, done.
remote: Counting objects: 100% (231/231), done.
remote: Compressing objects: 100% (147/147), done.
remote: Total 56705 (delta 134), reused 145 (delta 84), pack-reused 56474
Receiving objects: 100% (56705/56705), 27.96 MiB | 34.92 MiB/s, done.
Resolving deltas: 100% (44177/44177), done.
remote: Enumerating objects: 85949, done.
remote: Counting objects: 100% (4672/4672), done.
remote: Compressing objects: 100% (1224/1224), done.
remote: Total 85949 (delta 3538), reused 4332 (delta 3438), pack-reused 81277
Receiving objects: 100% (85949/85949), 55.16 MiB | 44.90 MiB/s, done.
Resolving deltas: 100% (68008/68008), done.
$ ls netbox/
base_requirements.txt contrib docs mkdocs.yml NOTICE requirements.txt upgrade.sh
CHANGELOG.md CONTRIBUTING.md LICENSE.txt netbox README.md scripts
@@ -33,7 +41,9 @@ The NetBox project utilizes three persistent git branches to track work:
* `develop` - All development on the upcoming stable release occurs here
* `feature` - Tracks work on an upcoming major release
Typically, you'll base pull requests off of the `develop` branch, or off of `feature` if you're working on a new major release. **Never** merge pull requests into the `master` branch, which receives merged only from the `develop` branch.
Typically, you'll base pull requests off of the `develop` branch, or off of `feature` if you're working on a new major release. **Never** merge pull requests into the `master` branch: This branch only ever merges pull requests from the `develop` branch, to effect a new release.
For example, assume that the current NetBox release is v3.1.1. Work applied to the `develop` branch will appear in v3.1.2, and work done under the `feature` branch will be included in the next minor release (v3.2.0).
### Enable Pre-Commit Hooks
@@ -46,7 +56,7 @@ $ ln -s ../../scripts/git-hooks/pre-commit
### Create a Python Virtual Environment
A [virtual environment](https://docs.python.org/3/tutorial/venv.html) is like a container for a set of Python packages. They allow you to build environments suited to specific projects without interfering with system packages or other projects. When installed per the documentation, NetBox uses a virtual environment in production.
A [virtual environment](https://docs.python.org/3/tutorial/venv.html) (or "venv" for short) is like a container for a set of Python packages. These allow you to build environments suited to specific projects without interfering with system packages or other projects. When installed per the documentation, NetBox uses a virtual environment in production.
Create a virtual environment using the `venv` Python module:
@@ -57,8 +67,8 @@ $ python3 -m venv ~/.venv/netbox
This will create a directory named `.venv/netbox/` in your home directory, which houses a virtual copy of the Python executable and its related libraries and tooling. When running NetBox for development, it will be run using the Python binary at `~/.venv/netbox/bin/python`.
!!! info
Keeping virtual environments in `~/.venv/` is a common convention but entirely optional: Virtual environments can be created wherever you please.
!!! info "Where to Create Your Virtual Environments"
Keeping virtual environments in `~/.venv/` is a common convention but entirely optional: Virtual environments can be created almost wherever you please. Also consider using [`virtualenvwrapper`](https://virtualenvwrapper.readthedocs.io/en/stable/) to simplify the management of multiple venvs.
Once created, activate the virtual environment:
@@ -83,7 +93,7 @@ Collecting Django==3.1 (from -r requirements.txt (line 1))
### Configure NetBox
Within the `netbox/netbox/` directory, copy `configuration.example.py` to `configuration.py` and update the following parameters:
Within the `netbox/netbox/` directory, copy `configuration_example.py` to `configuration.py` and update the following parameters:
* `ALLOWED_HOSTS`: This can be set to `['*']` for development purposes
* `DATABASE`: PostgreSQL database connection parameters
@@ -94,38 +104,66 @@ Within the `netbox/netbox/` directory, copy `configuration.example.py` to `confi
### Start the Development Server
Django provides a lightweight, auto-updating HTTP/WSGI server for development use. NetBox extends this slightly to automatically import models and other utilities. Run the NetBox development server with the `nbshell` management command:
Django provides a lightweight, auto-updating HTTP/WSGI server for development use. It is started with the `runserver` management command:
```no-highlight
$ python netbox/manage.py runserver
$ ./manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
November 18, 2020 - 15:52:31
Django version 3.1, using settings 'netbox.settings'
February 18, 2022 - 20:29:57
Django version 4.0.2, using settings 'netbox.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
```
This ensures that your development environment is now complete and operational. Any changes you make to the code base will be automatically adapted by the development server.
!!! info "IDE Integration"
Some IDEs, such as PyCharm, will integrate with Django's development server and allow you to run it directly within the IDE. This is strongly encouraged as it makes for a much more convenient development environment.
## Populating Demo Data
Once you have your development environment up and running, it might be helpful to populate some "dummy" data to make interacting with the UI and APIs more convenient. Check out the [netbox-demo-data](https://github.com/netbox-community/netbox-demo-data) repo on GitHub, which houses a collection of sample data that can be easily imported to any new NetBox deployment. (This sample data is used to populate the public demo instance at <https://demo.netbox.dev>.)
The demo data is provided in JSON format and loaded into an empty database using Django's `loaddata` management command. Consult the demo data repo's `README` file for complete instructions on populating the data.
## Running Tests
Throughout the course of development, it's a good idea to occasionally run NetBox's test suite to catch any potential errors. Tests are run using the `test` management command:
Prior to committing any substantial changes to the code base, be sure to run NetBox's test suite to catch any potential errors. Tests are run using the `test` management command, which employs Python's [`unittest`](https://docs.python.org/3/library/unittest.html#module-unittest) library. Remember to ensure the Python virtual environment is active before running this command. Also keep in mind that these commands are executed in the `netbox/` directory, not the root directory of the repository.
To avoid potential issues with your local configuration file, set the `NETBOX_CONFIGURATION` to point to the packaged test configuration at `netbox/configuration_testing.py`. This will handle things like ensuring that the dummy plugin is enabled for comprehensive testing.
```no-highlight
$ python netbox/manage.py test
$ export NETBOX_CONFIGURATION=netbox.configuration_testing
$ cd netbox/
$ python manage.py test
```
In cases where you haven't made any changes to the database (which is most of the time), you can append the `--keepdb` argument to this command to reuse the test database between runs. This cuts down on the time it takes to run the test suite since the database doesn't have to be rebuilt each time. (Note that this argument will cause errors if you've modified any model fields since the previous test run.)
In cases where you haven't made any changes to the database schema (which is typical), you can append the `--keepdb` argument to this command to reuse the test database between runs. This cuts down on the time it takes to run the test suite since the database doesn't have to be rebuilt each time. (Note that this argument will cause errors if you've modified any model fields since the previous test run.)
```no-highlight
$ python netbox/manage.py test --keepdb
$ python manage.py test --keepdb
```
You can also reduce testing time by enabling parallel test execution with the `--parallel` flag. (By default, this will run as many parallel tests as you have processors. To avoid sluggishness, it's a good idea to specify a lower number of parallel tests.) This flag can be combined with `--keepdb`, although if you encounter any strange errors, try running the test suite again with parallelization disabled.
```no-highlight
$ python manage.py test --parallel <n>
```
Finally, it's possible to limit the run to a specific set of tests, specified by their Python path. For example, to run only IPAM and DCIM view tests:
```no-highlight
$ python manage.py test dcim.tests.test_views ipam.tests.test_views
```
This is handy for instances where just a few tests are failing and you want to re-run them individually.
## Submitting Pull Requests
Once you're happy with your work and have verified that all tests pass, commit your changes and push it upstream to your fork. Always provide descriptive (but not excessively verbose) commit messages. When working on a specific issue, be sure to reference it.
Once you're happy with your work and have verified that all tests pass, commit your changes and push it upstream to your fork. Always provide descriptive (but not excessively verbose) commit messages. When working on a specific issue, be sure to prefix your commit message with the word "Fixes" or "Closes" and the issue number (with a hash mark). This tells GitHub to automatically close the referenced issue once the commit has been merged.
```no-highlight
$ git commit -m "Closes #1234: Add IPv5 support"
@@ -136,5 +174,5 @@ Once your fork has the new commit, submit a [pull request](https://github.com/ne
Once submitted, a maintainer will review your pull request and either merge it or request changes. If changes are needed, you can make them via new commits to your fork: The pull request will update automatically.
!!! note
Remember, pull requests are entertained only for **accepted** issues. If an issue you want to work on hasn't been approved by a maintainer yet, it's best to avoid risking your time and effort on a change that might not be accepted.
!!! note "Remember to Open an Issue First"
Remember, pull requests are permitted only for **accepted** issues. If an issue you want to work on hasn't been approved by a maintainer yet, it's best to avoid risking your time and effort on a change that might not be accepted. (The one exception to this is trivial changes to the documentation or other non-critical resources.)

View File

@@ -1,32 +1,33 @@
# NetBox Development
NetBox is maintained as a [GitHub project](https://github.com/netbox-community/netbox) under the Apache 2 license. Users are encouraged to submit GitHub issues for feature requests and bug reports, however we are very selective about pull requests. Please see the `CONTRIBUTING` guide for more direction on contributing to NetBox.
NetBox is maintained as a [GitHub project](https://github.com/netbox-community/netbox) under the Apache 2 license. Users are encouraged to submit GitHub issues for feature requests and bug reports, however we are very selective about pull requests. Each pull request must be preceded by an **approved** issue. Please see the `CONTRIBUTING` guide for more direction on contributing to NetBox.
## Communication
There are several official forums for communication among the developers and community members:
* [GitHub issues](https://github.com/netbox-community/netbox/issues) - All feature requests, bug reports, and other substantial changes to the code base **must** be documented in an issue.
* [GitHub Discussions](https://github.com/netbox-community/netbox/discussions) - The preferred forum for general discussion and support issues. Ideal for shaping a feature request prior to submitting an issue.
* [GitHub issues](https://github.com/netbox-community/netbox/issues) - All feature requests, bug reports, and other substantial changes to the code base **must** be documented in a GitHub issue.
* [GitHub discussions](https://github.com/netbox-community/netbox/discussions) - The preferred forum for general discussion and support issues. Ideal for shaping a feature request prior to submitting an issue.
* [#netbox on NetDev Community Slack](https://netdev.chat/) - Good for quick chats. Avoid any discussion that might need to be referenced later on, as the chat history is not retained long.
* [Google Group](https://groups.google.com/g/netbox-discuss) - Legacy mailing list; slowly being phased out in favor of GitHub discussions.
## Governance
NetBox follows the [benevolent dictator](http://oss-watch.ac.uk/resources/benevolentdictatorgovernancemodel) model of governance, with [Jeremy Stretch](https://github.com/jeremystretch) ultimately responsible for all changes to the code base. While community contributions are welcomed and encouraged, the lead maintainer's primary role is to ensure the project's long-term maintainability and continued focus on its primary functions (in other words, avoid scope creep).
NetBox follows the [benevolent dictator](http://oss-watch.ac.uk/resources/benevolentdictatorgovernancemodel) model of governance, with [Jeremy Stretch](https://github.com/jeremystretch) ultimately responsible for all changes to the code base. While community contributions are welcomed and encouraged, the lead maintainer's primary role is to ensure the project's long-term maintainability and continued focus on its primary functions.
## Project Structure
All development of the current NetBox release occurs in the `develop` branch; releases are packaged from the `master` branch. The `master` branch should _always_ represent the current stable release in its entirety, such that installing NetBox by either downloading a packaged release or cloning the `master` branch provides the same code base.
All development of the current NetBox release occurs in the `develop` branch; releases are packaged from the `master` branch. The `master` branch should _always_ represent the current stable release in its entirety, such that installing NetBox by either downloading a packaged release or cloning the `master` branch provides the same code base. Only pull requests representing new releases should be merged into `master`.
NetBox components are arranged into functional subsections called _apps_ (a carryover from Django vernacular). Each app holds the models, views, and templates relevant to a particular function:
NetBox components are arranged into Django apps. Each app holds the models, views, and other resources relevant to a particular function:
* `circuits`: Communications circuits and providers (not to be confused with power circuits)
* `dcim`: Datacenter infrastructure management (sites, racks, and devices)
* `extras`: Additional features not considered part of the core data model
* `ipam`: IP address management (VRFs, prefixes, IP addresses, and VLANs)
* `secrets`: Encrypted storage of sensitive data (e.g. login credentials)
* `tenancy`: Tenants (such as customers) to which NetBox objects may be assigned
* `users`: Authentication and user preferences
* `utilities`: Resources which are not user-facing (extendable classes, etc.)
* `virtualization`: Virtual machines and clusters
* `wireless`: Wireless links and LANs
All core functionality is stored within the `netbox/` subdirectory. HTML templates are stored in a common `templates/` directory, with model- and view-specific templates arranged by app. Documentation is kept in the `docs/` root directory.

View File

@@ -10,19 +10,19 @@ The Django [content types](https://docs.djangoproject.com/en/stable/ref/contrib/
* [Change logging](../additional-features/change-logging.md) - Changes to these objects are automatically recorded in the change log
* [Webhooks](../additional-features/webhooks.md) - NetBox is capable of generating outgoing webhooks for these objects
* [Custom fields](../additional-features/custom-fields.md) - These models support the addition of user-defined fields
* [Export templates](../additional-features/export-templates.md) - Users can create custom export templates for these models
* [Custom fields](../customization/custom-fields.md) - These models support the addition of user-defined fields
* [Export templates](../customization/export-templates.md) - Users can create custom export templates for these models
* [Tagging](../models/extras/tag.md) - The models can be tagged with user-defined tags
* [Journaling](../additional-features/journaling.md) - These models support persistent historical commentary
* Nesting - These models can be nested recursively to create a hierarchy
| Type | Change Logging | Webhooks | Custom Fields | Export Templates | Tags | Journaling | Nesting |
| ------------------ | ---------------- | ---------------- | ---------------- | ---------------- | ---------------- | ---------------- | ---------------- |
| ------------------ | ---------------- | ---------------- |------------------| ---------------- | ---------------- | ---------------- | ---------------- |
| Primary | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | |
| Organizational | :material-check: | :material-check: | :material-check: | :material-check: | | | |
| Nested Group | :material-check: | :material-check: | :material-check: | :material-check: | | | :material-check: |
| Organizational | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | |
| Nested Group | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | :material-check: |
| Component | :material-check: | :material-check: | :material-check: | :material-check: | :material-check: | | |
| Component Template | :material-check: | :material-check: | :material-check: | | | | |
| Component Template | :material-check: | :material-check: | | | | | |
## Models Index
@@ -41,16 +41,21 @@ The Django [content types](https://docs.djangoproject.com/en/stable/ref/contrib/
* [dcim.Site](../models/dcim/site.md)
* [dcim.VirtualChassis](../models/dcim/virtualchassis.md)
* [ipam.Aggregate](../models/ipam/aggregate.md)
* [ipam.ASN](../models/ipam/asn.md)
* [ipam.FHRPGroup](../models/ipam/fhrpgroup.md)
* [ipam.IPAddress](../models/ipam/ipaddress.md)
* [ipam.IPRange](../models/ipam/iprange.md)
* [ipam.Prefix](../models/ipam/prefix.md)
* [ipam.RouteTarget](../models/ipam/routetarget.md)
* [ipam.Service](../models/ipam/service.md)
* [ipam.VLAN](../models/ipam/vlan.md)
* [ipam.VRF](../models/ipam/vrf.md)
* [secrets.Secret](../models/secrets/secret.md)
* [tenancy.Contact](../models/tenancy/contact.md)
* [tenancy.Tenant](../models/tenancy/tenant.md)
* [virtualization.Cluster](../models/virtualization/cluster.md)
* [virtualization.VirtualMachine](../models/virtualization/virtualmachine.md)
* [wireless.WirelessLAN](../models/wireless/wirelesslan.md)
* [wireless.WirelessLink](../models/wireless/wirelesslink.md)
### Organizational Models
@@ -62,7 +67,7 @@ The Django [content types](https://docs.djangoproject.com/en/stable/ref/contrib/
* [ipam.RIR](../models/ipam/rir.md)
* [ipam.Role](../models/ipam/role.md)
* [ipam.VLANGroup](../models/ipam/vlangroup.md)
* [secrets.SecretRole](../models/secrets/secretrole.md)
* [tenancy.ContactRole](../models/tenancy/contactrole.md)
* [virtualization.ClusterGroup](../models/virtualization/clustergroup.md)
* [virtualization.ClusterType](../models/virtualization/clustertype.md)
@@ -71,7 +76,9 @@ The Django [content types](https://docs.djangoproject.com/en/stable/ref/contrib/
* [dcim.Location](../models/dcim/location.md) (formerly RackGroup)
* [dcim.Region](../models/dcim/region.md)
* [dcim.SiteGroup](../models/dcim/sitegroup.md)
* [tenancy.ContactGroup](../models/tenancy/contactgroup.md)
* [tenancy.TenantGroup](../models/tenancy/tenantgroup.md)
* [wireless.WirelessLANGroup](../models/wireless/wirelesslangroup.md)
### Component Models

View File

@@ -6,19 +6,9 @@
Check `base_requirements.txt` for any dependencies pinned to a specific version, and upgrade them to their most stable release (where possible).
### Update Static Libraries
Update the following static libraries to their most recent stable release:
* Bootstrap 3
* Material Design Icons
* Select2
* jQuery
* jQuery UI
### Link to the Release Notes Page
Add the release notes (`/docs/release-notes/X.Y.md`) to the table of contents within `mkdocs.yml`, and point `index.md` to the new file.
Add the release notes (`/docs/release-notes/X.Y.md`) to the table of contents within `mkdocs.yml`, and add a summary of the major changes to `index.md`.
### Manually Perform a New Install

View File

@@ -0,0 +1,11 @@
# Signals
In addition to [Django's built-in signals](https://docs.djangoproject.com/en/stable/topics/signals/), NetBox defines some of its own, listed below.
## post_clean
This signal is sent by models which inherit from `CustomValidationMixin` at the end of their `clean()` method.
### Receivers
* `extras.signals.run_custom_validators()`

View File

@@ -1,6 +1,6 @@
# Style Guide
NetBox generally follows the [Django style guide](https://docs.djangoproject.com/en/stable/internals/contributing/writing-code/coding-style/), which is itself based on [PEP 8](https://www.python.org/dev/peps/pep-0008/). [Pycodestyle](https://github.com/pycqa/pycodestyle) is used to validate code formatting, ignoring certain violations. See `scripts/cibuild.sh`.
NetBox generally follows the [Django style guide](https://docs.djangoproject.com/en/stable/internals/contributing/writing-code/coding-style/), which is itself based on [PEP 8](https://www.python.org/dev/peps/pep-0008/). [Pycodestyle](https://github.com/pycqa/pycodestyle) is used to validate code formatting, ignoring certain violations. See `scripts/cibuild.sh` for details.
## PEP 8 Exceptions
@@ -30,7 +30,7 @@ pycodestyle --ignore=W504,E501 netbox/
## Introducing New Dependencies
The introduction of a new dependency is best avoided unless it is absolutely necessary. For small features, it's generally preferable to replicate functionality within the NetBox code base rather than to introduce reliance on an external project. This reduces both the burden of tracking new releases and our exposure to outside bugs and attacks.
The introduction of a new dependency is best avoided unless it is absolutely necessary. For small features, it's generally preferable to replicate functionality within the NetBox code base rather than to introduce reliance on an external project. This reduces both the burden of tracking new releases and our exposure to outside bugs and supply chain attacks.
If there's a strong case for introducing a new dependency, it must meet the following criteria:
@@ -43,7 +43,7 @@ When adding a new dependency, a short description of the package and the URL of
## General Guidance
* When in doubt, remain consistent: It is better to be consistently incorrect than inconsistently correct. If you notice in the course of unrelated work a pattern that should be corrected, continue to follow the pattern for now and open a bug so that the entire code base can be evaluated at a later point.
* When in doubt, remain consistent: It is better to be consistently incorrect than inconsistently correct. If you notice in the course of unrelated work a pattern that should be corrected, continue to follow the pattern for now and submit a separate bug report so that the entire code base can be evaluated at a later point.
* Prioritize readability over concision. Python is a very flexible language that typically offers several options for expressing a given piece of logic, but some may be more friendly to the reader than others. (List comprehensions are particularly vulnerable to over-optimization.) Always remain considerate of the future reader who may need to interpret your code without the benefit of the context within which you are writing it.

View File

@@ -4,8 +4,11 @@ The `users.UserConfig` model holds individual preferences for each user in the f
## Available Preferences
| Name | Description |
| ---- | ----------- |
| extras.configcontext.format | Preferred format when rendering config context data (JSON or YAML) |
| pagination.per_page | The number of items to display per page of a paginated table |
| tables.TABLE_NAME.columns | The ordered list of columns to display when viewing the table |
| Name | Description |
|--------------------------|---------------------------------------------------------------|
| data_format | Preferred format when rendering raw data (JSON or YAML) |
| pagination.per_page | The number of items to display per page of a paginated table |
| pagination.placement | Where to display the paginator controls relative to the table |
| tables.${table}.columns | The ordered list of columns to display when viewing the table |
| tables.${table}.ordering | A list of column names by which the table should be ordered |
| ui.colormode | Light or dark mode in the user interface |

View File

@@ -0,0 +1,99 @@
# Web UI Development
## Front End Technologies
The NetBox UI is built on languages and frameworks:
### Styling & HTML Elements
#### [Bootstrap](https://getbootstrap.com/) 5
The majority of the NetBox UI is made up of stock Bootstrap components, with some styling modifications and custom components added on an as-needed basis. Bootstrap uses [Sass](https://sass-lang.com/), and NetBox extends Bootstrap's core Sass files for theming and customization.
### Client-side Scripting
#### [TypeScript](https://www.typescriptlang.org/)
All client-side scripting is transpiled from TypeScript to JavaScript and served by Django. In development, TypeScript is an _extremely_ effective tool for accurately describing and checking the code, which leads to significantly fewer bugs, a better development experience, and more predictable/readable code.
As part of the [bundling](#bundling) process, Bootstrap's JavaScript plugins are imported and bundled alongside NetBox's front-end code.
!!! danger "NetBox is jQuery-free"
Following the Bootstrap team's deprecation of jQuery in Bootstrap 5, NetBox also no longer uses jQuery in front-end code.
## Guidance
NetBox generally follows the following guidelines for front-end code:
- Bootstrap utility classes may be used to solve one-off issues or to implement singular components, as long as the class list does not exceed 4-5 classes. If an element needs more than 5 utility classes, a custom SCSS class should be added that contains the required style properties.
- Custom classes must be commented, explaining the general purpose of the class and where it is used.
- Reuse SCSS variables whenever possible. CSS values should (almost) never be hard-coded.
- All TypeScript functions must have, at a minimum, a basic [JSDoc](https://jsdoc.app/) description of what the function is for and where it is used. If possible, document all function arguments via [`@param` JSDoc block tags](https://jsdoc.app/tags-param.html).
- Expanding on NetBox's [dependency policy](style-guide.md#introducing-new-dependencies), new front-end dependencies should be avoided unless absolutely necessary. Every new front-end dependency adds to the CSS/JavaScript file size that must be loaded by the client and this should be minimized as much as possible. If adding a new dependency is unavoidable, use a tool like [Bundlephobia](https://bundlephobia.com/) to ensure the smallest possible library is used.
- All UI elements must be usable on all common screen sizes, including mobile devices. Be sure to test newly implemented solutions (JavaScript included) on as many screen sizes and device types as possible.
- NetBox aligns with Bootstrap's [supported Browsers and Devices](https://getbootstrap.com/docs/5.1/getting-started/browsers-devices/) list.
## UI Development
To contribute to the NetBox UI, you'll need to review the main [Getting Started guide](getting-started.md) in order to set up your base environment.
### Tools
Once you have a working NetBox development environment, you'll need to install a few more tools to work with the NetBox UI:
- [NodeJS](https://nodejs.org/en/download/) (the LTS release should suffice)
- [Yarn](https://yarnpkg.com/getting-started/install) (version 1)
After Node and Yarn are installed on your system, you'll need to install all the NetBox UI dependencies:
```console
$ cd netbox/project-static
$ yarn
```
!!! warning "Check Your Working Directory"
You need to be in the `netbox/project-static` directory to run the below `yarn` commands.
### Bundling
In order for the TypeScript and Sass (SCSS) source files to be usable by a browser, they must first be transpiled (TypeScript → JavaScript, Sass → CSS), bundled, and minified. After making changes to TypeScript or Sass source files, run `yarn bundle`.
`yarn bundle` is a wrapper around the following subcommands, any of which can be run individually:
| Command | Action |
| :-------------------- | :---------------------------------------------- |
| `yarn bundle` | Bundle TypeScript and Sass (SCSS) source files. |
| `yarn bundle:styles` | Bundle Sass (SCSS) source files only. |
| `yarn bundle:scripts` | Bundle TypeScript source files only. |
All output files will be written to `netbox/project-static/dist`, where Django will pick them up when `manage.py collectstatic` is run.
!!! info "Remember to re-run `manage.py collectstatic`"
If you're running the development web server — `manage.py runserver` — you'll need to run `manage.py collectstatic` to see your changes.
### Linting, Formatting & Type Checking
Before committing any changes to TypeScript files, and periodically throughout the development process, you should run `yarn validate` to catch formatting, code quality, or type errors.
!!! tip "IDE Integrations"
If you're using an IDE, it is strongly recommended to install [ESLint](https://eslint.org/docs/user-guide/integrations), [TypeScript](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Editor-Support), and [Prettier](https://prettier.io/docs/en/editors.html) integrations, if available. Most of them will automatically check and/or correct issues in the code as you develop, which can significantly increase your productivity as a contributor.
`yarn validate` is a wrapper around the following subcommands, any of which can be run individually:
| Command | Action |
| :--------------------------------- | :--------------------------------------------------------------- |
| `yarn validate` | Run all validation. |
| `yarn validate:lint` | Validate TypeScript code via [ESLint](https://eslint.org/) only. |
| `yarn validate:types` | Validate TypeScript code compilation only. |
| `yarn validate:formatting` | Validate code formatting of JavaScript & Sass/SCSS files. |
| `yarn validate:formatting:styles` | Validate code formatting Sass/SCSS only. |
| `yarn validate:formatting:scripts` | Validate code formatting TypeScript only. |
You can also run the following commands to automatically fix formatting issues:
| Command | Action |
| :-------------------- | :---------------------------------------------- |
| `yarn format` | Format TypeScript and Sass (SCSS) source files. |
| `yarn format:styles` | Format Sass (SCSS) source files only. |
| `yarn format:scripts` | Format TypeScript source files only. |

View File

@@ -11,9 +11,19 @@ table {
width: 100%;
}
th {
background-color: #f0f0f0;
padding: 6px;
font-weight: bold;
}
td {
padding: 6px;
}
/* Remove table header coloring. */
.md-typeset table:not([class]) th {
color: unset !important;
background-color: unset !important;
}
thead tr {
/* Colorize table headers. */
background-color: var(--md-code-bg-color);
color: var(--md-code-fg-color);
}

View File

@@ -0,0 +1,70 @@
# GraphQL API Overview
NetBox provides a read-only [GraphQL](https://graphql.org/) API to complement its REST API. This API is powered by the [Graphene](https://graphene-python.org/) library and [Graphene-Django](https://docs.graphene-python.org/projects/django/en/latest/).
## Queries
GraphQL enables the client to specify an arbitrary nested list of fields to include in the response. All queries are made to the root `/graphql` API endpoint. For example, to return the circuit ID and provider name of each circuit with an active status, you can issue a request such as the following:
```
curl -H "Authorization: Token $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
http://netbox/graphql/ \
--data '{"query": "query {circuit_list(status:\"active\") {cid provider {name}}}"}'
```
The response will include the requested data formatted as JSON:
```json
{
"data": {
"circuits": [
{
"cid": "1002840283",
"provider": {
"name": "CenturyLink"
}
},
{
"cid": "1002840457",
"provider": {
"name": "CenturyLink"
}
}
]
}
}
```
!!! note
It's recommended to pass the return data through a JSON parser such as `jq` for better readability.
NetBox provides both a singular and plural query field for each object type:
* `$OBJECT`: Returns a single object. Must specify the object's unique ID as `(id: 123)`.
* `$OBJECT_list`: Returns a list of objects, optionally filtered by given parameters.
For example, query `device(id:123)` to fetch a specific device (identified by its unique ID), and query `device_list` (with an optional set of filters) to fetch all devices.
For more detail on constructing GraphQL queries, see the [Graphene documentation](https://docs.graphene-python.org/en/latest/).
## Filtering
The GraphQL API employs the same filtering logic as the UI and REST API. Filters can be specified as key-value pairs within parentheses immediately following the query name. For example, the following will return only sites within the North Carolina region with a status of active:
```
{"query": "query {site_list(region:\"north-carolina\", status:\"active\") {name}}"}
```
## Authentication
NetBox's GraphQL API uses the same API authentication tokens as its REST API. Authentication tokens are included with requests by attaching an `Authorization` HTTP header in the following form:
```
Authorization: Token $TOKEN
```
## Disabling the GraphQL API
If not needed, the GraphQL API can be disabled by setting the [`GRAPHQL_ENABLED`](../configuration/dynamic-settings.md#graphql_enabled) configuration parameter to False and restarting NetBox.

View File

@@ -10,7 +10,6 @@ NetBox is an infrastructure resource modeling (IRM) application designed to empo
* **Connections** - Network, console, and power connections among devices
* **Virtualization** - Virtual machines and clusters
* **Data circuits** - Long-haul communications circuits and providers
* **Secrets** - Encrypted storage of sensitive credentials
## What NetBox Is Not
@@ -49,14 +48,16 @@ NetBox is built on the [Django](https://djangoproject.com/) Python framework and
| HTTP service | nginx or Apache |
| WSGI service | gunicorn or uWSGI |
| Application | Django/Python |
| Database | PostgreSQL 9.6+ |
| Database | PostgreSQL 10+ |
| Task queuing | Redis/django-rq |
| Live device access | NAPALM |
| Live device access | NAPALM (optional) |
## Supported Python Versions
NetBox supports Python 3.6, 3.7, and 3.8 environments currently. (Support for Python 3.5 was removed in NetBox v2.8.)
NetBox supports Python 3.8, 3.9, and 3.10 environments.
## Getting Started
See the [installation guide](installation/index.md) for help getting NetBox up and running quickly.
Minor NetBox releases (e.g. v3.1) are published three times a year; in April, August, and December. These typically introduce major new features and may contain breaking API changes. Patch releases are published roughly every one to two weeks to resolve bugs and fulfill minor feature requests. These are backward-compatible with previous releases unless otherwise noted. The NetBox maintainers strongly recommend running the latest stable release whenever possible.
Please see the [official installation guide](installation/index.md) for detailed instructions on obtaining and installing NetBox.

View File

@@ -2,8 +2,8 @@
This section entails the installation and configuration of a local PostgreSQL database. If you already have a PostgreSQL database service in place, skip to [the next section](2-redis.md).
!!! warning
NetBox requires PostgreSQL 9.6 or higher. Please note that MySQL and other relational databases are **not** currently supported.
!!! warning "PostgreSQL 10 or later required"
NetBox requires PostgreSQL 10 or later. Please note that MySQL and other relational databases are **not** supported.
## Installation
@@ -11,19 +11,16 @@ This section entails the installation and configuration of a local PostgreSQL da
```no-highlight
sudo apt update
sudo apt install -y postgresql libpq-dev
sudo apt install -y postgresql
```
=== "CentOS"
```no-highlight
sudo yum install -y postgresql-server libpq-devel
sudo yum install -y postgresql-server
sudo postgresql-setup --initdb
```
!!! info
PostgreSQL 9.6 and later are available natively on CentOS 8.2. If using an earlier CentOS release, you may need to [install it from an RPM](https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/).
CentOS configures ident host-based authentication for PostgreSQL by default. Because NetBox will need to authenticate using a username and password, modify `/var/lib/pgsql/data/pg_hba.conf` to support MD5 authentication by changing `ident` to `md5` for the lines below:
```no-highlight
@@ -38,30 +35,36 @@ sudo systemctl start postgresql
sudo systemctl enable postgresql
```
## Database Creation
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. This is done with the following commands.
!!! danger
**Do not use the password from the example.** Choose a strong, random password to ensure secure database authentication for your NetBox installation.
Before continuing, verify that you have installed PostgreSQL 10 or later:
```no-highlight
$ sudo -u postgres psql
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
Type "help" for help.
postgres=# CREATE DATABASE netbox;
CREATE DATABASE
postgres=# CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=# \q
psql -V
```
## Database Creation
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. Start by invoking the PostgreSQL shell as the system Postgres user.
```no-highlight
sudo -u postgres psql
```
Within the shell, enter the following commands to create the database and user (role), substituting your own value for the password:
```postgresql
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
```
!!! danger "Use a strong password"
**Do not use the password from the example.** Choose a strong, random password to ensure secure database authentication for your NetBox installation.
Once complete, enter `\q` to exit the PostgreSQL shell.
## Verify Service Status
You can verify that authentication works issuing the following command and providing the configured password. (Replace `localhost` with your database server if using a remote database.)
You can verify that authentication works by executing the `psql` command and passing the configured username and password. (Replace `localhost` with your database server if using a remote database.)
```no-highlight
$ psql --username netbox --password --host localhost netbox

View File

@@ -4,7 +4,7 @@
[Redis](https://redis.io/) is an in-memory key-value store which NetBox employs for caching and queuing. This section entails the installation and configuration of a local Redis instance. If you already have a Redis service in place, skip to [the next section](3-netbox.md).
!!! note
!!! warning "Redis v4.0 or later required"
NetBox v2.9.0 and later require Redis v4.0 or higher. If your distribution does not offer a recent enough release, you will need to build Redis from source. Please see [the Redis installation documentation](https://github.com/redis/redis) for further details.
=== "Ubuntu"
@@ -21,6 +21,12 @@
sudo systemctl enable redis
```
Before continuing, verify that your installed version of Redis is at least v4.0:
```no-highlight
redis-server -v
```
You may wish to modify the Redis configuration at `/etc/redis.conf` or `/etc/redis/redis.conf`, however in most cases the default configuration is sufficient.
## Verify Service Status
@@ -28,6 +34,7 @@ You may wish to modify the Redis configuration at `/etc/redis.conf` or `/etc/red
Use the `redis-cli` utility to ensure the Redis service is functional:
```no-highlight
$ redis-cli ping
PONG
redis-cli ping
```
If successful, you should receive a `PONG` response from the server.

View File

@@ -6,8 +6,8 @@ This section of the documentation discusses installing and configuring the NetBo
Begin by installing all system packages required by NetBox and its dependencies.
!!! note
NetBox v2.8.0 and later require Python 3.6, 3.7, or 3.8.
!!! warning "Python 3.8 or later required"
NetBox v3.2 requires Python 3.8, 3.9, or 3.10.
=== "Ubuntu"
@@ -18,13 +18,13 @@ Begin by installing all system packages required by NetBox and its dependencies.
=== "CentOS"
```no-highlight
sudo yum install -y gcc python36 python36-devel python3-pip libxml2-devel libxslt-devel libffi-devel openssl-devel redhat-rpm-config
sudo yum install -y gcc libxml2-devel libxslt-devel libffi-devel libpq-devel openssl-devel redhat-rpm-config
```
Before continuing with either platform, update pip (Python's package management tool) to its latest release:
Before continuing, check that your installed Python version is at least 3.8:
```no-highlight
sudo pip3 install --upgrade pip
python3 -V
```
## Download NetBox
@@ -36,23 +36,21 @@ This documentation provides two options for installing NetBox: from a downloadab
Download the [latest stable release](https://github.com/netbox-community/netbox/releases) from GitHub as a tarball or ZIP archive and extract it to your desired path. In this example, we'll use `/opt/netbox` as the NetBox root.
```no-highlight
$ sudo wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
$ sudo tar -xzf vX.Y.Z.tar.gz -C /opt
$ sudo ln -s /opt/netbox-X.Y.Z/ /opt/netbox
$ ls -l /opt | grep netbox
lrwxrwxrwx 1 root root 13 Jul 20 13:44 netbox -> netbox-2.9.0/
drwxr-xr-x 2 root root 4096 Jul 20 13:44 netbox-2.9.0
sudo wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
sudo tar -xzf vX.Y.Z.tar.gz -C /opt
sudo ln -s /opt/netbox-X.Y.Z/ /opt/netbox
```
!!! note
It is recommended to install NetBox in a directory named for its version number. For example, NetBox v2.9.0 would be installed into `/opt/netbox-2.9.0`, and a symlink from `/opt/netbox/` would point to this location. This allows for future releases to be installed in parallel without interrupting the current installation. When changing to the new release, only the symlink needs to be updated.
It is recommended to install NetBox in a directory named for its version number. For example, NetBox v3.0.0 would be installed into `/opt/netbox-3.0.0`, and a symlink from `/opt/netbox/` would point to this location. (You can verify this configuration with the command `ls -l /opt | grep netbox`.) This allows for future releases to be installed in parallel without interrupting the current installation. When changing to the new release, only the symlink needs to be updated.
### Option B: Clone the Git Repository
Create the base directory for the NetBox installation. For this guide, we'll use `/opt/netbox`.
```no-highlight
sudo mkdir -p /opt/netbox/ && cd /opt/netbox/
sudo mkdir -p /opt/netbox/
cd /opt/netbox/
```
If `git` is not already installed, install it:
@@ -72,23 +70,26 @@ If `git` is not already installed, install it:
Next, clone the **master** branch of the NetBox GitHub repository into the current directory. (This branch always holds the current stable release.)
```no-highlight
$ sudo git clone -b master https://github.com/netbox-community/netbox.git .
```
The screen below should be the result:
```
Cloning into '.'...
remote: Counting objects: 1994, done.
remote: Compressing objects: 100% (150/150), done.
remote: Total 1994 (delta 80), reused 0 (delta 0), pack-reused 1842
Receiving objects: 100% (1994/1994), 472.36 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1495/1495), done.
Checking connectivity... done.
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
```
!!! note
Installation via git also allows you to easily try out development versions of NetBox. The `develop` branch contains all work underway for the next minor release, and the `feature` branch tracks progress on the next major release.
The `git clone` command above utilizes a "shallow clone" to retrieve only the most recent commit. If you need to download the entire history, omit the `--depth 1` argument.
The `git clone` command should generate output similar to the following:
```
Cloning into '.'...
remote: Enumerating objects: 996, done.
remote: Counting objects: 100% (996/996), done.
remote: Compressing objects: 100% (935/935), done.
remote: Total 996 (delta 148), reused 386 (delta 34), pack-reused 0
Receiving objects: 100% (996/996), 4.26 MiB | 9.81 MiB/s, done.
Resolving deltas: 100% (148/148), done.
```
!!! note
Installation via git also allows you to easily try out different versions of NetBox. To check out a [specific NetBox release](https://github.com/netbox-community/netbox/releases), use the `git checkout` command with the desired release tag. For example, `git checkout v3.0.8`.
## Create the NetBox System User
@@ -111,11 +112,11 @@ Create a system user account named `netbox`. We'll configure the WSGI and HTTP s
## Configuration
Move into the NetBox configuration directory and make a copy of `configuration.example.py` named `configuration.py`. This file will hold all of your local configuration parameters.
Move into the NetBox configuration directory and make a copy of `configuration_example.py` named `configuration.py`. This file will hold all of your local configuration parameters.
```no-highlight
cd /opt/netbox/netbox/netbox/
sudo cp configuration.example.py configuration.py
sudo cp configuration_example.py configuration.py
```
Open `configuration.py` with your preferred editor to begin configuring NetBox. NetBox offers [many configuration parameters](../configuration/index.md), but only the following four are required for new installations:
@@ -189,7 +190,7 @@ A simple Python script named `generate_secret_key.py` is provided in the parent
python3 ../generate_secret_key.py
```
!!! warning
!!! warning "SECRET_KEY values must match"
In the case of a highly available installation with multiple web servers, `SECRET_KEY` must be identical among all servers in order to maintain a persistent user session state.
When you have finished modifying the configuration, remember to save the file.
@@ -200,7 +201,7 @@ All Python packages required by NetBox are listed in `requirements.txt` and will
### NAPALM
The [NAPALM automation](https://napalm-automation.net/) library allows NetBox to fetch live data from devices and return it to a requester via its REST API. The `NAPALM_USERNAME` and `NAPALM_PASSWORD` configuration parameters define the credentials to be used when connecting to a device.
Integration with the [NAPALM automation](../additional-features/napalm.md) library allows NetBox to fetch live data from devices and return it to a requester via its REST API. The `NAPALM_USERNAME` and `NAPALM_PASSWORD` configuration parameters define the credentials to be used when connecting to a device.
```no-highlight
sudo sh -c "echo 'napalm' >> /opt/netbox/local_requirements.txt"
@@ -219,14 +220,21 @@ sudo sh -c "echo 'django-storages' >> /opt/netbox/local_requirements.txt"
Once NetBox has been configured, we're ready to proceed with the actual installation. We'll run the packaged upgrade script (`upgrade.sh`) to perform the following actions:
* Create a Python virtual environment
* Install all required Python packages
* Installs all required Python packages
* Run database schema migrations
* Builds the documentation locally (for offline use)
* Aggregate static resource files on disk
```no-highlight
sudo /opt/netbox/upgrade.sh
```
Note that **Python 3.8 or later is required** for NetBox v3.2 and later releases. If the default Python installation on your server is set to a lesser version, pass the path to the supported installation as an environment variable named `PYTHON`. (Note that the environment variable must be passed _after_ the `sudo` command.)
```no-highlight
sudo PYTHON=/usr/bin/python3.8 /opt/netbox/upgrade.sh
```
!!! note
Upon completion, the upgrade script may warn that no existing virtual environment was detected. As this is a new installation, this warning can be safely ignored.
@@ -243,30 +251,45 @@ Once the virtual environment has been activated, you should notice the string `(
Next, we'll create a superuser account using the `createsuperuser` Django management command (via `manage.py`). Specifying an email address for the user is not required, but be sure to use a very strong password.
```no-highlight
(venv) $ cd /opt/netbox/netbox
(venv) $ python3 manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
cd /opt/netbox/netbox
python3 manage.py createsuperuser
```
## Schedule the Housekeeping Task
NetBox includes a `housekeeping` management command that handles some recurring cleanup tasks, such as clearing out old sessions and expired change records. Although this command may be run manually, it is recommended to configure a scheduled job using the system's `cron` daemon or a similar utility.
A shell script which invokes this command is included at `contrib/netbox-housekeeping.sh`. It can be copied to or linked from your system's daily cron task directory, or included within the crontab directly. (If installing NetBox into a nonstandard path, be sure to update the system paths within this script first.)
```shell
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
```
See the [housekeeping documentation](../administration/housekeeping.md) for further details.
## Test the Application
At this point, we should be able to run NetBox's development server for testing. We can check by starting a development instance:
```no-highlight
(venv) $ python3 manage.py runserver 0.0.0.0:8000 --insecure
python3 manage.py runserver 0.0.0.0:8000 --insecure
```
If successful, you should see output similar to the following:
```no-highlight
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
November 17, 2020 - 16:08:13
Django version 3.1.3, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
August 30, 2021 - 18:02:23
Django version 3.2.6, using settings 'netbox.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
```
Next, connect to the name or IP of the server (as defined in `ALLOWED_HOSTS`) on port 8000; for example, <http://127.0.0.1:8000/>. You should be greeted with the NetBox home page. Try logging in using the username and password specified when creating a superuser.
!!! note
By default RHEL based distros will likely block your testing attempts with firewalld. The development server port can be opened with `firewall-cmd` (add `--permanent` if you want the rule to survive server restarts):
@@ -274,20 +297,10 @@ Quit the server with CONTROL-C.
firewall-cmd --zone=public --add-port=8000/tcp
```
Next, connect to the name or IP of the server (as defined in `ALLOWED_HOSTS`) on port 8000; for example, <http://127.0.0.1:8000/>. You should be greeted with the NetBox home page.
!!! danger
!!! danger "Not for production use"
The development server is for development and testing purposes only. It is neither performant nor secure enough for production use. **Do not use it in production.**
!!! warning
If the test service does not run, or you cannot reach the NetBox home page, something has gone wrong. Do not proceed with the rest of this guide until the installation has been corrected.
Note that the initial user interface will be locked down for non-authenticated users.
![NetBox UI as seen by a non-authenticated user](../media/installation/netbox_ui_guest.png)
Try logging in using the superuser account we just created. Once authenticated, you'll be able to access all areas of the UI:
![NetBox UI as seen by an administrator](../media/installation/netbox_ui_admin.png)
Type `Ctrl+c` to stop the development server.

View File

@@ -14,7 +14,7 @@ While the provided configuration should suffice for most initial installations,
## systemd Setup
We'll use systemd to control both gunicorn and NetBox's background worker process. First, copy `contrib/netbox.service` and `contrib/netbox-rq.service` to the `/etc/systemd/system/` directory and reload the systemd dameon:
We'll use systemd to control both gunicorn and NetBox's background worker process. First, copy `contrib/netbox.service` and `contrib/netbox-rq.service` to the `/etc/systemd/system/` directory and reload the systemd daemon:
```no-highlight
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
@@ -31,18 +31,23 @@ sudo systemctl enable netbox netbox-rq
You can use the command `systemctl status netbox` to verify that the WSGI service is running:
```no-highlight
# systemctl status netbox.service
systemctl status netbox.service
```
You should see output similar to the following:
```no-highlight
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-11-17 16:18:23 UTC; 3min 35s ago
Docs: https://netbox.readthedocs.io/en/stable/
Main PID: 22836 (gunicorn)
Tasks: 6 (limit: 2345)
Memory: 339.3M
Active: active (running) since Mon 2021-08-30 04:02:36 UTC; 14h ago
Docs: https://docs.netbox.dev/
Main PID: 1140492 (gunicorn)
Tasks: 19 (limit: 4683)
Memory: 666.2M
CGroup: /system.slice/netbox.service
├─22836 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid>
├─22854 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid>
├─22855 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid>
├─1140492 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
├─1140513 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
├─1140514 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /va>
...
```

View File

@@ -152,7 +152,7 @@ LOGGING = {
'netbox_auth_log': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/opt/netbox/logs/django-ldap-debug.log',
'filename': '/opt/netbox/local/logs/django-ldap-debug.log',
'maxBytes': 1024 * 500,
'backupCount': 5,
},

View File

@@ -1,6 +1,6 @@
# Installation
The installation instructions provided here have been tested to work on Ubuntu 20.04 and CentOS 8.2. The particular commands needed to install dependencies on other distributions may vary significantly. Unfortunately, this is outside the control of the NetBox maintainers. Please consult your distribution's documentation for assistance with any errors.
The installation instructions provided here have been tested to work on Ubuntu 20.04 and CentOS 8.3. The particular commands needed to install dependencies on other distributions may vary significantly. Unfortunately, this is outside the control of the NetBox maintainers. Please consult your distribution's documentation for assistance with any errors.
The following sections detail how to set up a new instance of NetBox:
@@ -11,21 +11,14 @@ The following sections detail how to set up a new instance of NetBox:
5. [HTTP server](5-http-server.md)
6. [LDAP authentication](6-ldap.md) (optional)
The video below demonstrates the installation of NetBox v2.10.3 on Ubuntu 20.04 for your reference.
<iframe width="560" height="315" src="https://www.youtube.com/embed/dFANGlxXEng" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## Requirements
| Dependency | Minimum Version |
|------------|-----------------|
| Python | 3.6 |
| PostgreSQL | 9.6 |
| Python | 3.8 |
| PostgreSQL | 10 |
| Redis | 4.0 |
!!! note
Python 3.7 or later will be required in NetBox v3.0. Users are strongly encouraged to install NetBox using Python 3.7 or later for new deployments.
Below is a simplified overview of the NetBox application stack for reference:
![NetBox UI as seen by a non-authenticated user](../media/installation/netbox_application_stack.png)

View File

@@ -39,7 +39,7 @@ You can use the command `systemctl status netbox` to verify that the WSGI servic
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-10-24 19:23:40 UTC; 25s ago
Docs: https://netbox.readthedocs.io/en/stable/
Docs: https://docs.netbox.dev/
Main PID: 11993 (gunicorn)
Tasks: 6 (limit: 2362)
CGroup: /system.slice/netbox.service

View File

@@ -6,12 +6,12 @@ Prior to upgrading your NetBox instance, be sure to carefully review all [releas
## Update Dependencies to Required Versions
NetBox v2.9.0 and later requires the following:
NetBox v3.0 and later require the following:
| Dependency | Minimum Version |
|------------|-----------------|
| Python | 3.6 |
| PostgreSQL | 9.6 |
| Python | 3.8 |
| PostgreSQL | 10 |
| Redis | 4.0 |
## Install the Latest Release
@@ -67,6 +67,11 @@ sudo git checkout master
sudo git pull origin master
```
!!! info "Checking out an older release"
If you need to upgrade to an older version rather than the current stable release, you can check out any valid [git tag](https://github.com/netbox-community/netbox/tags), each of which represents a release. For example, to checkout the code for NetBox v2.11.11, do:
sudo git checkout v2.11.11
## Run the Upgrade Script
Once the new code is in place, verify that any optional Python packages required by your deployment (e.g. `napalm` or `django-auth-ldap`) are listed in `local_requirements.txt`. Then, run the upgrade script:
@@ -75,16 +80,23 @@ Once the new code is in place, verify that any optional Python packages required
sudo ./upgrade.sh
```
!!! warning
If the default version of Python is not at least 3.8, you'll need to pass the path to a supported Python version as an environment variable when calling the upgrade script. For example:
```no-highlight
sudo PYTHON=/usr/bin/python3.8 ./upgrade.sh
```
This script performs the following actions:
* Destroys and rebuilds the Python virtual environment
* Installs all required Python packages (listed in `requirements.txt`)
* Installs any additional packages from `local_requirements.txt`
* Applies any database migrations that were included in the release
* Builds the documentation locally (for offline use)
* Collects all static files to be served by the HTTP service
* Deletes stale content types from the database
* Deletes all expired user sessions from the database
* Clears all cached data to prevent conflicts with the new release
!!! note
If the upgrade script prompts a warning about unreflected database migrations, this indicates that some change has
@@ -102,5 +114,12 @@ Finally, restart the gunicorn and RQ services:
sudo systemctl restart netbox netbox-rq
```
!!! note
If upgrading from an installation that uses supervisord, please see the instructions for [migrating to systemd](migrating-to-systemd.md). The use of supervisord is no longer supported.
## Verify Housekeeping Scheduling
If upgrading from a release prior to NetBox v3.0, check that a cron task (or similar scheduled process) has been configured to run NetBox's nightly housekeeping command. A shell script which invokes this command is included at `contrib/netbox-housekeeping.sh`. It can be linked from your system's daily cron task directory, or included within the crontab directly. (If NetBox has been installed in a nonstandard path, be sure to update the system paths within this script first.)
```shell
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
```
See the [housekeeping documentation](../administration/housekeeping.md) for further details.

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Some files were not shown because too many files have changed in this diff Show More