nautobot 2.2.9__py3-none-any.whl → 2.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nautobot might be problematic. Click here for more details.

Files changed (697) hide show
  1. nautobot/apps/forms.py +4 -0
  2. nautobot/apps/models.py +10 -1
  3. nautobot/circuits/__init__.py +0 -1
  4. nautobot/circuits/apps.py +1 -0
  5. nautobot/circuits/factory.py +15 -3
  6. nautobot/circuits/filters.py +13 -0
  7. nautobot/circuits/forms.py +13 -0
  8. nautobot/circuits/migrations/0021_alter_circuit_status_alter_circuittermination__path.py +32 -0
  9. nautobot/circuits/migrations/0022_circuittermination_cloud_network.py +25 -0
  10. nautobot/circuits/models.py +16 -3
  11. nautobot/circuits/tables.py +16 -2
  12. nautobot/circuits/templates/circuits/circuittermination_create.html +10 -2
  13. nautobot/circuits/templates/circuits/circuittermination_retrieve.html +6 -0
  14. nautobot/circuits/templates/circuits/inc/circuit_termination.html +6 -1
  15. nautobot/circuits/tests/test_api.py +7 -5
  16. nautobot/circuits/tests/test_filters.py +12 -5
  17. nautobot/circuits/tests/test_models.py +33 -2
  18. nautobot/circuits/views.py +2 -3
  19. nautobot/cloud/__init__.py +0 -0
  20. nautobot/cloud/api/__init__.py +0 -0
  21. nautobot/cloud/api/serializers.py +54 -0
  22. nautobot/cloud/api/urls.py +16 -0
  23. nautobot/cloud/api/views.py +48 -0
  24. nautobot/cloud/apps.py +13 -0
  25. nautobot/cloud/factory.py +113 -0
  26. nautobot/cloud/filters.py +187 -0
  27. nautobot/cloud/forms.py +339 -0
  28. nautobot/cloud/homepage.py +43 -0
  29. nautobot/cloud/migrations/0001_initial.py +304 -0
  30. nautobot/cloud/migrations/__init__.py +0 -0
  31. nautobot/cloud/models.py +246 -0
  32. nautobot/cloud/navigation.py +85 -0
  33. nautobot/cloud/tables.py +157 -0
  34. nautobot/cloud/templates/cloud/cloudaccount_retrieve.html +43 -0
  35. nautobot/cloud/templates/cloud/cloudnetwork_retrieve.html +122 -0
  36. nautobot/cloud/templates/cloud/cloudnetwork_update.html +33 -0
  37. nautobot/cloud/templates/cloud/cloudresourcetype_retrieve.html +111 -0
  38. nautobot/cloud/templates/cloud/cloudservice_retrieve.html +69 -0
  39. nautobot/cloud/templates/cloud/cloudservice_update.html +25 -0
  40. nautobot/cloud/tests/__init__.py +0 -0
  41. nautobot/cloud/tests/test_api.py +248 -0
  42. nautobot/cloud/tests/test_filters.py +125 -0
  43. nautobot/cloud/tests/test_models.py +43 -0
  44. nautobot/cloud/tests/test_views.py +153 -0
  45. nautobot/cloud/urls.py +14 -0
  46. nautobot/cloud/views.py +181 -0
  47. nautobot/core/__init__.py +0 -3
  48. nautobot/core/api/metadata.py +1 -0
  49. nautobot/core/api/parsers.py +7 -1
  50. nautobot/core/api/urls.py +1 -0
  51. nautobot/core/api/utils.py +1 -0
  52. nautobot/core/api/views.py +4 -0
  53. nautobot/core/apps/__init__.py +6 -3
  54. nautobot/core/constants.py +8 -0
  55. nautobot/core/factory.py +32 -1
  56. nautobot/core/filters.py +95 -13
  57. nautobot/core/forms/fields.py +10 -4
  58. nautobot/core/forms/forms.py +11 -3
  59. nautobot/core/forms/widgets.py +18 -1
  60. nautobot/core/graphql/schema.py +26 -4
  61. nautobot/core/jobs/__init__.py +16 -2
  62. nautobot/core/jobs/cleanup.py +100 -0
  63. nautobot/core/jobs/groups.py +38 -0
  64. nautobot/core/management/commands/generate_test_data.py +116 -3
  65. nautobot/core/models/__init__.py +34 -9
  66. nautobot/core/models/generics.py +19 -3
  67. nautobot/core/models/name_color_content_types.py +7 -28
  68. nautobot/core/models/querysets.py +4 -3
  69. nautobot/core/models/tree_queries.py +1 -1
  70. nautobot/core/models/utils.py +21 -5
  71. nautobot/core/settings.py +2 -17
  72. nautobot/core/settings.yaml +34 -13
  73. nautobot/core/settings_funcs.py +103 -0
  74. nautobot/core/tables.py +130 -56
  75. nautobot/core/templates/admin/search_form.html +1 -1
  76. nautobot/core/templates/buttons/add.html +11 -3
  77. nautobot/core/templates/buttons/consolidated_bulk_action_buttons.html +13 -0
  78. nautobot/core/templates/buttons/consolidated_detail_view_action_buttons.html +13 -0
  79. nautobot/core/templates/buttons/export.html +101 -53
  80. nautobot/core/templates/buttons/job_import.html +11 -3
  81. nautobot/core/templates/generic/object_bulk_destroy.html +3 -1
  82. nautobot/core/templates/generic/object_bulk_update.html +3 -1
  83. nautobot/core/templates/generic/object_changelog.html +0 -9
  84. nautobot/core/templates/generic/object_list.html +156 -17
  85. nautobot/core/templates/generic/object_retrieve.html +80 -16
  86. nautobot/core/templates/inc/extras_features_edit_form_fields.html +8 -0
  87. nautobot/core/templates/inc/javascript.html +2 -0
  88. nautobot/core/templates/inc/media.html +2 -2
  89. nautobot/core/templates/inc/nav_menu.html +1 -0
  90. nautobot/core/templates/inc/paginator.html +7 -7
  91. nautobot/core/templates/inc/search_panel.html +2 -2
  92. nautobot/core/templates/inc/table.html +2 -2
  93. nautobot/core/templates/nautobot_config.py.j2 +13 -8
  94. nautobot/core/templates/utilities/templatetags/dynamic_group_assignment_modal.html +37 -0
  95. nautobot/core/templates/utilities/templatetags/filter_form_modal.html +2 -2
  96. nautobot/core/templates/utilities/templatetags/saved_view_modal.html +38 -0
  97. nautobot/core/templates/utilities/theme_preview.html +25 -8
  98. nautobot/core/templates/utilities/worker_status.html +152 -0
  99. nautobot/core/templatetags/buttons.py +335 -38
  100. nautobot/core/templatetags/form_helpers.py +1 -1
  101. nautobot/core/templatetags/helpers.py +181 -11
  102. nautobot/core/testing/api.py +5 -4
  103. nautobot/core/testing/filters.py +63 -14
  104. nautobot/core/testing/mixins.py +46 -0
  105. nautobot/core/testing/models.py +22 -0
  106. nautobot/core/testing/schema.py +4 -8
  107. nautobot/core/testing/views.py +31 -14
  108. nautobot/core/tests/integration/test_import_objects_ui.py +1 -0
  109. nautobot/core/tests/integration/test_swagger.py +1 -1
  110. nautobot/core/tests/nautobot_config.py +0 -1
  111. nautobot/core/tests/runner.py +2 -2
  112. nautobot/core/tests/test_api.py +1 -0
  113. nautobot/core/tests/test_authentication.py +7 -2
  114. nautobot/core/tests/test_filters.py +11 -9
  115. nautobot/core/tests/test_forms.py +9 -0
  116. nautobot/core/tests/test_graphql.py +27 -16
  117. nautobot/core/tests/test_jobs.py +122 -0
  118. nautobot/core/tests/test_tables.py +3 -1
  119. nautobot/core/tests/test_templatetags_helpers.py +12 -5
  120. nautobot/core/tests/test_utils.py +31 -20
  121. nautobot/core/tests/test_views.py +6 -6
  122. nautobot/core/urls.py +8 -3
  123. nautobot/core/utils/deprecation.py +29 -0
  124. nautobot/core/utils/filtering.py +12 -9
  125. nautobot/core/utils/lookup.py +37 -2
  126. nautobot/core/utils/requests.py +4 -1
  127. nautobot/core/views/__init__.py +137 -24
  128. nautobot/core/views/generic.py +119 -67
  129. nautobot/core/views/mixins.py +105 -36
  130. nautobot/core/views/paginator.py +9 -3
  131. nautobot/core/views/renderers.py +121 -56
  132. nautobot/core/views/utils.py +81 -1
  133. nautobot/dcim/__init__.py +0 -1
  134. nautobot/dcim/api/serializers.py +180 -44
  135. nautobot/dcim/api/urls.py +7 -3
  136. nautobot/dcim/api/views.py +53 -7
  137. nautobot/dcim/apps.py +3 -0
  138. nautobot/dcim/choices.py +25 -0
  139. nautobot/dcim/constants.py +7 -0
  140. nautobot/dcim/factory.py +252 -18
  141. nautobot/dcim/filters/__init__.py +373 -193
  142. nautobot/dcim/filters/mixins.py +274 -1
  143. nautobot/dcim/forms.py +834 -121
  144. nautobot/dcim/graphql/types.py +2 -2
  145. nautobot/dcim/homepage.py +1 -1
  146. nautobot/dcim/migrations/0059_add_role_field_to_interface_models.py +27 -0
  147. nautobot/dcim/migrations/0060_alter_cable_status_alter_consoleport__path_and_more.py +303 -0
  148. nautobot/dcim/migrations/0061_module_models.py +862 -0
  149. nautobot/dcim/migrations/0062_module_data_migration.py +25 -0
  150. nautobot/dcim/models/__init__.py +8 -0
  151. nautobot/dcim/models/cables.py +15 -0
  152. nautobot/dcim/models/device_component_templates.py +207 -53
  153. nautobot/dcim/models/device_components.py +275 -99
  154. nautobot/dcim/models/devices.py +468 -13
  155. nautobot/dcim/models/racks.py +0 -1
  156. nautobot/dcim/navigation.py +47 -0
  157. nautobot/dcim/signals.py +3 -3
  158. nautobot/dcim/tables/__init__.py +35 -23
  159. nautobot/dcim/tables/devices.py +229 -43
  160. nautobot/dcim/tables/devicetypes.py +65 -9
  161. nautobot/dcim/tables/racks.py +5 -1
  162. nautobot/dcim/tables/template_code.py +46 -26
  163. nautobot/dcim/templates/dcim/cable_connect.html +76 -3
  164. nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -5
  165. nautobot/dcim/templates/dcim/device/base.html +14 -6
  166. nautobot/dcim/templates/dcim/device/consoleports.html +2 -3
  167. nautobot/dcim/templates/dcim/device/consoleserverports.html +2 -3
  168. nautobot/dcim/templates/dcim/device/devicebays.html +6 -7
  169. nautobot/dcim/templates/dcim/device/frontports.html +2 -3
  170. nautobot/dcim/templates/dcim/device/interfaces.html +2 -3
  171. nautobot/dcim/templates/dcim/device/inventory.html +2 -3
  172. nautobot/dcim/templates/dcim/device/modulebays.html +49 -0
  173. nautobot/dcim/templates/dcim/device/poweroutlets.html +2 -3
  174. nautobot/dcim/templates/dcim/device/powerports.html +2 -3
  175. nautobot/dcim/templates/dcim/device/rearports.html +2 -3
  176. nautobot/dcim/templates/dcim/device.html +45 -1
  177. nautobot/dcim/templates/dcim/device_component.html +13 -5
  178. nautobot/dcim/templates/dcim/device_list.html +2 -1
  179. nautobot/dcim/templates/dcim/devicetype.html +99 -98
  180. nautobot/dcim/templates/dcim/devicetype_list.html +8 -16
  181. nautobot/dcim/templates/dcim/inc/devicetype_component_table.html +1 -1
  182. nautobot/dcim/templates/dcim/inc/moduletype_component_table.html +39 -0
  183. nautobot/dcim/templates/dcim/interface.html +17 -2
  184. nautobot/dcim/templates/dcim/interface_connection_list.html +7 -5
  185. nautobot/dcim/templates/dcim/interface_edit.html +1 -0
  186. nautobot/dcim/templates/dcim/manufacturer.html +24 -0
  187. nautobot/dcim/templates/dcim/module/base.html +97 -0
  188. nautobot/dcim/templates/dcim/module_bulk_destroy.html +5 -0
  189. nautobot/dcim/templates/dcim/module_consoleports.html +53 -0
  190. nautobot/dcim/templates/dcim/module_consoleserverports.html +53 -0
  191. nautobot/dcim/templates/dcim/module_destroy.html +5 -0
  192. nautobot/dcim/templates/dcim/module_frontports.html +53 -0
  193. nautobot/dcim/templates/dcim/module_interfaces.html +57 -0
  194. nautobot/dcim/templates/dcim/module_list.html +20 -0
  195. nautobot/dcim/templates/dcim/module_modulebays.html +49 -0
  196. nautobot/dcim/templates/dcim/module_poweroutlets.html +53 -0
  197. nautobot/dcim/templates/dcim/module_powerports.html +53 -0
  198. nautobot/dcim/templates/dcim/module_rearports.html +53 -0
  199. nautobot/dcim/templates/dcim/module_retrieve.html +63 -0
  200. nautobot/dcim/templates/dcim/module_update.html +71 -0
  201. nautobot/dcim/templates/dcim/modulebay_bulk_destroy.html +5 -0
  202. nautobot/dcim/templates/dcim/modulebay_destroy.html +8 -0
  203. nautobot/dcim/templates/dcim/modulebay_retrieve.html +101 -0
  204. nautobot/dcim/templates/dcim/moduletype_list.html +11 -0
  205. nautobot/dcim/templates/dcim/moduletype_retrieve.html +159 -0
  206. nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -5
  207. nautobot/dcim/templates/dcim/softwareimagefile_retrieve.html +65 -19
  208. nautobot/dcim/tests/integration/test_cable_connect_form.py +4 -4
  209. nautobot/dcim/tests/test_api.py +693 -208
  210. nautobot/dcim/tests/test_filters.py +843 -217
  211. nautobot/dcim/tests/test_models.py +1072 -8
  212. nautobot/dcim/tests/test_views.py +1510 -341
  213. nautobot/dcim/urls.py +17 -2
  214. nautobot/dcim/utils.py +2 -3
  215. nautobot/dcim/views.py +1106 -116
  216. nautobot/extras/__init__.py +0 -1
  217. nautobot/extras/api/serializers.py +115 -3
  218. nautobot/extras/api/urls.py +12 -0
  219. nautobot/extras/api/views.py +66 -0
  220. nautobot/extras/apps.py +2 -2
  221. nautobot/extras/choices.py +43 -0
  222. nautobot/extras/context_managers.py +13 -8
  223. nautobot/extras/datasources/git.py +2 -0
  224. nautobot/extras/factory.py +460 -9
  225. nautobot/extras/filters/__init__.py +174 -3
  226. nautobot/extras/filters/mixins.py +46 -43
  227. nautobot/extras/forms/base.py +24 -5
  228. nautobot/extras/forms/forms.py +227 -8
  229. nautobot/extras/forms/mixins.py +93 -0
  230. nautobot/extras/graphql/types.py +23 -10
  231. nautobot/extras/homepage.py +14 -1
  232. nautobot/extras/management/__init__.py +1 -0
  233. nautobot/extras/management/commands/refresh_dynamic_group_member_caches.py +1 -16
  234. nautobot/extras/migrations/0021_customfield_changelog_data.py +1 -0
  235. nautobot/extras/migrations/0109_dynamicgroup_group_type_dynamicgroup_tags_and_more.py +108 -0
  236. nautobot/extras/migrations/0110_alter_configcontext_cluster_groups_and_more.py +111 -0
  237. nautobot/extras/migrations/0111_metadata.py +162 -0
  238. nautobot/extras/migrations/0112_dynamic_group_group_type_data_migration.py +28 -0
  239. nautobot/extras/migrations/0113_saved_views.py +77 -0
  240. nautobot/extras/models/__init__.py +15 -1
  241. nautobot/extras/models/change_logging.py +3 -3
  242. nautobot/extras/models/contacts.py +4 -0
  243. nautobot/extras/models/customfields.py +18 -3
  244. nautobot/extras/models/groups.py +389 -225
  245. nautobot/extras/models/jobs.py +6 -3
  246. nautobot/extras/models/metadata.py +441 -0
  247. nautobot/extras/models/mixins.py +72 -62
  248. nautobot/extras/models/models.py +118 -9
  249. nautobot/extras/models/relationships.py +9 -2
  250. nautobot/extras/models/tags.py +13 -2
  251. nautobot/extras/navigation.py +57 -0
  252. nautobot/extras/plugins/__init__.py +3 -1
  253. nautobot/extras/querysets.py +30 -66
  254. nautobot/extras/signals.py +95 -100
  255. nautobot/extras/tables.py +165 -12
  256. nautobot/extras/templates/extras/dynamicgroup.html +44 -15
  257. nautobot/extras/templates/extras/dynamicgroup_edit.html +2 -0
  258. nautobot/extras/templates/extras/job.html +1 -1
  259. nautobot/extras/templates/extras/jobresult.html +61 -74
  260. nautobot/extras/templates/extras/metadatatype_create.html +89 -0
  261. nautobot/extras/templates/extras/metadatatype_retrieve.html +67 -0
  262. nautobot/extras/templates/extras/object_dynamicgroups.html +7 -0
  263. nautobot/extras/templates/extras/objectchange_list.html +0 -12
  264. nautobot/extras/templates/extras/plugins_list.html +1 -3
  265. nautobot/extras/templates/extras/role_retrieve.html +48 -0
  266. nautobot/extras/templates/extras/staticgroupassociation_retrieve.html +20 -0
  267. nautobot/extras/tests/integration/test_customfields.py +1 -0
  268. nautobot/extras/tests/test_api.py +509 -23
  269. nautobot/extras/tests/test_changelog.py +20 -9
  270. nautobot/extras/tests/test_context_managers.py +22 -15
  271. nautobot/extras/tests/test_datasources.py +13 -1
  272. nautobot/extras/tests/test_dynamicgroups.py +201 -171
  273. nautobot/extras/tests/test_filters.py +211 -12
  274. nautobot/extras/tests/test_jobs.py +6 -6
  275. nautobot/extras/tests/test_models.py +501 -4
  276. nautobot/extras/tests/test_relationships.py +1 -0
  277. nautobot/extras/tests/test_views.py +565 -8
  278. nautobot/extras/tests/test_webhooks.py +1 -1
  279. nautobot/extras/urls.py +5 -0
  280. nautobot/extras/utils.py +51 -11
  281. nautobot/extras/views.py +542 -76
  282. nautobot/ipam/__init__.py +0 -1
  283. nautobot/ipam/apps.py +1 -0
  284. nautobot/ipam/factory.py +17 -19
  285. nautobot/ipam/filters.py +13 -0
  286. nautobot/ipam/forms.py +8 -4
  287. nautobot/ipam/graphql/types.py +2 -2
  288. nautobot/ipam/migrations/0047_alter_ipaddress_role_alter_ipaddress_status_and_more.py +59 -0
  289. nautobot/ipam/models.py +11 -8
  290. nautobot/ipam/querysets.py +1 -1
  291. nautobot/ipam/signals.py +4 -2
  292. nautobot/ipam/tables.py +5 -0
  293. nautobot/ipam/templates/ipam/ipaddress_interfaces.html +1 -1
  294. nautobot/ipam/templates/ipam/ipaddress_vm_interfaces.html +1 -1
  295. nautobot/ipam/templates/ipam/prefix.html +1 -0
  296. nautobot/ipam/tests/test_api.py +37 -18
  297. nautobot/ipam/tests/test_filters.py +26 -2
  298. nautobot/ipam/tests/test_models.py +6 -0
  299. nautobot/ipam/tests/test_querysets.py +1 -1
  300. nautobot/ipam/tests/test_views.py +3 -2
  301. nautobot/ipam/urls.py +2 -2
  302. nautobot/ipam/views.py +18 -26
  303. nautobot/project-static/css/base.css +20 -0
  304. nautobot/project-static/css/dark.css +11 -0
  305. nautobot/project-static/docs/404.html +892 -88
  306. nautobot/project-static/docs/apps/index.html +892 -88
  307. nautobot/project-static/docs/apps/nautobot-apps.html +892 -88
  308. nautobot/project-static/docs/assets/_mkdocstrings.css +5 -0
  309. nautobot/project-static/docs/assets/stylesheets/main.3cba04c6.min.css +1 -0
  310. nautobot/project-static/docs/assets/stylesheets/main.3cba04c6.min.css.map +1 -0
  311. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +919 -120
  312. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +904 -101
  313. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +1618 -903
  314. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +935 -144
  315. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +977 -188
  316. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +901 -99
  317. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +897 -93
  318. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +991 -193
  319. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +974 -131
  320. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +1078 -272
  321. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +1242 -334
  322. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +1727 -875
  323. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +1164 -381
  324. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +2088 -1374
  325. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +2246 -1422
  326. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +912 -111
  327. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +963 -163
  328. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1010 -223
  329. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +1913 -1277
  330. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +1846 -1102
  331. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +904 -101
  332. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +2331 -1699
  333. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +1802 -1024
  334. nautobot/project-static/docs/development/apps/api/configuration-view.html +892 -88
  335. nautobot/project-static/docs/development/apps/api/database-backend-config.html +892 -88
  336. nautobot/project-static/docs/development/apps/api/models/django-admin.html +892 -88
  337. nautobot/project-static/docs/development/apps/api/models/global-search.html +892 -88
  338. nautobot/project-static/docs/development/apps/api/models/graphql.html +892 -88
  339. nautobot/project-static/docs/development/apps/api/models/index.html +942 -90
  340. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +892 -88
  341. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +892 -88
  342. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +892 -88
  343. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +892 -88
  344. nautobot/project-static/docs/development/apps/api/platform-features/index.html +892 -88
  345. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +892 -88
  346. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +892 -88
  347. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +892 -88
  348. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +892 -88
  349. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +892 -88
  350. nautobot/project-static/docs/development/apps/api/prometheus.html +892 -88
  351. nautobot/project-static/docs/development/apps/api/setup.html +892 -88
  352. nautobot/project-static/docs/development/apps/api/testing.html +892 -88
  353. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +892 -88
  354. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +892 -88
  355. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +892 -88
  356. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +892 -88
  357. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +892 -88
  358. nautobot/project-static/docs/development/apps/api/views/base-template.html +892 -88
  359. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +892 -88
  360. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +892 -88
  361. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +892 -88
  362. nautobot/project-static/docs/development/apps/api/views/index.html +892 -88
  363. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +892 -88
  364. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +892 -88
  365. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +892 -88
  366. nautobot/project-static/docs/development/apps/api/views/notes.html +892 -88
  367. nautobot/project-static/docs/development/apps/api/views/rest-api.html +892 -88
  368. nautobot/project-static/docs/development/apps/api/views/urls.html +892 -88
  369. nautobot/project-static/docs/development/apps/index.html +892 -88
  370. nautobot/project-static/docs/development/apps/migration/code-updates.html +892 -88
  371. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +892 -88
  372. nautobot/project-static/docs/development/apps/migration/from-v1.html +892 -88
  373. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +892 -88
  374. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +892 -88
  375. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +892 -88
  376. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +892 -88
  377. nautobot/project-static/docs/development/apps/porting-from-netbox.html +892 -88
  378. nautobot/project-static/docs/development/core/application-registry.html +892 -88
  379. nautobot/project-static/docs/development/core/best-practices.html +893 -88
  380. nautobot/project-static/docs/development/core/bootstrap-ui.html +892 -88
  381. nautobot/project-static/docs/development/core/caching.html +892 -88
  382. nautobot/project-static/docs/development/core/controllers.html +892 -88
  383. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +892 -88
  384. nautobot/project-static/docs/development/core/generic-views.html +892 -88
  385. nautobot/project-static/docs/development/core/getting-started.html +892 -88
  386. nautobot/project-static/docs/development/core/homepage.html +892 -88
  387. nautobot/project-static/docs/development/core/index.html +892 -88
  388. nautobot/project-static/docs/development/core/model-checklist.html +901 -89
  389. nautobot/project-static/docs/development/core/model-features.html +892 -88
  390. nautobot/project-static/docs/development/core/natural-keys.html +892 -88
  391. nautobot/project-static/docs/development/core/navigation-menu.html +892 -88
  392. nautobot/project-static/docs/development/core/release-checklist.html +895 -91
  393. nautobot/project-static/docs/development/core/role-internals.html +892 -88
  394. nautobot/project-static/docs/development/core/settings.html +892 -88
  395. nautobot/project-static/docs/development/core/style-guide.html +893 -89
  396. nautobot/project-static/docs/development/core/templates.html +904 -89
  397. nautobot/project-static/docs/development/core/testing.html +892 -88
  398. nautobot/project-static/docs/development/core/user-preferences.html +892 -88
  399. nautobot/project-static/docs/development/index.html +892 -88
  400. nautobot/project-static/docs/development/jobs/index.html +893 -89
  401. nautobot/project-static/docs/development/jobs/migration/from-v1.html +892 -88
  402. nautobot/project-static/docs/index.html +892 -88
  403. nautobot/project-static/docs/media/models/cloud_aws_direct_connect_dark.png +0 -0
  404. nautobot/project-static/docs/media/models/cloud_aws_direct_connect_light.png +0 -0
  405. nautobot/project-static/docs/models/cloud/cloudaccount.html +15 -0
  406. nautobot/project-static/docs/models/cloud/cloudnetwork.html +15 -0
  407. nautobot/project-static/docs/models/cloud/cloudnetworkprefixassignment.html +15 -0
  408. nautobot/project-static/docs/models/cloud/cloudresourcetype.html +15 -0
  409. nautobot/project-static/docs/models/cloud/cloudservice.html +15 -0
  410. nautobot/project-static/docs/models/cloud/cloudservicenetworkassignment.html +15 -0
  411. nautobot/project-static/docs/models/dcim/module.html +15 -0
  412. nautobot/project-static/docs/models/dcim/modulebay.html +15 -0
  413. nautobot/project-static/docs/models/dcim/modulebaytemplate.html +15 -0
  414. nautobot/project-static/docs/models/dcim/moduletype.html +15 -0
  415. nautobot/project-static/docs/models/extras/metadatachoice.html +15 -0
  416. nautobot/project-static/docs/models/extras/metadatatype.html +15 -0
  417. nautobot/project-static/docs/models/extras/objectmetadata.html +15 -0
  418. nautobot/project-static/docs/models/extras/role.html +15 -0
  419. nautobot/project-static/docs/models/extras/savedview.html +15 -0
  420. nautobot/project-static/docs/models/extras/staticgroupassociation.html +15 -0
  421. nautobot/project-static/docs/models/extras/status.html +15 -0
  422. nautobot/project-static/docs/objects.inv +0 -0
  423. nautobot/project-static/docs/overview/application_stack.html +900 -89
  424. nautobot/project-static/docs/overview/design_philosophy.html +892 -88
  425. nautobot/project-static/docs/release-notes/index.html +1129 -92
  426. nautobot/project-static/docs/release-notes/version-1.0.html +892 -88
  427. nautobot/project-static/docs/release-notes/version-1.1.html +892 -88
  428. nautobot/project-static/docs/release-notes/version-1.2.html +892 -88
  429. nautobot/project-static/docs/release-notes/version-1.3.html +892 -88
  430. nautobot/project-static/docs/release-notes/version-1.4.html +892 -88
  431. nautobot/project-static/docs/release-notes/version-1.5.html +893 -89
  432. nautobot/project-static/docs/release-notes/version-1.6.html +893 -89
  433. nautobot/project-static/docs/release-notes/version-2.0.html +892 -88
  434. nautobot/project-static/docs/release-notes/version-2.1.html +892 -88
  435. nautobot/project-static/docs/release-notes/version-2.2.html +895 -91
  436. nautobot/project-static/docs/release-notes/version-2.3.html +9954 -0
  437. nautobot/project-static/docs/requirements.txt +5 -5
  438. nautobot/project-static/docs/search/search_index.json +1 -1
  439. nautobot/project-static/docs/sitemap.xml +331 -256
  440. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  441. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +892 -88
  442. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +892 -88
  443. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +892 -88
  444. nautobot/project-static/docs/user-guide/administration/configuration/index.html +892 -88
  445. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +992 -174
  446. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +892 -88
  447. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +892 -88
  448. nautobot/project-static/docs/user-guide/administration/guides/caching.html +892 -88
  449. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +896 -88
  450. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +892 -88
  451. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +892 -88
  452. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +892 -88
  453. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +892 -88
  454. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +892 -88
  455. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +892 -88
  456. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +892 -88
  457. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +892 -88
  458. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +944 -153
  459. nautobot/project-static/docs/user-guide/administration/installation/index.html +901 -93
  460. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +934 -122
  461. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +954 -157
  462. nautobot/project-static/docs/user-guide/administration/installation/services.html +913 -112
  463. nautobot/project-static/docs/user-guide/administration/installation-extras/docker.html +908 -99
  464. nautobot/project-static/docs/user-guide/administration/installation-extras/health-checks.html +892 -88
  465. nautobot/project-static/docs/user-guide/administration/installation-extras/selinux-troubleshooting.html +892 -88
  466. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +892 -88
  467. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +892 -88
  468. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +893 -89
  469. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +892 -88
  470. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +892 -88
  471. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +892 -88
  472. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +892 -88
  473. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +892 -88
  474. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +892 -88
  475. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +892 -88
  476. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +892 -88
  477. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +892 -88
  478. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +892 -88
  479. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +892 -88
  480. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +893 -89
  481. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +892 -88
  482. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +896 -88
  483. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +895 -91
  484. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +8984 -0
  485. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +8828 -0
  486. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +8829 -0
  487. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +8828 -0
  488. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +8829 -0
  489. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +8833 -0
  490. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +8828 -0
  491. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +906 -102
  492. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +923 -105
  493. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +923 -105
  494. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +918 -100
  495. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +923 -105
  496. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +906 -102
  497. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +906 -102
  498. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +913 -105
  499. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +920 -116
  500. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +921 -117
  501. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +918 -114
  502. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +906 -102
  503. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +914 -105
  504. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +926 -108
  505. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +936 -118
  506. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +928 -106
  507. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +906 -102
  508. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +937 -119
  509. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +928 -110
  510. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +918 -114
  511. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +921 -117
  512. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +923 -115
  513. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +8828 -0
  514. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +8846 -0
  515. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +8843 -0
  516. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +8823 -0
  517. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +916 -112
  518. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +906 -102
  519. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +940 -83
  520. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +924 -106
  521. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +906 -102
  522. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +943 -86
  523. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +921 -103
  524. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +929 -125
  525. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +918 -114
  526. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +906 -102
  527. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +922 -104
  528. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +924 -106
  529. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +906 -102
  530. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +906 -102
  531. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +906 -102
  532. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +936 -88
  533. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +892 -88
  534. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +897 -89
  535. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +897 -89
  536. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +892 -88
  537. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +892 -88
  538. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +892 -88
  539. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +892 -88
  540. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +892 -88
  541. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +892 -88
  542. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +892 -88
  543. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +892 -88
  544. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +892 -88
  545. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +892 -88
  546. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +901 -96
  547. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +892 -88
  548. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +892 -88
  549. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +892 -88
  550. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +892 -88
  551. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +892 -88
  552. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +897 -89
  553. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +892 -88
  554. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +892 -88
  555. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +892 -88
  556. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +892 -88
  557. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +892 -88
  558. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +892 -88
  559. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +892 -88
  560. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +892 -88
  561. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +892 -88
  562. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +892 -88
  563. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +892 -88
  564. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +892 -88
  565. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +892 -88
  566. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/clear-view-button.png +0 -0
  567. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/cleared-view.png +0 -0
  568. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/config-table-columns-to-locations.png +0 -0
  569. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/configure-button.png +0 -0
  570. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/create-saved-view-success.png +0 -0
  571. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/current-saved-view-drop-down-menu.png +0 -0
  572. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/default-location-list-view.png +0 -0
  573. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/dropdown-button-after-new-saved-view.png +0 -0
  574. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/filter-application-to-locations.png +0 -0
  575. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/filter-button.png +0 -0
  576. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/global-default-location-list-view.png +0 -0
  577. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/location-list-view-with-saved-views.png +0 -0
  578. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/navigation-menu.png +0 -0
  579. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/save-as-new-view-drop-down.png +0 -0
  580. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/save-view-modal.png +0 -0
  581. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-admin-edit-buttons.png +0 -0
  582. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-admin-edit-success.png +0 -0
  583. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-admin-edit-view-unchecked.png +0 -0
  584. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-admin-edit-view.png +0 -0
  585. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-different-user.png +0 -0
  586. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/saved-view-modal-unchecked.png +0 -0
  587. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/set-as-my-default-button.png +0 -0
  588. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/set-as-my-default-success.png +0 -0
  589. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/unsaved-saved-view.png +0 -0
  590. nautobot/project-static/docs/user-guide/feature-guides/images/saved-views/updated-saved-view.png +0 -0
  591. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +892 -88
  592. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +892 -88
  593. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +892 -88
  594. nautobot/project-static/docs/user-guide/index.html +892 -88
  595. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +892 -88
  596. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +892 -88
  597. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +892 -88
  598. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +892 -88
  599. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +1258 -785
  600. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +895 -91
  601. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +892 -88
  602. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +892 -88
  603. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +892 -88
  604. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +892 -88
  605. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +892 -88
  606. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +892 -88
  607. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +892 -88
  608. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +892 -88
  609. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +892 -88
  610. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +896 -88
  611. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +892 -88
  612. nautobot/project-static/docs/user-guide/platform-functionality/note.html +895 -91
  613. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +9061 -0
  614. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +895 -91
  615. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +892 -88
  616. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +892 -88
  617. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +892 -88
  618. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +892 -88
  619. nautobot/project-static/docs/user-guide/platform-functionality/role.html +895 -91
  620. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +9137 -0
  621. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +895 -91
  622. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +8933 -0
  623. nautobot/project-static/docs/user-guide/platform-functionality/status.html +892 -88
  624. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +892 -88
  625. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +950 -121
  626. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +892 -88
  627. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +892 -88
  628. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +892 -88
  629. nautobot/project-static/js/forms.js +71 -0
  630. nautobot/project-static/js/table_sorting_indicator.js +46 -0
  631. nautobot/project-static/js/tableconfig.js +6 -1
  632. nautobot/project-static/materialdesignicons-7.4.47/css/materialdesignicons.min.css +3 -0
  633. nautobot/project-static/{materialdesignicons-6.5.95 → materialdesignicons-7.4.47}/fonts/materialdesignicons-webfont.eot +0 -0
  634. nautobot/project-static/{materialdesignicons-6.5.95 → materialdesignicons-7.4.47}/fonts/materialdesignicons-webfont.ttf +0 -0
  635. nautobot/project-static/materialdesignicons-7.4.47/fonts/materialdesignicons-webfont.woff +0 -0
  636. nautobot/project-static/materialdesignicons-7.4.47/fonts/materialdesignicons-webfont.woff2 +0 -0
  637. nautobot/tenancy/__init__.py +0 -1
  638. nautobot/tenancy/apps.py +1 -0
  639. nautobot/tenancy/factory.py +3 -2
  640. nautobot/tenancy/filters/__init__.py +1 -0
  641. nautobot/tenancy/forms.py +1 -1
  642. nautobot/tenancy/templates/tenancy/tenant.html +24 -20
  643. nautobot/tenancy/views.py +11 -10
  644. nautobot/users/__init__.py +0 -1
  645. nautobot/users/api/serializers.py +1 -1
  646. nautobot/users/api/views.py +4 -2
  647. nautobot/users/apps.py +3 -2
  648. nautobot/users/factory.py +3 -3
  649. nautobot/users/migrations/0010_user_default_saved_views.py +20 -0
  650. nautobot/users/models.py +12 -0
  651. nautobot/users/tests/test_filters.py +6 -3
  652. nautobot/users/urls.py +8 -0
  653. nautobot/virtualization/__init__.py +0 -1
  654. nautobot/virtualization/apps.py +1 -0
  655. nautobot/virtualization/filters.py +6 -1
  656. nautobot/virtualization/forms.py +11 -3
  657. nautobot/virtualization/graphql/types.py +2 -2
  658. nautobot/virtualization/migrations/0029_add_role_field_to_interface_models.py +27 -0
  659. nautobot/virtualization/migrations/0030_alter_virtualmachine_local_config_context_data_owner_content_type_and_more.py +67 -0
  660. nautobot/virtualization/models.py +0 -2
  661. nautobot/virtualization/tables.py +10 -3
  662. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -1
  663. nautobot/virtualization/templates/virtualization/vminterface.html +7 -1
  664. nautobot/virtualization/templates/virtualization/vminterface_edit.html +1 -0
  665. nautobot/virtualization/tests/test_api.py +9 -4
  666. nautobot/virtualization/tests/test_filters.py +22 -0
  667. nautobot/virtualization/tests/test_models.py +7 -3
  668. nautobot/virtualization/tests/test_views.py +19 -3
  669. nautobot/virtualization/urls.py +2 -2
  670. nautobot/virtualization/views.py +10 -32
  671. {nautobot-2.2.9.dist-info → nautobot-2.3.0.dist-info}/METADATA +20 -18
  672. {nautobot-2.2.9.dist-info → nautobot-2.3.0.dist-info}/RECORD +677 -557
  673. nautobot/project-static/docs/assets/stylesheets/main.76a95c52.min.css +0 -1
  674. nautobot/project-static/docs/assets/stylesheets/main.76a95c52.min.css.map +0 -1
  675. nautobot/project-static/materialdesignicons-6.5.95/.github/ISSUE_TEMPLATE.md +0 -3
  676. nautobot/project-static/materialdesignicons-6.5.95/README.md +0 -25
  677. nautobot/project-static/materialdesignicons-6.5.95/css/materialdesignicons.css +0 -26654
  678. nautobot/project-static/materialdesignicons-6.5.95/css/materialdesignicons.css.map +0 -16
  679. nautobot/project-static/materialdesignicons-6.5.95/css/materialdesignicons.min.css +0 -3
  680. nautobot/project-static/materialdesignicons-6.5.95/css/materialdesignicons.min.css.map +0 -16
  681. nautobot/project-static/materialdesignicons-6.5.95/fonts/materialdesignicons-webfont.woff +0 -0
  682. nautobot/project-static/materialdesignicons-6.5.95/fonts/materialdesignicons-webfont.woff2 +0 -0
  683. nautobot/project-static/materialdesignicons-6.5.95/package.json +0 -28
  684. nautobot/project-static/materialdesignicons-6.5.95/preview.html +0 -717
  685. nautobot/project-static/materialdesignicons-6.5.95/scss/_animated.scss +0 -27
  686. nautobot/project-static/materialdesignicons-6.5.95/scss/_core.scss +0 -10
  687. nautobot/project-static/materialdesignicons-6.5.95/scss/_extras.scss +0 -65
  688. nautobot/project-static/materialdesignicons-6.5.95/scss/_functions.scss +0 -20
  689. nautobot/project-static/materialdesignicons-6.5.95/scss/_icons.scss +0 -10
  690. nautobot/project-static/materialdesignicons-6.5.95/scss/_path.scss +0 -10
  691. nautobot/project-static/materialdesignicons-6.5.95/scss/_variables.scss +0 -6606
  692. nautobot/project-static/materialdesignicons-6.5.95/scss/materialdesignicons.scss +0 -8
  693. /nautobot/project-static/{materialdesignicons-6.5.95 → materialdesignicons-7.4.47}/LICENSE +0 -0
  694. {nautobot-2.2.9.dist-info → nautobot-2.3.0.dist-info}/LICENSE.txt +0 -0
  695. {nautobot-2.2.9.dist-info → nautobot-2.3.0.dist-info}/NOTICE +0 -0
  696. {nautobot-2.2.9.dist-info → nautobot-2.3.0.dist-info}/WHEEL +0 -0
  697. {nautobot-2.2.9.dist-info → nautobot-2.3.0.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.29">
21
+ <meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.31">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.76a95c52.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.3cba04c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -38,7 +38,7 @@
38
38
 
39
39
 
40
40
 
41
- <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M288 0H128c-17.7 0-32 14.3-32 32s14.3 32 32 32v132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6 0 480.9 31.1 512 69.4 512h309.2c38.3 0 69.4-31.1 69.4-69.4 0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32S337.7 0 320 0h-32zm-96 196.8V64h64v132.8c0 23.7 6.6 46.9 19 67.1l34.5 56.1h-171l34.5-56.1c12.4-20.2 19-43.4 19-67.1z"/></svg>');}</style>
41
+ <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M288 0H128c-17.7 0-32 14.3-32 32s14.3 32 32 32v132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6 0 480.9 31.1 512 69.4 512h309.2c38.3 0 69.4-31.1 69.4-69.4 0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32S337.7 0 320 0h-32zm-96 196.8V64h64v132.8c0 23.7 6.6 46.9 19 67.1l34.5 56.1h-171l34.5-56.1c12.4-20.2 19-43.4 19-67.1z"/></svg>');}</style>
42
42
 
43
43
 
44
44
 
@@ -217,7 +217,7 @@
217
217
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
218
218
  <div class="md-source__icon md-icon">
219
219
 
220
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
220
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
221
221
  </div>
222
222
  <div class="md-source__repository">
223
223
  GitHub
@@ -377,7 +377,7 @@
377
377
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
378
378
  <div class="md-source__icon md-icon">
379
379
 
380
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
380
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
381
381
  </div>
382
382
  <div class="md-source__repository">
383
383
  GitHub
@@ -2707,23 +2707,702 @@
2707
2707
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3" >
2708
2708
 
2709
2709
 
2710
- <label class="md-nav__link" for="__nav_2_3_3" id="__nav_2_3_3_label" tabindex="0">
2710
+
2711
+ <div class="md-nav__link md-nav__container">
2712
+ <a href="../../core-data-model/cloud/cloud.html" class="md-nav__link ">
2713
+
2714
+
2715
+ <span class="md-ellipsis">
2716
+ Cloud
2717
+ </span>
2718
+
2719
+
2720
+ </a>
2721
+
2722
+
2723
+ <label class="md-nav__link " for="__nav_2_3_3" id="__nav_2_3_3_label" tabindex="0">
2724
+ <span class="md-nav__icon md-icon"></span>
2725
+ </label>
2726
+
2727
+ </div>
2728
+
2729
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_3_label" aria-expanded="false">
2730
+ <label class="md-nav__title" for="__nav_2_3_3">
2731
+ <span class="md-nav__icon md-icon"></span>
2732
+ Cloud
2733
+ </label>
2734
+ <ul class="md-nav__list" data-md-scrollfix>
2735
+
2736
+
2737
+
2738
+
2739
+
2740
+
2741
+
2742
+ <li class="md-nav__item">
2743
+ <a href="../../core-data-model/cloud/cloudaccount.html" class="md-nav__link">
2744
+
2745
+
2746
+ <span class="md-ellipsis">
2747
+ Cloud Account
2748
+ </span>
2749
+
2750
+
2751
+ </a>
2752
+ </li>
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+ <li class="md-nav__item">
2764
+ <a href="../../core-data-model/cloud/cloudnetwork.html" class="md-nav__link">
2765
+
2766
+
2767
+ <span class="md-ellipsis">
2768
+ Cloud Network
2769
+ </span>
2770
+
2771
+
2772
+ </a>
2773
+ </li>
2774
+
2775
+
2776
+
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2784
+ <li class="md-nav__item">
2785
+ <a href="../../core-data-model/cloud/cloudnetworkprefixassignment.html" class="md-nav__link">
2786
+
2787
+
2788
+ <span class="md-ellipsis">
2789
+ Cloud Network Prefix Assignment
2790
+ </span>
2791
+
2792
+
2793
+ </a>
2794
+ </li>
2795
+
2796
+
2797
+
2798
+
2799
+
2800
+
2801
+
2802
+
2803
+
2804
+
2805
+ <li class="md-nav__item">
2806
+ <a href="../../core-data-model/cloud/cloudresourcetype.html" class="md-nav__link">
2807
+
2808
+
2809
+ <span class="md-ellipsis">
2810
+ Cloud Resource Type
2811
+ </span>
2812
+
2813
+
2814
+ </a>
2815
+ </li>
2816
+
2817
+
2818
+
2819
+
2820
+
2821
+
2822
+
2823
+
2824
+
2825
+
2826
+ <li class="md-nav__item">
2827
+ <a href="../../core-data-model/cloud/cloudservice.html" class="md-nav__link">
2828
+
2829
+
2830
+ <span class="md-ellipsis">
2831
+ Cloud Service
2832
+ </span>
2833
+
2834
+
2835
+ </a>
2836
+ </li>
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+ <li class="md-nav__item">
2848
+ <a href="../../core-data-model/cloud/cloudservicenetworkassignment.html" class="md-nav__link">
2849
+
2850
+
2851
+ <span class="md-ellipsis">
2852
+ Cloud Service Network Assignment
2853
+ </span>
2854
+
2855
+
2856
+ </a>
2857
+ </li>
2858
+
2859
+
2860
+
2861
+
2862
+ </ul>
2863
+ </nav>
2864
+
2865
+ </li>
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+ <li class="md-nav__item md-nav__item--nested">
2884
+
2885
+
2886
+
2887
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4" >
2888
+
2889
+
2890
+ <label class="md-nav__link" for="__nav_2_3_4" id="__nav_2_3_4_label" tabindex="0">
2891
+
2892
+
2893
+ <span class="md-ellipsis">
2894
+ DCIM
2895
+ </span>
2896
+
2897
+
2898
+ <span class="md-nav__icon md-icon"></span>
2899
+ </label>
2900
+
2901
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_4_label" aria-expanded="false">
2902
+ <label class="md-nav__title" for="__nav_2_3_4">
2903
+ <span class="md-nav__icon md-icon"></span>
2904
+ DCIM
2905
+ </label>
2906
+ <ul class="md-nav__list" data-md-scrollfix>
2907
+
2908
+
2909
+
2910
+
2911
+
2912
+
2913
+
2914
+ <li class="md-nav__item">
2915
+ <a href="../../core-data-model/dcim/locationtype.html" class="md-nav__link">
2916
+
2917
+
2918
+ <span class="md-ellipsis">
2919
+ Location Type
2920
+ </span>
2921
+
2922
+
2923
+ </a>
2924
+ </li>
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+
2933
+
2934
+
2935
+ <li class="md-nav__item">
2936
+ <a href="../../core-data-model/dcim/location.html" class="md-nav__link">
2937
+
2938
+
2939
+ <span class="md-ellipsis">
2940
+ Location
2941
+ </span>
2942
+
2943
+
2944
+ </a>
2945
+ </li>
2946
+
2947
+
2948
+
2949
+
2950
+
2951
+
2952
+
2953
+
2954
+
2955
+
2956
+ <li class="md-nav__item">
2957
+ <a href="../../core-data-model/dcim/rackgroup.html" class="md-nav__link">
2958
+
2959
+
2960
+ <span class="md-ellipsis">
2961
+ Rack Group
2962
+ </span>
2963
+
2964
+
2965
+ </a>
2966
+ </li>
2967
+
2968
+
2969
+
2970
+
2971
+
2972
+
2973
+
2974
+
2975
+
2976
+
2977
+ <li class="md-nav__item">
2978
+ <a href="../../core-data-model/dcim/rack.html" class="md-nav__link">
2979
+
2980
+
2981
+ <span class="md-ellipsis">
2982
+ Rack
2983
+ </span>
2984
+
2985
+
2986
+ </a>
2987
+ </li>
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+
2997
+
2998
+ <li class="md-nav__item">
2999
+ <a href="../../core-data-model/dcim/manufacturer.html" class="md-nav__link">
3000
+
3001
+
3002
+ <span class="md-ellipsis">
3003
+ Manufacturer
3004
+ </span>
3005
+
3006
+
3007
+ </a>
3008
+ </li>
3009
+
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+
3017
+
3018
+
3019
+ <li class="md-nav__item">
3020
+ <a href="../../core-data-model/dcim/devicefamily.html" class="md-nav__link">
3021
+
3022
+
3023
+ <span class="md-ellipsis">
3024
+ Device Family
3025
+ </span>
3026
+
3027
+
3028
+ </a>
3029
+ </li>
3030
+
3031
+
3032
+
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+ <li class="md-nav__item">
3041
+ <a href="../../core-data-model/dcim/platform.html" class="md-nav__link">
3042
+
3043
+
3044
+ <span class="md-ellipsis">
3045
+ Platform
3046
+ </span>
3047
+
3048
+
3049
+ </a>
3050
+ </li>
3051
+
3052
+
3053
+
3054
+
3055
+
3056
+
3057
+
3058
+
3059
+
3060
+
3061
+
3062
+
3063
+
3064
+
3065
+
3066
+
3067
+
3068
+ <li class="md-nav__item md-nav__item--nested">
3069
+
3070
+
3071
+
3072
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4_8" >
3073
+
3074
+
3075
+
3076
+ <div class="md-nav__link md-nav__container">
3077
+ <a href="../../core-data-model/dcim/devicetype.html" class="md-nav__link ">
3078
+
3079
+
3080
+ <span class="md-ellipsis">
3081
+ Device Type
3082
+ </span>
3083
+
3084
+
3085
+ </a>
3086
+
3087
+
3088
+ <label class="md-nav__link " for="__nav_2_3_4_8" id="__nav_2_3_4_8_label" tabindex="0">
3089
+ <span class="md-nav__icon md-icon"></span>
3090
+ </label>
3091
+
3092
+ </div>
3093
+
3094
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_4_8_label" aria-expanded="false">
3095
+ <label class="md-nav__title" for="__nav_2_3_4_8">
3096
+ <span class="md-nav__icon md-icon"></span>
3097
+ Device Type
3098
+ </label>
3099
+ <ul class="md-nav__list" data-md-scrollfix>
3100
+
3101
+
3102
+
3103
+
3104
+
3105
+
3106
+
3107
+ <li class="md-nav__item">
3108
+ <a href="../../core-data-model/dcim/consoleporttemplate.html" class="md-nav__link">
3109
+
3110
+
3111
+ <span class="md-ellipsis">
3112
+ Console Port Template
3113
+ </span>
3114
+
3115
+
3116
+ </a>
3117
+ </li>
3118
+
3119
+
3120
+
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+
3127
+
3128
+ <li class="md-nav__item">
3129
+ <a href="../../core-data-model/dcim/consoleserverporttemplate.html" class="md-nav__link">
3130
+
3131
+
3132
+ <span class="md-ellipsis">
3133
+ Console Server Port Template
3134
+ </span>
3135
+
3136
+
3137
+ </a>
3138
+ </li>
3139
+
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+ <li class="md-nav__item">
3150
+ <a href="../../core-data-model/dcim/devicebaytemplate.html" class="md-nav__link">
3151
+
3152
+
3153
+ <span class="md-ellipsis">
3154
+ Device Bay Template
3155
+ </span>
3156
+
3157
+
3158
+ </a>
3159
+ </li>
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+
3167
+
3168
+
3169
+
3170
+ <li class="md-nav__item">
3171
+ <a href="../../core-data-model/dcim/frontporttemplate.html" class="md-nav__link">
3172
+
3173
+
3174
+ <span class="md-ellipsis">
3175
+ Front Port Template
3176
+ </span>
3177
+
3178
+
3179
+ </a>
3180
+ </li>
3181
+
3182
+
3183
+
3184
+
3185
+
3186
+
3187
+
3188
+
3189
+
3190
+
3191
+ <li class="md-nav__item">
3192
+ <a href="../../core-data-model/dcim/interfacetemplate.html" class="md-nav__link">
3193
+
3194
+
3195
+ <span class="md-ellipsis">
3196
+ Interface Template
3197
+ </span>
3198
+
3199
+
3200
+ </a>
3201
+ </li>
3202
+
3203
+
3204
+
3205
+
3206
+
3207
+
3208
+
3209
+
3210
+
3211
+
3212
+ <li class="md-nav__item">
3213
+ <a href="../../core-data-model/dcim/modulebaytemplate.html" class="md-nav__link">
3214
+
3215
+
3216
+ <span class="md-ellipsis">
3217
+ Module Bay Template
3218
+ </span>
3219
+
3220
+
3221
+ </a>
3222
+ </li>
3223
+
3224
+
3225
+
3226
+
3227
+
3228
+
3229
+
3230
+
3231
+
3232
+
3233
+ <li class="md-nav__item">
3234
+ <a href="../../core-data-model/dcim/poweroutlettemplate.html" class="md-nav__link">
3235
+
3236
+
3237
+ <span class="md-ellipsis">
3238
+ Power Outlet Template
3239
+ </span>
3240
+
3241
+
3242
+ </a>
3243
+ </li>
3244
+
3245
+
3246
+
3247
+
3248
+
3249
+
3250
+
3251
+
3252
+
3253
+
3254
+ <li class="md-nav__item">
3255
+ <a href="../../core-data-model/dcim/powerporttemplate.html" class="md-nav__link">
3256
+
3257
+
3258
+ <span class="md-ellipsis">
3259
+ Power Port Template
3260
+ </span>
3261
+
3262
+
3263
+ </a>
3264
+ </li>
3265
+
3266
+
3267
+
3268
+
3269
+
3270
+
3271
+
3272
+
3273
+
3274
+
3275
+ <li class="md-nav__item">
3276
+ <a href="../../core-data-model/dcim/rearporttemplate.html" class="md-nav__link">
3277
+
3278
+
3279
+ <span class="md-ellipsis">
3280
+ Rear Port Template
3281
+ </span>
3282
+
3283
+
3284
+ </a>
3285
+ </li>
3286
+
3287
+
3288
+
3289
+
3290
+ </ul>
3291
+ </nav>
3292
+
3293
+ </li>
3294
+
3295
+
3296
+
3297
+
3298
+
3299
+
3300
+
3301
+
3302
+
3303
+
3304
+
3305
+
3306
+
3307
+
3308
+
3309
+
3310
+
3311
+ <li class="md-nav__item md-nav__item--nested">
3312
+
3313
+
3314
+
3315
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4_9" >
3316
+
3317
+
3318
+
3319
+ <div class="md-nav__link md-nav__container">
3320
+ <a href="../../core-data-model/dcim/device.html" class="md-nav__link ">
3321
+
3322
+
3323
+ <span class="md-ellipsis">
3324
+ Device
3325
+ </span>
3326
+
3327
+
3328
+ </a>
3329
+
3330
+
3331
+ <label class="md-nav__link " for="__nav_2_3_4_9" id="__nav_2_3_4_9_label" tabindex="0">
3332
+ <span class="md-nav__icon md-icon"></span>
3333
+ </label>
3334
+
3335
+ </div>
3336
+
3337
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_4_9_label" aria-expanded="false">
3338
+ <label class="md-nav__title" for="__nav_2_3_4_9">
3339
+ <span class="md-nav__icon md-icon"></span>
3340
+ Device
3341
+ </label>
3342
+ <ul class="md-nav__list" data-md-scrollfix>
3343
+
3344
+
3345
+
3346
+
3347
+
3348
+
3349
+
3350
+ <li class="md-nav__item">
3351
+ <a href="../../core-data-model/dcim/consoleport.html" class="md-nav__link">
3352
+
3353
+
3354
+ <span class="md-ellipsis">
3355
+ Console Port
3356
+ </span>
3357
+
3358
+
3359
+ </a>
3360
+ </li>
3361
+
3362
+
3363
+
2711
3364
 
3365
+
3366
+
3367
+
3368
+
3369
+
3370
+
3371
+ <li class="md-nav__item">
3372
+ <a href="../../core-data-model/dcim/consoleserverport.html" class="md-nav__link">
3373
+
2712
3374
 
2713
3375
  <span class="md-ellipsis">
2714
- DCIM
3376
+ Console Server Port
2715
3377
  </span>
2716
3378
 
2717
3379
 
2718
- <span class="md-nav__icon md-icon"></span>
2719
- </label>
3380
+ </a>
3381
+ </li>
3382
+
3383
+
3384
+
3385
+
3386
+
3387
+
3388
+
3389
+
3390
+
3391
+
3392
+ <li class="md-nav__item">
3393
+ <a href="../../core-data-model/dcim/devicebay.html" class="md-nav__link">
2720
3394
 
2721
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_3_label" aria-expanded="false">
2722
- <label class="md-nav__title" for="__nav_2_3_3">
2723
- <span class="md-nav__icon md-icon"></span>
2724
- DCIM
2725
- </label>
2726
- <ul class="md-nav__list" data-md-scrollfix>
3395
+
3396
+ <span class="md-ellipsis">
3397
+ Device Bay
3398
+ </span>
3399
+
3400
+
3401
+ </a>
3402
+ </li>
3403
+
3404
+
3405
+
2727
3406
 
2728
3407
 
2729
3408
 
@@ -2732,11 +3411,11 @@
2732
3411
 
2733
3412
 
2734
3413
  <li class="md-nav__item">
2735
- <a href="../../core-data-model/dcim/locationtype.html" class="md-nav__link">
3414
+ <a href="../../core-data-model/dcim/frontport.html" class="md-nav__link">
2736
3415
 
2737
3416
 
2738
3417
  <span class="md-ellipsis">
2739
- Location Type
3418
+ Front Port
2740
3419
  </span>
2741
3420
 
2742
3421
 
@@ -2753,11 +3432,11 @@
2753
3432
 
2754
3433
 
2755
3434
  <li class="md-nav__item">
2756
- <a href="../../core-data-model/dcim/location.html" class="md-nav__link">
3435
+ <a href="../../core-data-model/dcim/interface.html" class="md-nav__link">
2757
3436
 
2758
3437
 
2759
3438
  <span class="md-ellipsis">
2760
- Location
3439
+ Interface
2761
3440
  </span>
2762
3441
 
2763
3442
 
@@ -2774,11 +3453,11 @@
2774
3453
 
2775
3454
 
2776
3455
  <li class="md-nav__item">
2777
- <a href="../../core-data-model/dcim/rackgroup.html" class="md-nav__link">
3456
+ <a href="../../core-data-model/dcim/inventoryitem.html" class="md-nav__link">
2778
3457
 
2779
3458
 
2780
3459
  <span class="md-ellipsis">
2781
- Rack Group
3460
+ Inventory Item
2782
3461
  </span>
2783
3462
 
2784
3463
 
@@ -2795,11 +3474,11 @@
2795
3474
 
2796
3475
 
2797
3476
  <li class="md-nav__item">
2798
- <a href="../../core-data-model/dcim/rack.html" class="md-nav__link">
3477
+ <a href="../../core-data-model/dcim/modulebay.html" class="md-nav__link">
2799
3478
 
2800
3479
 
2801
3480
  <span class="md-ellipsis">
2802
- Rack
3481
+ Module Bay
2803
3482
  </span>
2804
3483
 
2805
3484
 
@@ -2816,11 +3495,11 @@
2816
3495
 
2817
3496
 
2818
3497
  <li class="md-nav__item">
2819
- <a href="../../core-data-model/dcim/manufacturer.html" class="md-nav__link">
3498
+ <a href="../../core-data-model/dcim/powerport.html" class="md-nav__link">
2820
3499
 
2821
3500
 
2822
3501
  <span class="md-ellipsis">
2823
- Manufacturer
3502
+ Power Port
2824
3503
  </span>
2825
3504
 
2826
3505
 
@@ -2837,11 +3516,11 @@
2837
3516
 
2838
3517
 
2839
3518
  <li class="md-nav__item">
2840
- <a href="../../core-data-model/dcim/devicefamily.html" class="md-nav__link">
3519
+ <a href="../../core-data-model/dcim/poweroutlet.html" class="md-nav__link">
2841
3520
 
2842
3521
 
2843
3522
  <span class="md-ellipsis">
2844
- Device Family
3523
+ Power Outlet
2845
3524
  </span>
2846
3525
 
2847
3526
 
@@ -2858,11 +3537,11 @@
2858
3537
 
2859
3538
 
2860
3539
  <li class="md-nav__item">
2861
- <a href="../../core-data-model/dcim/platform.html" class="md-nav__link">
3540
+ <a href="../../core-data-model/dcim/rearport.html" class="md-nav__link">
2862
3541
 
2863
3542
 
2864
3543
  <span class="md-ellipsis">
2865
- Platform
3544
+ Rear Port
2866
3545
  </span>
2867
3546
 
2868
3547
 
@@ -2872,6 +3551,14 @@
2872
3551
 
2873
3552
 
2874
3553
 
3554
+ </ul>
3555
+ </nav>
3556
+
3557
+ </li>
3558
+
3559
+
3560
+
3561
+
2875
3562
 
2876
3563
 
2877
3564
 
@@ -2889,32 +3576,32 @@
2889
3576
 
2890
3577
 
2891
3578
 
2892
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3_8" >
3579
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4_10" >
2893
3580
 
2894
3581
 
2895
3582
 
2896
3583
  <div class="md-nav__link md-nav__container">
2897
- <a href="../../core-data-model/dcim/devicetype.html" class="md-nav__link ">
3584
+ <a href="../../core-data-model/dcim/moduletype.html" class="md-nav__link ">
2898
3585
 
2899
3586
 
2900
3587
  <span class="md-ellipsis">
2901
- Device Type
3588
+ Module Type
2902
3589
  </span>
2903
3590
 
2904
3591
 
2905
3592
  </a>
2906
3593
 
2907
3594
 
2908
- <label class="md-nav__link " for="__nav_2_3_3_8" id="__nav_2_3_3_8_label" tabindex="0">
3595
+ <label class="md-nav__link " for="__nav_2_3_4_10" id="__nav_2_3_4_10_label" tabindex="0">
2909
3596
  <span class="md-nav__icon md-icon"></span>
2910
3597
  </label>
2911
3598
 
2912
3599
  </div>
2913
3600
 
2914
- <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_3_8_label" aria-expanded="false">
2915
- <label class="md-nav__title" for="__nav_2_3_3_8">
3601
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_4_10_label" aria-expanded="false">
3602
+ <label class="md-nav__title" for="__nav_2_3_4_10">
2916
3603
  <span class="md-nav__icon md-icon"></span>
2917
- Device Type
3604
+ Module Type
2918
3605
  </label>
2919
3606
  <ul class="md-nav__list" data-md-scrollfix>
2920
3607
 
@@ -2967,11 +3654,11 @@
2967
3654
 
2968
3655
 
2969
3656
  <li class="md-nav__item">
2970
- <a href="../../core-data-model/dcim/devicebaytemplate.html" class="md-nav__link">
3657
+ <a href="../../core-data-model/dcim/frontporttemplate.html" class="md-nav__link">
2971
3658
 
2972
3659
 
2973
3660
  <span class="md-ellipsis">
2974
- Device Bay Template
3661
+ Front Port Template
2975
3662
  </span>
2976
3663
 
2977
3664
 
@@ -2988,11 +3675,11 @@
2988
3675
 
2989
3676
 
2990
3677
  <li class="md-nav__item">
2991
- <a href="../../core-data-model/dcim/frontporttemplate.html" class="md-nav__link">
3678
+ <a href="../../core-data-model/dcim/interfacetemplate.html" class="md-nav__link">
2992
3679
 
2993
3680
 
2994
3681
  <span class="md-ellipsis">
2995
- Front Port Template
3682
+ Interface Template
2996
3683
  </span>
2997
3684
 
2998
3685
 
@@ -3009,11 +3696,11 @@
3009
3696
 
3010
3697
 
3011
3698
  <li class="md-nav__item">
3012
- <a href="../../core-data-model/dcim/interfacetemplate.html" class="md-nav__link">
3699
+ <a href="../../core-data-model/dcim/modulebaytemplate.html" class="md-nav__link">
3013
3700
 
3014
3701
 
3015
3702
  <span class="md-ellipsis">
3016
- Interface Template
3703
+ Module Bay Template
3017
3704
  </span>
3018
3705
 
3019
3706
 
@@ -3111,32 +3798,32 @@
3111
3798
 
3112
3799
 
3113
3800
 
3114
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3_9" >
3801
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4_11" >
3115
3802
 
3116
3803
 
3117
3804
 
3118
3805
  <div class="md-nav__link md-nav__container">
3119
- <a href="../../core-data-model/dcim/device.html" class="md-nav__link ">
3806
+ <a href="../../core-data-model/dcim/module.html" class="md-nav__link ">
3120
3807
 
3121
3808
 
3122
3809
  <span class="md-ellipsis">
3123
- Device
3810
+ Module
3124
3811
  </span>
3125
3812
 
3126
3813
 
3127
3814
  </a>
3128
3815
 
3129
3816
 
3130
- <label class="md-nav__link " for="__nav_2_3_3_9" id="__nav_2_3_3_9_label" tabindex="0">
3817
+ <label class="md-nav__link " for="__nav_2_3_4_11" id="__nav_2_3_4_11_label" tabindex="0">
3131
3818
  <span class="md-nav__icon md-icon"></span>
3132
3819
  </label>
3133
3820
 
3134
3821
  </div>
3135
3822
 
3136
- <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_3_9_label" aria-expanded="false">
3137
- <label class="md-nav__title" for="__nav_2_3_3_9">
3823
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_2_3_4_11_label" aria-expanded="false">
3824
+ <label class="md-nav__title" for="__nav_2_3_4_11">
3138
3825
  <span class="md-nav__icon md-icon"></span>
3139
- Device
3826
+ Module
3140
3827
  </label>
3141
3828
  <ul class="md-nav__list" data-md-scrollfix>
3142
3829
 
@@ -3189,11 +3876,11 @@
3189
3876
 
3190
3877
 
3191
3878
  <li class="md-nav__item">
3192
- <a href="../../core-data-model/dcim/devicebay.html" class="md-nav__link">
3879
+ <a href="../../core-data-model/dcim/frontport.html" class="md-nav__link">
3193
3880
 
3194
3881
 
3195
3882
  <span class="md-ellipsis">
3196
- Device Bay
3883
+ Front Port
3197
3884
  </span>
3198
3885
 
3199
3886
 
@@ -3210,11 +3897,11 @@
3210
3897
 
3211
3898
 
3212
3899
  <li class="md-nav__item">
3213
- <a href="../../core-data-model/dcim/frontport.html" class="md-nav__link">
3900
+ <a href="../../core-data-model/dcim/interface.html" class="md-nav__link">
3214
3901
 
3215
3902
 
3216
3903
  <span class="md-ellipsis">
3217
- Front Port
3904
+ Interface
3218
3905
  </span>
3219
3906
 
3220
3907
 
@@ -3231,11 +3918,11 @@
3231
3918
 
3232
3919
 
3233
3920
  <li class="md-nav__item">
3234
- <a href="../../core-data-model/dcim/interface.html" class="md-nav__link">
3921
+ <a href="../../core-data-model/dcim/inventoryitem.html" class="md-nav__link">
3235
3922
 
3236
3923
 
3237
3924
  <span class="md-ellipsis">
3238
- Interface
3925
+ Inventory Item
3239
3926
  </span>
3240
3927
 
3241
3928
 
@@ -3252,11 +3939,11 @@
3252
3939
 
3253
3940
 
3254
3941
  <li class="md-nav__item">
3255
- <a href="../../core-data-model/dcim/inventoryitem.html" class="md-nav__link">
3942
+ <a href="../../core-data-model/dcim/modulebay.html" class="md-nav__link">
3256
3943
 
3257
3944
 
3258
3945
  <span class="md-ellipsis">
3259
- Inventory Item
3946
+ Module Bay
3260
3947
  </span>
3261
3948
 
3262
3949
 
@@ -3593,10 +4280,10 @@
3593
4280
 
3594
4281
 
3595
4282
 
3596
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4" >
4283
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_5" >
3597
4284
 
3598
4285
 
3599
- <label class="md-nav__link" for="__nav_2_3_4" id="__nav_2_3_4_label" tabindex="0">
4286
+ <label class="md-nav__link" for="__nav_2_3_5" id="__nav_2_3_5_label" tabindex="0">
3600
4287
 
3601
4288
 
3602
4289
  <span class="md-ellipsis">
@@ -3607,8 +4294,8 @@
3607
4294
  <span class="md-nav__icon md-icon"></span>
3608
4295
  </label>
3609
4296
 
3610
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_4_label" aria-expanded="false">
3611
- <label class="md-nav__title" for="__nav_2_3_4">
4297
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_5_label" aria-expanded="false">
4298
+ <label class="md-nav__title" for="__nav_2_3_5">
3612
4299
  <span class="md-nav__icon md-icon"></span>
3613
4300
  Extras
3614
4301
  </label>
@@ -3723,10 +4410,10 @@
3723
4410
 
3724
4411
 
3725
4412
 
3726
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_5" >
4413
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_6" >
3727
4414
 
3728
4415
 
3729
- <label class="md-nav__link" for="__nav_2_3_5" id="__nav_2_3_5_label" tabindex="0">
4416
+ <label class="md-nav__link" for="__nav_2_3_6" id="__nav_2_3_6_label" tabindex="0">
3730
4417
 
3731
4418
 
3732
4419
  <span class="md-ellipsis">
@@ -3737,8 +4424,8 @@
3737
4424
  <span class="md-nav__icon md-icon"></span>
3738
4425
  </label>
3739
4426
 
3740
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_5_label" aria-expanded="false">
3741
- <label class="md-nav__title" for="__nav_2_3_5">
4427
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_6_label" aria-expanded="false">
4428
+ <label class="md-nav__title" for="__nav_2_3_6">
3742
4429
  <span class="md-nav__icon md-icon"></span>
3743
4430
  IPAM
3744
4431
  </label>
@@ -3958,10 +4645,10 @@
3958
4645
 
3959
4646
 
3960
4647
 
3961
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_6" >
4648
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_7" >
3962
4649
 
3963
4650
 
3964
- <label class="md-nav__link" for="__nav_2_3_6" id="__nav_2_3_6_label" tabindex="0">
4651
+ <label class="md-nav__link" for="__nav_2_3_7" id="__nav_2_3_7_label" tabindex="0">
3965
4652
 
3966
4653
 
3967
4654
  <span class="md-ellipsis">
@@ -3972,8 +4659,8 @@
3972
4659
  <span class="md-nav__icon md-icon"></span>
3973
4660
  </label>
3974
4661
 
3975
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_6_label" aria-expanded="false">
3976
- <label class="md-nav__title" for="__nav_2_3_6">
4662
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_7_label" aria-expanded="false">
4663
+ <label class="md-nav__title" for="__nav_2_3_7">
3977
4664
  <span class="md-nav__icon md-icon"></span>
3978
4665
  Tenancy
3979
4666
  </label>
@@ -4046,10 +4733,10 @@
4046
4733
 
4047
4734
 
4048
4735
 
4049
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_7" >
4736
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_8" >
4050
4737
 
4051
4738
 
4052
- <label class="md-nav__link" for="__nav_2_3_7" id="__nav_2_3_7_label" tabindex="0">
4739
+ <label class="md-nav__link" for="__nav_2_3_8" id="__nav_2_3_8_label" tabindex="0">
4053
4740
 
4054
4741
 
4055
4742
  <span class="md-ellipsis">
@@ -4060,8 +4747,8 @@
4060
4747
  <span class="md-nav__icon md-icon"></span>
4061
4748
  </label>
4062
4749
 
4063
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_7_label" aria-expanded="false">
4064
- <label class="md-nav__title" for="__nav_2_3_7">
4750
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_8_label" aria-expanded="false">
4751
+ <label class="md-nav__title" for="__nav_2_3_8">
4065
4752
  <span class="md-nav__icon md-icon"></span>
4066
4753
  Virtualization
4067
4754
  </label>
@@ -4316,21 +5003,75 @@
4316
5003
 
4317
5004
 
4318
5005
 
4319
- <li class="md-nav__item">
4320
- <a href="../../platform-functionality/dynamicgroup.html" class="md-nav__link">
5006
+
5007
+
5008
+
5009
+
5010
+
5011
+
5012
+
5013
+ <li class="md-nav__item md-nav__item--nested">
5014
+
5015
+
5016
+
5017
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_5" >
4321
5018
 
5019
+
5020
+
5021
+ <div class="md-nav__link md-nav__container">
5022
+ <a href="../../platform-functionality/dynamicgroup.html" class="md-nav__link ">
5023
+
4322
5024
 
4323
5025
  <span class="md-ellipsis">
4324
5026
  Dynamic Groups
4325
5027
  </span>
4326
5028
 
4327
5029
 
5030
+ </a>
5031
+
5032
+
5033
+ <label class="md-nav__link " for="__nav_2_4_5" id="__nav_2_4_5_label" tabindex="0">
5034
+ <span class="md-nav__icon md-icon"></span>
5035
+ </label>
5036
+
5037
+ </div>
5038
+
5039
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_5_label" aria-expanded="false">
5040
+ <label class="md-nav__title" for="__nav_2_4_5">
5041
+ <span class="md-nav__icon md-icon"></span>
5042
+ Dynamic Groups
5043
+ </label>
5044
+ <ul class="md-nav__list" data-md-scrollfix>
5045
+
5046
+
5047
+
5048
+
5049
+
5050
+
5051
+
5052
+ <li class="md-nav__item">
5053
+ <a href="../../platform-functionality/staticgroupassociation.html" class="md-nav__link">
5054
+
5055
+
5056
+ <span class="md-ellipsis">
5057
+ Static Group Associations
5058
+ </span>
5059
+
5060
+
4328
5061
  </a>
4329
5062
  </li>
4330
5063
 
4331
5064
 
4332
5065
 
4333
5066
 
5067
+ </ul>
5068
+ </nav>
5069
+
5070
+ </li>
5071
+
5072
+
5073
+
5074
+
4334
5075
 
4335
5076
 
4336
5077
 
@@ -4676,6 +5417,27 @@
4676
5417
 
4677
5418
 
4678
5419
 
5420
+ <li class="md-nav__item">
5421
+ <a href="../../platform-functionality/objectmetadata.html" class="md-nav__link">
5422
+
5423
+
5424
+ <span class="md-ellipsis">
5425
+ Object Metadata
5426
+ </span>
5427
+
5428
+
5429
+ </a>
5430
+ </li>
5431
+
5432
+
5433
+
5434
+
5435
+
5436
+
5437
+
5438
+
5439
+
5440
+
4679
5441
  <li class="md-nav__item">
4680
5442
  <a href="../../platform-functionality/relationship.html" class="md-nav__link">
4681
5443
 
@@ -4708,7 +5470,7 @@
4708
5470
 
4709
5471
 
4710
5472
 
4711
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_15" >
5473
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_16" >
4712
5474
 
4713
5475
 
4714
5476
 
@@ -4724,14 +5486,14 @@
4724
5486
  </a>
4725
5487
 
4726
5488
 
4727
- <label class="md-nav__link " for="__nav_2_4_15" id="__nav_2_4_15_label" tabindex="0">
5489
+ <label class="md-nav__link " for="__nav_2_4_16" id="__nav_2_4_16_label" tabindex="0">
4728
5490
  <span class="md-nav__icon md-icon"></span>
4729
5491
  </label>
4730
5492
 
4731
5493
  </div>
4732
5494
 
4733
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_15_label" aria-expanded="false">
4734
- <label class="md-nav__title" for="__nav_2_4_15">
5495
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_16_label" aria-expanded="false">
5496
+ <label class="md-nav__title" for="__nav_2_4_16">
4735
5497
  <span class="md-nav__icon md-icon"></span>
4736
5498
  REST API
4737
5499
  </label>
@@ -4835,6 +5597,27 @@
4835
5597
 
4836
5598
 
4837
5599
 
5600
+ <li class="md-nav__item">
5601
+ <a href="../../platform-functionality/savedview.html" class="md-nav__link">
5602
+
5603
+
5604
+ <span class="md-ellipsis">
5605
+ Saved Views
5606
+ </span>
5607
+
5608
+
5609
+ </a>
5610
+ </li>
5611
+
5612
+
5613
+
5614
+
5615
+
5616
+
5617
+
5618
+
5619
+
5620
+
4838
5621
  <li class="md-nav__item">
4839
5622
  <a href="../../platform-functionality/secret.html" class="md-nav__link">
4840
5623
 
@@ -4930,10 +5713,10 @@
4930
5713
 
4931
5714
 
4932
5715
 
4933
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_21" >
5716
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_23" >
4934
5717
 
4935
5718
 
4936
- <label class="md-nav__link" for="__nav_2_4_21" id="__nav_2_4_21_label" tabindex="0">
5719
+ <label class="md-nav__link" for="__nav_2_4_23" id="__nav_2_4_23_label" tabindex="0">
4937
5720
 
4938
5721
 
4939
5722
  <span class="md-ellipsis">
@@ -4944,8 +5727,8 @@
4944
5727
  <span class="md-nav__icon md-icon"></span>
4945
5728
  </label>
4946
5729
 
4947
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_21_label" aria-expanded="false">
4948
- <label class="md-nav__title" for="__nav_2_4_21">
5730
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_23_label" aria-expanded="false">
5731
+ <label class="md-nav__title" for="__nav_2_4_23">
4949
5732
  <span class="md-nav__icon md-icon"></span>
4950
5733
  Users
4951
5734
  </label>
@@ -7493,6 +8276,27 @@
7493
8276
 
7494
8277
 
7495
8278
 
8279
+ <li class="md-nav__item">
8280
+ <a href="../../../release-notes/version-2.3.html" class="md-nav__link">
8281
+
8282
+
8283
+ <span class="md-ellipsis">
8284
+ Version 2.3
8285
+ </span>
8286
+
8287
+
8288
+ </a>
8289
+ </li>
8290
+
8291
+
8292
+
8293
+
8294
+
8295
+
8296
+
8297
+
8298
+
8299
+
7496
8300
  <li class="md-nav__item">
7497
8301
  <a href="../../../release-notes/version-2.2.html" class="md-nav__link">
7498
8302
 
@@ -8294,41 +9098,31 @@
8294
9098
  </div>
8295
9099
  <h3 id="create-the-virtual-environment">Create the Virtual Environment<a class="headerlink" href="#create-the-virtual-environment" title="Permanent link">&para;</a></h3>
8296
9100
  <p>As root, we're going to create the virtualenv in our <code>NAUTOBOT_ROOT</code> as the <code>nautobot</code> user to populate the <code>/opt/nautobot</code> directory with a self-contained Python environment including a <code>bin</code> directory for scripts and a <code>lib</code> directory for Python libraries.</p>
8297
- <div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Ubuntu/Debian</label><label for="__tabbed_1_2">RHEL8</label></div>
8298
- <div class="tabbed-content">
8299
- <div class="tabbed-block">
8300
9101
  <div class="highlight"><span class="filename">Create the Virtual Environment</span><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>sudo -u nautobot python3 -m venv /opt/nautobot
8301
9102
  </code></pre></div>
8302
- </div>
8303
- <div class="tabbed-block">
8304
- <div class="highlight"><span class="filename">Create the Virtual Environment</span><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo -u nautobot python3.8 -m venv /opt/nautobot
8305
- </code></pre></div>
8306
- </div>
8307
- </div>
8308
- </div>
8309
9103
  <h3 id="update-the-nautobot-bashrc">Update the Nautobot <code>.bashrc</code><a class="headerlink" href="#update-the-nautobot-bashrc" title="Permanent link">&para;</a></h3>
8310
9104
  <p>So what about the <code>NAUTOBOT_ROOT</code>? We've referenced this environment variable several times. Here is where it finally gets set.</p>
8311
9105
  <p>We need to set the <code>NAUTOBOT_ROOT</code> environment variable for the <code>nautobot</code> user and make sure that it always set without having to do it manually.</p>
8312
9106
  <p>Run this command to update <code>~/.bashrc</code> for <code>nautobot</code> so that anytime you become <code>nautobot</code>, your <code>NAUTOBOT_ROOT</code> will be set automatically.</p>
8313
- <div class="highlight"><span class="filename">Add NAUTOBOT_ROOT to the nautobot user .bashrc file</span><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>echo &quot;export NAUTOBOT_ROOT=/opt/nautobot&quot; | sudo tee -a ~nautobot/.bashrc
9107
+ <div class="highlight"><span class="filename">Add NAUTOBOT_ROOT to the nautobot user .bashrc file</span><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>echo &quot;export NAUTOBOT_ROOT=/opt/nautobot&quot; | sudo tee -a ~nautobot/.bashrc
8314
9108
  </code></pre></div>
8315
9109
  <details class="example">
8316
9110
  <summary>Example bashrc update output</summary>
8317
- <div class="highlight"><span class="filename">Example output of updating bashrc</span><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>export NAUTOBOT_ROOT=/opt/nautobot
9111
+ <div class="highlight"><span class="filename">Example output of updating bashrc</span><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>export NAUTOBOT_ROOT=/opt/nautobot
8318
9112
  </code></pre></div>
8319
9113
  </details>
8320
9114
  <h2 id="sudo-to-nautobot">Sudo to nautobot<a class="headerlink" href="#sudo-to-nautobot" title="Permanent link">&para;</a></h2>
8321
9115
  <p>It is critical to install Nautobot as the <code>nautobot</code> user so that we don't have to worry about fixing permissions later.</p>
8322
- <div class="highlight"><span class="filename">Log into the nautobot user</span><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>sudo -iu nautobot
9116
+ <div class="highlight"><span class="filename">Log into the nautobot user</span><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>sudo -iu nautobot
8323
9117
  </code></pre></div>
8324
9118
  <details class="note">
8325
- <summary>Validate the NAUTOBOT_ROOT variable</summary>
9119
+ <summary>Validate the <code>NAUTOBOT_ROOT</code> variable</summary>
8326
9120
  <p>Observe also that you can now echo the value of the <code>NAUTOBOT_ROOT</code> environment variable that is automatically set because we added to <code>.bashrc</code>:</p>
8327
- <div class="highlight"><span class="filename">Verify Nautobot Root</span><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>echo $NAUTOBOT_ROOT
9121
+ <div class="highlight"><span class="filename">Verify Nautobot Root</span><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>echo $NAUTOBOT_ROOT
8328
9122
  </code></pre></div>
8329
9123
  <details class="example" open="open">
8330
9124
  <summary>Example NAUTOBOT_ROOT output</summary>
8331
- <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>/opt/nautobot
9125
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>/opt/nautobot
8332
9126
  </code></pre></div>
8333
9127
  </details>
8334
9128
  </details>
@@ -8340,23 +9134,23 @@
8340
9134
  <details class="abstract">
8341
9135
  <summary>Understanding the Virtual Environment</summary>
8342
9136
  <p>Because the <code>nautobot</code> user was created with <code>NAUTOBOT_ROOT</code> set as its home directory and we had you set the shell to <code>/bin/bash</code>, the binary path <code>$NAUTOBOT_ROOT/bin</code> is automatically added to the beginning of the <code>$PATH</code> environment variable:</p>
8343
- <div class="tabbed-set tabbed-alternate" data-tabs="2:2"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Ubuntu/Debian</label><label for="__tabbed_2_2">RHEL8</label></div>
9137
+ <div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Ubuntu/Debian</label><label for="__tabbed_1_2">Fedora/RHEL</label></div>
8344
9138
  <div class="tabbed-content">
8345
9139
  <div class="tabbed-block">
8346
- <div class="highlight"><span class="filename">Print out the PATH variable</span><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>echo $PATH
9140
+ <div class="highlight"><span class="filename">Print out the PATH variable</span><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>echo $PATH
8347
9141
  </code></pre></div>
8348
9142
  <details class="example">
8349
9143
  <summary>Example path output</summary>
8350
- <div class="highlight"><span class="filename">Example output of a PATH variable</span><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>/opt/nautobot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
9144
+ <div class="highlight"><span class="filename">Example output of a PATH variable</span><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>/opt/nautobot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
8351
9145
  </code></pre></div>
8352
9146
  </details>
8353
9147
  </div>
8354
9148
  <div class="tabbed-block">
8355
- <div class="highlight"><span class="filename">Print out the PATH variable</span><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>echo $PATH
9149
+ <div class="highlight"><span class="filename">Print out the PATH variable</span><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>echo $PATH
8356
9150
  </code></pre></div>
8357
9151
  <details class="example">
8358
9152
  <summary>Example path output</summary>
8359
- <div class="highlight"><span class="filename">Example output of a PATH variable</span><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>/opt/nautobot/.local/bin:/opt/nautobot/bin:/opt/nautobot/.local/bin:/opt/nautobot/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
9153
+ <div class="highlight"><span class="filename">Example output of a PATH variable</span><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>/opt/nautobot/.local/bin:/opt/nautobot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin
8360
9154
  </code></pre></div>
8361
9155
  </details>
8362
9156
  </div>
@@ -8365,11 +9159,11 @@
8365
9159
  <p>Therefore, any commands executed by the <code>nautobot</code> user will always check <code>$NAUTOBOT_ROOT/bin</code> first.</p>
8366
9160
  <p>Since <code>NAUTOBOT_ROOT</code> also contains the Python virtualenv for Nautobot, all of the commands you will execute as the <code>nautobot</code> user, will automatically prefer the virtualenv's commands because they come first in the <code>$PATH</code>.</p>
8367
9161
  <p>As the <code>nautobot</code> user, you may use <code>which pip3</code> to confirm that you are using the correct version of <code>pip3</code>. The path should match that of <code>$NAUTOBOT_ROOT/bin</code>. For example:</p>
8368
- <div class="highlight"><span class="filename">Print out location of the pip3 executable</span><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>which pip3
9162
+ <div class="highlight"><span class="filename">Print out location of the pip3 executable</span><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>which pip3
8369
9163
  </code></pre></div>
8370
9164
  <details class="example">
8371
9165
  <summary>Example <code>which pip3</code> output</summary>
8372
- <div class="highlight"><span class="filename">Example output</span><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>/opt/nautobot/bin/pip3
9166
+ <div class="highlight"><span class="filename">Example output</span><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>/opt/nautobot/bin/pip3
8373
9167
  </code></pre></div>
8374
9168
  </details>
8375
9169
  <p>This makes sure that the version of Python you're using, as well any dependencies that you install, remain isolated in this environment.</p>
@@ -8377,66 +9171,69 @@
8377
9171
  <p>Before we install anything into the virtualenv, we want to make sure that Pip is running the latest version.</p>
8378
9172
  <p><a href="https://pip.pypa.io/">Pip</a> is Python's package installer and is referred interchangeably as <code>pip</code> or <code>pip3</code>. For the purpose of this document, we'll deliberately be referring to it as <code>pip3</code>. Many common issues can be solved by running the latest version of Pip. Before continuing with installing Nautobot, upgrade Pip to its latest release.</p>
8379
9173
  <p>We also want to deliberately install the <code>wheel</code> library which will tell Pip to always try to install wheel packages if they are available. A <a href="https://realpython.com/python-wheels/">wheel is a pre-compiled Python package</a>, which is quicker and safer to install because it does not require development libraries or <code>gcc</code> to be installed on your system just so that some more advanced Python libraries can be compiled.</p>
8380
- <div class="highlight"><span class="filename">Update Python Pip and Wheel</span><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>pip3 install --upgrade pip wheel
9174
+ <div class="highlight"><span class="filename">Update Python Pip and Wheel</span><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>pip3 install --upgrade pip wheel
8381
9175
  </code></pre></div>
8382
9176
  <details class="example">
8383
9177
  <summary>Example pip update output</summary>
8384
- <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>Requirement already satisfied: pip in ./lib/python3.10/site-packages (22.0.2)
8385
- <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>Collecting pip
8386
- <a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a>Downloading pip-24.0-py3-none-any.whl (2.1 MB)
8387
- <a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 14.8 MB/s eta 0:00:00
8388
- <a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a>Collecting wheel
8389
- <a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a>Downloading wheel-0.43.0-py3-none-any.whl (65 kB)
8390
- <a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.8/65.8 KB 11.8 MB/s eta 0:00:00
8391
- <a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a>Installing collected packages: wheel, pip
8392
- <a id="__codelineno-15-9" name="__codelineno-15-9" href="#__codelineno-15-9"></a>Attempting uninstall: pip
8393
- <a id="__codelineno-15-10" name="__codelineno-15-10" href="#__codelineno-15-10"></a> Found existing installation: pip 22.0.2
8394
- <a id="__codelineno-15-11" name="__codelineno-15-11" href="#__codelineno-15-11"></a> Uninstalling pip-22.0.2:
8395
- <a id="__codelineno-15-12" name="__codelineno-15-12" href="#__codelineno-15-12"></a> Successfully uninstalled pip-22.0.2
8396
- <a id="__codelineno-15-13" name="__codelineno-15-13" href="#__codelineno-15-13"></a>Successfully installed pip-24.0 wheel-0.43.0
9178
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>Requirement already satisfied: pip in ./lib/python3.12/site-packages (24.0)
9179
+ <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>Collecting pip
9180
+ <a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a> Downloading pip-24.2-py3-none-any.whl.metadata (3.6 kB)
9181
+ <a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a>Collecting wheel
9182
+ <a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a> Downloading wheel-0.43.0-py3-none-any.whl.metadata (2.2 kB)
9183
+ <a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a>Downloading pip-24.2-py3-none-any.whl (1.8 MB)
9184
+ <a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 36.6 MB/s eta 0:00:00
9185
+ <a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a>Downloading wheel-0.43.0-py3-none-any.whl (65 kB)
9186
+ <a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.8/65.8 kB 7.5 MB/s eta 0:00:00
9187
+ <a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a>Installing collected packages: wheel, pip
9188
+ <a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a> Attempting uninstall: pip
9189
+ <a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a> Found existing installation: pip 24.0
9190
+ <a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a> Uninstalling pip-24.0:
9191
+ <a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a> Successfully uninstalled pip-24.0
9192
+ <a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a>Successfully installed pip-24.2 wheel-0.43.0
8397
9193
  </code></pre></div>
8398
9194
  </details>
8399
9195
  <p>By default, Pip will now install Python packages as wheels. In most cases this is desirable, however in some cases the wheel versions of packages may have been compiled with options differing from what is needed for a specific scenario. One such case presents itself here - the wheel for <code>pyuwsgi</code>, a key web server component of Nautobot, is built without SSL (HTTPS) support. This may be fine for a non-production deployment of Nautobot, such as in your lab, but for production deployments, not supporting HTTPS will not do at all. Fortunately, you can tell Pip when you don't want to use wheels for a specific package by passing the <code>--no-binary=&lt;package&gt;</code> CLI parameter. We'll use that below.</p>
8400
9196
  <p>Great! We have <code>NAUTOBOT_ROOT</code> ready for use by the <code>nautobot</code> user, so let's proceed to verifying the installation.</p>
8401
9197
  <h2 id="install-nautobot">Install Nautobot<a class="headerlink" href="#install-nautobot" title="Permanent link">&para;</a></h2>
8402
- <div class="tabbed-set tabbed-alternate" data-tabs="3:2"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">PostgreSQL</label><label for="__tabbed_3_2">MySQL</label></div>
9198
+ <div class="tabbed-set tabbed-alternate" data-tabs="2:2"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">PostgreSQL</label><label for="__tabbed_2_2">MySQL</label></div>
8403
9199
  <div class="tabbed-content">
8404
9200
  <div class="tabbed-block">
8405
9201
  <p>Use Pip to install Nautobot:</p>
8406
- <div class="highlight"><span class="filename">Pip install Nautobot</span><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>pip3 install --no-binary=pyuwsgi nautobot
9202
+ <div class="highlight"><span class="filename">Pip install Nautobot</span><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>pip3 install --no-binary=pyuwsgi nautobot
8407
9203
  </code></pre></div>
8408
9204
  </div>
8409
9205
  <div class="tabbed-block">
8410
9206
  <p>Use Pip to install Nautobot with the MySQL client:</p>
8411
- <div class="highlight"><span class="filename">Pip install Nautobot</span><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>pip3 install --no-binary=pyuwsgi &quot;nautobot[mysql]&quot;
9207
+ <div class="highlight"><span class="filename">Pip install Nautobot</span><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>pip3 install --no-binary=pyuwsgi &quot;nautobot[mysql]&quot;
8412
9208
  </code></pre></div>
8413
9209
  </div>
8414
9210
  </div>
8415
9211
  </div>
8416
9212
  <h2 id="verify-your-nautobot-installation">Verify your Nautobot Installation<a class="headerlink" href="#verify-your-nautobot-installation" title="Permanent link">&para;</a></h2>
8417
9213
  <p>You should now have a fancy <code>nautobot-server</code> command in your environment. This will be your gateway to all things Nautobot! Run it to confirm the installed version of <code>nautobot</code>:</p>
8418
- <div class="highlight"><span class="filename">Verify Nautobot install</span><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>nautobot-server --version
9214
+ <div class="highlight"><span class="filename">Verify Nautobot install</span><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>nautobot-server --version
8419
9215
  </code></pre></div>
8420
9216
  <h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">&para;</a></h2>
8421
9217
  <p>Before you can use Nautobot, you'll need to configure it by telling it where your database and Redis servers can be found, among other things. This is done with the <code>nautobot_config.py</code> configuration file.</p>
8422
9218
  <h3 id="initialize-your-configuration">Initialize your configuration<a class="headerlink" href="#initialize-your-configuration" title="Permanent link">&para;</a></h3>
8423
9219
  <p>Initialize a new configuration by running <code>nautobot-server init</code>. You may specify an alternate location and detailed instructions for this are covered in the documentation on <a href="../configuration/index.html">Nautobot Configuration</a>.</p>
8424
9220
  <p>However, because we've set the <code>NAUTOBOT_ROOT</code>, this command will automatically create a new <code>nautobot_config.py</code> at the default location based on this at <code>$NAUTOBOT_ROOT/nautobot_config.py</code>:</p>
8425
- <div class="highlight"><span class="filename">Initialize Nautobot server</span><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>nautobot-server init
9221
+ <div class="highlight"><span class="filename">Initialize Nautobot server</span><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>nautobot-server init
8426
9222
  </code></pre></div>
8427
9223
  <details class="example">
8428
9224
  <summary>Example <code>nautobot-server init</code> output</summary>
8429
- <div class="highlight"><span class="filename">Example `nautobot-server init`</span><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>Nautobot would like to send anonymized installation metrics to the project&#39;s maintainers.
8430
- <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>These metrics include the installed Nautobot version, the Python version in use, an anonymous &quot;deployment ID&quot;, and a list of one-way-hashed names of enabled Nautobot Apps and their versions.
8431
- <a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a>Allow Nautobot to send these metrics? [y/n]:
9225
+ <div class="highlight"><span class="filename">Example `nautobot-server init`</span><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>Nautobot would like to send anonymized installation metrics to the project&#39;s maintainers.
9226
+ <a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a>These metrics include the installed Nautobot version, the Python version in use, an anonymous
9227
+ <a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a>&quot;deployment ID&quot;, and a list of one-way-hashed names of enabled Nautobot Apps and their versions.
9228
+ <a id="__codelineno-19-4" name="__codelineno-19-4" href="#__codelineno-19-4"></a>Allow Nautobot to send these metrics? [y/n]:
8432
9229
  </code></pre></div>
8433
- <div class="highlight"><span class="filename">Example with Metrics sent</span><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>Installation metrics will be sent when running &#39;nautobot-server post_upgrade&#39;. Thank you!
8434
- <a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a>Configuration file created at /opt/nautobot/nautobot_config.py
9230
+ <div class="highlight"><span class="filename">Example with Metrics sent</span><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>Installation metrics will be sent when running &#39;nautobot-server post_upgrade&#39;. Thank you!
9231
+ <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>Configuration file created at /opt/nautobot/nautobot_config.py
8435
9232
  </code></pre></div>
8436
9233
  </details>
8437
9234
  <details class="version-added">
8438
- <summary>Added in version 1.6.0</summary>
8439
- <p>The <code>nautobot-server init</code> command will now prompt you to set the initial value for the <a href="../configuration/optional-settings.html#installation_metrics_enabled"><code>INSTALLATION_METRICS_ENABLED</code></a> setting. See the <a href="../tools/nautobot-server.html#send_installation_metrics">send_installation_metrics</a> command for more information about the feature that this setting toggles.</p>
9235
+ <summary>Added in version 1.6.0 — Installation metrics selection</summary>
9236
+ <p>The <code>nautobot-server init</code> command will now prompt you to set the initial value for the <a href="../configuration/optional-settings.html#installation_metrics_enabled"><code>INSTALLATION_METRICS_ENABLED</code></a> setting. See the <a href="../tools/nautobot-server.html#send_installation_metrics"><code>send_installation_metrics</code></a> command for more information about the feature that this setting toggles.</p>
8440
9237
  </details>
8441
9238
  <h3 id="required-settings">Required Settings<a class="headerlink" href="#required-settings" title="Permanent link">&para;</a></h3>
8442
9239
  <p>Your <code>nautobot_config.py</code> provides sane defaults for all of the configuration settings. You will inevitably need to update the settings for your environment, most notably the <a href="../configuration/required-settings.html#databases"><code>DATABASES</code></a> setting. If you do not wish to modify the config, by default, many of these configuration settings can also be specified by environment variables. Please see <a href="../configuration/required-settings.html">Required Settings</a> for further details.</p>
@@ -8446,18 +9243,18 @@
8446
9243
  <li><a href="../configuration/required-settings.html#databases"><code>DATABASES</code></a>: Database connection parameters, see below.</li>
8447
9244
  <li><a href="../configuration/required-settings.html#redis-settings">Redis settings</a>: Redis configuration requires multiple settings, if different from the defaults. If you installed Redis on the same system as Nautobot, you most likely do not need to change these settings.</li>
8448
9245
  </ul>
8449
- <div class="tabbed-set tabbed-alternate" data-tabs="4:2"><input checked="checked" id="__tabbed_4_1" name="__tabbed_4" type="radio" /><input id="__tabbed_4_2" name="__tabbed_4" type="radio" /><div class="tabbed-labels"><label for="__tabbed_4_1">PostgreSQL</label><label for="__tabbed_4_2">MySQL</label></div>
9246
+ <div class="tabbed-set tabbed-alternate" data-tabs="3:2"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">PostgreSQL</label><label for="__tabbed_3_2">MySQL</label></div>
8450
9247
  <div class="tabbed-content">
8451
9248
  <div class="tabbed-block">
8452
9249
  <ul>
8453
- <li>At a minimum, you'll need to update the <code>"USER"</code> and <code>"PASSWORD"</code> fields under <code>DATABASES</code>.</li>
9250
+ <li>At a minimum, you'll need to update the <code>"USER"</code> and <code>"PASSWORD"</code> fields under <code>DATABASES</code>. Depending on your security posture, you may wish to set these via environment variables (<code>NAUTOBOT_DB_USER</code> and <code>NAUTOBOT_DB_PASSWORD</code>) rather than writing them directly into your <code>nautobot_config.py</code>. Most Nautobot configuration settings can be set by environment variables if preferred.</li>
8454
9251
  </ul>
8455
9252
  </div>
8456
9253
  <div class="tabbed-block">
8457
9254
  <ul>
8458
- <li>At a minimum, you'll need to update the <code>"USER"</code> and <code>"PASSWORD"</code> fields under <code>DATABASES</code>.</li>
9255
+ <li>At a minimum, you'll need to update the <code>"USER"</code> and <code>"PASSWORD"</code> fields under <code>DATABASES</code>. Depending on your security posture, you may wish to set these via environment variables (<code>NAUTOBOT_DB_USER</code> and <code>NAUTOBOT_DB_PASSWORD</code>) rather than writing them directly into your <code>nautobot_config.py</code>. Most Nautobot configuration settings can be set by environment variables if preferred.</li>
8459
9256
  <li>Additionally, since Nautobot's configuration defaults to assuming PostgreSQL, you must change the <code>"ENGINE"</code> setting from <code>django.db.backends.postgresql</code> to <code>django.db.backends.mysql</code>.</li>
8460
- <li>If you want to enable support for Unicode text, including emojis, please make sure to add <code>"OPTIONS": {"charset": "utf8mb4"}</code>. Refer to the <a href="../configuration/required-settings.html#databases">configuration guide on MySQL Unicode settings</a> for more information.</li>
9257
+ <li>If you want to enable support for Unicode text, including emojis, please make sure to include <code>"OPTIONS": {"charset": "utf8mb4"}</code>. Refer to the <a href="../configuration/required-settings.html#databases">configuration guide on MySQL Unicode settings</a> for more information.</li>
8461
9258
  </ul>
8462
9259
  </div>
8463
9260
  </div>
@@ -8468,7 +9265,7 @@
8468
9265
  </div>
8469
9266
  <p>Save your changes to your <code>nautobot_config.py</code> and then proceed to the next step.</p>
8470
9267
  <h3 id="optional-settings">Optional Settings<a class="headerlink" href="#optional-settings" title="Permanent link">&para;</a></h3>
8471
- <p>All Python packages required by Nautobot will be installed automatically when running <code>pip3 install nautobot</code>.</p>
9268
+ <p>All Python packages required by Nautobot were installed automatically when running <code>pip3 install nautobot</code> above.</p>
8472
9269
  <p>Nautobot also supports the ability to install optional Python packages. If desired, these packages should be listed in <code>local_requirements.txt</code> within the <code>NAUTOBOT_ROOT</code> directory, such as <code>/opt/nautobot/local_requirements.txt</code>.</p>
8473
9270
  <p>If you decide to use any <a href="../../../apps/index.html">Nautobot Apps</a>, they should be listed in the file.</p>
8474
9271
  <details class="abstract">
@@ -8477,30 +9274,30 @@
8477
9274
  <p><a name="napalm"><h4>NAPALM</h4></a></p>
8478
9275
  <p>Nautobot provides built-in support for the <a href="https://github.com/napalm-automation/napalm/">NAPALM automation</a> library, which allows Nautobot to fetch live data from devices and return it to a requester via its REST API. The <a href="../configuration/optional-settings.html#napalm_username"><code>NAPALM_USERNAME</code></a> and <a href="../configuration/optional-settings.html#napalm_password"><code>NAPALM_PASSWORD</code></a> configuration parameters define the credentials to be used when connecting to a device.</p>
8479
9276
  <p>To use NAPALM, add <code>nautobot[napalm]</code> to your <code>local_requirements.txt</code> so that it can be installed and kept up to date:</p>
8480
- <div class="highlight"><span class="filename">Add napalm to the local_requirements.txt file</span><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>echo &quot;nautobot[napalm]&quot; &gt;&gt; $NAUTOBOT_ROOT/local_requirements.txt
9277
+ <div class="highlight"><span class="filename">Add napalm to the local_requirements.txt file</span><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>echo &quot;nautobot[napalm]&quot; &gt;&gt; $NAUTOBOT_ROOT/local_requirements.txt
8481
9278
  </code></pre></div>
8482
9279
  <p><a name="remote-file-storage"><h4>Remote File Storage</h4></a></p>
8483
9280
  <p>By default, Nautobot will use the local filesystem to store uploaded files. To use a remote filesystem, install the <a href="https://django-storages.readthedocs.io/en/stable/"><code>django-storages</code></a> library and configure your <a href="../configuration/optional-settings.html#storage_backend">desired storage backend</a> in <code>nautobot_config.py</code>.</p>
8484
9281
  <p>To use remote file storage, add <code>nautobot[remote_storage]</code> to your <code>local_requirements.txt</code> so that it can be installed and kept up to date:</p>
8485
- <div class="highlight"><span class="filename">Add remote storage to local_requirements.txt</span><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>echo &quot;nautobot[remote_storage]&quot; &gt;&gt; $NAUTOBOT_ROOT/local_requirements.txt
9282
+ <div class="highlight"><span class="filename">Add remote storage to local_requirements.txt</span><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>echo &quot;nautobot[remote_storage]&quot; &gt;&gt; $NAUTOBOT_ROOT/local_requirements.txt
8486
9283
  </code></pre></div>
8487
9284
  <p>For an example of using django-storages with AWS S3 buckets, visit the <a href="../guides/s3-django-storage.html">django-storages with S3</a> user-guide.</p>
8488
9285
  </details>
8489
9286
  <h2 id="prepare-the-database">Prepare the Database<a class="headerlink" href="#prepare-the-database" title="Permanent link">&para;</a></h2>
8490
9287
  <p>Before Nautobot can run, the database migrations must be performed to prepare the database for use. This will populate the database tables and relationships:</p>
8491
- <div class="highlight"><span class="filename">Push migrations onto the Nautobot database</span><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>nautobot-server migrate
9288
+ <div class="highlight"><span class="filename">Push migrations onto the Nautobot database</span><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>nautobot-server migrate
8492
9289
  </code></pre></div>
8493
9290
  <h2 id="create-a-superuser">Create a Superuser<a class="headerlink" href="#create-a-superuser" title="Permanent link">&para;</a></h2>
8494
9291
  <p>Nautobot does not come with any predefined user accounts. You'll need to create a administrative superuser account to be able to log into Nautobot for the first time. Specifying an email address for the user is not required, but be sure to use a very strong password.</p>
8495
- <div class="highlight"><span class="filename">Create Nautobot local super user account</span><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>nautobot-server createsuperuser
9292
+ <div class="highlight"><span class="filename">Create Nautobot local super user account</span><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>nautobot-server createsuperuser
8496
9293
  </code></pre></div>
8497
9294
  <details class="example">
8498
9295
  <summary>Example with admin user created</summary>
8499
- <div class="highlight"><span class="filename">Example output with admin user created</span><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>Username: admin
8500
- <a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a>Email address:
8501
- <a id="__codelineno-26-3" name="__codelineno-26-3" href="#__codelineno-26-3"></a>Password:
8502
- <a id="__codelineno-26-4" name="__codelineno-26-4" href="#__codelineno-26-4"></a>Password (again):
8503
- <a id="__codelineno-26-5" name="__codelineno-26-5" href="#__codelineno-26-5"></a>Superuser created successfully.
9296
+ <div class="highlight"><span class="filename">Example output with admin user created</span><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a>Username: admin
9297
+ <a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a>Email address:
9298
+ <a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a>Password:
9299
+ <a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a>Password (again):
9300
+ <a id="__codelineno-25-5" name="__codelineno-25-5" href="#__codelineno-25-5"></a>Superuser created successfully.
8504
9301
  </code></pre></div>
8505
9302
  </details>
8506
9303
  <h2 id="create-static-directories">Create Static Directories<a class="headerlink" href="#create-static-directories" title="Permanent link">&para;</a></h2>
@@ -8513,11 +9310,11 @@
8513
9310
  </ul>
8514
9311
  <p>Each of these have their own corresponding setting that defined in <code>nautobot_config.py</code>, but by default they will all be placed in <code>NAUTOBOT_ROOT</code> unless you tell Nautobot otherwise by customizing their unique variable.</p>
8515
9312
  <p>The <code>collectstatic</code> command will create these directories if they do not exist, and in the case of the <code>static</code> files directory, it will also copy the appropriate files:</p>
8516
- <div class="highlight"><span class="filename">Collect static files</span><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>nautobot-server collectstatic
9313
+ <div class="highlight"><span class="filename">Collect static files</span><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>nautobot-server collectstatic
8517
9314
  </code></pre></div>
8518
9315
  <details class="example">
8519
9316
  <summary>Collect static example output</summary>
8520
- <div class="highlight"><span class="filename">Collect static output</span><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>1103 static files copied to &#39;/opt/nautobot/static&#39;.
9317
+ <div class="highlight"><span class="filename">Collect static output</span><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a>1156 static files copied to &#39;/opt/nautobot/static&#39;.
8521
9318
  </code></pre></div>
8522
9319
  </details>
8523
9320
  <h2 id="install-local-requirements">Install Local Requirements<a class="headerlink" href="#install-local-requirements" title="Permanent link">&para;</a></h2>
@@ -8526,7 +9323,7 @@
8526
9323
  <p>If you did not create a <code>local_requirements.txt</code> above, please skip this step.</p>
8527
9324
  </div>
8528
9325
  <p>This step is entirely optional. As indicated above, we mentioned that any extra local requirements should go into <code>$NAUTOBOT_ROOT/local_requirements.txt</code>.</p>
8529
- <div class="highlight"><span class="filename">Install local requirements</span><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>pip3 install -r $NAUTOBOT_ROOT/local_requirements.txt
9326
+ <div class="highlight"><span class="filename">Install local requirements</span><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>pip3 install -r $NAUTOBOT_ROOT/local_requirements.txt
8530
9327
  </code></pre></div>
8531
9328
  <h2 id="check-your-configuration">Check your Configuration<a class="headerlink" href="#check-your-configuration" title="Permanent link">&para;</a></h2>
8532
9329
  <p>Nautobot leverages Django's built-in <a href="https://docs.djangoproject.com/en/stable/topics/checks/#writing-your-own-checks">system check framework</a> to validate the configuration to detect common problems and to provide hints for how to fix them.</p>
@@ -8535,17 +9332,17 @@
8535
9332
  <p class="admonition-title">Hint</p>
8536
9333
  <p>Get into the habit of running checks before deployments!</p>
8537
9334
  </div>
8538
- <div class="highlight"><span class="filename">Run a nautobot-server check</span><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>nautobot-server check
9335
+ <div class="highlight"><span class="filename">Run a nautobot-server check</span><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>nautobot-server check
8539
9336
  </code></pre></div>
8540
9337
  <details class="example">
8541
9338
  <summary>nautobot-server check output</summary>
8542
- <div class="highlight"><span class="filename">Example nautobot-server check output</span><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>System check identified no issues (0 silenced).
9339
+ <div class="highlight"><span class="filename">Example nautobot-server check output</span><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a>System check identified no issues (0 silenced).
8543
9340
  </code></pre></div>
8544
9341
  </details>
8545
9342
  <h2 id="test-the-application">Test the Application<a class="headerlink" href="#test-the-application" title="Permanent link">&para;</a></h2>
8546
9343
  <p>At this point, we should be able to run Nautobot's development server for testing. We can check by starting a
8547
9344
  development instance:</p>
8548
- <div class="highlight"><span class="filename">Optional: Test the Nautobot application</span><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>nautobot-server runserver 0.0.0.0:8080 --insecure
9345
+ <div class="highlight"><span class="filename">Optional: Test the Nautobot application</span><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a>nautobot-server runserver 0.0.0.0:8080 --insecure
8549
9346
  </code></pre></div>
8550
9347
  <p>Next, connect to the name or IP of the server (as defined in <code>ALLOWED_HOSTS</code>) on port 8080; for example, <a href="http://127.0.0.1:8080/">http://127.0.0.1:8080/</a>. You should be greeted with the Nautobot home page.</p>
8551
9348
  <div class="admonition danger">
@@ -8664,7 +9461,7 @@ development instance:</p>
8664
9461
 
8665
9462
 
8666
9463
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
8667
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0zm32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
9464
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zm0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0zm32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>
8668
9465
  </a>
8669
9466
 
8670
9467
 
@@ -8672,7 +9469,7 @@ development instance:</p>
8672
9469
 
8673
9470
 
8674
9471
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
8675
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
9472
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
8676
9473
  </a>
8677
9474
 
8678
9475
 
@@ -8680,7 +9477,7 @@ development instance:</p>
8680
9477
 
8681
9478
 
8682
9479
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
8683
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
9480
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"/></svg>
8684
9481
  </a>
8685
9482
 
8686
9483
 
@@ -8688,7 +9485,7 @@ development instance:</p>
8688
9485
 
8689
9486
 
8690
9487
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
8691
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
9488
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
8692
9489
  </a>
8693
9490
 
8694
9491
 
@@ -8696,7 +9493,7 @@ development instance:</p>
8696
9493
 
8697
9494
 
8698
9495
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
8699
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
9496
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
8700
9497
  </a>
8701
9498
 
8702
9499
  </div>