nautobot 2.4.0b1__py3-none-any.whl → 2.4.2__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 (668) hide show
  1. nautobot/apps/__init__.py +1 -1
  2. nautobot/apps/api.py +8 -8
  3. nautobot/apps/change_logging.py +2 -2
  4. nautobot/apps/choices.py +4 -4
  5. nautobot/apps/events.py +3 -3
  6. nautobot/apps/factory.py +2 -2
  7. nautobot/apps/filters.py +1 -1
  8. nautobot/apps/forms.py +20 -20
  9. nautobot/apps/graphql.py +2 -2
  10. nautobot/apps/jobs.py +8 -8
  11. nautobot/apps/models.py +19 -19
  12. nautobot/apps/tables.py +1 -1
  13. nautobot/apps/testing.py +10 -10
  14. nautobot/apps/ui.py +2 -2
  15. nautobot/apps/utils.py +7 -7
  16. nautobot/apps/views.py +7 -7
  17. nautobot/circuits/api/serializers.py +1 -0
  18. nautobot/circuits/api/views.py +4 -8
  19. nautobot/circuits/tables.py +2 -1
  20. nautobot/circuits/templates/circuits/circuit_create.html +1 -7
  21. nautobot/circuits/tests/integration/test_circuits_bulk_operations.py +43 -0
  22. nautobot/circuits/tests/integration/test_relationships.py +1 -1
  23. nautobot/circuits/views.py +3 -3
  24. nautobot/cloud/api/views.py +6 -10
  25. nautobot/cloud/models.py +1 -1
  26. nautobot/cloud/views.py +0 -16
  27. nautobot/core/api/constants.py +11 -0
  28. nautobot/core/api/fields.py +5 -5
  29. nautobot/core/api/filter_backends.py +3 -9
  30. nautobot/core/api/schema.py +13 -2
  31. nautobot/core/api/serializers.py +40 -34
  32. nautobot/core/api/views.py +56 -4
  33. nautobot/core/apps/__init__.py +0 -5
  34. nautobot/core/celery/log.py +4 -4
  35. nautobot/core/celery/schedulers.py +2 -2
  36. nautobot/core/choices.py +2 -2
  37. nautobot/core/events/__init__.py +3 -3
  38. nautobot/core/filters.py +67 -35
  39. nautobot/core/forms/__init__.py +19 -19
  40. nautobot/core/forms/fields.py +14 -11
  41. nautobot/core/forms/forms.py +33 -2
  42. nautobot/core/graphql/types.py +1 -1
  43. nautobot/core/jobs/__init__.py +28 -7
  44. nautobot/core/jobs/bulk_actions.py +285 -0
  45. nautobot/core/jobs/cleanup.py +48 -12
  46. nautobot/core/jobs/groups.py +1 -1
  47. nautobot/core/management/commands/validate_models.py +1 -1
  48. nautobot/core/models/__init__.py +3 -1
  49. nautobot/core/models/query_functions.py +2 -2
  50. nautobot/core/models/tree_queries.py +6 -3
  51. nautobot/core/settings.py +29 -2
  52. nautobot/core/settings.yaml +21 -0
  53. nautobot/core/tables.py +79 -61
  54. nautobot/core/templates/about.html +67 -0
  55. nautobot/core/templates/generic/object_bulk_destroy.html +1 -1
  56. nautobot/core/templates/inc/media.html +3 -0
  57. nautobot/core/templates/inc/nav_menu.html +1 -0
  58. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  59. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  60. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  61. nautobot/core/templates/search.html +7 -0
  62. nautobot/core/templates/utilities/render_jinja2.html +1 -1
  63. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  64. nautobot/core/templates/utilities/theme_preview.html +7 -0
  65. nautobot/core/templatetags/helpers.py +11 -2
  66. nautobot/core/testing/__init__.py +8 -8
  67. nautobot/core/testing/api.py +170 -15
  68. nautobot/core/testing/filters.py +45 -10
  69. nautobot/core/testing/forms.py +2 -0
  70. nautobot/core/testing/integration.py +514 -5
  71. nautobot/core/testing/mixins.py +7 -2
  72. nautobot/core/testing/views.py +44 -29
  73. nautobot/core/tests/integration/test_app_home.py +0 -1
  74. nautobot/core/tests/integration/test_app_navbar.py +0 -1
  75. nautobot/core/tests/integration/test_filters.py +0 -2
  76. nautobot/core/tests/integration/test_home.py +0 -1
  77. nautobot/core/tests/integration/test_navbar.py +0 -1
  78. nautobot/core/tests/integration/test_view_authentication.py +1 -0
  79. nautobot/core/tests/runner.py +1 -1
  80. nautobot/core/tests/test_api.py +98 -1
  81. nautobot/core/tests/test_csv.py +25 -3
  82. nautobot/core/tests/test_filters.py +209 -246
  83. nautobot/core/tests/test_forms.py +1 -0
  84. nautobot/core/tests/test_jobs.py +492 -1
  85. nautobot/core/tests/test_models.py +9 -0
  86. nautobot/core/tests/test_settings_schema.py +7 -0
  87. nautobot/core/tests/test_tables.py +100 -0
  88. nautobot/core/tests/test_utils.py +63 -1
  89. nautobot/core/tests/test_views.py +30 -3
  90. nautobot/core/ui/nav.py +1 -0
  91. nautobot/core/ui/object_detail.py +15 -1
  92. nautobot/core/urls.py +11 -0
  93. nautobot/core/utils/git.py +7 -2
  94. nautobot/core/utils/lookup.py +11 -8
  95. nautobot/core/utils/querysets.py +64 -0
  96. nautobot/core/utils/requests.py +24 -9
  97. nautobot/core/views/__init__.py +42 -0
  98. nautobot/core/views/generic.py +131 -197
  99. nautobot/core/views/mixins.py +136 -41
  100. nautobot/core/views/renderers.py +6 -6
  101. nautobot/core/views/utils.py +2 -2
  102. nautobot/dcim/api/serializers.py +56 -64
  103. nautobot/dcim/api/views.py +47 -113
  104. nautobot/dcim/constants.py +6 -13
  105. nautobot/dcim/factory.py +6 -1
  106. nautobot/dcim/filters/__init__.py +31 -2
  107. nautobot/dcim/forms.py +48 -17
  108. nautobot/dcim/graphql/types.py +2 -2
  109. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  110. nautobot/dcim/models/__init__.py +1 -1
  111. nautobot/dcim/models/device_component_templates.py +2 -2
  112. nautobot/dcim/models/device_components.py +22 -20
  113. nautobot/dcim/models/devices.py +10 -1
  114. nautobot/dcim/models/locations.py +3 -3
  115. nautobot/dcim/models/power.py +6 -5
  116. nautobot/dcim/models/racks.py +4 -4
  117. nautobot/dcim/tables/__init__.py +3 -3
  118. nautobot/dcim/tables/devices.py +9 -6
  119. nautobot/dcim/tables/devicetypes.py +2 -2
  120. nautobot/dcim/tables/racks.py +1 -1
  121. nautobot/dcim/templates/dcim/cable.html +1 -1
  122. nautobot/dcim/templates/dcim/controller_create.html +1 -7
  123. nautobot/dcim/templates/dcim/controller_retrieve.html +1 -9
  124. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +2 -0
  125. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +5 -0
  126. nautobot/dcim/templates/dcim/device/base.html +1 -1
  127. nautobot/dcim/templates/dcim/device.html +3 -11
  128. nautobot/dcim/templates/dcim/device_component.html +1 -1
  129. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  130. nautobot/dcim/templates/dcim/devicetype.html +1 -1
  131. nautobot/dcim/templates/dcim/location.html +2 -10
  132. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  133. nautobot/dcim/templates/dcim/locationtype.html +1 -1
  134. nautobot/dcim/templates/dcim/locationtype_retrieve.html +1 -1
  135. nautobot/dcim/templates/dcim/manufacturer.html +1 -1
  136. nautobot/dcim/templates/dcim/platform.html +1 -1
  137. nautobot/dcim/templates/dcim/powerfeed.html +1 -1
  138. nautobot/dcim/templates/dcim/powerpanel.html +1 -1
  139. nautobot/dcim/templates/dcim/rack.html +2 -10
  140. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  141. nautobot/dcim/templates/dcim/rackgroup.html +1 -1
  142. nautobot/dcim/templates/dcim/rackreservation.html +3 -11
  143. nautobot/dcim/templates/dcim/virtualchassis.html +1 -1
  144. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -9
  145. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +1 -7
  146. nautobot/dcim/tests/integration/test_controller.py +62 -0
  147. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  148. nautobot/dcim/tests/integration/test_device_bulk_operations.py +30 -0
  149. nautobot/dcim/tests/integration/test_location_bulk_operations.py +43 -0
  150. nautobot/dcim/tests/test_api.py +16 -5
  151. nautobot/dcim/tests/test_filters.py +33 -0
  152. nautobot/dcim/tests/test_forms.py +51 -2
  153. nautobot/dcim/tests/test_graphql.py +52 -0
  154. nautobot/dcim/tests/test_jobs.py +118 -0
  155. nautobot/dcim/tests/test_models.py +52 -9
  156. nautobot/dcim/tests/test_views.py +30 -84
  157. nautobot/dcim/views.py +13 -28
  158. nautobot/extras/api/customfields.py +2 -2
  159. nautobot/extras/api/serializers.py +123 -85
  160. nautobot/extras/api/views.py +33 -30
  161. nautobot/extras/constants.py +3 -0
  162. nautobot/extras/datasources/git.py +125 -0
  163. nautobot/extras/filters/__init__.py +8 -6
  164. nautobot/extras/forms/base.py +2 -2
  165. nautobot/extras/forms/forms.py +139 -31
  166. nautobot/extras/forms/mixins.py +14 -6
  167. nautobot/extras/group_sync.py +3 -3
  168. nautobot/extras/health_checks.py +1 -2
  169. nautobot/extras/jobs.py +85 -18
  170. nautobot/extras/managers.py +3 -1
  171. nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
  172. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  173. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  174. nautobot/extras/migrations/0122_add_graphqlquery_owner_content_type.py +34 -0
  175. nautobot/extras/models/__init__.py +1 -1
  176. nautobot/extras/models/contacts.py +1 -1
  177. nautobot/extras/models/customfields.py +41 -23
  178. nautobot/extras/models/datasources.py +85 -0
  179. nautobot/extras/models/groups.py +11 -9
  180. nautobot/extras/models/jobs.py +23 -4
  181. nautobot/extras/models/models.py +17 -2
  182. nautobot/extras/models/relationships.py +17 -5
  183. nautobot/extras/plugins/__init__.py +13 -2
  184. nautobot/extras/plugins/marketplace_manifest.yml +84 -79
  185. nautobot/extras/plugins/tables.py +16 -14
  186. nautobot/extras/plugins/views.py +65 -69
  187. nautobot/extras/registry.py +1 -1
  188. nautobot/extras/secrets/__init__.py +2 -2
  189. nautobot/extras/signals.py +15 -1
  190. nautobot/extras/tables.py +7 -5
  191. nautobot/extras/templates/extras/computedfield.html +1 -1
  192. nautobot/extras/templates/extras/configcontext.html +1 -1
  193. nautobot/extras/templates/extras/configcontextschema.html +1 -1
  194. nautobot/extras/templates/extras/customfield.html +1 -1
  195. nautobot/extras/templates/extras/customlink.html +1 -1
  196. nautobot/extras/templates/extras/dynamicgroup.html +2 -10
  197. nautobot/extras/templates/extras/exporttemplate.html +1 -1
  198. nautobot/extras/templates/extras/gitrepository.html +1 -1
  199. nautobot/extras/templates/extras/graphqlquery.html +1 -1
  200. nautobot/extras/templates/extras/job_detail.html +17 -1
  201. nautobot/extras/templates/extras/job_edit.html +1 -0
  202. nautobot/extras/templates/extras/jobbutton_retrieve.html +1 -1
  203. nautobot/extras/templates/extras/jobhook.html +1 -1
  204. nautobot/extras/templates/extras/jobqueue_retrieve.html +1 -9
  205. nautobot/extras/templates/extras/jobresult.html +1 -1
  206. nautobot/extras/templates/extras/marketplace.html +29 -11
  207. nautobot/extras/templates/extras/objectchange.html +1 -1
  208. nautobot/extras/templates/extras/plugin_detail.html +33 -16
  209. nautobot/extras/templates/extras/plugins_tiles.html +21 -10
  210. nautobot/extras/templates/extras/relationship.html +1 -63
  211. nautobot/extras/templates/extras/role_retrieve.html +1 -1
  212. nautobot/extras/templates/extras/scheduledjob.html +1 -1
  213. nautobot/extras/templates/extras/secret.html +1 -1
  214. nautobot/extras/templates/extras/secretsgroup.html +1 -1
  215. nautobot/extras/templates/extras/status.html +1 -1
  216. nautobot/extras/templates/extras/tag.html +1 -1
  217. nautobot/extras/templates/extras/webhook.html +1 -1
  218. nautobot/extras/templatetags/job_buttons.py +4 -4
  219. nautobot/extras/test_jobs/api_test_job.py +1 -1
  220. nautobot/extras/test_jobs/atomic_transaction.py +2 -2
  221. nautobot/extras/test_jobs/dry_run.py +1 -1
  222. nautobot/extras/test_jobs/fail.py +5 -5
  223. nautobot/extras/test_jobs/file_output.py +1 -1
  224. nautobot/extras/test_jobs/file_upload_fail.py +1 -1
  225. nautobot/extras/test_jobs/file_upload_pass.py +1 -1
  226. nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
  227. nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
  228. nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
  229. nautobot/extras/test_jobs/log_redaction.py +1 -1
  230. nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
  231. nautobot/extras/test_jobs/modify_db.py +1 -1
  232. nautobot/extras/test_jobs/object_var_optional.py +1 -1
  233. nautobot/extras/test_jobs/object_var_required.py +1 -1
  234. nautobot/extras/test_jobs/object_vars.py +1 -1
  235. nautobot/extras/test_jobs/pass.py +3 -3
  236. nautobot/extras/test_jobs/profiling.py +1 -1
  237. nautobot/extras/test_jobs/relative_import.py +3 -3
  238. nautobot/extras/test_jobs/singleton.py +16 -0
  239. nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
  240. nautobot/extras/test_jobs/task_queues.py +1 -1
  241. nautobot/extras/tests/git_data/01-valid-files/graphql_queries/device_interfaces.gql +8 -0
  242. nautobot/extras/tests/git_data/01-valid-files/graphql_queries/device_names.gql +5 -0
  243. nautobot/extras/tests/git_data/02-invalid-files/graphql_queries/bad_device_names.gql +5 -0
  244. nautobot/extras/tests/git_helper.py +9 -1
  245. nautobot/extras/tests/integration/__init__.py +29 -16
  246. nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
  247. nautobot/extras/tests/test_api.py +19 -13
  248. nautobot/extras/tests/test_customfields.py +50 -52
  249. nautobot/extras/tests/test_datasources.py +29 -1
  250. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  251. nautobot/extras/tests/test_filters.py +6 -6
  252. nautobot/extras/tests/test_forms.py +33 -1
  253. nautobot/extras/tests/test_jobs.py +178 -32
  254. nautobot/extras/tests/test_models.py +299 -10
  255. nautobot/extras/tests/test_plugins.py +62 -9
  256. nautobot/extras/tests/test_relationships.py +120 -9
  257. nautobot/extras/tests/test_utils.py +22 -1
  258. nautobot/extras/tests/test_views.py +56 -194
  259. nautobot/extras/utils.py +20 -10
  260. nautobot/extras/views.py +85 -110
  261. nautobot/ipam/api/fields.py +3 -3
  262. nautobot/ipam/api/serializers.py +41 -33
  263. nautobot/ipam/api/views.py +68 -117
  264. nautobot/ipam/factory.py +1 -1
  265. nautobot/ipam/filters.py +3 -2
  266. nautobot/ipam/lookups.py +101 -62
  267. nautobot/ipam/models.py +74 -18
  268. nautobot/ipam/querysets.py +2 -2
  269. nautobot/ipam/tables.py +25 -9
  270. nautobot/ipam/templates/ipam/ipaddress.html +2 -10
  271. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  272. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  273. nautobot/ipam/templates/ipam/prefix.html +2 -10
  274. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  275. nautobot/ipam/templates/ipam/rir.html +1 -1
  276. nautobot/ipam/templates/ipam/routetarget.html +1 -1
  277. nautobot/ipam/templates/ipam/service.html +1 -1
  278. nautobot/ipam/templates/ipam/vlan.html +2 -10
  279. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  280. nautobot/ipam/templates/ipam/vlangroup.html +1 -1
  281. nautobot/ipam/templates/ipam/vrf.html +1 -1
  282. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  283. nautobot/ipam/tests/test_api.py +436 -3
  284. nautobot/ipam/tests/test_forms.py +49 -47
  285. nautobot/ipam/tests/test_migrations.py +30 -30
  286. nautobot/ipam/tests/test_models.py +119 -34
  287. nautobot/ipam/tests/test_querysets.py +63 -1
  288. nautobot/ipam/tests/test_utils.py +41 -2
  289. nautobot/ipam/tests/test_views.py +3 -0
  290. nautobot/ipam/utils/__init__.py +54 -17
  291. nautobot/ipam/views.py +61 -87
  292. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  293. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  294. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  295. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  296. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  297. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  298. nautobot/project-static/docs/404.html +131 -14
  299. nautobot/project-static/docs/apps/index.html +131 -14
  300. nautobot/project-static/docs/apps/nautobot-apps.html +132 -16
  301. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  302. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.60a45f97.min.js} +2 -2
  303. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.60a45f97.min.js.map} +2 -2
  304. nautobot/project-static/docs/assets/javascripts/workers/{search.6ce7567c.min.js → search.f8cc74c7.min.js} +1 -1
  305. nautobot/project-static/docs/assets/javascripts/workers/{search.6ce7567c.min.js.map → search.f8cc74c7.min.js.map} +1 -1
  306. nautobot/project-static/docs/assets/stylesheets/{main.6f8fc17f.min.css → main.a40c8224.min.css} +1 -1
  307. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +147 -20
  308. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +144 -17
  309. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +459 -132
  310. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +175 -28
  311. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +180 -31
  312. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +138 -16
  313. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +137 -15
  314. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +164 -27
  315. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +187 -38
  316. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +193 -31
  317. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +216 -48
  318. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +324 -75
  319. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +666 -175
  320. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +194 -46
  321. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +538 -177
  322. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +578 -221
  323. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +145 -18
  324. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +156 -25
  325. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +492 -65
  326. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +705 -215
  327. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +943 -422
  328. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +144 -17
  329. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +619 -200
  330. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +474 -159
  331. nautobot/project-static/docs/development/apps/api/configuration-view.html +131 -14
  332. nautobot/project-static/docs/development/apps/api/database-backend-config.html +131 -14
  333. nautobot/project-static/docs/development/apps/api/models/django-admin.html +131 -14
  334. nautobot/project-static/docs/development/apps/api/models/global-search.html +131 -14
  335. nautobot/project-static/docs/development/apps/api/models/graphql.html +131 -14
  336. nautobot/project-static/docs/development/apps/api/models/index.html +131 -14
  337. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +131 -14
  338. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +131 -14
  339. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +131 -14
  340. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +131 -14
  341. nautobot/project-static/docs/development/apps/api/platform-features/index.html +131 -14
  342. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +131 -14
  343. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +131 -14
  344. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +131 -14
  345. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +131 -14
  346. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +153 -17
  347. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +131 -14
  348. nautobot/project-static/docs/development/apps/api/prometheus.html +131 -14
  349. nautobot/project-static/docs/development/apps/api/setup.html +131 -14
  350. nautobot/project-static/docs/development/apps/api/testing.html +131 -14
  351. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +131 -14
  352. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +131 -14
  353. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +131 -14
  354. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +131 -14
  355. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +131 -14
  356. nautobot/project-static/docs/development/apps/api/views/base-template.html +131 -14
  357. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +131 -14
  358. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +131 -14
  359. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +131 -14
  360. nautobot/project-static/docs/development/apps/api/views/index.html +131 -14
  361. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +131 -14
  362. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +131 -14
  363. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +131 -14
  364. nautobot/project-static/docs/development/apps/api/views/notes.html +131 -14
  365. nautobot/project-static/docs/development/apps/api/views/rest-api.html +137 -16
  366. nautobot/project-static/docs/development/apps/api/views/urls.html +131 -14
  367. nautobot/project-static/docs/development/apps/index.html +131 -14
  368. nautobot/project-static/docs/development/apps/migration/code-updates.html +131 -14
  369. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +131 -14
  370. nautobot/project-static/docs/development/apps/migration/from-v1.html +131 -14
  371. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +131 -14
  372. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +131 -14
  373. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +131 -14
  374. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +131 -14
  375. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +135 -18
  376. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +131 -14
  377. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +297 -25
  378. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +131 -14
  379. nautobot/project-static/docs/development/apps/porting-from-netbox.html +131 -14
  380. nautobot/project-static/docs/development/core/application-registry.html +131 -14
  381. nautobot/project-static/docs/development/core/best-practices.html +131 -14
  382. nautobot/project-static/docs/development/core/bootstrap-ui.html +131 -14
  383. nautobot/project-static/docs/development/core/caching.html +131 -14
  384. nautobot/project-static/docs/development/core/controllers.html +131 -14
  385. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +158 -84
  386. nautobot/project-static/docs/development/core/generic-views.html +131 -14
  387. nautobot/project-static/docs/development/core/getting-started.html +334 -234
  388. nautobot/project-static/docs/development/core/homepage.html +134 -17
  389. nautobot/project-static/docs/development/core/index.html +131 -14
  390. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9829 -0
  391. nautobot/project-static/docs/development/core/model-checklist.html +141 -22
  392. nautobot/project-static/docs/development/core/model-features.html +131 -14
  393. nautobot/project-static/docs/development/core/natural-keys.html +131 -14
  394. nautobot/project-static/docs/development/core/navigation-menu.html +131 -14
  395. nautobot/project-static/docs/development/core/release-checklist.html +134 -17
  396. nautobot/project-static/docs/development/core/role-internals.html +131 -14
  397. nautobot/project-static/docs/development/core/settings.html +131 -14
  398. nautobot/project-static/docs/development/core/style-guide.html +134 -17
  399. nautobot/project-static/docs/development/core/templates.html +132 -15
  400. nautobot/project-static/docs/development/core/testing.html +131 -14
  401. nautobot/project-static/docs/development/core/ui-component-framework.html +454 -283
  402. nautobot/project-static/docs/development/core/user-preferences.html +131 -14
  403. nautobot/project-static/docs/development/index.html +131 -14
  404. nautobot/project-static/docs/development/jobs/index.html +301 -132
  405. nautobot/project-static/docs/development/jobs/migration/from-v1.html +131 -14
  406. nautobot/project-static/docs/index.html +139 -33
  407. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  408. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  409. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  410. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  411. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  412. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  413. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  414. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  415. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  416. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  417. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  418. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  419. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  420. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  421. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  422. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  423. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  424. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  425. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  426. nautobot/project-static/docs/objects.inv +0 -0
  427. nautobot/project-static/docs/overview/application_stack.html +132 -17
  428. nautobot/project-static/docs/overview/design_philosophy.html +131 -14
  429. nautobot/project-static/docs/release-notes/index.html +137 -22
  430. nautobot/project-static/docs/release-notes/version-1.0.html +319 -203
  431. nautobot/project-static/docs/release-notes/version-1.1.html +316 -200
  432. nautobot/project-static/docs/release-notes/version-1.2.html +391 -275
  433. nautobot/project-static/docs/release-notes/version-1.3.html +417 -301
  434. nautobot/project-static/docs/release-notes/version-1.4.html +502 -387
  435. nautobot/project-static/docs/release-notes/version-1.5.html +690 -576
  436. nautobot/project-static/docs/release-notes/version-1.6.html +989 -457
  437. nautobot/project-static/docs/release-notes/version-2.0.html +613 -499
  438. nautobot/project-static/docs/release-notes/version-2.1.html +448 -334
  439. nautobot/project-static/docs/release-notes/version-2.2.html +441 -327
  440. nautobot/project-static/docs/release-notes/version-2.3.html +1171 -451
  441. nautobot/project-static/docs/release-notes/version-2.4.html +800 -111
  442. nautobot/project-static/docs/requirements.txt +2 -2
  443. nautobot/project-static/docs/search/search_index.json +1 -1
  444. nautobot/project-static/docs/sitemap.xml +303 -287
  445. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  446. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +131 -14
  447. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +131 -14
  448. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +133 -16
  449. nautobot/project-static/docs/user-guide/administration/configuration/index.html +131 -14
  450. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +131 -14
  451. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +195 -18
  452. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +131 -14
  453. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +134 -17
  454. nautobot/project-static/docs/user-guide/administration/guides/docker.html +131 -14
  455. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +131 -14
  456. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +131 -14
  457. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +131 -14
  458. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +131 -14
  459. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +131 -14
  460. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +133 -16
  461. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +131 -14
  462. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +131 -14
  463. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +131 -14
  464. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +151 -18
  465. nautobot/project-static/docs/user-guide/administration/installation/index.html +131 -14
  466. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +132 -15
  467. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +131 -14
  468. nautobot/project-static/docs/user-guide/administration/installation/services.html +131 -14
  469. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +131 -14
  470. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +131 -14
  471. nautobot/project-static/docs/user-guide/administration/security/index.html +9420 -0
  472. nautobot/project-static/docs/user-guide/administration/security/notices.html +9843 -0
  473. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +131 -14
  474. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +131 -14
  475. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +131 -14
  476. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +131 -14
  477. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +131 -14
  478. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +131 -14
  479. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +131 -14
  480. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +134 -18
  481. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +131 -14
  482. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +131 -14
  483. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +131 -14
  484. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +131 -14
  485. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +131 -14
  486. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +131 -14
  487. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +131 -14
  488. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +131 -14
  489. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +131 -14
  490. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +131 -14
  491. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +131 -14
  492. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +131 -14
  493. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +131 -14
  494. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +131 -14
  495. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +131 -14
  496. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +131 -14
  497. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +131 -14
  498. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +131 -14
  499. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +131 -14
  500. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +131 -14
  501. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +131 -14
  502. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +131 -14
  503. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +131 -14
  504. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +131 -14
  505. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +131 -14
  506. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +131 -14
  507. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +131 -14
  508. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +131 -14
  509. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +131 -14
  510. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +131 -14
  511. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +131 -14
  512. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +131 -14
  513. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +131 -14
  514. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +131 -14
  515. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +131 -14
  516. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +131 -14
  517. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +131 -14
  518. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +131 -14
  519. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +131 -14
  520. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +131 -14
  521. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +131 -14
  522. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +131 -14
  523. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +131 -14
  524. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +131 -14
  525. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +131 -14
  526. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +131 -14
  527. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +131 -14
  528. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +131 -14
  529. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +131 -14
  530. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +131 -14
  531. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +131 -14
  532. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +131 -14
  533. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +131 -14
  534. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +131 -14
  535. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +131 -14
  536. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +131 -14
  537. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +131 -14
  538. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +135 -22
  539. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +131 -14
  540. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +131 -14
  541. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +131 -14
  542. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +131 -14
  543. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +131 -14
  544. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +131 -14
  545. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +131 -14
  546. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +131 -14
  547. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +131 -14
  548. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +131 -14
  549. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +131 -14
  550. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +131 -14
  551. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +134 -17
  552. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +131 -14
  553. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +131 -14
  554. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +131 -14
  555. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +131 -14
  556. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +131 -14
  557. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +131 -14
  558. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +131 -14
  559. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +131 -14
  560. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +131 -14
  561. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +131 -14
  562. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +131 -14
  563. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +131 -14
  564. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +131 -14
  565. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +131 -14
  566. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +131 -14
  567. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +134 -17
  568. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +131 -14
  569. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +131 -14
  570. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +131 -14
  571. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +131 -14
  572. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +131 -14
  573. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +131 -14
  574. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +236 -34
  575. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +131 -14
  576. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  577. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  578. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  579. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  580. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  581. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  582. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  583. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  584. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  585. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  586. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  587. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  588. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  589. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +131 -14
  590. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +131 -14
  591. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +134 -17
  592. nautobot/project-static/docs/{development/core/local-k8s.html → user-guide/feature-guides/wireless-networks-and-controllers.html} +632 -566
  593. nautobot/project-static/docs/user-guide/index.html +131 -14
  594. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +131 -14
  595. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +135 -18
  596. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +131 -14
  597. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +131 -14
  598. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +131 -14
  599. nautobot/project-static/docs/user-guide/platform-functionality/events.html +131 -14
  600. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +131 -14
  601. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +131 -14
  602. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +451 -16
  603. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +131 -14
  604. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +131 -14
  605. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +131 -14
  606. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +135 -17
  607. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +131 -14
  608. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +134 -17
  609. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +131 -14
  610. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +131 -14
  611. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9797 -0
  612. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +131 -14
  613. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +131 -14
  614. nautobot/project-static/docs/user-guide/platform-functionality/note.html +131 -14
  615. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +131 -14
  616. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +132 -15
  617. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +131 -14
  618. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +131 -14
  619. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +179 -35
  620. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +159 -15
  621. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +131 -14
  622. nautobot/project-static/docs/user-guide/platform-functionality/role.html +131 -14
  623. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +131 -14
  624. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +131 -14
  625. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +131 -14
  626. nautobot/project-static/docs/user-guide/platform-functionality/status.html +131 -14
  627. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +131 -14
  628. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +131 -14
  629. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +131 -14
  630. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +131 -14
  631. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +131 -14
  632. nautobot/project-static/js/forms.js +1 -1
  633. nautobot/tenancy/api/views.py +9 -13
  634. nautobot/tenancy/templates/tenancy/tenant.html +1 -2
  635. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  636. nautobot/tenancy/views.py +4 -2
  637. nautobot/users/admin.py +1 -1
  638. nautobot/users/api/serializers.py +5 -4
  639. nautobot/users/api/views.py +3 -3
  640. nautobot/virtualization/api/serializers.py +4 -4
  641. nautobot/virtualization/api/views.py +5 -24
  642. nautobot/virtualization/filters.py +20 -3
  643. nautobot/virtualization/models.py +1 -1
  644. nautobot/virtualization/tables.py +2 -2
  645. nautobot/virtualization/templates/virtualization/cluster.html +1 -1
  646. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  647. nautobot/virtualization/templates/virtualization/clustergroup.html +1 -1
  648. nautobot/virtualization/templates/virtualization/clustertype.html +1 -1
  649. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -10
  650. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  651. nautobot/virtualization/templates/virtualization/vminterface.html +1 -1
  652. nautobot/virtualization/tests/test_filters.py +17 -0
  653. nautobot/wireless/filters.py +2 -2
  654. nautobot/wireless/forms.py +1 -1
  655. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -9
  656. nautobot/wireless/tests/integration/__init__.py +0 -0
  657. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  658. nautobot/wireless/tests/test_filters.py +29 -1
  659. nautobot/wireless/tests/test_views.py +22 -1
  660. nautobot/wireless/views.py +0 -10
  661. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/METADATA +9 -9
  662. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/RECORD +667 -610
  663. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/WHEEL +1 -1
  664. nautobot/core/fixtures/user-data.json +0 -59
  665. /nautobot/project-static/docs/assets/stylesheets/{main.6f8fc17f.min.css.map → main.a40c8224.min.css.map} +0 -0
  666. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/LICENSE.txt +0 -0
  667. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/NOTICE +0 -0
  668. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.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.1, mkdocs-material-9.5.46">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.50">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../assets/stylesheets/main.6f8fc17f.min.css">
29
+ <link rel="stylesheet" href="../assets/stylesheets/main.a40c8224.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.7.1 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 0zm-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.1"/></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.7.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 0zm-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.1"/></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.7.1 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.81"/></svg>
220
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.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.81"/></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.7.1 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.81"/></svg>
380
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.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.81"/></svg>
381
381
  </div>
382
382
  <div class="md-source__repository">
383
383
  GitHub
@@ -1697,6 +1697,81 @@
1697
1697
 
1698
1698
 
1699
1699
 
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+ <li class="md-nav__item md-nav__item--nested">
1714
+
1715
+
1716
+
1717
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_7" >
1718
+
1719
+
1720
+
1721
+ <div class="md-nav__link md-nav__container">
1722
+ <a href="../user-guide/administration/security/index.html" class="md-nav__link ">
1723
+
1724
+
1725
+ <span class="md-ellipsis">
1726
+ Security
1727
+ </span>
1728
+
1729
+
1730
+ </a>
1731
+
1732
+
1733
+ <label class="md-nav__link " for="__nav_2_1_7" id="__nav_2_1_7_label" tabindex="0">
1734
+ <span class="md-nav__icon md-icon"></span>
1735
+ </label>
1736
+
1737
+ </div>
1738
+
1739
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_7_label" aria-expanded="false">
1740
+ <label class="md-nav__title" for="__nav_2_1_7">
1741
+ <span class="md-nav__icon md-icon"></span>
1742
+ Security
1743
+ </label>
1744
+ <ul class="md-nav__list" data-md-scrollfix>
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+ <li class="md-nav__item">
1753
+ <a href="../user-guide/administration/security/notices.html" class="md-nav__link">
1754
+
1755
+
1756
+ <span class="md-ellipsis">
1757
+ Notices
1758
+ </span>
1759
+
1760
+
1761
+ </a>
1762
+ </li>
1763
+
1764
+
1765
+
1766
+
1767
+ </ul>
1768
+ </nav>
1769
+
1770
+ </li>
1771
+
1772
+
1773
+
1774
+
1700
1775
  </ul>
1701
1776
  </nav>
1702
1777
 
@@ -2112,6 +2187,27 @@
2112
2187
 
2113
2188
 
2114
2189
 
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+ <li class="md-nav__item">
2197
+ <a href="../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
2198
+
2199
+
2200
+ <span class="md-ellipsis">
2201
+ Wireless Networks and Controllers
2202
+ </span>
2203
+
2204
+
2205
+ </a>
2206
+ </li>
2207
+
2208
+
2209
+
2210
+
2115
2211
  </ul>
2116
2212
  </nav>
2117
2213
 
@@ -5131,6 +5227,27 @@
5131
5227
 
5132
5228
 
5133
5229
 
5230
+ <li class="md-nav__item">
5231
+ <a href="../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
5232
+
5233
+
5234
+ <span class="md-ellipsis">
5235
+ Kubernetes Job Support
5236
+ </span>
5237
+
5238
+
5239
+ </a>
5240
+ </li>
5241
+
5242
+
5243
+
5244
+
5245
+
5246
+
5247
+
5248
+
5249
+
5250
+
5134
5251
  <li class="md-nav__item">
5135
5252
  <a href="../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
5136
5253
 
@@ -8055,11 +8172,11 @@
8055
8172
 
8056
8173
 
8057
8174
  <li class="md-nav__item">
8058
- <a href="../development/core/local-k8s.html" class="md-nav__link">
8175
+ <a href="../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
8059
8176
 
8060
8177
 
8061
8178
  <span class="md-ellipsis">
8062
- Local Kubernetes Cluster
8179
+ Minikube Dev Environment for K8s Jobs
8063
8180
  </span>
8064
8181
 
8065
8182
 
@@ -8471,6 +8588,24 @@
8471
8588
  <nav class="md-nav" aria-label="Added">
8472
8589
  <ul class="md-nav__list">
8473
8590
 
8591
+ <li class="md-nav__item">
8592
+ <a href="#virtual-device-context-data-models" class="md-nav__link">
8593
+ <span class="md-ellipsis">
8594
+ Virtual Device Context Data Models
8595
+ </span>
8596
+ </a>
8597
+
8598
+ </li>
8599
+
8600
+ <li class="md-nav__item">
8601
+ <a href="#wireless-data-models" class="md-nav__link">
8602
+ <span class="md-ellipsis">
8603
+ Wireless Data Models
8604
+ </span>
8605
+ </a>
8606
+
8607
+ </li>
8608
+
8474
8609
  <li class="md-nav__item">
8475
8610
  <a href="#apps-marketplace-page-and-installed-apps-page-tile-view" class="md-nav__link">
8476
8611
  <span class="md-ellipsis">
@@ -8508,45 +8643,45 @@
8508
8643
  </li>
8509
8644
 
8510
8645
  <li class="md-nav__item">
8511
- <a href="#kubernetes-job-execution-and-job-queue-data-model" class="md-nav__link">
8646
+ <a href="#kubernetes-job-execution-and-job-queue-data-model-experimental" class="md-nav__link">
8512
8647
  <span class="md-ellipsis">
8513
- Kubernetes Job Execution and Job Queue Data Model
8648
+ Kubernetes Job Execution and Job Queue Data Model (Experimental)
8514
8649
  </span>
8515
8650
  </a>
8516
8651
 
8517
8652
  </li>
8518
8653
 
8519
8654
  <li class="md-nav__item">
8520
- <a href="#per-user-time-zone-support" class="md-nav__link">
8655
+ <a href="#singleton-jobs" class="md-nav__link">
8521
8656
  <span class="md-ellipsis">
8522
- Per-user Time Zone Support
8657
+ Singleton Jobs
8523
8658
  </span>
8524
8659
  </a>
8525
8660
 
8526
8661
  </li>
8527
8662
 
8528
8663
  <li class="md-nav__item">
8529
- <a href="#ui-component-framework" class="md-nav__link">
8664
+ <a href="#per-user-time-zone-support" class="md-nav__link">
8530
8665
  <span class="md-ellipsis">
8531
- UI Component Framework
8666
+ Per-user Time Zone Support
8532
8667
  </span>
8533
8668
  </a>
8534
8669
 
8535
8670
  </li>
8536
8671
 
8537
8672
  <li class="md-nav__item">
8538
- <a href="#virtual-device-context-data-models" class="md-nav__link">
8673
+ <a href="#rest-api-exclude_m2m-support" class="md-nav__link">
8539
8674
  <span class="md-ellipsis">
8540
- Virtual Device Context Data Models
8675
+ REST API exclude_m2m Support
8541
8676
  </span>
8542
8677
  </a>
8543
8678
 
8544
8679
  </li>
8545
8680
 
8546
8681
  <li class="md-nav__item">
8547
- <a href="#wireless-data-models" class="md-nav__link">
8682
+ <a href="#ui-component-framework" class="md-nav__link">
8548
8683
  <span class="md-ellipsis">
8549
- Wireless Data Models
8684
+ UI Component Framework
8550
8685
  </span>
8551
8686
  </a>
8552
8687
 
@@ -8626,6 +8761,186 @@
8626
8761
  </ul>
8627
8762
  </nav>
8628
8763
 
8764
+ </li>
8765
+
8766
+ <li class="md-nav__item">
8767
+ <a href="#v242-2025-02-03" class="md-nav__link">
8768
+ <span class="md-ellipsis">
8769
+ v2.4.2 (2025-02-03)
8770
+ </span>
8771
+ </a>
8772
+
8773
+ <nav class="md-nav" aria-label="v2.4.2 (2025-02-03)">
8774
+ <ul class="md-nav__list">
8775
+
8776
+ <li class="md-nav__item">
8777
+ <a href="#added-in-v242" class="md-nav__link">
8778
+ <span class="md-ellipsis">
8779
+ Added in v2.4.2
8780
+ </span>
8781
+ </a>
8782
+
8783
+ </li>
8784
+
8785
+ <li class="md-nav__item">
8786
+ <a href="#changed-in-v242" class="md-nav__link">
8787
+ <span class="md-ellipsis">
8788
+ Changed in v2.4.2
8789
+ </span>
8790
+ </a>
8791
+
8792
+ </li>
8793
+
8794
+ <li class="md-nav__item">
8795
+ <a href="#fixed-in-v242" class="md-nav__link">
8796
+ <span class="md-ellipsis">
8797
+ Fixed in v2.4.2
8798
+ </span>
8799
+ </a>
8800
+
8801
+ </li>
8802
+
8803
+ <li class="md-nav__item">
8804
+ <a href="#dependencies-in-v242" class="md-nav__link">
8805
+ <span class="md-ellipsis">
8806
+ Dependencies in v2.4.2
8807
+ </span>
8808
+ </a>
8809
+
8810
+ </li>
8811
+
8812
+ <li class="md-nav__item">
8813
+ <a href="#documentation-in-v242" class="md-nav__link">
8814
+ <span class="md-ellipsis">
8815
+ Documentation in v2.4.2
8816
+ </span>
8817
+ </a>
8818
+
8819
+ </li>
8820
+
8821
+ <li class="md-nav__item">
8822
+ <a href="#housekeeping-in-v242" class="md-nav__link">
8823
+ <span class="md-ellipsis">
8824
+ Housekeeping in v2.4.2
8825
+ </span>
8826
+ </a>
8827
+
8828
+ </li>
8829
+
8830
+ </ul>
8831
+ </nav>
8832
+
8833
+ </li>
8834
+
8835
+ <li class="md-nav__item">
8836
+ <a href="#v241-2025-01-21" class="md-nav__link">
8837
+ <span class="md-ellipsis">
8838
+ v2.4.1 (2025-01-21)
8839
+ </span>
8840
+ </a>
8841
+
8842
+ <nav class="md-nav" aria-label="v2.4.1 (2025-01-21)">
8843
+ <ul class="md-nav__list">
8844
+
8845
+ <li class="md-nav__item">
8846
+ <a href="#security-in-v241" class="md-nav__link">
8847
+ <span class="md-ellipsis">
8848
+ Security in v2.4.1
8849
+ </span>
8850
+ </a>
8851
+
8852
+ </li>
8853
+
8854
+ <li class="md-nav__item">
8855
+ <a href="#fixed-in-v241" class="md-nav__link">
8856
+ <span class="md-ellipsis">
8857
+ Fixed in v2.4.1
8858
+ </span>
8859
+ </a>
8860
+
8861
+ </li>
8862
+
8863
+ <li class="md-nav__item">
8864
+ <a href="#housekeeping-in-v241" class="md-nav__link">
8865
+ <span class="md-ellipsis">
8866
+ Housekeeping in v2.4.1
8867
+ </span>
8868
+ </a>
8869
+
8870
+ </li>
8871
+
8872
+ </ul>
8873
+ </nav>
8874
+
8875
+ </li>
8876
+
8877
+ <li class="md-nav__item">
8878
+ <a href="#v240-2025-01-10" class="md-nav__link">
8879
+ <span class="md-ellipsis">
8880
+ v2.4.0 (2025-01-10)
8881
+ </span>
8882
+ </a>
8883
+
8884
+ <nav class="md-nav" aria-label="v2.4.0 (2025-01-10)">
8885
+ <ul class="md-nav__list">
8886
+
8887
+ <li class="md-nav__item">
8888
+ <a href="#added-in-v240" class="md-nav__link">
8889
+ <span class="md-ellipsis">
8890
+ Added in v2.4.0
8891
+ </span>
8892
+ </a>
8893
+
8894
+ </li>
8895
+
8896
+ <li class="md-nav__item">
8897
+ <a href="#changed-in-v240" class="md-nav__link">
8898
+ <span class="md-ellipsis">
8899
+ Changed in v2.4.0
8900
+ </span>
8901
+ </a>
8902
+
8903
+ </li>
8904
+
8905
+ <li class="md-nav__item">
8906
+ <a href="#fixed-in-v240" class="md-nav__link">
8907
+ <span class="md-ellipsis">
8908
+ Fixed in v2.4.0
8909
+ </span>
8910
+ </a>
8911
+
8912
+ </li>
8913
+
8914
+ <li class="md-nav__item">
8915
+ <a href="#dependencies-in-v240" class="md-nav__link">
8916
+ <span class="md-ellipsis">
8917
+ Dependencies in v2.4.0
8918
+ </span>
8919
+ </a>
8920
+
8921
+ </li>
8922
+
8923
+ <li class="md-nav__item">
8924
+ <a href="#documentation-in-v240" class="md-nav__link">
8925
+ <span class="md-ellipsis">
8926
+ Documentation in v2.4.0
8927
+ </span>
8928
+ </a>
8929
+
8930
+ </li>
8931
+
8932
+ <li class="md-nav__item">
8933
+ <a href="#housekeeping-in-v240" class="md-nav__link">
8934
+ <span class="md-ellipsis">
8935
+ Housekeeping in v2.4.0
8936
+ </span>
8937
+ </a>
8938
+
8939
+ </li>
8940
+
8941
+ </ul>
8942
+ </nav>
8943
+
8629
8944
  </li>
8630
8945
 
8631
8946
  <li class="md-nav__item">
@@ -8639,63 +8954,72 @@
8639
8954
  <ul class="md-nav__list">
8640
8955
 
8641
8956
  <li class="md-nav__item">
8642
- <a href="#changed" class="md-nav__link">
8957
+ <a href="#added-in-v240b1" class="md-nav__link">
8643
8958
  <span class="md-ellipsis">
8644
- Changed
8959
+ Added in v2.4.0b1
8645
8960
  </span>
8646
8961
  </a>
8647
8962
 
8648
8963
  </li>
8649
8964
 
8650
8965
  <li class="md-nav__item">
8651
- <a href="#deprecated_1" class="md-nav__link">
8966
+ <a href="#changed-in-v240b1" class="md-nav__link">
8652
8967
  <span class="md-ellipsis">
8653
- Deprecated
8968
+ Changed in v2.4.0b1
8654
8969
  </span>
8655
8970
  </a>
8656
8971
 
8657
8972
  </li>
8658
8973
 
8659
8974
  <li class="md-nav__item">
8660
- <a href="#removed" class="md-nav__link">
8975
+ <a href="#deprecated-in-v240b1" class="md-nav__link">
8661
8976
  <span class="md-ellipsis">
8662
- Removed
8977
+ Deprecated in v2.4.0b1
8663
8978
  </span>
8664
8979
  </a>
8665
8980
 
8666
8981
  </li>
8667
8982
 
8668
8983
  <li class="md-nav__item">
8669
- <a href="#fixed" class="md-nav__link">
8984
+ <a href="#removed-in-v240b1" class="md-nav__link">
8670
8985
  <span class="md-ellipsis">
8671
- Fixed
8986
+ Removed in v2.4.0b1
8672
8987
  </span>
8673
8988
  </a>
8674
8989
 
8675
8990
  </li>
8676
8991
 
8677
8992
  <li class="md-nav__item">
8678
- <a href="#dependencies_1" class="md-nav__link">
8993
+ <a href="#fixed-in-v240b1" class="md-nav__link">
8679
8994
  <span class="md-ellipsis">
8680
- Dependencies
8995
+ Fixed in v2.4.0b1
8996
+ </span>
8997
+ </a>
8998
+
8999
+ </li>
9000
+
9001
+ <li class="md-nav__item">
9002
+ <a href="#dependencies-in-v240b1" class="md-nav__link">
9003
+ <span class="md-ellipsis">
9004
+ Dependencies in v2.4.0b1
8681
9005
  </span>
8682
9006
  </a>
8683
9007
 
8684
9008
  </li>
8685
9009
 
8686
9010
  <li class="md-nav__item">
8687
- <a href="#documentation" class="md-nav__link">
9011
+ <a href="#documentation-in-v240b1" class="md-nav__link">
8688
9012
  <span class="md-ellipsis">
8689
- Documentation
9013
+ Documentation in v2.4.0b1
8690
9014
  </span>
8691
9015
  </a>
8692
9016
 
8693
9017
  </li>
8694
9018
 
8695
9019
  <li class="md-nav__item">
8696
- <a href="#housekeeping" class="md-nav__link">
9020
+ <a href="#housekeeping-in-v240b1" class="md-nav__link">
8697
9021
  <span class="md-ellipsis">
8698
- Housekeeping
9022
+ Housekeeping in v2.4.0b1
8699
9023
  </span>
8700
9024
  </a>
8701
9025
 
@@ -9361,6 +9685,24 @@
9361
9685
  <nav class="md-nav" aria-label="Added">
9362
9686
  <ul class="md-nav__list">
9363
9687
 
9688
+ <li class="md-nav__item">
9689
+ <a href="#virtual-device-context-data-models" class="md-nav__link">
9690
+ <span class="md-ellipsis">
9691
+ Virtual Device Context Data Models
9692
+ </span>
9693
+ </a>
9694
+
9695
+ </li>
9696
+
9697
+ <li class="md-nav__item">
9698
+ <a href="#wireless-data-models" class="md-nav__link">
9699
+ <span class="md-ellipsis">
9700
+ Wireless Data Models
9701
+ </span>
9702
+ </a>
9703
+
9704
+ </li>
9705
+
9364
9706
  <li class="md-nav__item">
9365
9707
  <a href="#apps-marketplace-page-and-installed-apps-page-tile-view" class="md-nav__link">
9366
9708
  <span class="md-ellipsis">
@@ -9398,45 +9740,45 @@
9398
9740
  </li>
9399
9741
 
9400
9742
  <li class="md-nav__item">
9401
- <a href="#kubernetes-job-execution-and-job-queue-data-model" class="md-nav__link">
9743
+ <a href="#kubernetes-job-execution-and-job-queue-data-model-experimental" class="md-nav__link">
9402
9744
  <span class="md-ellipsis">
9403
- Kubernetes Job Execution and Job Queue Data Model
9745
+ Kubernetes Job Execution and Job Queue Data Model (Experimental)
9404
9746
  </span>
9405
9747
  </a>
9406
9748
 
9407
9749
  </li>
9408
9750
 
9409
9751
  <li class="md-nav__item">
9410
- <a href="#per-user-time-zone-support" class="md-nav__link">
9752
+ <a href="#singleton-jobs" class="md-nav__link">
9411
9753
  <span class="md-ellipsis">
9412
- Per-user Time Zone Support
9754
+ Singleton Jobs
9413
9755
  </span>
9414
9756
  </a>
9415
9757
 
9416
9758
  </li>
9417
9759
 
9418
9760
  <li class="md-nav__item">
9419
- <a href="#ui-component-framework" class="md-nav__link">
9761
+ <a href="#per-user-time-zone-support" class="md-nav__link">
9420
9762
  <span class="md-ellipsis">
9421
- UI Component Framework
9763
+ Per-user Time Zone Support
9422
9764
  </span>
9423
9765
  </a>
9424
9766
 
9425
9767
  </li>
9426
9768
 
9427
9769
  <li class="md-nav__item">
9428
- <a href="#virtual-device-context-data-models" class="md-nav__link">
9770
+ <a href="#rest-api-exclude_m2m-support" class="md-nav__link">
9429
9771
  <span class="md-ellipsis">
9430
- Virtual Device Context Data Models
9772
+ REST API exclude_m2m Support
9431
9773
  </span>
9432
9774
  </a>
9433
9775
 
9434
9776
  </li>
9435
9777
 
9436
9778
  <li class="md-nav__item">
9437
- <a href="#wireless-data-models" class="md-nav__link">
9779
+ <a href="#ui-component-framework" class="md-nav__link">
9438
9780
  <span class="md-ellipsis">
9439
- Wireless Data Models
9781
+ UI Component Framework
9440
9782
  </span>
9441
9783
  </a>
9442
9784
 
@@ -9516,6 +9858,186 @@
9516
9858
  </ul>
9517
9859
  </nav>
9518
9860
 
9861
+ </li>
9862
+
9863
+ <li class="md-nav__item">
9864
+ <a href="#v242-2025-02-03" class="md-nav__link">
9865
+ <span class="md-ellipsis">
9866
+ v2.4.2 (2025-02-03)
9867
+ </span>
9868
+ </a>
9869
+
9870
+ <nav class="md-nav" aria-label="v2.4.2 (2025-02-03)">
9871
+ <ul class="md-nav__list">
9872
+
9873
+ <li class="md-nav__item">
9874
+ <a href="#added-in-v242" class="md-nav__link">
9875
+ <span class="md-ellipsis">
9876
+ Added in v2.4.2
9877
+ </span>
9878
+ </a>
9879
+
9880
+ </li>
9881
+
9882
+ <li class="md-nav__item">
9883
+ <a href="#changed-in-v242" class="md-nav__link">
9884
+ <span class="md-ellipsis">
9885
+ Changed in v2.4.2
9886
+ </span>
9887
+ </a>
9888
+
9889
+ </li>
9890
+
9891
+ <li class="md-nav__item">
9892
+ <a href="#fixed-in-v242" class="md-nav__link">
9893
+ <span class="md-ellipsis">
9894
+ Fixed in v2.4.2
9895
+ </span>
9896
+ </a>
9897
+
9898
+ </li>
9899
+
9900
+ <li class="md-nav__item">
9901
+ <a href="#dependencies-in-v242" class="md-nav__link">
9902
+ <span class="md-ellipsis">
9903
+ Dependencies in v2.4.2
9904
+ </span>
9905
+ </a>
9906
+
9907
+ </li>
9908
+
9909
+ <li class="md-nav__item">
9910
+ <a href="#documentation-in-v242" class="md-nav__link">
9911
+ <span class="md-ellipsis">
9912
+ Documentation in v2.4.2
9913
+ </span>
9914
+ </a>
9915
+
9916
+ </li>
9917
+
9918
+ <li class="md-nav__item">
9919
+ <a href="#housekeeping-in-v242" class="md-nav__link">
9920
+ <span class="md-ellipsis">
9921
+ Housekeeping in v2.4.2
9922
+ </span>
9923
+ </a>
9924
+
9925
+ </li>
9926
+
9927
+ </ul>
9928
+ </nav>
9929
+
9930
+ </li>
9931
+
9932
+ <li class="md-nav__item">
9933
+ <a href="#v241-2025-01-21" class="md-nav__link">
9934
+ <span class="md-ellipsis">
9935
+ v2.4.1 (2025-01-21)
9936
+ </span>
9937
+ </a>
9938
+
9939
+ <nav class="md-nav" aria-label="v2.4.1 (2025-01-21)">
9940
+ <ul class="md-nav__list">
9941
+
9942
+ <li class="md-nav__item">
9943
+ <a href="#security-in-v241" class="md-nav__link">
9944
+ <span class="md-ellipsis">
9945
+ Security in v2.4.1
9946
+ </span>
9947
+ </a>
9948
+
9949
+ </li>
9950
+
9951
+ <li class="md-nav__item">
9952
+ <a href="#fixed-in-v241" class="md-nav__link">
9953
+ <span class="md-ellipsis">
9954
+ Fixed in v2.4.1
9955
+ </span>
9956
+ </a>
9957
+
9958
+ </li>
9959
+
9960
+ <li class="md-nav__item">
9961
+ <a href="#housekeeping-in-v241" class="md-nav__link">
9962
+ <span class="md-ellipsis">
9963
+ Housekeeping in v2.4.1
9964
+ </span>
9965
+ </a>
9966
+
9967
+ </li>
9968
+
9969
+ </ul>
9970
+ </nav>
9971
+
9972
+ </li>
9973
+
9974
+ <li class="md-nav__item">
9975
+ <a href="#v240-2025-01-10" class="md-nav__link">
9976
+ <span class="md-ellipsis">
9977
+ v2.4.0 (2025-01-10)
9978
+ </span>
9979
+ </a>
9980
+
9981
+ <nav class="md-nav" aria-label="v2.4.0 (2025-01-10)">
9982
+ <ul class="md-nav__list">
9983
+
9984
+ <li class="md-nav__item">
9985
+ <a href="#added-in-v240" class="md-nav__link">
9986
+ <span class="md-ellipsis">
9987
+ Added in v2.4.0
9988
+ </span>
9989
+ </a>
9990
+
9991
+ </li>
9992
+
9993
+ <li class="md-nav__item">
9994
+ <a href="#changed-in-v240" class="md-nav__link">
9995
+ <span class="md-ellipsis">
9996
+ Changed in v2.4.0
9997
+ </span>
9998
+ </a>
9999
+
10000
+ </li>
10001
+
10002
+ <li class="md-nav__item">
10003
+ <a href="#fixed-in-v240" class="md-nav__link">
10004
+ <span class="md-ellipsis">
10005
+ Fixed in v2.4.0
10006
+ </span>
10007
+ </a>
10008
+
10009
+ </li>
10010
+
10011
+ <li class="md-nav__item">
10012
+ <a href="#dependencies-in-v240" class="md-nav__link">
10013
+ <span class="md-ellipsis">
10014
+ Dependencies in v2.4.0
10015
+ </span>
10016
+ </a>
10017
+
10018
+ </li>
10019
+
10020
+ <li class="md-nav__item">
10021
+ <a href="#documentation-in-v240" class="md-nav__link">
10022
+ <span class="md-ellipsis">
10023
+ Documentation in v2.4.0
10024
+ </span>
10025
+ </a>
10026
+
10027
+ </li>
10028
+
10029
+ <li class="md-nav__item">
10030
+ <a href="#housekeeping-in-v240" class="md-nav__link">
10031
+ <span class="md-ellipsis">
10032
+ Housekeeping in v2.4.0
10033
+ </span>
10034
+ </a>
10035
+
10036
+ </li>
10037
+
10038
+ </ul>
10039
+ </nav>
10040
+
9519
10041
  </li>
9520
10042
 
9521
10043
  <li class="md-nav__item">
@@ -9529,63 +10051,72 @@
9529
10051
  <ul class="md-nav__list">
9530
10052
 
9531
10053
  <li class="md-nav__item">
9532
- <a href="#changed" class="md-nav__link">
10054
+ <a href="#added-in-v240b1" class="md-nav__link">
9533
10055
  <span class="md-ellipsis">
9534
- Changed
10056
+ Added in v2.4.0b1
9535
10057
  </span>
9536
10058
  </a>
9537
10059
 
9538
10060
  </li>
9539
10061
 
9540
10062
  <li class="md-nav__item">
9541
- <a href="#deprecated_1" class="md-nav__link">
10063
+ <a href="#changed-in-v240b1" class="md-nav__link">
9542
10064
  <span class="md-ellipsis">
9543
- Deprecated
10065
+ Changed in v2.4.0b1
9544
10066
  </span>
9545
10067
  </a>
9546
10068
 
9547
10069
  </li>
9548
10070
 
9549
10071
  <li class="md-nav__item">
9550
- <a href="#removed" class="md-nav__link">
10072
+ <a href="#deprecated-in-v240b1" class="md-nav__link">
9551
10073
  <span class="md-ellipsis">
9552
- Removed
10074
+ Deprecated in v2.4.0b1
9553
10075
  </span>
9554
10076
  </a>
9555
10077
 
9556
10078
  </li>
9557
10079
 
9558
10080
  <li class="md-nav__item">
9559
- <a href="#fixed" class="md-nav__link">
10081
+ <a href="#removed-in-v240b1" class="md-nav__link">
9560
10082
  <span class="md-ellipsis">
9561
- Fixed
10083
+ Removed in v2.4.0b1
9562
10084
  </span>
9563
10085
  </a>
9564
10086
 
9565
10087
  </li>
9566
10088
 
9567
10089
  <li class="md-nav__item">
9568
- <a href="#dependencies_1" class="md-nav__link">
10090
+ <a href="#fixed-in-v240b1" class="md-nav__link">
9569
10091
  <span class="md-ellipsis">
9570
- Dependencies
10092
+ Fixed in v2.4.0b1
10093
+ </span>
10094
+ </a>
10095
+
10096
+ </li>
10097
+
10098
+ <li class="md-nav__item">
10099
+ <a href="#dependencies-in-v240b1" class="md-nav__link">
10100
+ <span class="md-ellipsis">
10101
+ Dependencies in v2.4.0b1
9571
10102
  </span>
9572
10103
  </a>
9573
10104
 
9574
10105
  </li>
9575
10106
 
9576
10107
  <li class="md-nav__item">
9577
- <a href="#documentation" class="md-nav__link">
10108
+ <a href="#documentation-in-v240b1" class="md-nav__link">
9578
10109
  <span class="md-ellipsis">
9579
- Documentation
10110
+ Documentation in v2.4.0b1
9580
10111
  </span>
9581
10112
  </a>
9582
10113
 
9583
10114
  </li>
9584
10115
 
9585
10116
  <li class="md-nav__item">
9586
- <a href="#housekeeping" class="md-nav__link">
10117
+ <a href="#housekeeping-in-v240b1" class="md-nav__link">
9587
10118
  <span class="md-ellipsis">
9588
- Housekeeping
10119
+ Housekeeping in v2.4.0b1
9589
10120
  </span>
9590
10121
  </a>
9591
10122
 
@@ -9614,62 +10145,77 @@
9614
10145
 
9615
10146
 
9616
10147
 
9617
- <!-- markdownlint-disable MD024 -->
9618
-
9619
10148
  <h1 id="nautobot-v24">Nautobot v2.4<a class="headerlink" href="#nautobot-v24" title="Permanent link">&para;</a></h1>
9620
10149
  <p>This document describes all new features and changes in Nautobot 2.4.</p>
9621
10150
  <h2 id="upgrade-actions">Upgrade Actions<a class="headerlink" href="#upgrade-actions" title="Permanent link">&para;</a></h2>
9622
10151
  <h3 id="administrators">Administrators<a class="headerlink" href="#administrators" title="Permanent link">&para;</a></h3>
9623
10152
  <ul>
9624
- <li>Nautobot 2.4 <a href="#removed-python-38-support">drops support for Python 3.8</a>, so any existing Nautobot deployment in Python 3.8 will need to be replaced with a new deployment using a newer Python version before upgrading to Nautobot v2.4 or later.</li>
9625
- <li>Administrators should familiarize themselves with the new <a href="#event-publication-framework">Event Publication Framework</a> and the possibilities it enables for improved monitoring of Nautobot operations.</li>
9626
- <li>Administrators of Kubernetes-based Nautobot deployments should familiarize themselves with the new <a href="#kubernetes-job-execution-and-job-queue-data-model">capabilities</a> that Nautobot 2.4 provides for Job execution in such environments and may wish to update their Nautobot configuration to take advantage of these capabilities.</li>
10153
+ <li>Nautobot 2.4 <a href="#removed-python-38-support">drops support for Python 3.8</a>, so any existing Nautobot deployment using Python 3.8 will need upgrade to a newer Python version <strong>before</strong> upgrading to Nautobot v2.4 or later.</li>
10154
+ <li>Administrators should familiarize themselves with the new <a href="#event-publication-framework">Event Publication Framework</a> and the possibilities it enables for improved monitoring of Nautobot operations and integration with distributed automation platforms.</li>
10155
+ <li>Administrators of Kubernetes-based Nautobot deployments should familiarize themselves with the new <a href="#kubernetes-job-execution-and-job-queue-data-model-experimental">capabilities</a> that Nautobot v2.4 provides for Job execution in such environments and may wish to update their Nautobot configuration to take advantage of these capabilities. Please note that this feature set is considered Experimental in v2.4.0 and is subject to change in future releases.</li>
10156
+ <li>Nautobot 2.4 includes an About page which is capable of displaying the status of Network to Code support contracts, dictated by the <a href="../user-guide/administration/configuration/settings.html#ntc_support_contract_expiration_date"><code>NTC_SUPPORT_CONTRACT_EXPIRATION_DATE</code></a> configuration setting.</li>
9627
10157
  </ul>
9628
10158
  <h3 id="job-authors-app-developers">Job Authors &amp; App Developers<a class="headerlink" href="#job-authors-app-developers" title="Permanent link">&para;</a></h3>
9629
10159
  <ul>
9630
- <li>App developers should begin to adopt the <a href="#ui-component-framework">UI Component Framework</a> introduced in Nautobot 2.4, as this will reduce the amount of boilerplate HTML/CSS content that they need to develop and maintain, and will insulate Apps from future CSS changes planned for Nautobot v3.</li>
9631
- <li>Additionally, App developers should familiarize themselves with the new <a href="#event-publication-framework">Event Publication Framework</a> and the possibilities it enables for Apps to publish their own relevant events.</li>
9632
- <li>Job authors should be aware of the ability to log <a href="#job-success-log-level"><code>success</code></a> messages in Nautobot v2.4 and later and should adopt this log level as appropriate.</li>
9633
- <li>Job authors should be aware of the introduction of <a href="#kubernetes-job-execution-and-job-queue-data-model">Job Queues</a> as a general-purpose replacement for the Celery-specific <code>Job.task_queues</code> attribute, and if a Job specifies its preferred <code>task_queues</code>, should verify that the queue selected as its <code>default_job_queue</code> after the Nautobot upgrade is correct.</li>
10160
+ <li>App developers should begin to adopt the <a href="#ui-component-framework">UI Component Framework</a> introduced in Nautobot v2.4, as this will reduce the amount of boilerplate HTML/CSS content that they need to develop and maintain, and will help insulate Apps from future CSS and layout design changes planned for Nautobot v3.</li>
10161
+ <li>Additionally, App developers should familiarize themselves with the new <a href="#event-publication-framework">Event Publication Framework</a> and the possibilities it enables for Apps to publish their own relevant events to configured message brokers.</li>
10162
+ <li>As a side benefit of adding <a href="#rest-api-exclude_m2m-support">REST API <code>exclude_m2m</code> support</a>, the Nautobot REST API <code>ViewSet</code> classes now attempt to intelligently apply <code>select_related()</code> and/or <code>prefetch_related()</code> optimizations to the <code>queryset</code> associated to a given REST API viewset. Apps defining their own REST API viewsets (and requiring Nautobot v2.4.0 or later) can typically remove most explicit calls to <code>select_related()</code> and <code>prefetch_related()</code>; furthermore, in order to benefit most from the <code>exclude_m2m=true</code> query parameter, apps in Nautobot v2.4.0 and later <strong>should not</strong> explicitly <code>prefetch_related()</code> many-to-many related fields any longer. (Explicit calls to <code>select_related()</code> and <code>prefetch_related()</code> may still be necessary and appropriate if your API serializer needs to perform nested lookups, as the automatic optimization here currently only understands directly related object lookups.)</li>
10163
+ <li>Job authors should be aware of the ability to log <a href="#job-success-log-level"><code>success</code></a> messages in Nautobot v2.4.0 and later and should adopt this log level as appropriate.</li>
10164
+ <li>Job authors should be aware of the introduction of <a href="#kubernetes-job-execution-and-job-queue-data-model-experimental">Job Queues</a> as a general-purpose replacement for the Celery-specific <code>Job.task_queues</code> attribute, and if a Job specifies its preferred <code>task_queues</code>, should verify that the queue selected as its <code>default_job_queue</code> after the Nautobot upgrade is correct.</li>
9634
10165
  </ul>
9635
10166
  <h2 id="release-overview">Release Overview<a class="headerlink" href="#release-overview" title="Permanent link">&para;</a></h2>
9636
10167
  <h3 id="added">Added<a class="headerlink" href="#added" title="Permanent link">&para;</a></h3>
10168
+ <h4 id="virtual-device-context-data-models">Virtual Device Context Data Models<a class="headerlink" href="#virtual-device-context-data-models" title="Permanent link">&para;</a></h4>
10169
+ <p>Nautobot 2.4 adds a <a href="../user-guide/core-data-model/dcim/virtualdevicecontext.html"><code>VirtualDeviceContext</code></a> data model to support modeling of logical partitions of physical network devices, such as Cisco Nexus Virtual Device Contexts, Juniper Logical Systems, Arista Multi-instance EOS, and so forth. Device Interfaces can be associated to Virtual Device Contexts via the new <code>InterfaceVDCAssignment</code> model as well.</p>
10170
+ <h4 id="wireless-data-models">Wireless Data Models<a class="headerlink" href="#wireless-data-models" title="Permanent link">&para;</a></h4>
10171
+ <p>Nautobot 2.4 adds the data models <a href="../user-guide/core-data-model/wireless/wirelessnetwork.html"><code>WirelessNetwork</code></a>, <a href="../user-guide/core-data-model/wireless/radioprofile.html"><code>RadioProfile</code></a>, and <a href="../user-guide/core-data-model/wireless/supporteddatarate.html"><code>SupportedDataRate</code></a>, enabling Nautobot to model campus wireless networks. In support of this functionality, the <a href="../user-guide/core-data-model/dcim/controller.html"><code>Controller</code></a> and <a href="../user-guide/core-data-model/dcim/controllermanageddevicegroup.html"><code>ControllerManagedDeviceGroup</code></a> models have been enhanced with additional capabilities as well.</p>
10172
+ <p>Refer to the <a href="../user-guide/core-data-model/wireless/index.html">Wireless</a> documentation for more details.</p>
9637
10173
  <h4 id="apps-marketplace-page-and-installed-apps-page-tile-view">Apps Marketplace Page and Installed Apps Page Tile View<a class="headerlink" href="#apps-marketplace-page-and-installed-apps-page-tile-view" title="Permanent link">&para;</a></h4>
9638
- <p>Nautobot 2.4 introduces Apps Marketplace page containing information about available but not installed Nautobot Apps. In addition to that, Installed Apps page is getting a brand-new tile view as an alternative to already existing list view.</p>
10174
+ <p>Nautobot v2.4 introduces the Apps Marketplace, containing information about available Nautobot Apps. In addition to that, the Installed Apps page has added a tile-view option, similar to the Apps Marketplace.</p>
9639
10175
  <h4 id="event-publication-framework">Event Publication Framework<a class="headerlink" href="#event-publication-framework" title="Permanent link">&para;</a></h4>
9640
- <p>Nautobot now includes a general-purpose, extensible <a href="../user-guide/platform-functionality/events.html">event publication framework</a> for publication of system event notifications to other systems such as Redis publish/subscribe, syslog, Kafka, and others. An abstract <code>EventBroker</code> API can be implemented and extended with system-specific functionality to enable publication of Nautobot events to any desired system.</p>
9641
- <p>As of Nautobot 2.4.0, Nautobot publishes events with the following topics:</p>
9642
- <ul>
9643
- <li><code>nautobot.create.&lt;app&gt;.&lt;model&gt;</code></li>
9644
- <li><code>nautobot.update.&lt;app&gt;.&lt;model&gt;</code></li>
9645
- <li><code>nautobot.delete.&lt;app&gt;.&lt;model&gt;</code></li>
9646
- <li><code>nautobot.users.user.login</code></li>
9647
- <li><code>nautobot.users.user.logout</code></li>
9648
- <li><code>nautobot.users.user.change_password</code></li>
9649
- <li><code>nautobot.admin.user.change_password</code></li>
9650
- <li><code>nautobot.jobs.job.started</code></li>
9651
- <li><code>nautobot.jobs.job.completed</code></li>
9652
- <li><code>nautobot.jobs.approval.approved</code></li>
9653
- <li><code>nautobot.jobs.approval.denied</code></li>
9654
- </ul>
9655
- <p>Nautobot Apps can also make use of this framework to publish additional events specific to the App's functionality as desired.</p>
10176
+ <p>Nautobot now includes a general-purpose, extensible <a href="../user-guide/platform-functionality/events.html">event publication framework</a> for publication of event notifications to other systems such as Redis publish/subscribe, Kafka, syslog, and others. An abstract <code>EventBroker</code> API can be implemented and extended with system-specific functionality to enable publication of Nautobot events to any desired message broker.</p>
10177
+ <p>As of v2.4.0, Nautobot publishes events with the following topics:</p>
10178
+ <p>Data model manipulation:
10179
+ - <code>nautobot.create.&lt;app&gt;.&lt;model&gt;</code>
10180
+ - <code>nautobot.update.&lt;app&gt;.&lt;model&gt;</code>
10181
+ - <code>nautobot.delete.&lt;app&gt;.&lt;model&gt;</code></p>
10182
+ <p>User interaction:
10183
+ - <code>nautobot.users.user.login</code>
10184
+ - <code>nautobot.users.user.logout</code>
10185
+ - <code>nautobot.users.user.change_password</code>
10186
+ - <code>nautobot.admin.user.change_password</code></p>
10187
+ <p>Jobs:
10188
+ - <code>nautobot.jobs.job.started</code>
10189
+ - <code>nautobot.jobs.job.completed</code>
10190
+ - <code>nautobot.jobs.approval.approved</code>
10191
+ - <code>nautobot.jobs.approval.denied</code></p>
10192
+ <p>The payload of each topic is a data representaton of the corresponding event, such as the object created, or the Job that started execution. Events are published to configured event brokers, and may be filtered.</p>
10193
+ <p>Nautobot Apps can also make use of this framework to publish additional event topics, specific to the App's functionality as desired.</p>
9656
10194
  <h4 id="jinja2-template-rendering-tool">Jinja2 Template Rendering Tool<a class="headerlink" href="#jinja2-template-rendering-tool" title="Permanent link">&para;</a></h4>
9657
- <p>Nautobot 2.4 adds a new REST API endpoint <code>/api/core/render-jinja-template/</code> that can be called to <a href="../user-guide/platform-functionality/rendering-jinja-templates.html">render a user-provided Jinja2 template</a> with user-provided context data and access to Nautobot's built-in Jinja2 tags and filters. This can be used by users and Apps such as <a href="https://docs.nautobot.com/projects/golden-config/en/latest/">Nautobot Golden Config</a> to assist with the development and validation of Jinja2 template content. There is a UI at <code>/render-jinja-template/</code> that provides a form for entering template content and context data to render a template. This UI can also be accessed from a link in the footer of any Nautobot page.</p>
10195
+ <p>Nautobot v2.4 adds a new tool to render Jinja2 templates directly from the UI. Users may supply their own template body and context data to be rendered, with access to to Nautobot's built-in Jinja2 tags and filters. Additionally, a new REST API endpoint <code>/api/core/render-jinja-template/</code> has been added to achieve the same functionaly. This can be used by users and Apps such as <a href="https://docs.nautobot.com/projects/golden-config/en/latest/">Nautobot Golden Config</a> to assist with the development and validation of Jinja2 template content. This functionality will be extended in the future to more easily access context aware data in Nautobot such as Devices and Config Contexts.</p>
9658
10196
  <h4 id="job-success-log-level">Job <code>success</code> Log Level<a class="headerlink" href="#job-success-log-level" title="Permanent link">&para;</a></h4>
9659
- <p>Jobs can now once again log <code>success</code> messages as a new logging level which will be appropriately labeled and colorized in Job Result views.</p>
10197
+ <p>Jobs can now log <code>success</code> messages as a new logging level which will be appropriately labeled and colorized in Job Result views.</p>
9660
10198
  <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">success</span><span class="p">(</span><span class="s2">&quot;All data is valid.&quot;</span><span class="p">)</span>
9661
10199
  </code></pre></div>
9662
- <h4 id="kubernetes-job-execution-and-job-queue-data-model">Kubernetes Job Execution and Job Queue Data Model<a class="headerlink" href="#kubernetes-job-execution-and-job-queue-data-model" title="Permanent link">&para;</a></h4>
9663
- <p>When running in a Kubernetes (k8s) deployment, such as with Nautobot's <a href="https://docs.nautobot.com/projects/helm-charts/en/stable/">Helm chart</a>, Nautobot now supports an alternative method of running Nautobot Jobs - instead of (or in addition to) running one or more Celery Workers as long-lived persistent pods, Nautobot can dispatch Nautobot Jobs to be executed as short-lived <a href="https://kubernetes.io/docs/concepts/workloads/controllers/job/">Kubernetes Job</a> task pods.</p>
9664
- <p>In support of this functionality, Nautobot now supports the definition of <a href="../user-guide/platform-functionality/jobs/jobqueue.html"><code>JobQueue</code> records</a>, which represent either a Celery task queue <strong>or</strong> a Kubernetes job queue. Nautobot Jobs can be associated to queues of either or both types, and the Job Queue selected when submitting a Job will dictate whether it is executed via Celery or via Kubernetes.</p>
10200
+ <h4 id="kubernetes-job-execution-and-job-queue-data-model-experimental">Kubernetes Job Execution and Job Queue Data Model (Experimental)<a class="headerlink" href="#kubernetes-job-execution-and-job-queue-data-model-experimental" title="Permanent link">&para;</a></h4>
10201
+ <p><em>Please note that this functionality is considered Experimental in the v2.4.0 release and is subject to change in the future.</em></p>
10202
+ <p>When running in a Kubernetes (k8s) deployment, such as with Nautobot's <a href="https://docs.nautobot.com/projects/helm-charts/en/stable/">Helm chart</a>, Nautobot now supports an alternative method of running Nautobot Jobs - instead of (or in addition to) running one or more Celery Workers as long-lived persistent pods, Nautobot can dispatch Nautobot Jobs to be executed as short-lived <a href="https://kubernetes.io/docs/concepts/workloads/controllers/job/">Kubernetes Job</a> pods.</p>
10203
+ <p>In support of this functionality, Nautobot now supports the definition of <a href="../user-guide/platform-functionality/jobs/jobqueue.html"><code>JobQueue</code> records</a>, which represent either a Celery task queue <strong>or</strong> a Kubernetes Job queue. Nautobot Jobs can be associated to queues of either or both types, and the Job Queue selected when submitting a Job will dictate whether it is executed via Celery or via Kubernetes.</p>
10204
+ <p>Nautobot Jobs support the same feature sets, regardless if they are executed on Celery Job queues or Kubernetes Job queues.</p>
9665
10205
  <p>Refer to the <a href="../user-guide/platform-functionality/jobs/index.html">Jobs documentation</a> for more details.</p>
10206
+ <h4 id="singleton-jobs">Singleton Jobs<a class="headerlink" href="#singleton-jobs" title="Permanent link">&para;</a></h4>
10207
+ <p>Job authors can now set their jobs to only allow a single concurrent execution across all workers, preventing mistakes where, e.g., data synchronization jobs accidentally run twice and create multiple instances of the same data. This functionality and the corresponding setting are documented in <a href="../development/jobs/index.html">the section on developing Jobs</a>.</p>
9666
10208
  <h4 id="per-user-time-zone-support">Per-user Time Zone Support<a class="headerlink" href="#per-user-time-zone-support" title="Permanent link">&para;</a></h4>
9667
- <p>Users can now configure their preferred display time zone via the User Preferences UI and Nautobot will display dates and times in the configured time zone for each user.</p>
10209
+ <p>Users can now configure their preferred display time zone via the User Preferences UI under their user profile and Nautobot will display dates and times in the configured time zone for each user.</p>
10210
+ <h4 id="rest-api-exclude_m2m-support">REST API <code>exclude_m2m</code> Support<a class="headerlink" href="#rest-api-exclude_m2m-support" title="Permanent link">&para;</a></h4>
10211
+ <p>Added REST API support for an <code>?exclude_m2m=true</code> query parameter. Specifying this parameter prevents the API from retrieving and serializing many-to-many relations on the requested object(s) (for example, the list of all Prefixes associated with a given VRF), which can in some cases greatly improve the performance of the API and reduce memory and network overhead substantially.</p>
10212
+ <p>A future Nautobot major release may change the REST API behavior to make <code>exclude_m2m=true</code> the default behavior.</p>
10213
+ <p>Additionally, the <code>DynamicModelChoiceField</code> and related form fields have been enhanced to use <code>exclude_m2m=true</code> when querying the REST API to populate their options, which can in some cases significantly improve the responsiveness of these fields.</p>
9668
10214
  <h4 id="ui-component-framework">UI Component Framework<a class="headerlink" href="#ui-component-framework" title="Permanent link">&para;</a></h4>
9669
- <p>Nautobot's new <a href="../development/core/ui-component-framework.html">UI Component Framework</a> provides a set of Python APIs for defining parts of the Nautobot UI without needing, in many cases, to write custom HTML templates. In this release of Nautobot, the focus is primarily on the definition of object "detail" views as those were the most common cases where custom templates have been required in the past.</p>
9670
- <p><a href="../development/apps/migration/ui-component-framework/index.html">Adoption of this framework</a> significantly reduces the amount of boilerplate needed to define an object detail view, drives increased self-consistency across views, and encourages code reuse. It also insulates Apps from the details of Nautobot's CSS (Bootstrap 3 framework), smoothing the way for Nautobot to adopt a new CSS framework in the future with minimal impact to compliant apps.</p>
9671
- <p>App <a href="../development/apps/api/ui-extensions/object-views.html">template extensions</a> of Nautobot core views can also be reimplemented using the UI Component Framework and are recommended to do so.</p>
9672
- <p>As of Nautobot 2.4.0, the following detail views have been migrated to use the UI Component Framework:</p>
10215
+ <p>Nautobot's new <a href="../development/core/ui-component-framework.html">UI Component Framework</a> provides a set of Python APIs for defining parts of the Nautobot UI without needing, in many cases, to write custom HTML templates. In v2.4.0, the focus is primarily on the definition of object "detail" views as those were the most common cases where custom templates have been required in the past.</p>
10216
+ <p><a href="../development/apps/migration/ui-component-framework/index.html">Adoption of this framework</a> significantly reduces the amount of boilerplate needed to define an object detail view, drives increased self-consistency across views, and encourages code reuse. It also insulates Apps from the details of Nautobot's CSS and layout (Bootstrap 3 framework), smoothing the way for Nautobot to adopt UI changes in the future with minimal impact to compliant apps.</p>
10217
+ <p>App <a href="../development/apps/api/ui-extensions/object-views.html">template extensions</a>--which are used to inject App content into Nautobot Core views--offer new implementation patterns using the UI Component Framework and it is highly recomended that App developers take this opportunity to adopt, as old methods have been deprecated in some cases (see below).</p>
10218
+ <p>As of Nautobot 2.4.0, the following detail views have been migrated to use the UI Component Framework, and any app template extensions targeting these models should adopt:</p>
9673
10219
  <ul>
9674
10220
  <li>Circuit</li>
9675
10221
  <li>Cluster Type</li>
@@ -9682,11 +10228,6 @@
9682
10228
  <li>Tenant</li>
9683
10229
  <li>VRF</li>
9684
10230
  </ul>
9685
- <h4 id="virtual-device-context-data-models">Virtual Device Context Data Models<a class="headerlink" href="#virtual-device-context-data-models" title="Permanent link">&para;</a></h4>
9686
- <p>Nautobot 2.4 adds a <a href="../user-guide/core-data-model/dcim/virtualdevicecontext.html"><code>VirtualDeviceContext</code></a> data model to support modeling of logical partitions of physical network devices, such as Cisco Nexus Virtual Device Contexts, Juniper Logical Systems, Arista Multi-instance EOS, and so forth. Device Interfaces can be associated to Virtual Device Contexts via the new <code>InterfaceVDCAssignment</code> model as well.</p>
9687
- <h4 id="wireless-data-models">Wireless Data Models<a class="headerlink" href="#wireless-data-models" title="Permanent link">&para;</a></h4>
9688
- <p>Nautobot 2.4 adds the data models <a href="../user-guide/core-data-model/wireless/wirelessnetwork.html"><code>WirelessNetwork</code></a>, <a href="../user-guide/core-data-model/wireless/radioprofile.html"><code>RadioProfile</code></a>, and <a href="../user-guide/core-data-model/wireless/supporteddatarate.html"><code>SupportedDataRate</code></a>, enabling Nautobot to model campus wireless networks. In support of this functionality, the <a href="../user-guide/core-data-model/dcim/controller.html"><code>Controller</code></a> and <a href="../user-guide/core-data-model/dcim/controllermanageddevicegroup.html"><code>ControllerManagedDeviceGroup</code></a> models have been enhanced with additional capabilities as well.</p>
9689
- <p>Refer to the <a href="../user-guide/core-data-model/wireless/index.html">Wireless</a> documentation for more details.</p>
9690
10231
  <h3 id="deprecated">Deprecated<a class="headerlink" href="#deprecated" title="Permanent link">&para;</a></h3>
9691
10232
  <h4 id="filtertestcasesnameonlyfiltertestcase-and-filtertestcasesnameslugfiltertestcase"><code>FilterTestCases.NameOnlyFilterTestCase</code> and <code>FilterTestCases.NameSlugFilterTestCase</code><a class="headerlink" href="#filtertestcasesnameonlyfiltertestcase-and-filtertestcasesnameslugfiltertestcase" title="Permanent link">&para;</a></h4>
9692
10233
  <p>These two generic base test classes are deprecated. Apps should migrate to using <code>FilterTestCases.FilterTestCase</code> with an appropriately defined list of <code>generic_filter_tests</code> instead.</p>
@@ -9697,9 +10238,157 @@
9697
10238
  <p>With the introduction of the UI Component Framework (described <a href="#ui-component-framework">above</a>), new APIs are available for Apps to extend core Nautobot views with additional content using this framework. A number of new APIs have been added to the <code>TemplateExtension</code> base class in support of this functionality, and several existing <code>TemplateExtension</code> APIs have been deprecated in favor of these new APIs. Refer to the <a href="../development/apps/api/ui-extensions/object-views.html">App development documentation</a> for details.</p>
9698
10239
  <h3 id="dependencies">Dependencies<a class="headerlink" href="#dependencies" title="Permanent link">&para;</a></h3>
9699
10240
  <h4 id="removed-python-38-support">Removed Python 3.8 Support<a class="headerlink" href="#removed-python-38-support" title="Permanent link">&para;</a></h4>
9700
- <p>As Python 3.8 has reached end-of-life, Nautobot 2.4 requires a minimum of Python 3.9.</p>
10241
+ <p>As Python 3.8 has reached end-of-life, Nautobot 2.4 requires a minimum of Python 3.9. Note that existing installs using Python 3.8 will need to upgrade their Python version prior to initiating the Nautobot v2.4 upgrade.</p>
10242
+ <!-- pyml disable-num-lines 2 blanks-around-headers -->
10243
+
9701
10244
  <!-- towncrier release notes start -->
10245
+
10246
+ <h2 id="v242-2025-02-03">v2.4.2 (2025-02-03)<a class="headerlink" href="#v242-2025-02-03" title="Permanent link">&para;</a></h2>
10247
+ <h3 id="added-in-v242">Added in v2.4.2<a class="headerlink" href="#added-in-v242" title="Permanent link">&para;</a></h3>
10248
+ <ul>
10249
+ <li><a href="https://github.com/nautobot/nautobot/issues/3319">#3319</a> - Added the appropriate Namespace to the link for adding a new IP address from an existing Prefix's detail view.</li>
10250
+ <li><a href="https://github.com/nautobot/nautobot/issues/4702">#4702</a> - Added support for loading GraphQL queries from a Git repository.</li>
10251
+ <li><a href="https://github.com/nautobot/nautobot/issues/5622">#5622</a> - Added <code>tags</code> field on <code>DeviceFamilyForm</code>.</li>
10252
+ <li><a href="https://github.com/nautobot/nautobot/issues/6347">#6347</a> - Added Bulk Edit functionality for LocationType model.</li>
10253
+ <li><a href="https://github.com/nautobot/nautobot/issues/6487">#6487</a> - Added the ability to perform a shallow copy of a GitRepository instance and to optionally checkout a different branch and/or a specific commit hash.</li>
10254
+ <li><a href="https://github.com/nautobot/nautobot/issues/6767">#6767</a> - Added cacheable <code>CustomField.choices</code> property for retrieving the list of permissible values for a select/multiselect Custom Field.</li>
10255
+ </ul>
10256
+ <h3 id="changed-in-v242">Changed in v2.4.2<a class="headerlink" href="#changed-in-v242" title="Permanent link">&para;</a></h3>
10257
+ <ul>
10258
+ <li><a href="https://github.com/nautobot/nautobot/issues/5781">#5781</a> - Removed unnecessary <code>import_jobs()</code> call during system startup.</li>
10259
+ <li><a href="https://github.com/nautobot/nautobot/issues/6650">#6650</a> - Changed the <code>nautobot.apps.utils.get_base_template()</code> function's fallback behavior to return <code>"generic/object_retrieve.html"</code> instead of <code>"base.html"</code> in order to more correctly align with its usage throughout Nautobot core.</li>
10260
+ <li><a href="https://github.com/nautobot/nautobot/issues/6650">#6650</a> - Replaced references to <code>generic/object_detail.html</code> with <code>generic/object_retrieve.html</code> throughout the code and docs, as <code>generic/object_detail.html</code> has been a deprecated alias since v1.4.0.</li>
10261
+ <li><a href="https://github.com/nautobot/nautobot/issues/6808">#6808</a> - Improved returned data when syncing a Git repository via the REST API.</li>
10262
+ </ul>
10263
+ <h3 id="fixed-in-v242">Fixed in v2.4.2<a class="headerlink" href="#fixed-in-v242" title="Permanent link">&para;</a></h3>
10264
+ <ul>
10265
+ <li><a href="https://github.com/nautobot/nautobot/issues/3319">#3319</a> - Fixed an exception when retrieving available IP addresses within a Prefix for certain IPv6 networks.</li>
10266
+ <li><a href="https://github.com/nautobot/nautobot/issues/3319">#3319</a> - Fixed incorrect potential inclusion of IPv4 IP addresses from the same Namespace when calling <code>.get_all_ips()</code> or <code>.get_utilization()</code> on an IPv6 Prefix.</li>
10267
+ <li><a href="https://github.com/nautobot/nautobot/issues/6650">#6650</a> - Fixed rendering of "notes" and "changelog" tabs for object detail views that do not provide a custom HTML template.</li>
10268
+ <li><a href="https://github.com/nautobot/nautobot/issues/6767">#6767</a> - Improved performance of object detail views when a large number of select/multiselect Custom Fields and also filtered Relationships are defined on the model class.</li>
10269
+ <li><a href="https://github.com/nautobot/nautobot/issues/6767">#6767</a> - Improved performance of Device detail view by adding appropriate <code>select_related</code>/<code>prefetch_related</code> calls.</li>
10270
+ <li><a href="https://github.com/nautobot/nautobot/issues/6767">#6767</a> - Fixed display of Cluster Group in Device detail view.</li>
10271
+ <li><a href="https://github.com/nautobot/nautobot/issues/6810">#6810</a> - Fixed Bulk Edit Objects job failure when passing a single value to <code>add_*</code>/<code>remove_*</code> fields.</li>
10272
+ <li><a href="https://github.com/nautobot/nautobot/issues/6812">#6812</a> - Fixed the incorrect rendering of the Relationship panel in Object Detail View.</li>
10273
+ <li><a href="https://github.com/nautobot/nautobot/issues/6821">#6821</a> - Fixed the rendering of <code>Location</code> in the <code>RackReservation</code> detail page.</li>
10274
+ <li><a href="https://github.com/nautobot/nautobot/issues/6825">#6825</a> - Added links to the <code>manufacturer</code> column of the Platform table.</li>
10275
+ <li><a href="https://github.com/nautobot/nautobot/issues/6838">#6838</a> - Added missing <code>key</code> and <code>label</code> fields to Relationship Detail View.</li>
10276
+ </ul>
10277
+ <h3 id="dependencies-in-v242">Dependencies in v2.4.2<a class="headerlink" href="#dependencies-in-v242" title="Permanent link">&para;</a></h3>
10278
+ <ul>
10279
+ <li><a href="https://github.com/nautobot/nautobot/issues/6717">#6717</a> - Updated <code>GitPython</code> dependency to <code>~3.1.44</code>.</li>
10280
+ <li><a href="https://github.com/nautobot/nautobot/issues/6717">#6717</a> - Updated <code>django-silk</code> dependency to <code>~5.3.2</code>.</li>
10281
+ <li><a href="https://github.com/nautobot/nautobot/issues/6717">#6717</a> - Updated <code>django-tables2</code> dependency to <code>~2.7.5</code>.</li>
10282
+ <li><a href="https://github.com/nautobot/nautobot/issues/6717">#6717</a> - Updated <code>mysqlclient</code> optional dependency to <code>~2.2.7</code>.</li>
10283
+ </ul>
10284
+ <h3 id="documentation-in-v242">Documentation in v2.4.2<a class="headerlink" href="#documentation-in-v242" title="Permanent link">&para;</a></h3>
10285
+ <ul>
10286
+ <li><a href="https://github.com/nautobot/nautobot/issues/346">#346</a> - Added documentation about Git repository REST API.</li>
10287
+ <li><a href="https://github.com/nautobot/nautobot/issues/6621">#6621</a> - Added "Security Notices" document to the documentation under <strong>User Guide --&gt; Administration</strong>.</li>
10288
+ </ul>
10289
+ <h3 id="housekeeping-in-v242">Housekeeping in v2.4.2<a class="headerlink" href="#housekeeping-in-v242" title="Permanent link">&para;</a></h3>
10290
+ <ul>
10291
+ <li><a href="https://github.com/nautobot/nautobot/issues/6717">#6717</a> - Updated <code>mkdocs-material</code> documentation dependency to <code>9.5.50</code>.</li>
10292
+ <li><a href="https://github.com/nautobot/nautobot/issues/6717">#6717</a> - Updated <code>faker</code> development dependency to <code>~33.3.1</code>.</li>
10293
+ <li><a href="https://github.com/nautobot/nautobot/issues/6717">#6717</a> - Updated <code>pylint</code> development dependency to <code>~3.3.4</code>.</li>
10294
+ <li><a href="https://github.com/nautobot/nautobot/issues/6779">#6779</a> - Added integration tests for bulk edit/delete operations for Devices and Locations.</li>
10295
+ <li><a href="https://github.com/nautobot/nautobot/issues/6779">#6779</a> - Added <code>BulkOperationsTestCases</code> class with built-in standard test cases for testing bulk operations.</li>
10296
+ <li><a href="https://github.com/nautobot/nautobot/issues/6842">#6842</a> - Fix <code>invoke integration-test</code> to run standalone, without running the <code>invoke start</code> first.</li>
10297
+ </ul>
10298
+ <h2 id="v241-2025-01-21">v2.4.1 (2025-01-21)<a class="headerlink" href="#v241-2025-01-21" title="Permanent link">&para;</a></h2>
10299
+ <h3 id="security-in-v241">Security in v2.4.1<a class="headerlink" href="#security-in-v241" title="Permanent link">&para;</a></h3>
10300
+ <ul>
10301
+ <li><a href="https://github.com/nautobot/nautobot/issues/6780">#6780</a> - Updated <code>Django</code> to <code>4.2.18</code> to address <code>CVE-2024-56374</code>.</li>
10302
+ </ul>
10303
+ <h3 id="fixed-in-v241">Fixed in v2.4.1<a class="headerlink" href="#fixed-in-v241" title="Permanent link">&para;</a></h3>
10304
+ <ul>
10305
+ <li><a href="https://github.com/nautobot/nautobot/issues/6427">#6427</a> - Fixed a bug which allowed several wireless interface types to accept cables.</li>
10306
+ <li><a href="https://github.com/nautobot/nautobot/issues/6489">#6489</a> - Fixed partial-match filters (such as <code>__ic</code> and <code>__isw</code>) on fields that have restricted choices (<code>Prefix.type</code>, <code>Interface.type</code>, etc.) so that partial values are no longer rejected.</li>
10307
+ <li><a href="https://github.com/nautobot/nautobot/issues/6763">#6763</a> - Fixed the issue where the Wireless Network detail view fails to render when any record in the Controller Managed Device Groups table is missing a VLAN.</li>
10308
+ <li><a href="https://github.com/nautobot/nautobot/issues/6770">#6770</a> - Fixed breakage of JobButton functionality.</li>
10309
+ <li><a href="https://github.com/nautobot/nautobot/issues/6771">#6771</a> - Reverted breaking changes to various generic View base class attributes.</li>
10310
+ <li><a href="https://github.com/nautobot/nautobot/issues/6773">#6773</a> - Fixed an exception when trying to render a Job class to a form when no corresponding Job database record exists.</li>
10311
+ <li><a href="https://github.com/nautobot/nautobot/issues/6776">#6776</a> - Fixed <code>FilterTestCase.generic_filter_tests</code> to again be optional as intended.</li>
10312
+ <li><a href="https://github.com/nautobot/nautobot/issues/6779">#6779</a> - Fixed Object Bulk Delete and Object Bulk Edit functionalities.</li>
10313
+ <li><a href="https://github.com/nautobot/nautobot/issues/6783">#6783</a> - Fixed <code>NautobotDataBaseScheduler</code> unable to run Scheduled Jobs without job queues assigned.</li>
10314
+ <li><a href="https://github.com/nautobot/nautobot/issues/6786">#6786</a> - Fixed incorrect marking of <code>capabilities</code> field as required on Controller and ControllerManagedDeviceGroup REST APIs.</li>
10315
+ <li><a href="https://github.com/nautobot/nautobot/issues/6792">#6792</a> - Fixed <code>natural_key_field_lookups</code> for proxy models.</li>
10316
+ </ul>
10317
+ <h3 id="housekeeping-in-v241">Housekeeping in v2.4.1<a class="headerlink" href="#housekeeping-in-v241" title="Permanent link">&para;</a></h3>
10318
+ <ul>
10319
+ <li><a href="https://github.com/nautobot/nautobot/issues/6768">#6768</a> - Fixed link to changelog fragment documentation.</li>
10320
+ <li><a href="https://github.com/nautobot/nautobot/issues/6794">#6794</a> - Fixed Device factory to ensure that it only selects SoftwareImageFiles that are permitted for a given Device.</li>
10321
+ </ul>
10322
+ <h2 id="v240-2025-01-10">v2.4.0 (2025-01-10)<a class="headerlink" href="#v240-2025-01-10" title="Permanent link">&para;</a></h2>
10323
+ <h3 id="added-in-v240">Added in v2.4.0<a class="headerlink" href="#added-in-v240" title="Permanent link">&para;</a></h3>
10324
+ <ul>
10325
+ <li><a href="https://github.com/nautobot/nautobot/issues/1004">#1004</a> - Added singleton job functionality to limit specified jobs to one concurrent execution.</li>
10326
+ <li><a href="https://github.com/nautobot/nautobot/issues/6353">#6353</a> - Added "Bulk Delete Objects" system Job.</li>
10327
+ <li><a href="https://github.com/nautobot/nautobot/issues/6354">#6354</a> - Added "Bulk Edit Objects" system job.</li>
10328
+ <li><a href="https://github.com/nautobot/nautobot/issues/6462">#6462</a> - Added tenant relationship to the <code>ControllerManagedDeviceGroup</code></li>
10329
+ <li><a href="https://github.com/nautobot/nautobot/issues/6462">#6462</a> - Added <code>tenant</code> and <code>description</code> fields to forms, filtersets and tables for <code>Controller</code> and <code>ControllerManagedDeviceGroup</code></li>
10330
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Added REST API support for an <code>?exclude_m2m=true</code> query parameter. Specifying this parameter prevents the API from retrieving and serializing many-to-many relations on the requested object(s) (for example, the list of all Prefixes associated with a given VRF), which can in some cases greatly improve the performance of the API and reduce memory and network overhead substantially.</li>
10331
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Added automatic optimization of REST API querysets via appropriate <code>select_related</code> and <code>prefetch_related</code> calls.</li>
10332
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Enhanced generic REST API test methods <code>ListObjectsViewTestCase.test_list_objects_depth_0</code> and <code>ListObjectsViewTestCase.test_list_objects_depth_1</code> to test the <code>?exclude_m2m=true</code> query parameter. This enhancement includes checks for missing related fields in the serialized data, which may result in new test failures being seen in Apps using this test class.</li>
10333
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Enhanced generic REST API test method <code>UpdateObjectViewTestCase.test_update_object</code> to include an idempotency test in combination with the <code>?exclude_m2m=true</code> query parameter. This may result in new test failures being seen in Apps using this test class.</li>
10334
+ <li><a href="https://github.com/nautobot/nautobot/issues/6597">#6597</a> - Added an about page that displays Nautobot and support contract information.</li>
10335
+ <li><a href="https://github.com/nautobot/nautobot/issues/6597">#6597</a> - Added <code>NTC_SUPPORT_CONTRACT_EXPIRATION_DATE</code> configuration setting.</li>
10336
+ <li><a href="https://github.com/nautobot/nautobot/issues/6684">#6684</a> - Added support for <code>label-transparent</code> CSS class.</li>
10337
+ <li><a href="https://github.com/nautobot/nautobot/issues/6684">#6684</a> - Added "success" log entry counts to the Job Result table.</li>
10338
+ <li><a href="https://github.com/nautobot/nautobot/issues/6751">#6751</a> - Added NetObs and Load Balancer to Apps Marketplace.</li>
10339
+ </ul>
10340
+ <h3 id="changed-in-v240">Changed in v2.4.0<a class="headerlink" href="#changed-in-v240" title="Permanent link">&para;</a></h3>
10341
+ <ul>
10342
+ <li><a href="https://github.com/nautobot/nautobot/issues/6463">#6463</a> - Reorganized parts of the Device and VirtualMachine create/edit forms for consistency and clarity.</li>
10343
+ <li><a href="https://github.com/nautobot/nautobot/issues/6529">#6529</a> - Added VRF's to the Prefixes API.</li>
10344
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Changed <code>DynamicModelChoiceField</code>, <code>DynamicModelMultipleChoiceField</code>, and <code>MultiMatchModelMultipleChoiceField</code> default behavior to include <code>?exclude_m2m=true</code> as a query parameter to the REST API, improving the typical performance of populating such fields with options.</li>
10345
+ <li><a href="https://github.com/nautobot/nautobot/issues/6652">#6652</a> - Refined the App Marketplace and Installed Apps views based on stakeholder feedback.</li>
10346
+ <li><a href="https://github.com/nautobot/nautobot/issues/6684">#6684</a> - Changed the <code>add</code> navigation menu buttons to be styled as <code>primary</code> (light blue) rather than <code>info</code> (darker blue).</li>
10347
+ <li><a href="https://github.com/nautobot/nautobot/issues/6684">#6684</a> - Updated the "author" and "availability" text in App Marketplace data for clarity.</li>
10348
+ <li><a href="https://github.com/nautobot/nautobot/issues/6684">#6684</a> - Adjusted the layout and rendering of the App Marketplace and Installed Apps views based on stakeholder feedback.</li>
10349
+ </ul>
10350
+ <h3 id="fixed-in-v240">Fixed in v2.4.0<a class="headerlink" href="#fixed-in-v240" title="Permanent link">&para;</a></h3>
10351
+ <ul>
10352
+ <li><a href="https://github.com/nautobot/nautobot/issues/6461">#6461</a> - Fixed inconsistent rendering of DynamicModelChoiceField throughout the UI.</li>
10353
+ <li><a href="https://github.com/nautobot/nautobot/issues/6462">#6462</a> - Fixed <code>JSONArrayFormField</code> error that field is required when default value is used.</li>
10354
+ <li><a href="https://github.com/nautobot/nautobot/issues/6526">#6526</a> - Fixed an AttributeError that occurred in the UI when editing a <code>DynamicGroup</code> with <code>ipam|prefix</code> as its content-type and changing the value of the "Present in VRF" field.</li>
10355
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Added missing <code>tags</code> field to <code>CircuitTermination</code>, <code>Contact</code>, <code>DeviceFamily</code>, <code>GitRepository</code>, <code>MetadataType</code>, <code>Team</code>, <code>VirtualDeviceContext</code> REST APIs.</li>
10356
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Fixed incorrect field identification logic in REST API testing helper method <code>ListObjectsViewTestCase.get_depth_fields()</code>. This may result in new detection of latent issues in Apps by this test case.</li>
10357
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Fixed incorrect test logic in REST API generic test case <code>UpdateObjectViewTestCase.test_update_object()</code>. This may result in new detection of latent issues in Apps by this test case.</li>
10358
+ <li><a href="https://github.com/nautobot/nautobot/issues/6556">#6556</a> - Fixed <code>?depth</code> query parameter support in <code>Contact</code> and <code>Team</code> REST APIs.</li>
10359
+ <li><a href="https://github.com/nautobot/nautobot/issues/6601">#6601</a> - Fixed whitespace in Jinja template renderer.</li>
10360
+ <li><a href="https://github.com/nautobot/nautobot/issues/6602">#6602</a> - Fixed incorrect naming of <code>controller_managed_device_groups</code> filter on the RadioProfile and WirelessNetwork filtersets.</li>
10361
+ <li><a href="https://github.com/nautobot/nautobot/issues/6629">#6629</a> - Fixed an <code>AttributeError</code> that could be raised if a <code>DynamicModelChoiceField</code> uses a non-standard <code>widget</code>.</li>
10362
+ <li><a href="https://github.com/nautobot/nautobot/issues/6661">#6661</a> - Fixed the rendering of the dynamic group associable model list tables.</li>
10363
+ <li><a href="https://github.com/nautobot/nautobot/issues/6663">#6663</a> - Fixed <code>test_cable_cannot_terminate_to_a_virtual_interface</code> and <code>test_cable_cannot_terminate_to_a_wireless_interface</code> tests so they fail properly.</li>
10364
+ <li><a href="https://github.com/nautobot/nautobot/issues/6738">#6738</a> - Fixed an exception when cleaning a Prefix that was defined by specifying <code>network</code> and <code>prefix_length</code>.</li>
10365
+ <li><a href="https://github.com/nautobot/nautobot/issues/6743">#6743</a> - Fixed incorrect rendering of the "Assigned" column in the IPAddress list view.</li>
10366
+ <li><a href="https://github.com/nautobot/nautobot/issues/6745">#6745</a> - Restored indentation of child prefixes in Prefix detail view.</li>
10367
+ <li><a href="https://github.com/nautobot/nautobot/issues/6745">#6745</a> - Improved logic for generation of "available" child prefixes in Prefix detail view.</li>
10368
+ </ul>
10369
+ <h3 id="dependencies-in-v240">Dependencies in v2.4.0<a class="headerlink" href="#dependencies-in-v240" title="Permanent link">&para;</a></h3>
10370
+ <ul>
10371
+ <li><a href="https://github.com/nautobot/nautobot/issues/6424">#6424</a> - Updated <code>django-structlog</code> dependency to <code>^9.0.0</code>.</li>
10372
+ </ul>
10373
+ <h3 id="documentation-in-v240">Documentation in v2.4.0<a class="headerlink" href="#documentation-in-v240" title="Permanent link">&para;</a></h3>
10374
+ <ul>
10375
+ <li><a href="https://github.com/nautobot/nautobot/issues/6436">#6436</a> - Clarified NGINX user in installation documentation.</li>
10376
+ <li><a href="https://github.com/nautobot/nautobot/issues/6480">#6480</a> - Added kubernetes-related job documentation and removed kubernetes-kind-related documentation.</li>
10377
+ <li><a href="https://github.com/nautobot/nautobot/issues/6512">#6512</a> - Improved screenshots of UI Component Framework examples.</li>
10378
+ <li><a href="https://github.com/nautobot/nautobot/issues/6512">#6512</a> - Added before/after example in Migration guide for UI Component Framework.</li>
10379
+ <li><a href="https://github.com/nautobot/nautobot/issues/6639">#6639</a> - Added User Guide for Wireless Networks.</li>
10380
+ <li><a href="https://github.com/nautobot/nautobot/issues/6654">#6654</a> - Improved REST API documentation about query parameters and filtering of fields.</li>
10381
+ </ul>
10382
+ <h3 id="housekeeping-in-v240">Housekeeping in v2.4.0<a class="headerlink" href="#housekeeping-in-v240" title="Permanent link">&para;</a></h3>
10383
+ <ul>
10384
+ <li><a href="https://github.com/nautobot/nautobot/issues/6424">#6424</a> - Updated development dependencies <code>faker</code> to <code>&gt;=33.1.0,&lt;33.2.0</code> and <code>watchdog</code> to <code>~6.0.0</code>.</li>
10385
+ <li><a href="https://github.com/nautobot/nautobot/issues/6612">#6612</a> - Replaced <code>markdownlint-cli</code> development dependency with Python package <code>pymarkdownlnt</code> and removed Node.js and <code>npm</code> from the development Docker images.</li>
10386
+ <li><a href="https://github.com/nautobot/nautobot/issues/6659">#6659</a> - Enhanced development environment and associated <code>invoke</code> tasks to be Nautobot major/minor version aware, such that a different Docker compose <code>project-name</code> (and different local Docker image label) will be used for containers in a <code>develop</code>-based branch versus a <code>next</code>-based branch.</li>
10387
+ <li><a href="https://github.com/nautobot/nautobot/issues/6715">#6715</a> - Updated development dependency <code>ruff</code> to <code>~0.8.5</code> and addressed new rules added in that version.</li>
10388
+ <li><a href="https://github.com/nautobot/nautobot/issues/6742">#6742</a> - Updated various development dependencies to the latest versions available as of January 7.</li>
10389
+ </ul>
9702
10390
  <h2 id="v240b1-2024-11-25">v2.4.0b1 (2024-11-25)<a class="headerlink" href="#v240b1-2024-11-25" title="Permanent link">&para;</a></h2>
10391
+ <h3 id="added-in-v240b1">Added in v2.4.0b1<a class="headerlink" href="#added-in-v240b1" title="Permanent link">&para;</a></h3>
9703
10392
  <ul>
9704
10393
  <li><a href="https://github.com/nautobot/nautobot/issues/3263">#3263</a> - Added support for users to specify their timezone from the user Preferences UI.</li>
9705
10394
  <li><a href="https://github.com/nautobot/nautobot/issues/6087">#6087</a> - Added JobQueue and JobQueueAssignment models, GraphQL, UI and API.</li>
@@ -9753,7 +10442,7 @@
9753
10442
  <li><a href="https://github.com/nautobot/nautobot/issues/6539">#6539</a> - Added Installed Apps page tile view.</li>
9754
10443
  <li><a href="https://github.com/nautobot/nautobot/issues/6555">#6555</a> - Added a Jinja template renderer to the UI.</li>
9755
10444
  </ul>
9756
- <h3 id="changed">Changed<a class="headerlink" href="#changed" title="Permanent link">&para;</a></h3>
10445
+ <h3 id="changed-in-v240b1">Changed in v2.4.0b1<a class="headerlink" href="#changed-in-v240b1" title="Permanent link">&para;</a></h3>
9757
10446
  <ul>
9758
10447
  <li><a href="https://github.com/nautobot/nautobot/issues/6125">#6125</a> - Refactored Job run related code to be able to use Job Queues.</li>
9759
10448
  <li><a href="https://github.com/nautobot/nautobot/issues/6133">#6133</a> - Converted <code>Circuit</code> detail view to use the new UI framework.</li>
@@ -9771,18 +10460,18 @@
9771
10460
  <li><a href="https://github.com/nautobot/nautobot/issues/6476">#6476</a> - Converted <code>ClusterType</code> detail view to use UI framework.</li>
9772
10461
  <li><a href="https://github.com/nautobot/nautobot/issues/6503">#6503</a> - Addressed Wireless models UI Feedback.</li>
9773
10462
  </ul>
9774
- <h3 id="deprecated_1">Deprecated<a class="headerlink" href="#deprecated_1" title="Permanent link">&para;</a></h3>
10463
+ <h3 id="deprecated-in-v240b1">Deprecated in v2.4.0b1<a class="headerlink" href="#deprecated-in-v240b1" title="Permanent link">&para;</a></h3>
9775
10464
  <ul>
9776
10465
  <li><a href="https://github.com/nautobot/nautobot/issues/6108">#6108</a> - Deprecated the <code>FilterTestCases.NameOnlyFilterTestCase</code> and <code>FilterTestCases.NameSlugFilterTestCase</code> generic test classes. Apps should migrate to <code>FilterTestCases.FilterTestCase</code> with an appropriately defined list of <code>generic_filter_tests</code> instead.</li>
9777
10466
  <li><a href="https://github.com/nautobot/nautobot/issues/6142">#6142</a> - Deprecated the <code>TemplateExtension.buttons()</code> API in favor of <code>TemplateExtension.object_detail_buttons</code> implementation based around the UI Component Framework.</li>
9778
10467
  <li><a href="https://github.com/nautobot/nautobot/issues/6276">#6276</a> - Deprecated the <code>TemplateExtension.left_page()</code>, <code>TemplateExtension.right_page()</code>, and <code>TemplateExtension.full_width_page()</code> APIs in favor of <code>TemplateExtension.object_detail_panels</code> implementation based around the UI Component Framework.</li>
9779
10468
  </ul>
9780
- <h3 id="removed">Removed<a class="headerlink" href="#removed" title="Permanent link">&para;</a></h3>
10469
+ <h3 id="removed-in-v240b1">Removed in v2.4.0b1<a class="headerlink" href="#removed-in-v240b1" title="Permanent link">&para;</a></h3>
9781
10470
  <ul>
9782
10471
  <li><a href="https://github.com/nautobot/nautobot/issues/6108">#6108</a> - Removed the previously deprecated <code>ViewTestCases.BulkImportObjectsViewTestCase</code> generic test class as obsolete.</li>
9783
10472
  <li><a href="https://github.com/nautobot/nautobot/issues/6342">#6342</a> - Removed remnants of the React UI prototype - <code>NavContext</code>, <code>NavGrouping</code>, <code>NavItem</code>, <code>GetMenuAPIView</code>, <code>GetObjectCountsView</code>, <code>ViewConfigException</code>, <code>get_all_new_ui_ready_routes()</code>, <code>get_only_new_ui_ready_routes()</code>, <code>is_route_new_ui_ready()</code>.</li>
9784
10473
  </ul>
9785
- <h3 id="fixed">Fixed<a class="headerlink" href="#fixed" title="Permanent link">&para;</a></h3>
10474
+ <h3 id="fixed-in-v240b1">Fixed in v2.4.0b1<a class="headerlink" href="#fixed-in-v240b1" title="Permanent link">&para;</a></h3>
9786
10475
  <ul>
9787
10476
  <li><a href="https://github.com/nautobot/nautobot/issues/6089">#6089</a> - Fixed warning message <code>No sanitizer support for &lt;class 'NoneType'&gt; data</code> emitted by the <code>nautobot-server runjob --local ...</code> command.</li>
9788
10477
  <li><a href="https://github.com/nautobot/nautobot/issues/6108">#6108</a> - Fixed incorrect definition of <code>VirtualMachineFilterSet.cluster</code> filter.</li>
@@ -9808,7 +10497,7 @@
9808
10497
  <li><a href="https://github.com/nautobot/nautobot/issues/6546">#6546</a> - Fixed inconsistent rendering of the Role column on the Virtual Device Context list table.</li>
9809
10498
  <li><a href="https://github.com/nautobot/nautobot/issues/6549">#6549</a> - Added missing <code>/</code> to <code>/api/core/render-jinja-template/</code> URL.</li>
9810
10499
  </ul>
9811
- <h3 id="dependencies_1">Dependencies<a class="headerlink" href="#dependencies_1" title="Permanent link">&para;</a></h3>
10500
+ <h3 id="dependencies-in-v240b1">Dependencies in v2.4.0b1<a class="headerlink" href="#dependencies-in-v240b1" title="Permanent link">&para;</a></h3>
9812
10501
  <ul>
9813
10502
  <li><a href="https://github.com/nautobot/nautobot/issues/5963">#5963</a> - Updated <code>django-taggit</code> to <code>~6.1.0</code>.</li>
9814
10503
  <li><a href="https://github.com/nautobot/nautobot/issues/6252">#6252</a> - Dropped support for Python 3.8. Python 3.9 is now the minimum version required by Nautobot.</li>
@@ -9820,7 +10509,7 @@
9820
10509
  <li><a href="https://github.com/nautobot/nautobot/issues/6469">#6469</a> - Updated dependency <code>django-silk</code> to <code>~5.3.0</code>.</li>
9821
10510
  <li><a href="https://github.com/nautobot/nautobot/issues/6549">#6549</a> - Moved <code>kubernetes</code> from a development-only dependency to a required dependency.</li>
9822
10511
  </ul>
9823
- <h3 id="documentation">Documentation<a class="headerlink" href="#documentation" title="Permanent link">&para;</a></h3>
10512
+ <h3 id="documentation-in-v240b1">Documentation in v2.4.0b1<a class="headerlink" href="#documentation-in-v240b1" title="Permanent link">&para;</a></h3>
9824
10513
  <ul>
9825
10514
  <li><a href="https://github.com/nautobot/nautobot/issues/6144">#6144</a> - Added documentation for Virtual Device Contexts.</li>
9826
10515
  <li><a href="https://github.com/nautobot/nautobot/issues/6254">#6254</a> - Added documentation of how to use K8s Kind cluster for local K8s integrations development.</li>
@@ -9831,7 +10520,7 @@
9831
10520
  <li><a href="https://github.com/nautobot/nautobot/issues/6381">#6381</a> - Added Wireless Model documentation.</li>
9832
10521
  <li><a href="https://github.com/nautobot/nautobot/issues/6549">#6549</a> - Added 2.4 release overview.</li>
9833
10522
  </ul>
9834
- <h3 id="housekeeping">Housekeeping<a class="headerlink" href="#housekeeping" title="Permanent link">&para;</a></h3>
10523
+ <h3 id="housekeeping-in-v240b1">Housekeeping in v2.4.0b1<a class="headerlink" href="#housekeeping-in-v240b1" title="Permanent link">&para;</a></h3>
9835
10524
  <ul>
9836
10525
  <li><a href="https://github.com/nautobot/nautobot/issues/5963">#5963</a> - Updated development dependency <code>faker</code> to <code>&gt;=30.1.0,&lt;30.2.0</code>.</li>
9837
10526
  <li><a href="https://github.com/nautobot/nautobot/issues/5963">#5963</a> - Updated documentation dependency <code>towncrier</code> to <code>~24.8.0</code>.</li>
@@ -9946,7 +10635,7 @@
9946
10635
 
9947
10636
 
9948
10637
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
9949
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 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 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-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-32"/></svg>
10638
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.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 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-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-32"/></svg>
9950
10639
  </a>
9951
10640
 
9952
10641
 
@@ -9954,7 +10643,7 @@
9954
10643
 
9955
10644
 
9956
10645
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
9957
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.1 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.305m-317.51 213.508V175.185l142.739 81.205z"/></svg>
10646
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.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.305m-317.51 213.508V175.185l142.739 81.205z"/></svg>
9958
10647
  </a>
9959
10648
 
9960
10649
 
@@ -9962,7 +10651,7 @@
9962
10651
 
9963
10652
 
9964
10653
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
9965
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 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.1s21.16-47.06 47.06-47.06h47.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.06zm47.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.06zm0 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.06zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06S448 171 448 196.9s-21.16 47.06-47.06 47.06h-47.06zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06S309 480 283.1 480s-47.06-21.16-47.06-47.06v-47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06s21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06z"/></svg>
10654
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.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.1s21.16-47.06 47.06-47.06h47.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.06zm47.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.06zm0 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.06zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06S448 171 448 196.9s-21.16 47.06-47.06 47.06h-47.06zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06S309 480 283.1 480s-47.06-21.16-47.06-47.06v-47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06s21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06z"/></svg>
9966
10655
  </a>
9967
10656
 
9968
10657
 
@@ -9970,7 +10659,7 @@
9970
10659
 
9971
10660
 
9972
10661
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
9973
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.1 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.6m-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.3m44.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.9M244.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 8M97.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-1m-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.7m32.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-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
10662
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.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.6m-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.3m44.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.9M244.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 8M97.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-1m-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.7m32.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-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
9974
10663
  </a>
9975
10664
 
9976
10665
 
@@ -9978,7 +10667,7 @@
9978
10667
 
9979
10668
 
9980
10669
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
9981
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.1 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.253"/></svg>
10670
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.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.253"/></svg>
9982
10671
  </a>
9983
10672
 
9984
10673
  </div>
@@ -9993,10 +10682,10 @@
9993
10682
  </div>
9994
10683
 
9995
10684
 
9996
- <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
10685
+ <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../assets/javascripts/workers/search.f8cc74c7.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
9997
10686
 
9998
10687
 
9999
- <script src="../assets/javascripts/bundle.83f73b43.min.js"></script>
10688
+ <script src="../assets/javascripts/bundle.60a45f97.min.js"></script>
10000
10689
 
10001
10690
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
10002
10691