Skip to content

v3.0 release prep #7061

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 596 commits into from
Aug 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
596 commits
Select commit Hold shift + click to select a range
a16098d
#6372: Fix additional bulk action button layouts
thatmattlove Jul 15, 2021
e72982a
#6372: Fix nav menu scrolling and styling
thatmattlove Jul 15, 2021
8614b1c
#6372: Fix previous/next rack elevation buttons
thatmattlove Jul 15, 2021
337f95e
#6372: Fix rack spacing
thatmattlove Jul 15, 2021
8966212
Clean up SVG image styling
jeremystretch Jul 15, 2021
c5178fd
Extend foreground_color() utility to support custom dark/light colors
jeremystretch Jul 15, 2021
11a1492
Initial work on IP ranges
jeremystretch Jul 16, 2021
8d8ac70
Add IP range documentation
jeremystretch Jul 16, 2021
747c065
Move available IP/prefix endpoints to API view mixins
jeremystretch Jul 16, 2021
145be09
Merge branch 'feature' into 6000-cable-trace-svg
jeremystretch Jul 16, 2021
2bfdaf0
Merge pull request #6755 from netbox-community/6000-cable-trace-svg
jeremystretch Jul 16, 2021
8cf9f0d
Support specification of image width when rendering cable traces as SVG
jeremystretch Jul 16, 2021
05d16b0
Add changelog for #6000
jeremystretch Jul 16, 2021
4431721
Fix SVG rendering with unspecified width
jeremystretch Jul 16, 2021
858d129
#6372: Migrate back to BS5 native colors, clean up rack/cable bundle …
thatmattlove Jul 17, 2021
0503825
#6372: Improve sidebar footer links layout
thatmattlove Jul 17, 2021
0fe1a42
Add available IPs REST API endpoint for IP ranges
jeremystretch Jul 19, 2021
3cfb0ba
Merge pull request #6760 from netbox-community/834-ip-ranges
jeremystretch Jul 19, 2021
717724c
Update release notes
jeremystretch Jul 19, 2021
31e41f8
Closes #6767: Add support for Python 3.9
jeremystretch Jul 19, 2021
ae6b2be
Call out dependency on v2.11+ for upgrades
jeremystretch Jul 19, 2021
8592e0a
Remove cache invalidation from upgrade script
jeremystretch Jul 19, 2021
7058d6c
Closes #6328: Local docs build (#6769)
jeremystretch Jul 19, 2021
47ef8b9
Upgrade script now looks for Python path as env var
jeremystretch Jul 19, 2021
011f351
Replace changelog template code with table in home view
jeremystretch Jul 19, 2021
29ee3e5
Clean up home view stats
jeremystretch Jul 19, 2021
c14b546
#6372: Refactor Select2 naming
thatmattlove Jul 18, 2021
a2158af
#6372: Add front end error logs to gitignore
thatmattlove Jul 18, 2021
29e41e8
#6372: Fix sidenav active item shadow
thatmattlove Jul 18, 2021
cdc9753
#6372: Fix bulk form action form handling
thatmattlove Jul 18, 2021
e3008ba
#6372: Fix static select class regression from 08f0a5d
thatmattlove Jul 18, 2021
1661d1f
#6372: Fix query issues with & refactor API select
thatmattlove Jul 19, 2021
64e6dcb
#6372: Improve form styling
thatmattlove Jul 19, 2021
5ec0ad6
#6372: Integrate changes from c14b546 to IP ranges form
thatmattlove Jul 19, 2021
91246b0
Add icons to home stat cards
thatmattlove Jul 20, 2021
2b9326d
#6372: Improve search filter dropdown styles
thatmattlove Jul 20, 2021
07f34c2
#6372: Migrate away from form-floating field styles
thatmattlove Jul 20, 2021
09066a4
#6372: Fix regression from 1661d1f causing API select query delays
thatmattlove Jul 20, 2021
f671b7e
#6372: Improve form field styles
thatmattlove Jul 20, 2021
fa617c7
Update sidebar footer links
jeremystretch Jul 20, 2021
cc5ea61
Add top & bottom banners, maintenance notice
jeremystretch Jul 20, 2021
d938b66
Add missing nav menu link for rack reservations
jeremystretch Jul 20, 2021
856956a
Standardize object breadcrumbs
jeremystretch Jul 20, 2021
b59c1c6
Restore missing created/updated times for object views
jeremystretch Jul 20, 2021
ba3552b
Tweak form widths
jeremystretch Jul 20, 2021
a5dda07
Standardize button colors
jeremystretch Jul 20, 2021
328092f
Right-align form field labels
jeremystretch Jul 20, 2021
30f4eb8
Shrink circuit termination buttons; linkify far end termination
jeremystretch Jul 20, 2021
3f4e3f5
Fix device type buttons
jeremystretch Jul 20, 2021
e4c668c
Split bulk edit content into tabs
jeremystretch Jul 20, 2021
c0bf157
Layout improvements
jeremystretch Jul 20, 2021
7eef726
Fix filtering for platforms, tenant groups
jeremystretch Jul 20, 2021
dd58ef1
Use 'brief=true' query parameter on API calls from API-backed select …
thatmattlove Jul 20, 2021
74e0d03
Fix breadcrumbs display for object changes
jeremystretch Jul 20, 2021
b3909e6
Add help text for custom links
jeremystretch Jul 20, 2021
4c31b61
Fix form layout for services
jeremystretch Jul 20, 2021
803f9b6
Merge branch 'develop' into feature
jeremystretch Jul 20, 2021
5e1156a
Use display field for all API-backed select options
thatmattlove Jul 20, 2021
f2f9c92
Fix row header
jeremystretch Jul 21, 2021
347ea4c
Tweak object list sizing, alignment
jeremystretch Jul 21, 2021
ebe7779
Use button role names instead of color shades
jeremystretch Jul 21, 2021
d421383
Use shaded tabs
jeremystretch Jul 21, 2021
19eafef
General UI cleanup
jeremystretch Jul 21, 2021
a9930bd
Optimize display of ConfigContext assigned objects
jeremystretch Jul 21, 2021
7be6848
Introduce an inclusion template for object comments
jeremystretch Jul 21, 2021
ae4f4b0
Minor theme improvements
thatmattlove Jul 21, 2021
108305a
Merge pull request #6779 from netbox-community/jstretch-ui-work
jeremystretch Jul 22, 2021
03b20b0
Shade background of home view
jeremystretch Jul 22, 2021
6b09c13
Refactor navigation menu
jeremystretch Jul 22, 2021
3f0b355
Fix typo
jeremystretch Jul 22, 2021
a0b17e1
Clean up nav menu template
jeremystretch Jul 22, 2021
adda8c4
Tweak menu items order
jeremystretch Jul 22, 2021
081054e
Add missing plugin content injection tags
jeremystretch Jul 22, 2021
309247d
Resize logo
jeremystretch Jul 22, 2021
7bfc66e
Fix help button height on object edit forms
jeremystretch Jul 22, 2021
8447992
Shrink & center form section titles
jeremystretch Jul 22, 2021
8e7bcd9
Update release notes for v3.0
jeremystretch Jul 22, 2021
53c29b6
Prep for v3.0-beta1
jeremystretch Jul 22, 2021
8898d3b
Update installation docs
jeremystretch Jul 22, 2021
407f056
Merge pull request #6786 from netbox-community/nav-menu-plugins
jeremystretch Jul 23, 2021
878288f
Merge branch 'develop' into feature
jeremystretch Jul 23, 2021
cb804eb
Release v3.0-beta1
jeremystretch Jul 23, 2021
0572d03
Migrate from ParcelJS to esbuild for UI bundling
thatmattlove Jul 24, 2021
7d5f647
#6797: Improve home page shading
thatmattlove Jul 24, 2021
5ba053a
#6797: Fix duplicate ID on searchbar fields
thatmattlove Jul 24, 2021
7b3d285
#6797: Fix alert coloring in dark mode
thatmattlove Jul 24, 2021
a60e8d3
#6797: Fix Safari anchor element styling issue
thatmattlove Jul 24, 2021
05cfdd0
#6797: Fix search result layout
thatmattlove Jul 24, 2021
bf2d535
Fix incorrect rack elevation file name regression from 0572d03
thatmattlove Jul 24, 2021
189e733
#6797: Fix color flashing when server mode doesn't match select mode …
thatmattlove Jul 24, 2021
0479d5a
#6797: Improve toast styles
thatmattlove Jul 25, 2021
4919126
#6797: Fix incorrect color select label color
thatmattlove Jul 25, 2021
e1cc00a
#6797: Fix <small/> element font-size
thatmattlove Jul 25, 2021
4489e13
#6797: Fix toast header style
thatmattlove Jul 25, 2021
0b80d85
#6797: Fix API select styles
thatmattlove Jul 25, 2021
51c1f4b
#6797: Make default border-radius less rounded
thatmattlove Jul 25, 2021
fc01bed
Fixes #6811: Fix exception when editing users
jeremystretch Jul 26, 2021
2d32aeb
Migrate to collapsed sidebar layout
thatmattlove Jul 26, 2021
5a8835f
Merge branch 'feature' into feature-sidebar
thatmattlove Jul 26, 2021
c7e0abc
Merge v2.11.10
jeremystretch Jul 28, 2021
33d40d4
#6797: Improve utilization graph display for small values
jeremystretch Jul 28, 2021
2e7d912
#6797: Add cable type, length to SVG trace
jeremystretch Jul 29, 2021
4c3f584
Fix trace component borders
jeremystretch Jul 29, 2021
52c4d54
Clean up cable trace view
jeremystretch Jul 29, 2021
f6746c7
Clean up cable connection form
jeremystretch Jul 29, 2021
c323105
Fixes #6827: Restore circuit termination connection dropdown
jeremystretch Jul 29, 2021
22d160b
Fix display of circuit termination provider network
jeremystretch Jul 29, 2021
81e1b74
#6834: Add title, favicon to GraphiQL view
jeremystretch Jul 29, 2021
744f47c
Fixes #6846: Form-driven REST API calls should use brief mode
jeremystretch Jul 29, 2021
689f67b
#6834: Add favicon to REST API web UI
jeremystretch Jul 29, 2021
d082442
Update REST API web UI title
jeremystretch Jul 29, 2021
cdf8d91
#6797: Fit device type images to available space
jeremystretch Jul 29, 2021
3752cb3
#6797: Implement new sidebar
thatmattlove Jul 30, 2021
007d660
Merge branch 'feature-sidebar' into feature
thatmattlove Jul 30, 2021
7aa89c2
#6797: Fix new sidenav styles
thatmattlove Jul 30, 2021
d18c83b
#6828: Fix various mobile UI issues
thatmattlove Jul 30, 2021
5463fa7
Closes #6808: Determine option disabled status via disabled-indicator…
thatmattlove Jul 30, 2021
772c76e
#6797: Don't show depth indicator in API select placeholder
thatmattlove Jul 30, 2021
5413263
#6797: Properly update API select query parameters when values alread…
thatmattlove Jul 30, 2021
3ba122a
Merge feature
jeremystretch Jul 30, 2021
9fa2acf
Merge pull request #6847 from netbox-community/6834-graphiql-ui
jeremystretch Jul 30, 2021
80836c7
Fix navigation_menu typing & dataclass property defaults
thatmattlove Aug 1, 2021
08ed545
Closes #6855: Bundle and locally serve GraphiQL JS/CSS
thatmattlove Aug 1, 2021
374cf14
#6797: Fix login page layout issue
thatmattlove Aug 1, 2021
b86edd4
#6797: Improve sidenav parent link color
thatmattlove Aug 1, 2021
2613722
#6797: Fix sidenav jumpy/glitchy behavior on page reload when pinned
thatmattlove Aug 1, 2021
c3a75d9
#6797: Improve sidenav state handling before load
thatmattlove Aug 1, 2021
9cf560c
#6797: Improve table highlight, toast, and alert styling
thatmattlove Aug 1, 2021
8e3ab8d
#6797: Improve global bg/color transition
thatmattlove Aug 1, 2021
0b09365
#6797: Improve form error/django messages handling
thatmattlove Aug 1, 2021
863048c
Deprecate collapsible advanced search and re-implement field-based fi…
thatmattlove Aug 2, 2021
1de46f5
Various styling improvements
thatmattlove Aug 2, 2021
afc8d5b
Fix PEP8 formatting error
thatmattlove Aug 2, 2021
06c730f
Merge branch 'feature' into feature-object-filter
thatmattlove Aug 3, 2021
8bdfa34
Merge branch 'feature-object-filter' into feature
thatmattlove Aug 3, 2021
0df67db
Add ip_addresses relation on InterfaceType, VMInterfaceType
jeremystretch Aug 3, 2021
58862e1
Closes #6863: Add search fields back to filter forms
thatmattlove Aug 3, 2021
8ad9587
Add image_attachments to Device, Location, Rack, Site
jeremystretch Aug 3, 2021
735286d
Add vlan_groups to Region, SiteGroup, Site, Location, Rack, ClusterGr…
jeremystretch Aug 3, 2021
53e21ce
#6797: Improve global search styles
thatmattlove Aug 3, 2021
e8ba4b0
#6797: Improve controls & custom link styling
thatmattlove Aug 3, 2021
ae28df8
#6797: Place custom links below native controls
thatmattlove Aug 3, 2021
c416fce
Refactor base Graphene object types
jeremystretch Aug 3, 2021
ea86321
Add journal_entries to Graphene object types for all primary models
jeremystretch Aug 3, 2021
1518a46
Rename base Graphene types to match base models
jeremystretch Aug 3, 2021
6842879
#6797: Improve object view styling & responsiveness
thatmattlove Aug 3, 2021
88d2441
Add changelog GraphQL relation for changelogged models
jeremystretch Aug 3, 2021
cc26bc4
Changelog for #6829
jeremystretch Aug 3, 2021
f7ee5e8
Fix button class in test view after naming change in e8ba4b0
thatmattlove Aug 3, 2021
051abc0
Fix bulk_import button class in test view after naming change in e8ba4b0
thatmattlove Aug 3, 2021
1b61281
Merge branch 'feature' into 6829-graphql-reverse-relations
jeremystretch Aug 3, 2021
c411d2a
Merge pull request #6873 from netbox-community/6829-graphql-reverse-r…
jeremystretch Aug 3, 2021
11836cd
Fixes #6871: Support dynamic tag types in GraphQL API
jeremystretch Aug 3, 2021
2debeb7
#6797: Fix empty filter panels
thatmattlove Aug 4, 2021
0bf3959
#6797: Fix object list layout when there is no filter form
thatmattlove Aug 4, 2021
0cf9be2
Remove deprecated advanced search template
thatmattlove Aug 4, 2021
582b69d
#6797: Improve object edit form field layout
thatmattlove Aug 4, 2021
57dc4c2
Fixes #6832: Support config context rendering under GraphQL API
jeremystretch Aug 4, 2021
0ea9c65
Add common Bootstrap components to window so they can be consumed by …
thatmattlove Aug 5, 2021
da67a35
#6797: Automatically collapse inactive sections in the sidenav
thatmattlove Aug 5, 2021
7608ee8
#6797: Fix initial sidenav handling on smaller screens
thatmattlove Aug 5, 2021
31cd689
#6797: Fix search result layout on small screens when there are no re…
thatmattlove Aug 5, 2021
79f726e
#6797: Fix various mobile layout issues
thatmattlove Aug 5, 2021
42b9612
Fixes #6894: Fix available IP generation for prefix assigned to a VRF
jeremystretch Aug 5, 2021
51d1b6e
Fixes #6901: Correct example REST API request
jeremystretch Aug 6, 2021
34aa231
Closes #6899: Add filterset tests for Token
jeremystretch Aug 6, 2021
d0fbbbf
Merge branch 'develop' into feature
jeremystretch Aug 6, 2021
63f4d81
Remove errant buttons block from cable view
jeremystretch Aug 6, 2021
6ce8dd5
Closes #6823: Improve table configuration form layout
jeremystretch Aug 6, 2021
939bcfe
Improve object list layout (#6907)
jeremystretch Aug 6, 2021
65659fb
Badges use secondary BG by default; add custom option
jeremystretch Aug 6, 2021
8653b0f
Tabify object add/edit views
jeremystretch Aug 6, 2021
cf381d7
Use red border for confirmation dialog
jeremystretch Aug 6, 2021
84ab233
Fix wrapping of table controls on device interfaces view
jeremystretch Aug 6, 2021
ef057b3
Fix footer fonts
jeremystretch Aug 6, 2021
fe54ace
v3.0 nav menu tweaks (#6906)
jeremystretch Aug 6, 2021
a312311
Improve sidenav link styles
thatmattlove Aug 7, 2021
6845fb0
Improve object view on small screens
thatmattlove Aug 7, 2021
c7ebad0
Closes #6931: Include applied filters on object list view
jeremystretch Aug 10, 2021
b8e387c
#6912: Remove absolute publicPath reference
jeremystretch Aug 10, 2021
6d27e11
#6934: Include child IP ranges under prefix view
jeremystretch Aug 10, 2021
736da4b
Merge branch 'develop' into feature
jeremystretch Aug 11, 2021
aed07a8
Merge v2.11.11
jeremystretch Aug 12, 2021
1b074d2
Merge pull request #6933 from netbox-community/6912-static-resources
jeremystretch Aug 12, 2021
dcd49fd
Fixes #6953: Remove change log tab from non-applicable object views
jeremystretch Aug 13, 2021
a72e23e
Fix custom script layout
jeremystretch Aug 13, 2021
e1fbe89
Reduce form text size
jeremystretch Aug 13, 2021
5365c86
#6934: Account for child IP ranges when calculating prefix utilization
jeremystretch Aug 13, 2021
7727ec9
#6934: Correct prefix utilization and available IP reporting to accou…
jeremystretch Aug 13, 2021
0609bca
Reduce base font size
jeremystretch Aug 13, 2021
b784705
Tweak nav submenu heading color
jeremystretch Aug 13, 2021
a6150f2
Remove select widget hover effect
jeremystretch Aug 13, 2021
9f59f99
Set max width for object edit forms
jeremystretch Aug 13, 2021
90a820e
Add "clear all" option for applied filters
jeremystretch Aug 13, 2021
e8fb86a
Release v3.0-beta2
jeremystretch Aug 13, 2021
ac6b1bf
Fixes #6977: Truncate global search dropdown on small screens
jeremystretch Aug 17, 2021
6d1b981
Closes #6975: Reduce footer height
jeremystretch Aug 17, 2021
664b02d
Fixes #6856: Properly handle existence of `next` property in API sele…
thatmattlove Aug 17, 2021
be3b4f0
#6856: Remove ?limit=0 from API queries
jeremystretch Aug 18, 2021
bd47d08
Changelog for #6856
jeremystretch Aug 18, 2021
e4a162b
Improve prefix hierarchy/depth styling
thatmattlove Aug 18, 2021
9b3498d
Add visibility toggle for object depth indicators
thatmattlove Aug 18, 2021
643939e
Rebundle scripts after rebase
thatmattlove Aug 18, 2021
8199bb6
Fixes: #6982: Remove inherited background-color on disabled options
thatmattlove Aug 18, 2021
09d745d
Fixes #6976: Improve handling of printing layouts/styling
thatmattlove Aug 18, 2021
9a8d33e
Fixes #6979: Don't show 'Create & Add Another' button when editing/cr…
thatmattlove Aug 18, 2021
a71604e
Closes #6881: Wrap interface IP addresses in a badge that displays st…
thatmattlove Aug 19, 2021
9e1d2da
Fixes #7001: Focus the main content container when the page loads
thatmattlove Aug 19, 2021
9d46987
#6881: Improve device IP address styles
thatmattlove Aug 20, 2021
84db2e9
Fixes #6998: Properly handle merge and replace actions in API Select
thatmattlove Aug 20, 2021
517c0e2
Fixes #6996: Make search bar full width on small screens
thatmattlove Aug 20, 2021
a7cb75d
Fixes #6999: Properly align controls on sm and md breakpoints
thatmattlove Aug 20, 2021
4dbb18d
Update change log
jeremystretch Aug 20, 2021
87dad41
Tweak logo size on mobile
jeremystretch Aug 20, 2021
12f3c25
Fixes #6966: Migrate to stock fonts
thatmattlove Aug 20, 2021
a3d5e04
Fixes #6990: Fix query param and query filter handling in API select
thatmattlove Aug 20, 2021
499005f
Merge branch 'develop' into feature
jeremystretch Aug 23, 2021
542e017
Merge branch 'develop' into feature
jeremystretch Aug 23, 2021
e890944
Use badge template tag for numeric values
jeremystretch Aug 23, 2021
2a33811
Remove unused aggregate list template
jeremystretch Aug 23, 2021
82a209b
Remove screenshots from docs
thatmattlove Aug 24, 2021
a0ba838
Fix eslint misconfiguration and corresponding errors
thatmattlove Aug 24, 2021
c221b9b
Add UI development docs & update front-end scripts
thatmattlove Aug 24, 2021
1d0c72f
Add UI checks to pre-commit and CI
thatmattlove Aug 24, 2021
9d0e6f0
Exclude node_modules from CI build
thatmattlove Aug 24, 2021
1c6fdea
Improve docs styling
thatmattlove Aug 24, 2021
b63c838
Merge pull request #7024 from netbox-community/feature-precommit-ui
jeremystretch Aug 24, 2021
545474a
Clean up object edit forms
jeremystretch Aug 24, 2021
52603c0
Remove unnecessary component creation templates
jeremystretch Aug 24, 2021
d11ea67
Update design of user profile section
jeremystretch Aug 24, 2021
85b61c0
Bump django-timezone-field to 4.2.1
jeremystretch Aug 24, 2021
bd681f5
Clean up object filter forms
jeremystretch Aug 24, 2021
2e90f22
Clean up TypeScript file structure, fix missing VLAN tag visibility l…
thatmattlove Aug 24, 2021
a02ba5f
Fix incorrect classes in device config & status templates
thatmattlove Aug 24, 2021
125a562
Fix RegionFilterForm model
jeremystretch Aug 25, 2021
d184ed4
Enable filtering device components by location
jeremystretch Aug 25, 2021
6a4ed09
Merge pull request #7031 from netbox-community/object-filter-forms
jeremystretch Aug 25, 2021
2fb1d38
Omit node 15.x from CI builds
jeremystretch Aug 25, 2021
99cba25
Misc UI cleanup ahead of v3.0 release
jeremystretch Aug 25, 2021
66619cd
Clean up object edit forms
jeremystretch Aug 25, 2021
58203db
List device/VM component names first in tables by default
jeremystretch Aug 25, 2021
0d61dcb
Fixes #7034: Update VLAN Scope parent selectors and run change handle…
thatmattlove Aug 26, 2021
94b8d36
Introduce ContentTypesColumn for custom field and webhook tables
jeremystretch Aug 26, 2021
3203db0
UI cleanup
jeremystretch Aug 26, 2021
9813f3b
Clean up custom script templates
jeremystretch Aug 26, 2021
e5643fb
JS & changelog updates for #7034
jeremystretch Aug 27, 2021
1a47815
Merge pull request #7050 from netbox-community/7034-vlangroup-scope-s…
jeremystretch Aug 27, 2021
25d1fe2
Improve APISelect query parameter handling (#7040)
thatmattlove Aug 30, 2021
556efcc
Fixes #7045: Fix navigation menu rendering under Chrome
jeremystretch Aug 30, 2021
f5f7494
Merge branch 'develop' into feature
jeremystretch Aug 30, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ body:
label: Python version
description: What version of Python are you currently running?
options:
- 3.6
- 3.7
- 3.8
- 3.9
Expand Down
20 changes: 18 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
python-version: [3.7, 3.8, 3.9]
node-version: [14.x]
services:
redis:
image: redis
Expand Down Expand Up @@ -33,15 +34,30 @@ 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 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
yarn --cwd netbox/project-static

- 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: Run tests
run: coverage run --source="netbox/" netbox/manage.py test netbox/
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
*.pyc
*.swp
node_modules
npm-debug.log*
yarn-debug.log*
yarn-error.log*
/netbox/project-static/.cache
/netbox/project-static/docs/*
!/netbox/project-static/docs/.info
/netbox/netbox/configuration.py
/netbox/netbox/ldap_config.py
/netbox/project-static/.cache
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,13 @@ 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](docs/media/home-light.png "Main Page")

![Screenshot of rack elevation](docs/media/screenshot2.png "Rack elevation")
![Screenshot of Rack Elevation](docs/media/rack-dark.png "Rack Elevation")

![Screenshot of prefix hierarchy](docs/media/screenshot3.png "Prefix hierarchy")
![Screenshot of Prefix Hierarchy](docs/media/prefixes-light.png "Prefix Hierarchy")

![Screenshot of Cable Tracing](docs/media/cable-dark.png "Cable Tracing")

### Related projects

Expand Down
24 changes: 20 additions & 4 deletions base_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -66,6 +74,14 @@ 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

# Library for manipulating IP prefixes and addresses
# https://github.com/drkjam/netaddr
netaddr
Expand Down
9 changes: 9 additions & 0 deletions contrib/netbox-housekeeping.sh
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion contrib/netbox-rq.service
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
28 changes: 0 additions & 28 deletions docs/additional-features/caching.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/additional-features/webhooks.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Webhooks

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.
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 managed under Logging > Webhooks.

!!! warning
Webhooks support the inclusion of user-submitted code to generate custom headers and payloads, which may pose security risks under certain conditions. Only grant permission to create or modify webhooks to trusted users.
Expand Down
10 changes: 10 additions & 0 deletions docs/administration/housekeeping.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 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/optional-settings.md#changelog_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 copied into your cron scheduler's daily jobs directory (e.g. `/etc/cron.daily`) or referenced directly within the cron configuration file.

The `housekeeping` command can also be run manually at any time: Running the command outside of scheduled execution times will not interfere with its operation.
4 changes: 2 additions & 2 deletions docs/administration/netbox-shell.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
```

Expand Down Expand Up @@ -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})
```
Expand Down
50 changes: 29 additions & 21 deletions docs/configuration/optional-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,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
Expand Down Expand Up @@ -96,6 +88,22 @@ CORS_ORIGIN_WHITELIST = [

---

## 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': (
Validator1,
Validator2,
Validator3
)
}
```

---

## DEBUG

Default: False
Expand Down Expand Up @@ -144,7 +152,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
Expand Down Expand Up @@ -195,6 +203,14 @@ EXEMPT_VIEW_PERMISSIONS = ['*']

---

## GRAPHQL_ENABLED

Default: True

Setting this to False will disable the GraphQL API.

---

## HTTP_PROXIES

Default: None
Expand Down Expand Up @@ -271,7 +287,7 @@ Note that enabling this setting causes NetBox to update a user's session in the

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.

---

Expand Down Expand Up @@ -482,19 +498,11 @@ When remote user authentication is in use, this is the name of the HTTP header w

---

## 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).
Expand All @@ -505,7 +513,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.

---

Expand All @@ -521,7 +529,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.

---

Expand Down
1 change: 1 addition & 0 deletions docs/core-functionality/ipam.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

---

{!docs/models/ipam/iprange.md!}
{!docs/models/ipam/ipaddress.md!}

---
Expand Down
8 changes: 0 additions & 8 deletions docs/core-functionality/secrets.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Within the database, custom fields are stored as JSON data directly alongside ea

## Creating Custom Fields

Custom fields must be created through the admin UI under Extras > Custom Fields. NetBox supports six types of custom field:
Custom fields may be created by navigating to Customization > Custom Fields. NetBox supports six types of custom field:

* Text: Free-form text (up to 255 characters)
* Integer: A whole number (positive or negative)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 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 allow users to display arbitrary hyperlinks to external content within NetBox object views. These are helpful for cross-referencing related records in systems outside 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.
Custom links are created by navigating to Customization > Custom Links. 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:

Expand All @@ -15,7 +15,7 @@ When viewing a device named Router4, this link would render as:
<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.
Custom links appear as buttons in the top right corner of the page. Numeric weighting can be used to influence the ordering of links.

!!! warning
Custom links rely on user-created code to generate arbitrary HTML output, which may be dangerous. Only grant permission to create or modify custom links to trusted users.
Expand Down
Loading