nautobot 2.4.2__py3-none-any.whl → 2.4.4__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.
Files changed (267) hide show
  1. nautobot/apps/filters.py +2 -0
  2. nautobot/circuits/filters.py +1 -1
  3. nautobot/circuits/templates/circuits/inc/circuit_termination.html +1 -1
  4. nautobot/circuits/tests/integration/test_circuit.py +135 -0
  5. nautobot/circuits/tests/test_models.py +5 -3
  6. nautobot/circuits/views.py +4 -1
  7. nautobot/cloud/api/views.py +3 -3
  8. nautobot/cloud/filters.py +3 -6
  9. nautobot/cloud/tests/test_filters.py +21 -0
  10. nautobot/core/admin.py +2 -0
  11. nautobot/core/constants.py +0 -1
  12. nautobot/core/forms/__init__.py +2 -0
  13. nautobot/core/forms/forms.py +2 -1
  14. nautobot/core/forms/widgets.py +8 -0
  15. nautobot/core/jobs/__init__.py +2 -1
  16. nautobot/core/management/commands/generate_performance_test_endpoints.py +271 -0
  17. nautobot/core/models/utils.py +6 -1
  18. nautobot/core/templates/generic/object_bulk_delete.html +1 -1
  19. nautobot/core/templates/generic/object_bulk_edit.html +1 -1
  20. nautobot/core/templates/generic/object_bulk_import.html +1 -1
  21. nautobot/core/templates/generic/object_create.html +5 -0
  22. nautobot/core/templates/generic/object_delete.html +1 -1
  23. nautobot/core/templates/generic/object_detail.html +1 -1
  24. nautobot/core/templates/generic/object_edit.html +1 -1
  25. nautobot/core/templates/inc/javascript.html +3 -0
  26. nautobot/core/templates/widgets/clearable_file.html +5 -0
  27. nautobot/core/templatetags/helpers.py +3 -3
  28. nautobot/core/templatetags/ui_framework.py +20 -4
  29. nautobot/core/testing/forms.py +1 -1
  30. nautobot/core/testing/integration.py +37 -7
  31. nautobot/core/tests/test_api.py +1 -1
  32. nautobot/core/tests/test_commands.py +31 -0
  33. nautobot/core/tests/test_graphql.py +3 -3
  34. nautobot/core/tests/test_jobs.py +4 -1
  35. nautobot/core/tests/test_utils.py +17 -2
  36. nautobot/core/ui/object_detail.py +1 -1
  37. nautobot/core/utils/lookup.py +12 -1
  38. nautobot/core/views/generic.py +9 -1
  39. nautobot/core/views/mixins.py +9 -1
  40. nautobot/dcim/api/serializers.py +36 -0
  41. nautobot/dcim/api/views.py +12 -11
  42. nautobot/dcim/elevations.py +17 -4
  43. nautobot/dcim/factory.py +9 -1
  44. nautobot/dcim/filters/__init__.py +27 -1
  45. nautobot/dcim/forms.py +16 -7
  46. nautobot/dcim/models/devices.py +12 -7
  47. nautobot/dcim/signals.py +26 -0
  48. nautobot/dcim/templates/dcim/cable_trace.html +4 -4
  49. nautobot/dcim/templates/dcim/consoleport.html +14 -4
  50. nautobot/dcim/templates/dcim/consoleserverport.html +14 -4
  51. nautobot/dcim/templates/dcim/device/lldp_neighbors.html +3 -3
  52. nautobot/dcim/templates/dcim/frontport.html +7 -2
  53. nautobot/dcim/templates/dcim/interface.html +9 -4
  54. nautobot/dcim/templates/dcim/powerfeed.html +8 -3
  55. nautobot/dcim/templates/dcim/poweroutlet.html +14 -4
  56. nautobot/dcim/templates/dcim/powerport.html +14 -4
  57. nautobot/dcim/templates/dcim/rearport.html +7 -2
  58. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +0 -62
  59. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +6 -0
  60. nautobot/dcim/tests/integration/test_fileinputpicker.py +87 -0
  61. nautobot/dcim/tests/test_api.py +176 -0
  62. nautobot/dcim/tests/test_filters.py +56 -3
  63. nautobot/dcim/tests/test_models.py +41 -1
  64. nautobot/dcim/views.py +24 -14
  65. nautobot/extras/api/mixins.py +1 -1
  66. nautobot/extras/api/views.py +4 -4
  67. nautobot/extras/filters/__init__.py +4 -0
  68. nautobot/extras/forms/forms.py +4 -0
  69. nautobot/extras/jobs.py +8 -1
  70. nautobot/extras/models/datasources.py +7 -3
  71. nautobot/extras/plugins/__init__.py +26 -1
  72. nautobot/extras/templates/extras/inc/jobresult.html +12 -13
  73. nautobot/extras/templates/extras/job.html +1 -0
  74. nautobot/extras/templates/extras/objectchange.html +28 -12
  75. nautobot/extras/tests/test_api.py +16 -15
  76. nautobot/extras/tests/test_dynamicgroups.py +14 -0
  77. nautobot/extras/tests/test_filters.py +2 -0
  78. nautobot/extras/tests/test_plugins.py +32 -1
  79. nautobot/extras/tests/test_views.py +209 -11
  80. nautobot/extras/utils.py +30 -0
  81. nautobot/extras/views.py +32 -14
  82. nautobot/ipam/api/serializers.py +7 -8
  83. nautobot/ipam/api/views.py +5 -5
  84. nautobot/ipam/factory.py +27 -8
  85. nautobot/ipam/filters.py +67 -29
  86. nautobot/ipam/formfields.py +51 -0
  87. nautobot/ipam/forms.py +15 -7
  88. nautobot/ipam/migrations/0051_added_optional_vrf_relationship_to_vdc.py +41 -0
  89. nautobot/ipam/models.py +63 -5
  90. nautobot/ipam/tables.py +21 -7
  91. nautobot/ipam/tests/test_api.py +107 -66
  92. nautobot/ipam/tests/test_filters.py +145 -5
  93. nautobot/ipam/tests/test_views.py +15 -2
  94. nautobot/project-static/bootstrap-filestyle-1.2.3/bootstrap-filestyle.min.js +11 -0
  95. nautobot/project-static/css/base.css +11 -0
  96. nautobot/project-static/css/dark.css +2 -1
  97. nautobot/project-static/docs/apps/index.html +1 -1
  98. nautobot/project-static/docs/apps/nautobot-apps.html +1 -1
  99. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +62 -0
  100. nautobot/project-static/docs/development/apps/api/configuration-view.html +0 -3
  101. nautobot/project-static/docs/development/apps/api/models/graphql.html +9 -13
  102. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +94 -1
  103. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +2 -5
  104. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +0 -3
  105. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +0 -3
  106. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +0 -3
  107. nautobot/project-static/docs/development/apps/api/prometheus.html +0 -3
  108. nautobot/project-static/docs/development/apps/api/setup.html +1 -1
  109. nautobot/project-static/docs/development/apps/api/testing.html +0 -6
  110. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +0 -3
  111. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +0 -3
  112. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +0 -3
  113. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +0 -3
  114. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +1 -7
  115. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +0 -7
  116. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +0 -4
  117. nautobot/project-static/docs/development/apps/api/views/notes.html +0 -3
  118. nautobot/project-static/docs/development/apps/index.html +2 -35
  119. nautobot/project-static/docs/development/apps/migration/code-updates.html +7 -6
  120. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +2 -2
  121. nautobot/project-static/docs/development/apps/migration/from-v1.html +3 -3
  122. nautobot/project-static/docs/development/core/application-registry.html +0 -6
  123. nautobot/project-static/docs/development/core/best-practices.html +1 -28
  124. nautobot/project-static/docs/development/core/bootstrap-ui.html +1 -1
  125. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +65 -11
  126. nautobot/project-static/docs/development/core/getting-started.html +14 -18
  127. nautobot/project-static/docs/development/core/homepage.html +0 -3
  128. nautobot/project-static/docs/development/core/index.html +1 -1
  129. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +3 -3
  130. nautobot/project-static/docs/development/core/model-checklist.html +1 -1
  131. nautobot/project-static/docs/development/core/navigation-menu.html +1 -1
  132. nautobot/project-static/docs/development/core/release-checklist.html +1 -1
  133. nautobot/project-static/docs/development/core/settings.html +1 -1
  134. nautobot/project-static/docs/development/core/style-guide.html +4 -9
  135. nautobot/project-static/docs/development/core/templates.html +0 -3
  136. nautobot/project-static/docs/development/core/testing.html +0 -9
  137. nautobot/project-static/docs/development/jobs/index.html +11 -30
  138. nautobot/project-static/docs/development/jobs/migration/from-v1.html +3 -2
  139. nautobot/project-static/docs/index.html +3 -2
  140. nautobot/project-static/docs/objects.inv +0 -0
  141. nautobot/project-static/docs/overview/application_stack.html +2 -20
  142. nautobot/project-static/docs/release-notes/version-1.0.html +2 -2
  143. nautobot/project-static/docs/release-notes/version-1.1.html +2 -2
  144. nautobot/project-static/docs/release-notes/version-1.2.html +3 -3
  145. nautobot/project-static/docs/release-notes/version-1.3.html +1 -1
  146. nautobot/project-static/docs/release-notes/version-1.4.html +17 -17
  147. nautobot/project-static/docs/release-notes/version-1.5.html +8 -8
  148. nautobot/project-static/docs/release-notes/version-1.6.html +4 -4
  149. nautobot/project-static/docs/release-notes/version-2.0.html +10 -10
  150. nautobot/project-static/docs/release-notes/version-2.1.html +7 -7
  151. nautobot/project-static/docs/release-notes/version-2.2.html +1 -1
  152. nautobot/project-static/docs/release-notes/version-2.3.html +4 -4
  153. nautobot/project-static/docs/release-notes/version-2.4.html +379 -0
  154. nautobot/project-static/docs/requirements.txt +1 -1
  155. nautobot/project-static/docs/search/search_index.json +1 -1
  156. nautobot/project-static/docs/sitemap.xml +290 -290
  157. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  158. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +3 -3
  159. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +4 -4
  160. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +1 -1
  161. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +3 -13
  162. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +5 -5
  163. nautobot/project-static/docs/user-guide/administration/guides/docker.html +3 -18
  164. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +1 -1
  165. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +4 -4
  166. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +15 -15
  167. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +2 -2
  168. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +1 -1
  169. nautobot/project-static/docs/user-guide/administration/installation/index.html +0 -16
  170. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +1 -1
  171. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +7 -10
  172. nautobot/project-static/docs/user-guide/administration/installation/services.html +1 -12
  173. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +3 -3
  174. nautobot/project-static/docs/user-guide/administration/security/index.html +1 -1
  175. nautobot/project-static/docs/user-guide/administration/security/notices.html +1 -0
  176. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +5 -35
  177. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +1 -1
  178. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-location-changes.yaml +1 -1
  179. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +12 -9
  180. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +0 -4
  181. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +0 -3
  182. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +0 -4
  183. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +0 -4
  184. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +0 -4
  185. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +0 -4
  186. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +0 -4
  187. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +0 -4
  188. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +0 -3
  189. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +0 -4
  190. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +0 -4
  191. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +0 -4
  192. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +1 -17
  193. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +0 -3
  194. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +0 -4
  195. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +0 -4
  196. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +0 -3
  197. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +1 -7
  198. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +0 -4
  199. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +0 -4
  200. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +0 -4
  201. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +0 -4
  202. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +0 -4
  203. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +0 -4
  204. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +0 -4
  205. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +0 -6
  206. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +0 -3
  207. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +0 -4
  208. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +0 -4
  209. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +0 -8
  210. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +15 -15
  211. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +1 -1
  212. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +0 -6
  213. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +0 -3
  214. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +3 -15
  215. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +1 -27
  216. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +0 -8
  217. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +3 -6
  218. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +0 -8
  219. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +0 -7
  220. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +0 -3
  221. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +0 -3
  222. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +2 -2
  223. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +6 -6
  224. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +0 -14
  225. nautobot/project-static/docs/user-guide/platform-functionality/note.html +0 -3
  226. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +1 -10
  227. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +0 -3
  228. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +0 -14
  229. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +0 -19
  230. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +3 -9
  231. nautobot/project-static/docs/user-guide/platform-functionality/status.html +0 -8
  232. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +0 -4
  233. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +1 -13
  234. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +0 -5
  235. nautobot/project-static/js/dropdown.js +28 -0
  236. nautobot/project-static/js/editor.js +292 -0
  237. nautobot/project-static/monaco-editor-0.52.2/README.md +81 -0
  238. nautobot/project-static/monaco-editor-0.52.2/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  239. nautobot/project-static/monaco-editor-0.52.2/vs/base/worker/workerMain.js +31 -0
  240. nautobot/project-static/monaco-editor-0.52.2/vs/basic-languages/xml/xml.js +10 -0
  241. nautobot/project-static/monaco-editor-0.52.2/vs/basic-languages/yaml/yaml.js +10 -0
  242. nautobot/project-static/monaco-editor-0.52.2/vs/editor/editor.main.css +8 -0
  243. nautobot/project-static/monaco-editor-0.52.2/vs/editor/editor.main.js +798 -0
  244. nautobot/project-static/monaco-editor-0.52.2/vs/language/json/jsonMode.js +19 -0
  245. nautobot/project-static/monaco-editor-0.52.2/vs/language/json/jsonWorker.js +42 -0
  246. nautobot/project-static/monaco-editor-0.52.2/vs/loader.js +11 -0
  247. nautobot/tenancy/filters/__init__.py +3 -5
  248. nautobot/tenancy/forms.py +9 -0
  249. nautobot/tenancy/templates/tenancy/tenant_create.html +21 -0
  250. nautobot/tenancy/templates/tenancy/tenant_edit.html +2 -21
  251. nautobot/tenancy/templates/tenancy/tenantgroup.html +2 -44
  252. nautobot/tenancy/templates/tenancy/tenantgroup_retrieve.html +1 -0
  253. nautobot/tenancy/tests/test_filters.py +10 -0
  254. nautobot/tenancy/tests/test_views.py +5 -1
  255. nautobot/tenancy/urls.py +7 -79
  256. nautobot/tenancy/views.py +51 -80
  257. nautobot/virtualization/views.py +0 -1
  258. nautobot/wireless/api/serializers.py +6 -1
  259. nautobot/wireless/api/views.py +3 -3
  260. nautobot/wireless/tables.py +9 -4
  261. nautobot/wireless/tests/test_api.py +5 -9
  262. {nautobot-2.4.2.dist-info → nautobot-2.4.4.dist-info}/METADATA +9 -9
  263. {nautobot-2.4.2.dist-info → nautobot-2.4.4.dist-info}/RECORD +267 -246
  264. {nautobot-2.4.2.dist-info → nautobot-2.4.4.dist-info}/LICENSE.txt +0 -0
  265. {nautobot-2.4.2.dist-info → nautobot-2.4.4.dist-info}/NOTICE +0 -0
  266. {nautobot-2.4.2.dist-info → nautobot-2.4.4.dist-info}/WHEEL +0 -0
  267. {nautobot-2.4.2.dist-info → nautobot-2.4.4.dist-info}/entry_points.txt +0 -0
Binary file
@@ -9471,7 +9471,7 @@
9471
9471
  <p>On CentOS:</p>
9472
9472
  <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>sudo dnf install -y openldap-devel
9473
9473
  </code></pre></div>
9474
- <h3 id="install-django-auth-ldap">Install django-auth-ldap<a class="headerlink" href="#install-django-auth-ldap" title="Permanent link">&para;</a></h3>
9474
+ <h3 id="install-django-auth-ldap">Install <code>django-auth-ldap</code><a class="headerlink" href="#install-django-auth-ldap" title="Permanent link">&para;</a></h3>
9475
9475
  <div class="admonition warning">
9476
9476
  <p class="admonition-title">Warning</p>
9477
9477
  <p>This and all remaining steps in this document should all be performed as the <code>nautobot</code> user!</p>
@@ -9540,7 +9540,7 @@
9540
9540
  <a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a> <span class="n">ldap</span><span class="o">.</span><span class="n">OPT_X_TLS_REQUIRE_CERT</span><span class="p">:</span> <span class="n">ldap</span><span class="o">.</span><span class="n">OPT_X_TLS_NEVER</span><span class="p">,</span>
9541
9541
  <a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="p">}</span>
9542
9542
  </code></pre></div>
9543
- <p>Additional ldap connection options can be found in the <a href="https://www.python-ldap.org/en/python-ldap-3.3.0/reference/ldap.html?highlight=cacert#options">python-ldap documentation</a>.</p>
9543
+ <p>Additional LDAP connection options can be found in the <a href="https://www.python-ldap.org/en/python-ldap-3.3.0/reference/ldap.html?highlight=cacert#options"><code>python-ldap</code> documentation</a>.</p>
9544
9544
  <h3 id="user-authentication">User Authentication<a class="headerlink" href="#user-authentication" title="Permanent link">&para;</a></h3>
9545
9545
  <div class="admonition info">
9546
9546
  <p class="admonition-title">Info</p>
@@ -9676,7 +9676,7 @@
9676
9676
  <a id="__codelineno-17-18" name="__codelineno-17-18" href="#__codelineno-17-18"></a> <span class="p">},</span>
9677
9677
  <a id="__codelineno-17-19" name="__codelineno-17-19" href="#__codelineno-17-19"></a><span class="p">}</span>
9678
9678
  </code></pre></div>
9679
- <p>Ensure the file and path specified in logfile exist and are writable and executable by the application service account. Restart the nautobot service and attempt to log into the site to trigger log entries to this file.</p>
9679
+ <p>Ensure the file and path specified in logfile exist and are writable and executable by the application service account. Restart the <code>nautobot</code> service and attempt to log into the site to trigger log entries to this file.</p>
9680
9680
  <hr />
9681
9681
  <p>Be sure to configure <a href="../settings.html#external_auth_default_groups"><code>EXTERNAL_AUTH_DEFAULT_GROUPS</code></a> and <a href="../settings.html#external_auth_default_permissions"><code>EXTERNAL_AUTH_DEFAULT_PERMISSIONS</code></a> next.</p>
9682
9682
 
@@ -9703,7 +9703,7 @@
9703
9703
 
9704
9704
  <h1 id="single-sign-on">Single Sign On<a class="headerlink" href="#single-sign-on" title="Permanent link">&para;</a></h1>
9705
9705
  <p>Nautobot supports several different authentication mechanisms including OAuth (1 and 2), OpenID, SAML, and others.
9706
- To accomplish this, Nautobot comes preinstalled with the <a href="https://python-social-auth.readthedocs.io/en/latest/configuration/django.html">social-auth-app-django</a> Python module.</p>
9706
+ To accomplish this, Nautobot comes preinstalled with the <a href="https://python-social-auth.readthedocs.io/en/latest/configuration/django.html"><code>social-auth-app-django</code></a> Python module.</p>
9707
9707
  <p>This module supports several <a href="https://python-social-auth.readthedocs.io/en/latest/backends/index.html">authentication backends</a> by default including:</p>
9708
9708
  <ul>
9709
9709
  <li>Google</li>
@@ -9754,7 +9754,7 @@ To accomplish this, Nautobot comes preinstalled with the <a href="https://python
9754
9754
  <p>You should only enable one social authentication authentication backend. It is technically possible to use multiple backends but we cannot officially support more than one at this time.</p>
9755
9755
  </div>
9756
9756
  <h3 id="custom-authentication-backends">Custom Authentication Backends<a class="headerlink" href="#custom-authentication-backends" title="Permanent link">&para;</a></h3>
9757
- <p>The default external authentication supported is <a href="https://python-social-auth.readthedocs.io/en/latest/configuration/django.html">social-auth-app-django</a> as stated above. If you have developed your own external authentication backend, you will need to configure <code>SOCIAL_AUTH_BACKEND_PREFIX</code> to use your backend instead and correctly enable the SSO redirect when the login button is clicked. For example, if your custom authentication backend is available at <code>custom_auth.backends.custom.Oauth2</code>, you would set things as follows:</p>
9757
+ <p>The default external authentication supported is <a href="https://python-social-auth.readthedocs.io/en/latest/configuration/django.html"><code>social-auth-app-django</code></a> as stated above. If you have developed your own external authentication backend, you will need to configure <code>SOCIAL_AUTH_BACKEND_PREFIX</code> to use your backend instead and correctly enable the SSO redirect when the login button is clicked. For example, if your custom authentication backend is available at <code>custom_auth.backends.custom.Oauth2</code>, you would set things as follows:</p>
9758
9758
  <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="n">SOCIAL_AUTH_BACKEND_PREFIX</span> <span class="o">=</span> <span class="s2">&quot;custom_auth.backends&quot;</span>
9759
9759
  <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>
9760
9760
  <a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="n">AUTHENTICATION_BACKENDS</span> <span class="o">=</span> <span class="p">[</span>
@@ -9984,7 +9984,7 @@ a default set of permissions there are some additional variables to configure th
9984
9984
  <p>The following instructions guide you through the process of configuring Google for OAuth2 authentication.</p>
9985
9985
  <div class="admonition important">
9986
9986
  <p class="admonition-title">Important</p>
9987
- <p>Please note there is further guidance provided by <a href="https://python-social-auth.readthedocs.io/en/latest/backends/google.html#google-oauth2">python-social-auth</a> as well as <a href="https://developers.google.com/identity/protocols/oauth2?csw=1">Google</a>. For more</p>
9987
+ <p>Please note there is further guidance provided by <a href="https://python-social-auth.readthedocs.io/en/latest/backends/google.html#google-oauth2"><code>python-social-auth</code></a> as well as <a href="https://developers.google.com/identity/protocols/oauth2?csw=1">Google</a>. For more</p>
9988
9988
  </div>
9989
9989
  <p>information please utilize these additional resources.</p>
9990
9990
  <ol>
@@ -10031,7 +10031,7 @@ a default set of permissions there are some additional variables to configure th
10031
10031
  <p>This guide will walk you through configuring Nautobot to authenticate using SAML with Google as the identity provider.</p>
10032
10032
  <div class="admonition important">
10033
10033
  <p class="admonition-title">Important</p>
10034
- <p>Please note that there is further guidance provided by <a href="https://python-social-auth.readthedocs.io/en/latest/backends/saml.html">python-social-auth</a> and <a href="https://support.google.com/a/answer/6087519?hl=en">Google</a>. For more information please utilize these additional resources.</p>
10034
+ <p>Please note that there is further guidance provided by <a href="https://python-social-auth.readthedocs.io/en/latest/backends/saml.html"><code>python-social-auth</code></a> and <a href="https://support.google.com/a/answer/6087519?hl=en">Google</a>. For more information please utilize these additional resources.</p>
10035
10035
  </div>
10036
10036
  <h4 id="prerequisites">Prerequisites<a class="headerlink" href="#prerequisites" title="Permanent link">&para;</a></h4>
10037
10037
  <div class="admonition warning">
@@ -9323,7 +9323,7 @@ of the Redis server and port for each sentinel instance to connect to</li>
9323
9323
  <a id="__codelineno-0-19" name="__codelineno-0-19" href="#__codelineno-0-19"></a> <span class="p">},</span>
9324
9324
  <a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a><span class="p">}</span>
9325
9325
  </code></pre></div>
9326
- <p>For more details on configuring django-redis with Redis Sentinel, please see the documentation for <a href="https://github.com/jazzband/django-redis#use-the-sentinel-connection-factory">Django Redis</a>.</p>
9326
+ <p>For more details on configuring <code>django-redis</code> with Redis Sentinel, please see the documentation for <a href="https://github.com/jazzband/django-redis#use-the-sentinel-connection-factory">Django Redis</a>.</p>
9327
9327
  <h3 id="celery-sentinel-configuration"><code>celery</code> Sentinel Configuration<a class="headerlink" href="#celery-sentinel-configuration" title="Permanent link">&para;</a></h3>
9328
9328
  <details class="version-changed">
9329
9329
  <summary>Changed in version 2.0.0 — Do not change <code>CELERY_RESULT_BACKEND</code> or <code>CELERY_RESULT_BACKEND_TRANSPORT_OPTIONS</code></summary>
@@ -11431,9 +11431,6 @@
11431
11431
  <p>This document describes Nautobot-specific configuration settings that may be customized in your <code>nautobot_config.py</code>, or, in many cases, by configuration of appropriate environment variables. It also describes a number of common Django configuration settings that may also be customized similarly.</p>
11432
11432
  <p>The <a href="https://docs.djangoproject.com/en/stable/ref/settings/">official Django documentation</a> documents <em>all</em> Django settings, and this document does not attempt to replace that documentation.</p>
11433
11433
  <h2 id="administratively-configurable-settings">Administratively Configurable Settings<a class="headerlink" href="#administratively-configurable-settings" title="Permanent link">&para;</a></h2>
11434
- <details class="version-added">
11435
- <summary>Added in version 1.2.0</summary>
11436
- </details>
11437
11434
  <p>A number of settings can alternatively be configured via the Nautobot Admin UI. To do so, these settings must <strong>not</strong> be defined in your <code>nautobot_config.py</code>, as any settings defined there will take precedence over any values defined in the Admin UI. Settings that are currently configurable via the Admin UI include:</p>
11438
11435
  <!-- pyml disable-num-lines 5 blanks-around-lists -->
11439
11436
 
@@ -13472,7 +13469,7 @@ The function must return only one argument: a string of the truncated device dis
13472
13469
  <p>The following settings are <strong>only</strong> configurable as environment variables, and not via <code>nautobot_config.py</code> or similar.</p>
13473
13470
  </div>
13474
13471
  <hr />
13475
- <h3 id="git_ssl_no_verify">GIT_SSL_NO_VERIFY<a class="headerlink" href="#git_ssl_no_verify" title="Permanent link">&para;</a></h3>
13472
+ <h3 id="git_ssl_no_verify"><code>GIT_SSL_NO_VERIFY</code><a class="headerlink" href="#git_ssl_no_verify" title="Permanent link">&para;</a></h3>
13476
13473
  <p>Default: Unset</p>
13477
13474
  <p>If you are using a self-signed git repository, you will need to set the environment variable <code>GIT_SSL_NO_VERIFY="1"</code>
13478
13475
  in order for the repository to sync.</p>
@@ -13481,18 +13478,11 @@ in order for the repository to sync.</p>
13481
13478
  <p>This <em>must</em> be specified as an environment variable. Setting it in <code>nautobot_config.py</code> will not have the desired effect.</p>
13482
13479
  </div>
13483
13480
  <hr />
13484
- <h3 id="nautobot_log_deprecation_warnings">NAUTOBOT_LOG_DEPRECATION_WARNINGS<a class="headerlink" href="#nautobot_log_deprecation_warnings" title="Permanent link">&para;</a></h3>
13485
- <details class="version-added">
13486
- <summary>Added in version 1.5.2</summary>
13487
- </details>
13488
- <details class="version-changed">
13489
- <summary>Changed in version 1.5.3</summary>
13490
- <p>This was previously available as a config file setting but changed to environment-variable only. Also <code>DEBUG = True</code> will no longer work to log deprecation warnings.</p>
13491
- </details>
13481
+ <h3 id="nautobot_log_deprecation_warnings"><code>NAUTOBOT_LOG_DEPRECATION_WARNINGS</code><a class="headerlink" href="#nautobot_log_deprecation_warnings" title="Permanent link">&para;</a></h3>
13492
13482
  <p>Default: <code>False</code></p>
13493
13483
  <p>This can be set to <code>True</code> to allow deprecation warnings raised by Nautobot to (additionally) be logged as <code>WARNING</code> level log messages. (Deprecation warnings are normally silent in Python, but can be enabled globally by <a href="https://docs.python.org/3/library/warnings.html">various means</a> such as setting the <code>PYTHONWARNINGS</code> environment variable. However, doing so can be rather noisy, as it will also include warnings from within Django about various code in various package dependencies of Nautobot's, etc. This configuration setting allows a more targeted enablement of only warnings from within Nautobot itself, which can be useful when vetting various Nautobot Apps for future-proofness against upcoming changes to Nautobot.)</p>
13494
13484
  <hr />
13495
- <h3 id="nautobot_root_1">NAUTOBOT_ROOT<a class="headerlink" href="#nautobot_root_1" title="Permanent link">&para;</a></h3>
13485
+ <h3 id="nautobot_root_1"><code>NAUTOBOT_ROOT</code><a class="headerlink" href="#nautobot_root_1" title="Permanent link">&para;</a></h3>
13496
13486
  <p>Default: <code>~/.nautobot/</code></p>
13497
13487
  <p>The filesystem path to use to store Nautobot files (Jobs, uploaded images, Git repositories, etc.).</p>
13498
13488
  <p>This setting is used internally in the core settings to provide default locations for <a href="index.html#file-storage">features that require file storage</a>, and the <a href="index.html#specifying-your-configuration">default location of the <code>nautobot_config.py</code></a>.</p>
@@ -9214,9 +9214,9 @@
9214
9214
 
9215
9215
 
9216
9216
  <h1 id="celery-task-queues">Celery Task Queues<a class="headerlink" href="#celery-task-queues" title="Permanent link">&para;</a></h1>
9217
- <p>If you're planning to run multiple jobs, leverage job hooks or are finding that your jobs are taking too long to complete you may want to consider deploying multiple celery workers with different queues for different types of tasks.</p>
9217
+ <p>If you're planning to run multiple jobs, leverage job hooks or are finding that your jobs are taking too long to complete you may want to consider deploying multiple Celery workers with different queues for different types of tasks.</p>
9218
9218
  <h2 id="how-celery-task-queues-work">How Celery Task Queues Work<a class="headerlink" href="#how-celery-task-queues-work" title="Permanent link">&para;</a></h2>
9219
- <p>The default celery behavior is:</p>
9219
+ <p>The default Celery behavior is:</p>
9220
9220
  <ul>
9221
9221
  <li><a href="https://docs.celeryq.dev/en/stable/reference/cli.html#cmdoption-celery-worker-Q"><code>--queue celery</code></a></li>
9222
9222
  <li><a href="https://docs.celeryq.dev/en/stable/reference/cli.html#cmdoption-celery-worker-c"><code>--concurrency</code></a> set to the number of CPUs detected on the system</li>
@@ -9227,10 +9227,10 @@
9227
9227
  <p>Each environment is unique but it's generally a good idea to add at least one extra worker on a separate queue for running jobs. Nautobot uses the default <code>celery</code> queue to perform some background tasks and if the queue is full of long running jobs these system tasks could take a long time to execute. This could cause performance problems or unexpected behavior in Nautobot. A new worker can be deployed on a separate queue by using the <a href="../installation/services.html#celery-worker"><code>nautobot-worker.service</code> systemd service</a> and modifying the <code>ExecStart</code> line to include a <a href="https://docs.celeryq.dev/en/stable/reference/cli.html#cmdoption-celery-worker-Q"><code>--queues</code> option</a>. Example:</p>
9228
9228
  <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="na">ExecStart</span><span class="o">=</span><span class="s">/opt/nautobot/bin/nautobot-server celery worker --loglevel INFO --pidfile /var/tmp/nautobot-worker-jobqueue.pid --queues job_queue</span>
9229
9229
  </code></pre></div>
9230
- <p>This will create a worker that will only process tasks sent to the <code>job_queue</code> celery queue. You can use this worker to run jobs while the rest of Nautobot's background tasks will be processed by the default celery worker listening to the <code>celery</code> queue.</p>
9230
+ <p>This will create a worker that will only process tasks sent to the <code>job_queue</code> Celery queue. You can use this worker to run jobs while the rest of Nautobot's background tasks will be processed by the default Celery worker listening to the <code>celery</code> queue.</p>
9231
9231
  <div class="admonition info">
9232
9232
  <p class="admonition-title">Info</p>
9233
- <p>Workers can be configured to listen to multiple queues by supplying a comma separated list of queues to the <code>--queues</code> argument. See the <a href="https://docs.celeryq.dev/en/stable/userguide/workers.html#queues">celery workers guide</a> for more information.</p>
9233
+ <p>Workers can be configured to listen to multiple queues by supplying a comma separated list of queues to the <code>--queues</code> argument. See the <a href="https://docs.celeryq.dev/en/stable/userguide/workers.html#queues">Celery workers guide</a> for more information.</p>
9234
9234
  </div>
9235
9235
  <div class="admonition warning">
9236
9236
  <p class="admonition-title">Warning</p>
@@ -9247,7 +9247,7 @@
9247
9247
  <p>You may have to change this setting multiple times to find what works best in your environment.</p>
9248
9248
  <div class="admonition warning">
9249
9249
  <p class="admonition-title">Warning</p>
9250
- <p>Modifying your concurrency setting may increase the CPU and will increase the memory load on your celery worker by at least 175MB per concurrent thread. Only change this setting if you have monitoring systems in place to monitor the system resources on your worker.</p>
9250
+ <p>Modifying your concurrency setting may increase the CPU and will increase the memory load on your Celery worker by at least 175MB per concurrent thread. Only change this setting if you have monitoring systems in place to monitor the system resources on your worker.</p>
9251
9251
  </div>
9252
9252
  <div class="admonition tip">
9253
9253
  <p class="admonition-title">Tip</p>
@@ -9604,14 +9604,10 @@
9604
9604
 
9605
9605
 
9606
9606
  <h1 id="nautobot-docker-images">Nautobot Docker Images<a class="headerlink" href="#nautobot-docker-images" title="Permanent link">&para;</a></h1>
9607
- <p>Nautobot is packaged as a Docker image for use in a production environment; developer images are also provided for those working on App development and testing. The Docker image and deployment strategies are being actively developed, check back here or join the <strong>#nautobot</strong> channel on <a href="https://slack.networktocode.com/">Network to Code's Slack community</a> for the most up to date information.</p>
9607
+ <p>Nautobot is packaged as a Docker image for use in a production environment; developer images are also provided for those working on App development and testing. The Docker image and deployment strategies are being actively developed, check back here or join the <code>#nautobot</code> channel on <a href="https://slack.networktocode.com/">Network to Code's Slack community</a> for the most up to date information.</p>
9608
9608
  <h2 id="python-versions">Python Versions<a class="headerlink" href="#python-versions" title="Permanent link">&para;</a></h2>
9609
9609
  <p>Docker images are published for multiple supported Python versions. The default image, recommended for most users, is based on the <code>python:3.12-slim</code> image.</p>
9610
- <details class="version-changed">
9611
- <summary>Changed in version 1.6.1</summary>
9612
- <p>The Python version for the image tags that do not explicitly state a Python version changed to 3.11 for Nautobot 1.6.1. From now on, these tagged images will always contain the <strong>latest</strong> supported Python version (e.g., when Python 3.12 support is added, these tags will change to contain Python 3.12). This is a change from Nautobot 1.6.0 and earlier, where tags that did not state a Python version would contain the <strong>earliest</strong> supported Python version.</p>
9613
- </details>
9614
- <p>Currently images are pushed for the following python versions:</p>
9610
+ <p>Currently images are pushed for the following Python versions:</p>
9615
9611
  <ul>
9616
9612
  <li>3.9</li>
9617
9613
  <li>3.10</li>
@@ -9619,14 +9615,6 @@
9619
9615
  <li>3.12</li>
9620
9616
  </ul>
9621
9617
  <details class="version-added">
9622
- <summary>Added in version 1.6.0 — Added Python 3.11</summary>
9623
- <p>Python 3.11 was added to the set of published images.</p>
9624
- </details>
9625
- <details class="version-removed">
9626
- <summary>Removed in version 1.6.0 — Removed Python 3.7</summary>
9627
- <p>Python 3.7 was removed from the set of published images as Python 3.7 is now end-of-life.</p>
9628
- </details>
9629
- <details class="version-added">
9630
9618
  <summary>Added in version 2.3.0 — Added Python 3.12</summary>
9631
9619
  <p>Python 3.12 was added to the set of published images and is now the default version.</p>
9632
9620
  </details>
@@ -9802,9 +9790,6 @@
9802
9790
  <h3 id="uwsgi">uWSGI<a class="headerlink" href="#uwsgi" title="Permanent link">&para;</a></h3>
9803
9791
  <p>The docker container uses <a href="https://uwsgi-docs.readthedocs.io/">uWSGI</a> to serve Nautobot. A default configuration is <a href="https://github.com/nautobot/nautobot/blob/main/docker/uwsgi.ini">provided</a>, and can be overridden by injecting a new <code>uwsgi.ini</code> file at <code>/opt/nautobot/uwsgi.ini</code>. There are a couple of environment variables provided to override some uWSGI defaults:</p>
9804
9792
  <h4 id="nautobot_uwsgi_buffer_size"><code>NAUTOBOT_UWSGI_BUFFER_SIZE</code><a class="headerlink" href="#nautobot_uwsgi_buffer_size" title="Permanent link">&para;</a></h4>
9805
- <details class="version-added">
9806
- <summary>Added in version 1.3.9</summary>
9807
- </details>
9808
9793
  <p>Default: <code>4096</code></p>
9809
9794
  <p>Max: <code>65535</code></p>
9810
9795
  <p>The max size of non-body request payload, roughly the size of request headers for uWSGI. Request headers that might contain lengthy query parameters, for example GraphQL or Relationship filtered lookups, might go well over the default limit. Increasing this limit will have an impact on running memory usage. Please see <a href="https://uwsgi-docs.readthedocs.io/en/latest/Options.html?highlight=buffer-size#buffer-size">the uWSGI documentation</a> for more information.</p>
@@ -9876,7 +9861,7 @@
9876
9861
  </code></pre></div>
9877
9862
  <p>Similarly, you can use <code>docker-compose.final-dev.yml</code> if you wish to build and test the <code>final-dev</code> image.</p>
9878
9863
  <h2 id="docker-compose">Docker Compose<a class="headerlink" href="#docker-compose" title="Permanent link">&para;</a></h2>
9879
- <p>An <a href="https://github.com/nautobot/nautobot-docker-compose/">example library for using Docker Compose</a> to build out all of the components for Nautobot can be found within the Nautobot community. Please see <a href="https://github.com/nautobot/nautobot-docker-compose/">https://github.com/nautobot/nautobot-docker-compose/</a> for examples on the base application, LDAP integration, and using Apps.</p>
9864
+ <p>An <a href="https://github.com/nautobot/nautobot-docker-compose/">example library for using Docker Compose</a> to build out all of the components for Nautobot can be found within the Nautobot community. Please refer to that library for examples on the base application, LDAP integration, and using Apps.</p>
9880
9865
 
9881
9866
 
9882
9867
 
@@ -9646,7 +9646,7 @@
9646
9646
  <p>Note the differences between these two. In some situations you'll want to use both for different types of checks. More on this later in this document.</p>
9647
9647
  <details class="info">
9648
9648
  <summary>Background information</summary>
9649
- <p>Nautobot uses the <a href="https://github.com/KristianOellegaard/django-health-check">django-health-check</a> project and some custom health checks (database connection and cache availability). Additional health checks are available as part of that project and can be added to the <a href="../configuration/settings.html#extra-applications"><code>EXTRA_INSTALLED_APPS</code></a> configuration variable as desired.</p>
9649
+ <p>Nautobot uses the <a href="https://github.com/KristianOellegaard/django-health-check"><code>django-health-check</code></a> project and some custom health checks (database connection and cache availability). Additional health checks are available as part of that project and can be added to the <a href="../configuration/settings.html#extra-applications"><code>EXTRA_INSTALLED_APPS</code></a> configuration variable as desired.</p>
9650
9650
  </details>
9651
9651
  <h3 id="nautobot-celery-worker">Nautobot Celery Worker<a class="headerlink" href="#nautobot-celery-worker" title="Permanent link">&para;</a></h3>
9652
9652
  <p>In addition to monitoring the existence of a given Celery worker process ID, you can use the fact that Celery provides a <a href="https://docs.celeryq.dev/en/stable/reference/cli.html#celery-inspect"><code>celery inspect ping</code> CLI command</a> that sends a short message to a given Celery worker(s) and reports back on whether it receives a response(s). Nautobot wraps this with the <code>nautobot-server</code> CLI command, so in general you can run <code>nautobot-server celery inspect ping --destination &lt;worker name&gt;</code> to confirm whether a given worker is able to receive and respond to Celery control messages.</p>
@@ -9285,12 +9285,12 @@
9285
9285
  <summary>Added in version 2.2.1</summary>
9286
9286
  <p>In case the <code>/metrics</code> endpoint is not performant or not required, you can disable specific apps with the <a href="../configuration/settings.html#metrics_disabled_apps"><code>METRICS_DISABLED_APPS</code></a> configuration setting.</p>
9287
9287
  </details>
9288
- <p>For more information see the <a href="https://github.com/korfuri/django-prometheus">django-prometheus</a> docs.</p>
9288
+ <p>For more information see the <a href="https://github.com/korfuri/django-prometheus"><code>django-prometheus</code></a> docs.</p>
9289
9289
  <h2 id="authentication">Authentication<a class="headerlink" href="#authentication" title="Permanent link">&para;</a></h2>
9290
9290
  <details class="version-added">
9291
9291
  <summary>Added in version 2.1.5</summary>
9292
9292
  </details>
9293
- <p>Metrics by default do not require authentication to view. Authentication can be toggled with the <code>METRICS_AUTHENTICATION</code> configuration setting. If set to <code>True</code>, this will require the user to be logged in or to use an API token. See <a href="../../platform-functionality/rest-api/authentication.html">Rest API Authentication</a> for more details on API authentication.</p>
9293
+ <p>Metrics by default do not require authentication to view. Authentication can be toggled with the <code>METRICS_AUTHENTICATION</code> configuration setting. If set to <code>True</code>, this will require the user to be logged in or to use an API token. See <a href="../../platform-functionality/rest-api/authentication.html">REST API Authentication</a> for more details on API authentication.</p>
9294
9294
  <h3 id="sample-telegraf-configuration">Sample Telegraf configuration<a class="headerlink" href="#sample-telegraf-configuration" title="Permanent link">&para;</a></h3>
9295
9295
  <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="k">[[inputs.prometheus]]</span>
9296
9296
  <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="n">urls</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;http://localhost/metrics&quot;</span><span class="p">]</span>
@@ -9298,7 +9298,7 @@
9298
9298
  <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="n">http_headers</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="s2">&quot;Authorization&quot;</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s2">&quot;Token 0123456789abcdef0123456789abcdef01234567&quot;</span><span class="p">}</span>
9299
9299
  </code></pre></div>
9300
9300
  <h2 id="metric-types">Metric Types<a class="headerlink" href="#metric-types" title="Permanent link">&para;</a></h2>
9301
- <p>Nautobot makes use of the <a href="https://github.com/korfuri/django-prometheus">django-prometheus</a> library to export a number of different types of metrics, including:</p>
9301
+ <p>Nautobot makes use of the <a href="https://github.com/korfuri/django-prometheus"><code>django-prometheus</code></a> library to export a number of different types of metrics, including:</p>
9302
9302
  <ul>
9303
9303
  <li>Per model insert, update, and delete counters</li>
9304
9304
  <li>Per view request counters</li>
@@ -9320,7 +9320,7 @@
9320
9320
  </div>
9321
9321
  <div class="admonition note">
9322
9322
  <p class="admonition-title">Note</p>
9323
- <p>Metrics from the celery worker are not available from Nautobot at this time. However, additional tools such as <a href="https://flower.readthedocs.io/en/latest/">flower</a> can be used to monitor the celery workers until these metrics are exposed through Nautobot.</p>
9323
+ <p>Metrics from the Celery worker are not available from Nautobot at this time. However, additional tools such as <a href="https://flower.readthedocs.io/en/latest/">flower</a> can be used to monitor the Celery workers until these metrics are exposed through Nautobot.</p>
9324
9324
  </div>
9325
9325
 
9326
9326
 
@@ -9400,11 +9400,11 @@
9400
9400
 
9401
9401
 
9402
9402
  <h1 id="request-profiling">Request Profiling<a class="headerlink" href="#request-profiling" title="Permanent link">&para;</a></h1>
9403
- <p>Nautobot offers advanced request profiling through <a href="https://github.com/jazzband/django-silk">django-silk</a>. This allows administrators to collect debug information about user activities, which can be used to troubleshoot issues with the system.</p>
9403
+ <p>Nautobot offers advanced request profiling through <a href="https://github.com/jazzband/django-silk"><code>django-silk</code></a>. This allows administrators to collect debug information about user activities, which can be used to troubleshoot issues with the system.</p>
9404
9404
  <h2 id="user-setting">User Setting<a class="headerlink" href="#user-setting" title="Permanent link">&para;</a></h2>
9405
9405
  <p>Request profiling may be enabled by individual users in their profile within the web interface. This can be found under the "Advanced Settings" section.</p>
9406
9406
  <p><img alt="user advanced settings" src="../../../media/user-guide/administration/guides/request-profiling/advanced-settings.png" /></p>
9407
- <p>Once a user enables request profiling, all subsequent HTTP requests made by that specific user to the system will be logged by django-silk. This setting will persist until the user either logs out or disables the setting in their profile.</p>
9407
+ <p>Once a user enables request profiling, all subsequent HTTP requests made by that specific user to the system will be logged by <code>django-silk</code>. This setting will persist until the user either logs out or disables the setting in their profile.</p>
9408
9408
  <h3 id="user-setting-notes">User Setting Notes<a class="headerlink" href="#user-setting-notes" title="Permanent link">&para;</a></h3>
9409
9409
  <ul>
9410
9410
  <li>
@@ -9415,42 +9415,42 @@
9415
9415
  </li>
9416
9416
  </ul>
9417
9417
  <h2 id="silk-ui">Silk UI<a class="headerlink" href="#silk-ui" title="Permanent link">&para;</a></h2>
9418
- <p>Nautobot administrators with super-user permissions can access the django-silk UI at the <code>/silk/</code> URL.</p>
9418
+ <p>Nautobot administrators with super-user permissions can access the <code>django-silk</code> UI at the <code>/silk/</code> URL.</p>
9419
9419
  <p><img alt="silk ui" src="../../../media/user-guide/administration/guides/request-profiling/silk-ui.png" /></p>
9420
9420
  <p>From there, administrators can view details of individual requests, including timing, SQL queries, and cProfile artifacts.</p>
9421
9421
  <h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">&para;</a></h2>
9422
- <p>The Nautobot configuration comes out of the box with django-silk set up to support the above functionality. Those settings are described below, but it is not the intention of the Nautobot docs to describe all django-silk settings. Django-silk provides several other parameters that knowledgeable users may also be able to use, depending on the use case.</p>
9423
- <h3 id="allow_request_profiling">ALLOW_REQUEST_PROFILING<a class="headerlink" href="#allow_request_profiling" title="Permanent link">&para;</a></h3>
9422
+ <p>The Nautobot configuration comes out of the box with <code>django-silk</code> set up to support the above functionality. Those settings are described below, but it is not the intention of the Nautobot docs to describe all <code>django-silk</code> settings. Django-silk provides several other parameters that knowledgeable users may also be able to use, depending on the use case.</p>
9423
+ <h3 id="allow_request_profiling"><code>ALLOW_REQUEST_PROFILING</code><a class="headerlink" href="#allow_request_profiling" title="Permanent link">&para;</a></h3>
9424
9424
  <p>Default: <code>False</code></p>
9425
9425
  <p>Global setting to allow or deny users from enabling request profiling on their login session.</p>
9426
9426
  <hr />
9427
- <h3 id="silky_python_profiler">SILKY_PYTHON_PROFILER<a class="headerlink" href="#silky_python_profiler" title="Permanent link">&para;</a></h3>
9427
+ <h3 id="silky_python_profiler"><code>SILKY_PYTHON_PROFILER</code><a class="headerlink" href="#silky_python_profiler" title="Permanent link">&para;</a></h3>
9428
9428
  <p>Default: <code>True</code></p>
9429
9429
  <p>Enables use of the built-in Python cProfile profiler.</p>
9430
9430
  <hr />
9431
- <h3 id="silky_python_profiler_binary">SILKY_PYTHON_PROFILER_BINARY<a class="headerlink" href="#silky_python_profiler_binary" title="Permanent link">&para;</a></h3>
9431
+ <h3 id="silky_python_profiler_binary"><code>SILKY_PYTHON_PROFILER_BINARY</code><a class="headerlink" href="#silky_python_profiler_binary" title="Permanent link">&para;</a></h3>
9432
9432
  <p>Default: <code>True</code></p>
9433
9433
  <p>Generates a binary <code>.prof</code> file for each profiled request, which can be downloaded.</p>
9434
9434
  <hr />
9435
- <h3 id="silky_python_profiler_extended_file_name">SILKY_PYTHON_PROFILER_EXTENDED_FILE_NAME<a class="headerlink" href="#silky_python_profiler_extended_file_name" title="Permanent link">&para;</a></h3>
9435
+ <h3 id="silky_python_profiler_extended_file_name"><code>SILKY_PYTHON_PROFILER_EXTENDED_FILE_NAME</code><a class="headerlink" href="#silky_python_profiler_extended_file_name" title="Permanent link">&para;</a></h3>
9436
9436
  <p>Default: <code>True</code></p>
9437
9437
  <p>Adds part of the request URL path to the profile file name to make it easier to identify specific requests.</p>
9438
9438
  <hr />
9439
- <h3 id="silky_intercept_func">SILKY_INTERCEPT_FUNC<a class="headerlink" href="#silky_intercept_func" title="Permanent link">&para;</a></h3>
9439
+ <h3 id="silky_intercept_func"><code>SILKY_INTERCEPT_FUNC</code><a class="headerlink" href="#silky_intercept_func" title="Permanent link">&para;</a></h3>
9440
9440
  <p>Default: <code>nautobot.core.settings.silk_request_logging_intercept_logic</code></p>
9441
9441
  <p>This defines a custom function that filters requests to be profiled. Notably, the default looks for the user session flag described above.</p>
9442
9442
  <hr />
9443
- <h3 id="silky_authentication">SILKY_AUTHENTICATION<a class="headerlink" href="#silky_authentication" title="Permanent link">&para;</a></h3>
9443
+ <h3 id="silky_authentication"><code>SILKY_AUTHENTICATION</code><a class="headerlink" href="#silky_authentication" title="Permanent link">&para;</a></h3>
9444
9444
  <p>Default: <code>True</code></p>
9445
- <p>Users must be authenticated to access the django-silk UI.</p>
9445
+ <p>Users must be authenticated to access the <code>django-silk</code> UI.</p>
9446
9446
  <hr />
9447
- <h3 id="silky_authorisation">SILKY_AUTHORISATION<a class="headerlink" href="#silky_authorisation" title="Permanent link">&para;</a></h3>
9447
+ <h3 id="silky_authorisation"><code>SILKY_AUTHORISATION</code><a class="headerlink" href="#silky_authorisation" title="Permanent link">&para;</a></h3>
9448
9448
  <p>Default: <code>True</code></p>
9449
- <p>Users must have permissions to access the django-silk UI. Used in combination with <code>SILKY_AUTHENTICATION</code>.</p>
9449
+ <p>Users must have permissions to access the <code>django-silk</code> UI. Used in combination with <code>SILKY_AUTHENTICATION</code>.</p>
9450
9450
  <hr />
9451
- <h3 id="silky_permissions">SILKY_PERMISSIONS<a class="headerlink" href="#silky_permissions" title="Permanent link">&para;</a></h3>
9451
+ <h3 id="silky_permissions"><code>SILKY_PERMISSIONS</code><a class="headerlink" href="#silky_permissions" title="Permanent link">&para;</a></h3>
9452
9452
  <p>Default: <code>nautobot.core.settings.silk_user_permissions</code></p>
9453
- <p>This ensures the users must be a superuser of the system to access the django-silk UI. Used in combination with <code>SILKY_AUTHENTICATION</code> and <code>SILKY_AUTHORISATION</code>.</p>
9453
+ <p>This ensures the users must be a superuser of the system to access the <code>django-silk</code> UI. Used in combination with <code>SILKY_AUTHENTICATION</code> and <code>SILKY_AUTHORISATION</code>.</p>
9454
9454
 
9455
9455
 
9456
9456
 
@@ -9289,7 +9289,7 @@
9289
9289
  </ul>
9290
9290
  <div class="admonition info">
9291
9291
  <p class="admonition-title">Info</p>
9292
- <p>The remaining options are not required, but django-storages documentation should be reviewed to understand the security requirements.</p>
9292
+ <p>The remaining options are not required, but the <code>django-storages</code> documentation should be reviewed to understand the security requirements.</p>
9293
9293
  </div>
9294
9294
  <p>By using the the settings listed above, the static files will be stored in the S3 bucket instead of on the Nautobot server's filesystem. Once the <code>nautobot-server collectstatic</code> is executed you will see the files.</p>
9295
9295
  <p>Here's a snippet from the S3 bucket in use.
@@ -9315,7 +9315,7 @@
9315
9315
  </code></pre></div>
9316
9316
  <p>The <code>models.FileField</code> alongside the <code>upload_to</code> argument can be used to store user uploaded files into the already established S3 bucket. With the configuration settings provided earlier in this article and the <code>upload_to=uploads/</code> attribute the software attachments will be stored at <code>f"{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com/{AWS_LOCATION}/uploads/"</code>.</p>
9317
9317
  <p>The nice thing about using <code>django-storages</code> is the ease of use and the ability to easily extend storage backends. One use case for extending storage backends that has been used is to store certain App data attachments in its own S3 bucket with different permissions. If we take this concept to the example of <code>SoftwareFileAttachment</code> we can put the software images in their own S3 bucket by creating a custom storage backend that we can pass to our <code>models.FileField</code> model field.</p>
9318
- <p>For this example I created a simple python file called <code>customer_storage.py</code> in the root of my App.</p>
9318
+ <p>For this example I created a simple Python file called <code>customer_storage.py</code> in the root of my App.</p>
9319
9319
  <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="sd">&quot;&quot;&quot;Example of a custom extension to support flexible s3 storage.&quot;&quot;&quot;</span>
9320
9320
  <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="kn">from</span> <span class="nn">storages.backends.s3</span> <span class="kn">import</span> <span class="n">S3Storage</span>
9321
9321
  <a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a>
@@ -9272,7 +9272,7 @@
9272
9272
  <p>You must be <strong>absolutely</strong> sure to install the app within Nautobot's virtual environment.</p>
9273
9273
  <div class="admonition note">
9274
9274
  <p class="admonition-title">Note</p>
9275
- <p>If you installed Nautobot in a production environment, you'll want to sudo to the nautobot user first using <code>sudo -iu nautobot</code>.</p>
9275
+ <p>If you installed Nautobot in a production environment, you'll want to sudo to the <code>nautobot</code> user first using <code>sudo -iu nautobot</code>.</p>
9276
9276
  </div>
9277
9277
  <h2 id="install-the-package">Install the Package<a class="headerlink" href="#install-the-package" title="Permanent link">&para;</a></h2>
9278
9278
  <p>Download and install the app package per its installation instructions. Apps published via PyPI are typically installed using <code>pip3</code>.</p>
@@ -9374,18 +9374,6 @@
9374
9374
  <h4 id="python">Python<a class="headerlink" href="#python" title="Permanent link">&para;</a></h4>
9375
9375
  <p>Nautobot is written in the <a href="https://www.python.org/">Python programming language</a>. The official Python package installer is called <a href="https://pip.pypa.io/en/stable/">Pip</a>, and you will see the <code>pip</code> command referenced often to install or update Python packages.</p>
9376
9376
  <details class="version-added">
9377
- <summary>Added in version 1.3.0 — Python 3.10 support added</summary>
9378
- <p>Python 3.10 support was added.</p>
9379
- </details>
9380
- <details class="version-removed">
9381
- <summary>Removed in version 1.3.0 — Python 3.6 support removed</summary>
9382
- <p>Python 3.6 support was removed.</p>
9383
- </details>
9384
- <details class="version-changed">
9385
- <summary>Changed in version 1.6.0 — Python 3.11 support added, Python 3.7 support removed</summary>
9386
- <p>Python 3.11 support was added and Python 3.7 support was removed.</p>
9387
- </details>
9388
- <details class="version-added">
9389
9377
  <summary>Added in version 2.3.0 — Python 3.12 support added</summary>
9390
9378
  <p>Python 3.12 support was added.</p>
9391
9379
  </details>
@@ -9395,10 +9383,6 @@
9395
9383
  </details>
9396
9384
  <h4 id="database">Database<a class="headerlink" href="#database" title="Permanent link">&para;</a></h4>
9397
9385
  <p>Nautobot uses a relational database to store its data. Both MySQL and PostgreSQL are officially supported.</p>
9398
- <details class="version-added">
9399
- <summary>Added in version 1.1.0 — MySQL support added</summary>
9400
- <p>MySQL support was added.</p>
9401
- </details>
9402
9386
  <details class="version-removed">
9403
9387
  <summary>Removed in version 2.1.0 — PostgreSQL minimum version became 12.0</summary>
9404
9388
  <p>Support for versions of PostgreSQL older than 12.0 was removed.</p>
@@ -9686,7 +9686,7 @@ is done with the following commands.</p>
9686
9686
  </div>
9687
9687
  </div>
9688
9688
  <h3 id="troubleshooting">Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permanent link">&para;</a></h3>
9689
- <!-- pyml disable-next-line no-inline-html -->
9689
+ <!-- pyml disable-next-line no-inline-html,proper-names -->
9690
9690
  <h4>django.db.utils.NotSupportedError: conversion between UTF8 and SQL_ASCII is not supported</h4>
9691
9691
 
9692
9692
  <p>Django requires the database encoding for PostgreSQL databases to be set to UTF-8. If you receive the error <code>django.db.utils.NotSupportedError: conversion between UTF8 and SQL_ASCII is not supported</code>, you will need to drop and re-create the <code>nautobot</code> database with the correct encoding.</p>
@@ -750,9 +750,9 @@
750
750
  </li>
751
751
 
752
752
  <li class="md-nav__item">
753
- <a href="#sudo-to-nautobot" class="md-nav__link">
753
+ <a href="#sudo-to-nautobot-user" class="md-nav__link">
754
754
  <span class="md-ellipsis">
755
- Sudo to nautobot
755
+ Sudo to nautobot user
756
756
  </span>
757
757
  </a>
758
758
 
@@ -9358,9 +9358,9 @@
9358
9358
  </li>
9359
9359
 
9360
9360
  <li class="md-nav__item">
9361
- <a href="#sudo-to-nautobot" class="md-nav__link">
9361
+ <a href="#sudo-to-nautobot-user" class="md-nav__link">
9362
9362
  <span class="md-ellipsis">
9363
- Sudo to nautobot
9363
+ Sudo to nautobot user
9364
9364
  </span>
9365
9365
  </a>
9366
9366
 
@@ -9563,7 +9563,7 @@
9563
9563
  <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
9564
9564
  </code></pre></div>
9565
9565
  </details>
9566
- <h2 id="sudo-to-nautobot">Sudo to nautobot<a class="headerlink" href="#sudo-to-nautobot" title="Permanent link">&para;</a></h2>
9566
+ <h2 id="sudo-to-nautobot-user">Sudo to <code>nautobot</code> user<a class="headerlink" href="#sudo-to-nautobot-user" title="Permanent link">&para;</a></h2>
9567
9567
  <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>
9568
9568
  <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
9569
9569
  </code></pre></div>
@@ -9683,10 +9683,7 @@
9683
9683
  <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>Configuration file created at /opt/nautobot/nautobot_config.py
9684
9684
  </code></pre></div>
9685
9685
  </details>
9686
- <details class="version-added">
9687
- <summary>Added in version 1.6.0 — Installation metrics selection</summary>
9688
- <p>The <code>nautobot-server init</code> command will now prompt you to set the initial value for the <a href="../configuration/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>
9689
- </details>
9686
+ <p>The <code>nautobot-server init</code> command will prompt you to set the initial value for the <a href="../configuration/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>
9690
9687
  <h3 id="required-settings">Required Settings<a class="headerlink" href="#required-settings" title="Permanent link">&para;</a></h3>
9691
9688
  <p>Your <code>nautobot_config.py</code> provides sane defaults for most configuration settings, but in the longer term, you will inevitably need to update the settings for your environment. For a more complete guide to supported configuration settings in Nautobot, you can refer to <a href="../configuration/settings.html">Settings</a> later.</p>
9692
9689
  <div class="admonition tip">
@@ -9790,7 +9787,7 @@
9790
9787
  <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
9791
9788
  </code></pre></div>
9792
9789
  <details class="example">
9793
- <summary>nautobot-server check output</summary>
9790
+ <summary><code>nautobot-server check</code> output</summary>
9794
9791
  <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).
9795
9792
  </code></pre></div>
9796
9793
  </details>
@@ -9539,10 +9539,6 @@
9539
9539
  <p>Nautobot requires at least one worker to consume background tasks required for advanced background features. A <code>nautobot-server celery</code> command is included that directly invokes Celery. This command behaves exactly as the Celery command-line utility does, but launches it through Nautobot's environment to share Redis and database connection settings transparently.</p>
9540
9540
  <div class="highlight"><span class="filename">Show help for the Nautobot worker service</span><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>nautobot-server celery --help
9541
9541
  </code></pre></div>
9542
- <details class="version-changed">
9543
- <summary>Changed in version 1.1.0 — Celery added to Nautobot</summary>
9544
- <p>Prior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now <em>deprecated</em>. RQ and the <code>@job</code> decorator for custom tasks were still supported for the remainder of the 1.x.y releases, but users should <a href="#migrating-to-celery-from-rq">migrate the primary worker to Celery</a>.</p>
9545
- </details>
9546
9542
  <details class="version-removed">
9547
9543
  <summary>Removed in version 2.0.0 — RQ removed from Nautobot</summary>
9548
9544
  <p>Support for RQ has been completely removed from Nautobot.</p>
@@ -9677,10 +9673,6 @@ documentation</a> for the available configuration parameters.</p>
9677
9673
  <h3 id="nautobot-background-services">Nautobot Background Services<a class="headerlink" href="#nautobot-background-services" title="Permanent link">&para;</a></h3>
9678
9674
  <p>Next, we will setup the <code>systemd</code> units for the Celery worker and Celery Beat scheduler.</p>
9679
9675
  <h4 id="celery-worker">Celery Worker<a class="headerlink" href="#celery-worker" title="Permanent link">&para;</a></h4>
9680
- <details class="version-added">
9681
- <summary>Added in version 1.1.0 — Celery added to Nautobot</summary>
9682
- <p>Prior to version 1.1.0, Nautobot utilized RQ as the primary background task worker. As of Nautobot 1.1.0, RQ is now <em>deprecated</em> and has been replaced with Celery. RQ and the <code>@job</code> decorator for custom tasks were still supported for the remainder of the 1.x.y releases, but users should <a href="#migrating-to-celery-from-rq">migrate the primary worker to Celery</a>.</p>
9683
- </details>
9684
9676
  <p>The Celery worker service consumes tasks from background task queues and is required for taking advantage of advanced
9685
9677
  Nautobot features including <a href="../../platform-functionality/jobs/index.html">Jobs</a>, <a href="../../platform-functionality/customfield.html">Custom
9686
9678
  Fields</a>, and <a href="../../platform-functionality/gitrepository.html">Git Repositories</a>, among others.</p>
@@ -9722,9 +9714,6 @@ Fields</a>, and <a href="../../platform-functionality/gitrepository.html">Git Re
9722
9714
  <a id="__codelineno-10-23" name="__codelineno-10-23" href="#__codelineno-10-23"></a><span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span>
9723
9715
  </code></pre></div>
9724
9716
  <h4 id="celery-beat-scheduler">Celery Beat Scheduler<a class="headerlink" href="#celery-beat-scheduler" title="Permanent link">&para;</a></h4>
9725
- <details class="version-added">
9726
- <summary>Added in version 1.2.0 — Celery Beat added to Nautobot</summary>
9727
- </details>
9728
9717
  <p>The Celery Beat scheduler enables the periodic execution of and scheduling of background tasks. It is required to take advantage of the <a href="../../platform-functionality/jobs/job-scheduling-and-approvals.html">job scheduling and approval</a> features.</p>
9729
9718
  <div class="admonition warning">
9730
9719
  <p class="admonition-title">Warning</p>
@@ -9840,7 +9829,7 @@ Fields</a>, and <a href="../../platform-functionality/gitrepository.html">Git Re
9840
9829
  <p>Please see the <a href="../configuration/settings.html#databases">configuration guide on MySQL Unicode settings</a> for instructions on how to address this.</p>
9841
9830
  <p>Please see <a href="https://github.com/nautobot/nautobot/issues/645">Computed fields with fallback value that is unicode results in OperationalError (#645)</a> for more details.</p>
9842
9831
  <h3 id="svg-images-not-rendered">SVG images not rendered<a class="headerlink" href="#svg-images-not-rendered" title="Permanent link">&para;</a></h3>
9843
- <p>When serving Nautobot directly from uWSGI on RedHat or CentOS there may be a problem rendering .svg images to include the Nautobot logo. On the RedHat based operating systems there is no file <code>/etc/mime.types</code> by default, unfortunately, uWSGI looks for this file to serve static files (see <a href="https://uwsgi-docs.readthedocs.io/en/latest/StaticFiles.html#mime-types">Serving static files with uWSGI</a>). To work around this copy the file <code>/etc/mime.types</code> from a known good system for example an Ubuntu/Debian system or even the Nautobot container to /opt/nautobot/mime.types. Then add the following line to your <code>uwsgi.ini</code> file and restart the Nautobot services:</p>
9832
+ <p>When serving Nautobot directly from uWSGI on RedHat or CentOS there may be a problem rendering .svg images to include the Nautobot logo. On the RedHat based operating systems there is no file <code>/etc/mime.types</code> by default, unfortunately, uWSGI looks for this file to serve static files (see <a href="https://uwsgi-docs.readthedocs.io/en/latest/StaticFiles.html#mime-types">Serving static files with uWSGI</a>). To work around this copy the file <code>/etc/mime.types</code> from a known good system for example an Ubuntu/Debian system or even the Nautobot container to <code>/opt/nautobot/mime.types</code>. Then add the following line to your <code>uwsgi.ini</code> file and restart the Nautobot services:</p>
9844
9833
  <div class="highlight"><span class="filename">Add MIME file settings to uwsgi.ini</span><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>mime-file = /opt/nautobot/mime.types
9845
9834
  </code></pre></div>
9846
9835
  <p>Alternatively, host Nautobot behind Nginx as instructed in <a href="http-server.html">HTTP server setup</a>.</p>
@@ -9308,14 +9308,14 @@
9308
9308
  <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> --traceback \
9309
9309
  <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> &gt; nautobot_dump.json
9310
9310
  </code></pre></div>
9311
- <details class="version-changed">
9312
- <summary>Changed in version 1.5.23</summary>
9311
+ <div class="admonition warning">
9312
+ <p class="admonition-title">Warning</p>
9313
9313
  <ul>
9314
9314
  <li>We do not recommend at this time using <code>--natural-primary</code> as this can result in inconsistent or incorrect data for data models that use GenericForeignKeys, such as <code>Cable</code>, <code>Note</code>, <code>ObjectChange</code>, and <code>Tag</code>.</li>
9315
9315
  <li>We also do not recommend at this time using <code>--natural-foreign</code> as it can potentially result in errors if any data models incorrectly implement their <code>natural_key()</code> and/or <code>get_by_natural_key()</code> API methods.</li>
9316
9316
  <li><code>contenttypes</code> must not be excluded from the dump (it could be excluded previously due to the use of <code>--natural-foreign</code>).</li>
9317
9317
  </ul>
9318
- </details>
9318
+ </div>
9319
9319
  <div class="admonition warning">
9320
9320
  <p class="admonition-title">Warning</p>
9321
9321
  <p>Because of the different SQL dialects used by PostgreSQL and MySQL, Django's JSON database dump format is being used as the go-between for migrating your database contents from the one system to the other. This is a different case than general database backup and recovery; for best practices there, please refer to <a href="../upgrading/database-backup.html">Database Backup</a>.</p>
@@ -9230,7 +9230,7 @@
9230
9230
  <h2 id="security-vulnerability-reporting">Security Vulnerability Reporting<a class="headerlink" href="#security-vulnerability-reporting" title="Permanent link">&para;</a></h2>
9231
9231
  <p>We appreciate the time security researchers and users contribute to reporting vulnerabilities to the Nautobot Community.</p>
9232
9232
  <p>If you feel your report is safe for public disclosure (a CVE related to a dependency, or a low-risk bug) please feel free to open a bug <a href="https://github.com/nautobot/nautobot/issues/new/choose">issue on GitHub</a>.</p>
9233
- <p>If you are unsure of the severity of your report or you feel it should not be publicly disclosed until a fix has been released, you can also email <a href="mailto:security@nautobot.com">security@nautobot.com</a> with the security details.</p>
9233
+ <p>If you are unsure of the severity of your report or you feel it should not be publicly disclosed until a fix has been released, you can also email <a href="mailto:security@nautobot.com"><code>security@nautobot.com</code></a> with the security details.</p>
9234
9234
  <p>You may encrypt your email with the GPG keys of the security response members below. While accepted, encryption using GPG is NOT mandatory to make a disclosure.</p>
9235
9235
  <div class="admonition tip">
9236
9236
  <p class="admonition-title">When Should I Report a Vulnerability?</p>
@@ -9342,6 +9342,7 @@
9342
9342
  <h1 id="nautobot-security-notices">Nautobot Security Notices<a class="headerlink" href="#nautobot-security-notices" title="Permanent link">&para;</a></h1>
9343
9343
  <p>As a part of the Nautobot development team's commitment to security, we maintain the below historical list of security issues which have been fixed and disclosed. Note that this list <strong>only</strong> includes issues in Nautobot itself; while we frequently update our library dependencies to keep them up-to-date and free of known security issues therein, any reported issues in such libraries, and the corresponding updates to Nautobot's specified dependencies, are out of scope for this document.</p>
9344
9344
  <h2 id="cve-2024-36112">CVE-2024-36112<a class="headerlink" href="#cve-2024-36112" title="Permanent link">&para;</a></h2>
9345
+ <!-- pyml disable-num-lines 500 proper-names -->
9345
9346
  <!-- pyml disable-next-line no-inline-html -->
9346
9347
  <table>
9347
9348
  <tr>