nautobot 2.0.0a3__py3-none-any.whl → 2.0.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (780) hide show
  1. nautobot/apps/api.py +6 -8
  2. nautobot/apps/forms.py +0 -2
  3. nautobot/apps/ui.py +0 -8
  4. nautobot/circuits/api/serializers.py +9 -117
  5. nautobot/circuits/api/urls.py +1 -1
  6. nautobot/circuits/api/views.py +0 -1
  7. nautobot/circuits/forms.py +0 -65
  8. nautobot/circuits/migrations/0014_related_name_changes.py +1 -1
  9. nautobot/circuits/migrations/0016_tagsfield.py +34 -0
  10. nautobot/circuits/migrations/0017_fixup_null_statuses.py +22 -0
  11. nautobot/circuits/migrations/0018_status_nonnullable.py +22 -0
  12. nautobot/circuits/models.py +3 -87
  13. nautobot/circuits/navigation.py +14 -69
  14. nautobot/circuits/signals.py +0 -2
  15. nautobot/circuits/tables.py +39 -1
  16. nautobot/circuits/tests/integration/test_relationships.py +9 -9
  17. nautobot/circuits/tests/test_api.py +4 -8
  18. nautobot/circuits/tests/test_filters.py +10 -4
  19. nautobot/circuits/tests/test_models.py +5 -1
  20. nautobot/circuits/tests/test_views.py +27 -5
  21. nautobot/circuits/views.py +18 -10
  22. nautobot/core/api/__init__.py +8 -2
  23. nautobot/core/api/fields.py +15 -6
  24. nautobot/core/api/filter_backends.py +3 -2
  25. nautobot/core/api/metadata.py +237 -30
  26. nautobot/core/api/mixins.py +94 -0
  27. nautobot/core/api/pagination.py +4 -0
  28. nautobot/core/api/parsers.py +154 -0
  29. nautobot/core/api/renderers.py +153 -2
  30. nautobot/core/api/schema.py +46 -2
  31. nautobot/core/api/serializers.py +377 -35
  32. nautobot/core/api/urls.py +11 -3
  33. nautobot/core/api/utils.py +174 -2
  34. nautobot/core/api/versioning.py +32 -10
  35. nautobot/core/api/views.py +266 -72
  36. nautobot/core/apps/__init__.py +138 -220
  37. nautobot/core/celery/__init__.py +112 -41
  38. nautobot/core/celery/backends.py +19 -12
  39. nautobot/core/celery/control.py +46 -0
  40. nautobot/core/celery/encoders.py +53 -0
  41. nautobot/core/celery/log.py +38 -0
  42. nautobot/core/celery/schedulers.py +23 -4
  43. nautobot/core/celery/task.py +1 -16
  44. nautobot/core/checks.py +0 -27
  45. nautobot/core/choices.py +0 -113
  46. nautobot/core/{cli.py → cli/__init__.py} +1 -1
  47. nautobot/core/cli/__main__.py +3 -0
  48. nautobot/core/constants.py +0 -24
  49. nautobot/core/context_processors.py +12 -0
  50. nautobot/core/filters.py +2 -2
  51. nautobot/core/forms/__init__.py +0 -4
  52. nautobot/core/forms/fields.py +38 -65
  53. nautobot/core/forms/forms.py +4 -1
  54. nautobot/core/forms/utils.py +0 -52
  55. nautobot/core/graphql/schema.py +4 -27
  56. nautobot/core/jobs/__init__.py +75 -0
  57. nautobot/core/management/commands/build_ui.py +255 -0
  58. nautobot/core/management/commands/generate_test_data.py +3 -2
  59. nautobot/core/management/commands/post_upgrade.py +24 -24
  60. nautobot/core/models/__init__.py +26 -1
  61. nautobot/core/models/fields.py +24 -5
  62. nautobot/core/models/generics.py +2 -42
  63. nautobot/core/models/managers.py +5 -0
  64. nautobot/core/models/name_color_content_types.py +0 -14
  65. nautobot/core/models/tree_queries.py +14 -4
  66. nautobot/core/models/utils.py +5 -6
  67. nautobot/core/models/validators.py +17 -8
  68. nautobot/core/releases.py +8 -10
  69. nautobot/core/settings.py +80 -42
  70. nautobot/core/tables.py +5 -5
  71. nautobot/core/tasks.py +4 -7
  72. nautobot/core/templates/base.html +1 -49
  73. nautobot/core/templates/base_django.html +49 -0
  74. nautobot/core/templates/base_react.html +55 -0
  75. nautobot/core/templates/buttons/export.html +6 -4
  76. nautobot/core/templates/generic/object_bulk_create.html +10 -21
  77. nautobot/core/templates/generic/object_list.html +3 -1
  78. nautobot/core/templates/generic/object_retrieve_plugin_full_width.html +3 -0
  79. nautobot/core/templates/inc/footer.html +1 -0
  80. nautobot/core/templates/inc/javascript.html +0 -14
  81. nautobot/core/templates/inc/nav_menu.html +28 -33
  82. nautobot/core/templates/inc/object_details_advanced_panel.html +13 -0
  83. nautobot/core/templates/inc/relationships_table_rows.html +2 -2
  84. nautobot/core/templates/nautobot_config.py.j2 +8 -20
  85. nautobot/core/templates/plugin_template/__init__.py-tpl +1 -2
  86. nautobot/core/templates/rest_framework/api.html +8 -0
  87. nautobot/core/templatetags/buttons.py +32 -28
  88. nautobot/core/testing/__init__.py +47 -44
  89. nautobot/core/testing/api.py +362 -47
  90. nautobot/core/testing/filters.py +1 -1
  91. nautobot/core/testing/migrations.py +2 -0
  92. nautobot/core/testing/mixins.py +22 -9
  93. nautobot/core/testing/schema.py +2 -1
  94. nautobot/core/testing/views.py +21 -46
  95. nautobot/core/tests/integration/test_filters.py +17 -8
  96. nautobot/core/tests/integration/test_navbar.py +11 -34
  97. nautobot/core/tests/integration/test_plugin_navbar.py +9 -103
  98. nautobot/core/tests/nautobot_config.py +2 -3
  99. nautobot/core/tests/test_api.py +290 -21
  100. nautobot/core/tests/test_checks.py +0 -7
  101. nautobot/core/tests/test_filters.py +107 -59
  102. nautobot/core/tests/test_forms.py +26 -92
  103. nautobot/core/tests/test_graphql.py +110 -77
  104. nautobot/core/tests/test_logging.py +4 -0
  105. nautobot/core/tests/test_managers.py +3 -1
  106. nautobot/core/tests/test_models.py +2 -0
  107. nautobot/core/tests/test_paginator.py +3 -1
  108. nautobot/core/tests/test_releases.py +12 -12
  109. nautobot/core/tests/test_templatetags_helpers.py +4 -4
  110. nautobot/core/tests/test_utils.py +32 -68
  111. nautobot/core/tests/test_views.py +12 -15
  112. nautobot/core/utils/data.py +17 -0
  113. nautobot/core/utils/deprecation.py +9 -6
  114. nautobot/core/utils/filtering.py +8 -3
  115. nautobot/core/utils/git.py +12 -4
  116. nautobot/core/utils/lookup.py +3 -1
  117. nautobot/core/utils/requests.py +1 -104
  118. nautobot/core/views/__init__.py +1 -0
  119. nautobot/core/views/generic.py +75 -110
  120. nautobot/core/views/mixins.py +52 -61
  121. nautobot/core/views/renderers.py +6 -7
  122. nautobot/core/views/utils.py +80 -0
  123. nautobot/dcim/api/serializers.py +160 -667
  124. nautobot/dcim/api/urls.py +1 -1
  125. nautobot/dcim/api/views.py +7 -44
  126. nautobot/dcim/choices.py +2 -0
  127. nautobot/dcim/filters/__init__.py +21 -0
  128. nautobot/dcim/form_mixins.py +1 -27
  129. nautobot/dcim/forms.py +19 -765
  130. nautobot/dcim/migrations/0024_alter_device_and_rack_role_add_new_role.py +2 -1
  131. nautobot/dcim/migrations/0025_device_and_rack_roles_data_migrations.py +19 -13
  132. nautobot/dcim/migrations/0027_remove_device_role_and_rack_role.py +1 -1
  133. nautobot/dcim/migrations/0028_rename_foreignkey_fields.py +1 -1
  134. nautobot/dcim/migrations/0030_migrate_region_and_site_data_to_locations.py +2 -2
  135. nautobot/dcim/migrations/0035_related_name_changes.py +1 -1
  136. nautobot/dcim/migrations/0036_remove_region_and_site.py +1 -1
  137. nautobot/dcim/migrations/0040_tagsfield.py +109 -0
  138. nautobot/dcim/migrations/{0040_ipam__namespaces.py → 0041_ipam__namespaces.py} +1 -1
  139. nautobot/dcim/migrations/0042_fixup_null_statuses.py +51 -0
  140. nautobot/dcim/migrations/0043_status_nonnullable.py +72 -0
  141. nautobot/dcim/models/cables.py +3 -33
  142. nautobot/dcim/models/device_component_templates.py +6 -0
  143. nautobot/dcim/models/device_components.py +12 -198
  144. nautobot/dcim/models/devices.py +30 -143
  145. nautobot/dcim/models/locations.py +3 -64
  146. nautobot/dcim/models/power.py +3 -50
  147. nautobot/dcim/models/racks.py +7 -84
  148. nautobot/dcim/navigation.py +141 -467
  149. nautobot/dcim/signals.py +0 -2
  150. nautobot/dcim/tables/locations.py +2 -2
  151. nautobot/dcim/tables/power.py +1 -2
  152. nautobot/dcim/templates/dcim/console_port_connection_list.html +7 -0
  153. nautobot/dcim/templates/dcim/devicetype.html +2 -2
  154. nautobot/dcim/templates/dcim/interface_connection_list.html +7 -0
  155. nautobot/dcim/templates/dcim/location.html +16 -1
  156. nautobot/dcim/templates/dcim/locationtype.html +15 -0
  157. nautobot/dcim/templates/dcim/power_port_connection_list.html +7 -0
  158. nautobot/dcim/templates/dcim/rackgroup.html +0 -12
  159. nautobot/dcim/tests/test_api.py +166 -81
  160. nautobot/dcim/tests/test_cablepaths.py +41 -35
  161. nautobot/dcim/tests/test_filters.py +67 -23
  162. nautobot/dcim/tests/test_forms.py +5 -205
  163. nautobot/dcim/tests/test_graphql.py +7 -2
  164. nautobot/dcim/tests/test_migrations.py +6 -11
  165. nautobot/dcim/tests/test_models.py +182 -110
  166. nautobot/dcim/tests/test_natural_ordering.py +11 -8
  167. nautobot/dcim/tests/test_signals.py +6 -3
  168. nautobot/dcim/tests/test_views.py +197 -175
  169. nautobot/dcim/urls.py +11 -16
  170. nautobot/dcim/views.py +7 -134
  171. nautobot/docs/additional-features/caching.md +6 -87
  172. nautobot/docs/additional-features/job-scheduling-and-approvals.md +3 -0
  173. nautobot/docs/additional-features/jobs.md +177 -195
  174. nautobot/docs/administration/nautobot-server.md +6 -21
  175. nautobot/docs/administration/replicating-nautobot.md +0 -10
  176. nautobot/docs/configuration/optional-settings.md +32 -41
  177. nautobot/docs/configuration/required-settings.md +11 -52
  178. nautobot/docs/development/application-registry.md +2 -13
  179. nautobot/docs/development/extending-models.md +15 -17
  180. nautobot/docs/development/generic-views.md +0 -2
  181. nautobot/docs/development/getting-started.md +55 -5
  182. nautobot/docs/development/navigation-menu.md +22 -93
  183. nautobot/docs/development/react-ui.md +105 -0
  184. nautobot/docs/development/role-internals.md +1 -3
  185. nautobot/docs/development/style-guide.md +6 -4
  186. nautobot/docs/index.md +3 -2
  187. nautobot/docs/installation/migrating-from-netbox.md +11 -42
  188. nautobot/docs/installation/nautobot.md +1 -1
  189. nautobot/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  190. nautobot/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  191. nautobot/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  192. nautobot/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  193. nautobot/docs/installation/tables/v2-code-removals.yaml +67 -0
  194. nautobot/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  195. nautobot/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  196. nautobot/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  197. nautobot/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  198. nautobot/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  199. nautobot/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  200. nautobot/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  201. nautobot/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  202. nautobot/docs/installation/upgrading-from-nautobot-v1.md +170 -747
  203. nautobot/docs/models/dcim/device.md +3 -0
  204. nautobot/docs/models/dcim/deviceredundancygroup.md +3 -3
  205. nautobot/docs/models/extras/computedfield.md +4 -4
  206. nautobot/docs/models/extras/gitrepository.md +3 -0
  207. nautobot/docs/models/extras/job.md +1 -0
  208. nautobot/docs/models/extras/jobbutton.md +18 -13
  209. nautobot/docs/models/extras/jobhook.md +7 -4
  210. nautobot/docs/models/extras/jobresult.md +6 -2
  211. nautobot/docs/models/extras/relationship.md +2 -2
  212. nautobot/docs/models/extras/status.md +6 -19
  213. nautobot/docs/models/ipam/ipaddress.md +3 -0
  214. nautobot/docs/models/virtualization/virtualmachine.md +3 -0
  215. nautobot/docs/plugins/development.md +83 -21
  216. nautobot/docs/release-notes/version-1.5.md +53 -0
  217. nautobot/docs/release-notes/version-2.0.md +180 -0
  218. nautobot/docs/requirements.txt +1 -0
  219. nautobot/docs/rest-api/overview.md +384 -215
  220. nautobot/docs/rest-api/ui-related-endpoints.md +9 -0
  221. nautobot/extras/admin.py +3 -5
  222. nautobot/extras/api/customfields.py +15 -39
  223. nautobot/extras/api/fields.py +0 -11
  224. nautobot/extras/api/mixins.py +45 -0
  225. nautobot/extras/api/relationships.py +63 -158
  226. nautobot/extras/api/serializers.py +165 -700
  227. nautobot/extras/api/urls.py +1 -1
  228. nautobot/extras/api/views.py +294 -280
  229. nautobot/extras/apps.py +4 -7
  230. nautobot/extras/choices.py +11 -9
  231. nautobot/extras/constants.py +9 -3
  232. nautobot/extras/datasources/__init__.py +2 -0
  233. nautobot/extras/datasources/git.py +135 -186
  234. nautobot/extras/datasources/registry.py +25 -35
  235. nautobot/extras/filters/__init__.py +20 -19
  236. nautobot/extras/filters/mixins.py +4 -4
  237. nautobot/extras/forms/forms.py +63 -127
  238. nautobot/extras/forms/mixins.py +23 -51
  239. nautobot/extras/health_checks.py +0 -33
  240. nautobot/extras/jobs.py +387 -565
  241. nautobot/extras/management/commands/runjob.py +24 -62
  242. nautobot/extras/managers.py +30 -7
  243. nautobot/extras/migrations/0058_jobresult_add_time_status_idxs.py +38 -0
  244. nautobot/extras/migrations/{0058_joblogentry_scheduledjob_webhook_data_migration.py → 0059_joblogentry_scheduledjob_webhook_data_migration.py} +1 -1
  245. nautobot/extras/migrations/{0059_alter_joblogentry_scheduledjob_webhook_fields.py → 0060_alter_joblogentry_scheduledjob_webhook_fields.py} +1 -1
  246. nautobot/extras/migrations/{0060_role_and_alter_status.py → 0061_role_and_alter_status.py} +1 -7
  247. nautobot/extras/migrations/{0061_collect_roles_from_related_apps_roles.py → 0062_collect_roles_from_related_apps_roles.py} +33 -32
  248. nautobot/extras/migrations/{0062_alter_role_options.py → 0063_alter_role_options.py} +1 -1
  249. nautobot/extras/migrations/{0063_alter_configcontext_and_add_new_role.py → 0064_alter_configcontext_and_add_new_role.py} +1 -1
  250. nautobot/extras/migrations/0065_configcontext_data_migrations.py +44 -0
  251. nautobot/extras/migrations/{0065_rename_configcontext_role.py → 0066_rename_configcontext_role.py} +1 -1
  252. nautobot/extras/migrations/{0066_jobresult__add_celery_fields.py → 0067_jobresult__add_celery_fields.py} +36 -2
  253. nautobot/extras/migrations/{0067_created_datetime.py → 0068_created_datetime.py} +1 -1
  254. nautobot/extras/migrations/{0068_remove_site_and_region_attributes_from_config_context.py → 0069_remove_site_and_region_attributes_from_config_context.py} +1 -1
  255. nautobot/extras/migrations/{0069_replace_related_names.py → 0070_replace_related_names.py} +1 -1
  256. nautobot/extras/migrations/{0070_rename_model_fields.py → 0071_rename_model_fields.py} +1 -1
  257. nautobot/extras/migrations/0072_job__unique_name_data_migration.py +86 -0
  258. nautobot/extras/migrations/{0072_job__unique_name.py → 0073_job__unique_name.py} +13 -9
  259. nautobot/extras/migrations/{0073_remove_gitrepository_fields.py → 0074_remove_gitrepository_fields.py} +1 -1
  260. nautobot/extras/migrations/{0074_rename_slug_to_key_for_custom_field.py → 0075_rename_slug_to_key_for_custom_field.py} +1 -1
  261. nautobot/extras/migrations/{0075_migrate_custom_field_data.py → 0076_migrate_custom_field_data.py} +1 -1
  262. nautobot/extras/migrations/{0076_remove_name_field_and_make_label_field_non_nullable.py → 0077_remove_name_field_and_make_label_field_non_nullable.py} +1 -1
  263. nautobot/extras/migrations/{0077_remove_slug.py → 0078_remove_slug.py} +1 -5
  264. nautobot/extras/migrations/0079_tagsfield.py +28 -0
  265. nautobot/extras/migrations/0080_rename_relationship_slug_to_key.py +17 -0
  266. nautobot/extras/migrations/0081_rename_relationship_name_to_label.py +29 -0
  267. nautobot/extras/migrations/0082_ensure_relationship_keys_are_unique.py +43 -0
  268. nautobot/extras/migrations/0083_rename_computed_field_slug_to_key.py +21 -0
  269. nautobot/extras/migrations/0084_taggeditem_cleanup.py +43 -0
  270. nautobot/extras/migrations/0085_taggeditem_uniqueness.py +22 -0
  271. nautobot/extras/migrations/0086_job__celery_task_fields__dryrun_support.py +81 -0
  272. nautobot/extras/migrations/0087_job__commit_default_data_migration.py +26 -0
  273. nautobot/extras/migrations/0088_joblogentry__log_level_default.py +17 -0
  274. nautobot/extras/migrations/0089_joblogentry__log_level_data_migration.py +34 -0
  275. nautobot/extras/migrations/0090_scheduledjob__data_migration.py +57 -0
  276. nautobot/extras/models/__init__.py +2 -3
  277. nautobot/extras/models/change_logging.py +0 -36
  278. nautobot/extras/models/customfields.py +39 -33
  279. nautobot/extras/models/datasources.py +48 -50
  280. nautobot/extras/models/groups.py +5 -6
  281. nautobot/extras/models/jobs.py +189 -321
  282. nautobot/extras/models/mixins.py +0 -71
  283. nautobot/extras/models/models.py +0 -19
  284. nautobot/extras/models/relationships.py +19 -13
  285. nautobot/extras/models/roles.py +0 -34
  286. nautobot/extras/models/secrets.py +2 -26
  287. nautobot/extras/models/statuses.py +6 -5
  288. nautobot/extras/models/tags.py +2 -17
  289. nautobot/extras/navigation.py +89 -307
  290. nautobot/extras/plugins/__init__.py +3 -120
  291. nautobot/extras/plugins/utils.py +0 -3
  292. nautobot/extras/plugins/validators.py +5 -4
  293. nautobot/extras/plugins/views.py +16 -3
  294. nautobot/extras/querysets.py +1 -7
  295. nautobot/extras/registry.py +3 -0
  296. nautobot/extras/signals.py +26 -60
  297. nautobot/extras/tables.py +34 -40
  298. nautobot/extras/tasks.py +0 -12
  299. nautobot/extras/templates/extras/configcontext.html +1 -1
  300. nautobot/extras/templates/extras/configcontextschema.html +16 -1
  301. nautobot/extras/templates/extras/customfield.html +0 -13
  302. nautobot/extras/templates/extras/gitrepository.html +3 -3
  303. nautobot/extras/templates/extras/inc/jobresult.html +10 -0
  304. nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
  305. nautobot/extras/templates/extras/job.html +35 -25
  306. nautobot/extras/templates/extras/job_approval_request.html +15 -30
  307. nautobot/extras/templates/extras/job_detail.html +13 -31
  308. nautobot/extras/templates/extras/job_edit.html +15 -17
  309. nautobot/extras/templates/extras/jobresult.html +24 -6
  310. nautobot/extras/templates/extras/scheduledjob.html +2 -2
  311. nautobot/extras/templates/extras/secret.html +28 -0
  312. nautobot/extras/templatetags/job_buttons.py +1 -0
  313. nautobot/extras/{tests/example_jobs → test_jobs}/api_test_job.py +13 -6
  314. nautobot/extras/test_jobs/atomic_transaction.py +53 -0
  315. nautobot/extras/test_jobs/dry_run.py +29 -0
  316. nautobot/extras/{tests/example_jobs/test_duplicate_name.py → test_jobs/duplicate_name.py} +4 -0
  317. nautobot/extras/test_jobs/duplicate_name2.py +9 -0
  318. nautobot/extras/test_jobs/fail.py +23 -0
  319. nautobot/extras/{tests/example_jobs/test_field_default.py → test_jobs/field_default.py} +4 -0
  320. nautobot/extras/{tests/example_jobs/test_field_order.py → test_jobs/field_order.py} +4 -0
  321. nautobot/extras/{tests/example_jobs/test_file_upload_fail.py → test_jobs/file_upload_fail.py} +11 -6
  322. nautobot/extras/test_jobs/file_upload_pass.py +25 -0
  323. nautobot/extras/test_jobs/has_sensitive_variables.py +25 -0
  324. nautobot/extras/test_jobs/ipaddress_vars.py +66 -0
  325. nautobot/extras/test_jobs/job_button_receiver.py +28 -0
  326. nautobot/extras/test_jobs/job_hook_receiver.py +29 -0
  327. nautobot/extras/test_jobs/job_variables.py +88 -0
  328. nautobot/extras/test_jobs/location_with_custom_field.py +45 -0
  329. nautobot/extras/test_jobs/log_redaction.py +20 -0
  330. nautobot/extras/test_jobs/log_skip_db_logging.py +17 -0
  331. nautobot/extras/test_jobs/modify_db.py +25 -0
  332. nautobot/extras/{tests/example_jobs/test_no_field_order.py → test_jobs/no_field_order.py} +4 -0
  333. nautobot/extras/test_jobs/object_var_optional.py +21 -0
  334. nautobot/extras/test_jobs/object_var_required.py +21 -0
  335. nautobot/extras/test_jobs/object_vars.py +26 -0
  336. nautobot/extras/test_jobs/pass.py +25 -0
  337. nautobot/extras/test_jobs/profiling.py +32 -0
  338. nautobot/extras/test_jobs/read_only_job.py +15 -0
  339. nautobot/extras/{tests/example_jobs/test_required_args.py → test_jobs/required_args.py} +4 -0
  340. nautobot/extras/{tests/example_jobs/test_soft_time_limit_greater_than_time_limit.py → test_jobs/soft_time_limit_greater_than_time_limit.py} +5 -1
  341. nautobot/extras/{tests/example_jobs/test_task_queues.py → test_jobs/task_queues.py} +5 -1
  342. nautobot/extras/tests/integration/test_computedfields.py +1 -1
  343. nautobot/extras/tests/integration/test_configcontextschema.py +5 -3
  344. nautobot/extras/tests/integration/test_customfields.py +4 -2
  345. nautobot/extras/tests/integration/test_dynamicgroups.py +1 -1
  346. nautobot/extras/tests/integration/test_jobs.py +25 -27
  347. nautobot/extras/tests/integration/test_notes.py +8 -4
  348. nautobot/extras/tests/integration/test_relationships.py +2 -2
  349. nautobot/extras/tests/test_api.py +649 -642
  350. nautobot/extras/tests/test_changelog.py +3 -3
  351. nautobot/extras/tests/test_context_managers.py +5 -3
  352. nautobot/extras/tests/test_customfields.py +92 -50
  353. nautobot/extras/tests/test_datasources.py +189 -112
  354. nautobot/extras/tests/test_dynamicgroups.py +7 -8
  355. nautobot/extras/tests/test_filters.py +137 -89
  356. nautobot/extras/tests/test_forms.py +73 -75
  357. nautobot/extras/tests/{test_scripts.py → test_job_variables.py} +43 -49
  358. nautobot/extras/tests/test_jobs.py +262 -263
  359. nautobot/extras/tests/test_migrations.py +4 -3
  360. nautobot/extras/tests/test_models.py +116 -161
  361. nautobot/extras/tests/test_plugins.py +38 -60
  362. nautobot/extras/tests/test_relationships.py +167 -120
  363. nautobot/extras/tests/test_tags.py +6 -11
  364. nautobot/extras/tests/test_utils.py +31 -1
  365. nautobot/extras/tests/test_views.py +201 -145
  366. nautobot/extras/tests/test_webhooks.py +6 -2
  367. nautobot/extras/urls.py +42 -42
  368. nautobot/extras/utils.py +137 -163
  369. nautobot/extras/views.py +78 -152
  370. nautobot/ipam/api/fields.py +17 -0
  371. nautobot/ipam/api/serializers.py +58 -164
  372. nautobot/ipam/api/urls.py +1 -1
  373. nautobot/ipam/api/views.py +3 -2
  374. nautobot/ipam/apps.py +1 -2
  375. nautobot/ipam/filters.py +1 -10
  376. nautobot/ipam/forms.py +4 -177
  377. nautobot/ipam/lookups.py +1 -0
  378. nautobot/ipam/management/commands/__init__.py +0 -0
  379. nautobot/ipam/management/commands/fix_prefix_broadcast.py +17 -0
  380. nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -1
  381. nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +32 -38
  382. nautobot/ipam/migrations/0020_related_name_changes.py +1 -1
  383. nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +2 -2
  384. nautobot/ipam/migrations/0028_tagsfield.py +44 -0
  385. nautobot/ipam/migrations/0029_ip_address_to_interface_uniqueness_constraints.py +18 -0
  386. nautobot/ipam/migrations/{0028_ipam__namespaces.py → 0030_ipam__namespaces.py} +77 -28
  387. nautobot/ipam/migrations/0031_ipam__prefix__add_parent.py +58 -0
  388. nautobot/ipam/migrations/0032_ipam__namespaces_finish.py +63 -0
  389. nautobot/ipam/migrations/0033_fixup_null_statuses.py +26 -0
  390. nautobot/ipam/migrations/0034_status_nonnullable.py +36 -0
  391. nautobot/ipam/models.py +100 -236
  392. nautobot/ipam/navigation.py +36 -181
  393. nautobot/ipam/querysets.py +20 -25
  394. nautobot/ipam/signals.py +49 -6
  395. nautobot/ipam/tables.py +10 -3
  396. nautobot/ipam/templates/ipam/namespace_ipaddresses.html +11 -0
  397. nautobot/ipam/templates/ipam/namespace_prefixes.html +11 -0
  398. nautobot/ipam/templates/ipam/namespace_retrieve.html +17 -4
  399. nautobot/ipam/templates/ipam/namespace_vrfs.html +11 -0
  400. nautobot/ipam/templates/ipam/prefix.html +1 -1
  401. nautobot/ipam/templates/ipam/vlangroup.html +0 -13
  402. nautobot/ipam/templates/ipam/vrf_edit.html +6 -0
  403. nautobot/ipam/tests/integration/test_prefixes.py +3 -26
  404. nautobot/ipam/tests/test_api.py +22 -19
  405. nautobot/ipam/tests/test_filters.py +59 -23
  406. nautobot/ipam/tests/test_migrations.py +6 -10
  407. nautobot/ipam/tests/test_models.py +323 -198
  408. nautobot/ipam/tests/test_ordering.py +2 -2
  409. nautobot/ipam/tests/test_querysets.py +44 -24
  410. nautobot/ipam/tests/test_views.py +73 -26
  411. nautobot/ipam/urls.py +16 -0
  412. nautobot/ipam/{utils.py → utils/__init__.py} +2 -2
  413. nautobot/ipam/utils/migrations.py +713 -0
  414. nautobot/ipam/views.py +137 -20
  415. nautobot/project-static/docs/404.html +1178 -10
  416. nautobot/project-static/docs/additional-features/caching.html +1224 -159
  417. nautobot/project-static/docs/additional-features/change-logging.html +1180 -12
  418. nautobot/project-static/docs/additional-features/config-contexts.html +1180 -12
  419. nautobot/project-static/docs/additional-features/graphql.html +1179 -11
  420. nautobot/project-static/docs/additional-features/healthcheck.html +1180 -12
  421. nautobot/project-static/docs/additional-features/job-scheduling-and-approvals.html +1184 -12
  422. nautobot/project-static/docs/additional-features/jobs.html +1514 -328
  423. nautobot/project-static/docs/additional-features/napalm.html +1180 -12
  424. nautobot/project-static/docs/additional-features/prometheus-metrics.html +1180 -12
  425. nautobot/project-static/docs/additional-features/template-filters.html +1180 -12
  426. nautobot/project-static/docs/administration/celery-queues.html +1178 -10
  427. nautobot/project-static/docs/administration/nautobot-server.html +1451 -304
  428. nautobot/project-static/docs/administration/nautobot-shell.html +1178 -10
  429. nautobot/project-static/docs/administration/permissions.html +1178 -10
  430. nautobot/project-static/docs/administration/replicating-nautobot.html +1262 -113
  431. nautobot/project-static/docs/apps/index.html +1178 -10
  432. nautobot/project-static/docs/apps/nautobot-apps.html +1178 -10
  433. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +1580 -426
  434. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +1178 -10
  435. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +3481 -1838
  436. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +1178 -10
  437. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1178 -10
  438. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1185 -11
  439. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +1719 -551
  440. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +2062 -930
  441. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +1946 -659
  442. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1180 -12
  443. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +1189 -21
  444. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +9283 -6218
  445. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +2734 -2122
  446. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1178 -10
  447. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +2337 -1300
  448. nautobot/project-static/docs/configuration/authentication/ldap.html +1178 -10
  449. nautobot/project-static/docs/configuration/authentication/remote.html +1178 -10
  450. nautobot/project-static/docs/configuration/authentication/sso.html +1178 -10
  451. nautobot/project-static/docs/configuration/index.html +1178 -10
  452. nautobot/project-static/docs/configuration/optional-settings.html +1311 -160
  453. nautobot/project-static/docs/configuration/required-settings.html +1312 -211
  454. nautobot/project-static/docs/core-functionality/circuits.html +1178 -10
  455. nautobot/project-static/docs/core-functionality/device-types.html +1178 -10
  456. nautobot/project-static/docs/core-functionality/devices.html +1182 -10
  457. nautobot/project-static/docs/core-functionality/ipam.html +1182 -10
  458. nautobot/project-static/docs/core-functionality/power.html +1178 -10
  459. nautobot/project-static/docs/core-functionality/secrets.html +1178 -10
  460. nautobot/project-static/docs/core-functionality/services.html +1178 -10
  461. nautobot/project-static/docs/core-functionality/sites-and-racks.html +1178 -10
  462. nautobot/project-static/docs/core-functionality/tenancy.html +1178 -10
  463. nautobot/project-static/docs/core-functionality/virtualization.html +1182 -10
  464. nautobot/project-static/docs/core-functionality/vlans.html +1179 -11
  465. nautobot/project-static/docs/development/application-registry.html +1190 -42
  466. nautobot/project-static/docs/development/best-practices.html +1178 -10
  467. nautobot/project-static/docs/development/docker-compose-advanced-use-cases.html +1178 -10
  468. nautobot/project-static/docs/development/extending-models.html +1238 -83
  469. nautobot/project-static/docs/development/generic-views.html +1180 -14
  470. nautobot/project-static/docs/development/getting-started.html +1365 -90
  471. nautobot/project-static/docs/development/homepage.html +1178 -10
  472. nautobot/project-static/docs/development/index.html +1178 -10
  473. nautobot/project-static/docs/development/model-features.html +1178 -10
  474. nautobot/project-static/docs/development/natural-keys.html +1178 -10
  475. nautobot/project-static/docs/development/navigation-menu.html +1215 -125
  476. nautobot/project-static/docs/development/react-ui.html +4199 -0
  477. nautobot/project-static/docs/development/release-checklist.html +1178 -10
  478. nautobot/project-static/docs/development/role-internals.html +1179 -12
  479. nautobot/project-static/docs/development/style-guide.html +1188 -19
  480. nautobot/project-static/docs/development/templates.html +1178 -10
  481. nautobot/project-static/docs/development/testing.html +1178 -10
  482. nautobot/project-static/docs/development/user-preferences.html +1178 -10
  483. nautobot/project-static/docs/docker/index.html +1178 -10
  484. nautobot/project-static/docs/index.html +1183 -12
  485. nautobot/project-static/docs/installation/centos.html +1178 -10
  486. nautobot/project-static/docs/installation/external-authentication.html +1178 -10
  487. nautobot/project-static/docs/installation/http-server.html +1178 -10
  488. nautobot/project-static/docs/installation/index.html +1178 -10
  489. nautobot/project-static/docs/installation/migrating-from-netbox.html +1305 -189
  490. nautobot/project-static/docs/installation/migrating-from-postgresql.html +1178 -10
  491. nautobot/project-static/docs/installation/nautobot.html +1179 -11
  492. nautobot/project-static/docs/installation/region-and-site-data-migration-guide.html +1178 -10
  493. nautobot/project-static/docs/installation/selinux-troubleshooting.html +1178 -10
  494. nautobot/project-static/docs/installation/services.html +1178 -10
  495. nautobot/project-static/docs/installation/tables/v2-api-behavior-changes.yaml +70 -0
  496. nautobot/project-static/docs/installation/tables/v2-api-removed-fields.yaml +142 -0
  497. nautobot/project-static/docs/installation/tables/v2-api-renamed-fields.yaml +124 -0
  498. nautobot/project-static/docs/installation/tables/v2-code-location-changes.yaml +241 -0
  499. nautobot/project-static/docs/installation/tables/v2-code-removals.yaml +67 -0
  500. nautobot/project-static/docs/installation/tables/v2-database-behavior-changes.yaml +37 -0
  501. nautobot/project-static/docs/installation/tables/v2-database-removed-fields.yaml +166 -0
  502. nautobot/project-static/docs/installation/tables/v2-database-renamed-fields.yaml +340 -0
  503. nautobot/project-static/docs/installation/tables/v2-filters-corrected-fields.yaml +28 -0
  504. nautobot/project-static/docs/installation/tables/v2-filters-enhanced-fields.yaml +241 -0
  505. nautobot/project-static/docs/installation/tables/v2-filters-removed-fields.yaml +553 -0
  506. nautobot/project-static/docs/installation/tables/v2-filters-renamed-fields.yaml +223 -0
  507. nautobot/project-static/docs/installation/tables/v2-logging-renamed-loggers.yaml +23 -0
  508. nautobot/project-static/docs/installation/ubuntu.html +1178 -10
  509. nautobot/project-static/docs/installation/upgrading-from-nautobot-v1.html +3823 -2152
  510. nautobot/project-static/docs/installation/upgrading.html +1178 -10
  511. nautobot/project-static/docs/models/circuits/circuit.html +1293 -103
  512. nautobot/project-static/docs/models/circuits/circuittermination.html +1293 -103
  513. nautobot/project-static/docs/models/circuits/circuittype.html +1293 -103
  514. nautobot/project-static/docs/models/circuits/provider.html +1293 -103
  515. nautobot/project-static/docs/models/circuits/providernetwork.html +1293 -103
  516. nautobot/project-static/docs/models/dcim/cable.html +1324 -103
  517. nautobot/project-static/docs/models/dcim/consoleport.html +1293 -103
  518. nautobot/project-static/docs/models/dcim/consoleporttemplate.html +1293 -103
  519. nautobot/project-static/docs/models/dcim/consoleserverport.html +1293 -103
  520. nautobot/project-static/docs/models/dcim/consoleserverporttemplate.html +1293 -103
  521. nautobot/project-static/docs/models/dcim/device.html +1326 -132
  522. nautobot/project-static/docs/models/dcim/devicebay.html +1293 -103
  523. nautobot/project-static/docs/models/dcim/devicebaytemplate.html +1293 -103
  524. nautobot/project-static/docs/models/dcim/deviceredundancygroup.html +1379 -97
  525. nautobot/project-static/docs/models/dcim/devicetype.html +1293 -103
  526. nautobot/project-static/docs/models/dcim/frontport.html +1293 -103
  527. nautobot/project-static/docs/models/dcim/frontporttemplate.html +1293 -103
  528. nautobot/project-static/docs/models/dcim/interface.html +1293 -103
  529. nautobot/project-static/docs/models/dcim/interfacetemplate.html +1293 -103
  530. nautobot/project-static/docs/models/dcim/inventoryitem.html +1293 -103
  531. nautobot/project-static/docs/models/dcim/location.html +1293 -103
  532. nautobot/project-static/docs/models/dcim/locationtype.html +1293 -103
  533. nautobot/project-static/docs/models/dcim/manufacturer.html +1292 -102
  534. nautobot/project-static/docs/models/dcim/platform.html +1272 -82
  535. nautobot/project-static/docs/models/dcim/powerfeed.html +1270 -80
  536. nautobot/project-static/docs/models/dcim/poweroutlet.html +1272 -82
  537. nautobot/project-static/docs/models/dcim/poweroutlettemplate.html +1272 -82
  538. nautobot/project-static/docs/models/dcim/powerpanel.html +1270 -80
  539. nautobot/project-static/docs/models/dcim/powerport.html +1272 -82
  540. nautobot/project-static/docs/models/dcim/powerporttemplate.html +1272 -82
  541. nautobot/project-static/docs/models/dcim/rack.html +1272 -82
  542. nautobot/project-static/docs/models/dcim/rackgroup.html +1272 -82
  543. nautobot/project-static/docs/models/dcim/rackreservation.html +1272 -82
  544. nautobot/project-static/docs/models/dcim/rearport.html +1286 -96
  545. nautobot/project-static/docs/models/dcim/rearporttemplate.html +1286 -96
  546. nautobot/project-static/docs/models/dcim/region.html +1178 -10
  547. nautobot/project-static/docs/models/dcim/site.html +1178 -10
  548. nautobot/project-static/docs/models/dcim/virtualchassis.html +1284 -94
  549. nautobot/project-static/docs/models/extras/computedfield.html +1184 -16
  550. nautobot/project-static/docs/models/extras/configcontext.html +1314 -86
  551. nautobot/project-static/docs/models/extras/configcontextschema.html +1276 -86
  552. nautobot/project-static/docs/models/extras/customfield.html +1180 -12
  553. nautobot/project-static/docs/models/extras/customlink.html +1180 -12
  554. nautobot/project-static/docs/models/extras/dynamicgroup.html +1180 -12
  555. nautobot/project-static/docs/models/extras/exporttemplate.html +1180 -12
  556. nautobot/project-static/docs/models/extras/gitrepository.html +1184 -12
  557. nautobot/project-static/docs/models/extras/graphqlquery.html +1321 -86
  558. nautobot/project-static/docs/models/extras/imageattachment.html +1276 -86
  559. nautobot/project-static/docs/models/extras/job.html +1277 -86
  560. nautobot/project-static/docs/models/extras/jobbutton.html +1201 -29
  561. nautobot/project-static/docs/models/extras/jobhook.html +1188 -16
  562. nautobot/project-static/docs/models/extras/joblogentry.html +1274 -84
  563. nautobot/project-static/docs/models/extras/jobresult.html +1364 -169
  564. nautobot/project-static/docs/models/extras/note.html +1180 -12
  565. nautobot/project-static/docs/models/extras/relationship.html +1182 -14
  566. nautobot/project-static/docs/models/extras/role.html +1320 -86
  567. nautobot/project-static/docs/models/extras/secret.html +1314 -86
  568. nautobot/project-static/docs/models/extras/secretsgroup.html +1276 -86
  569. nautobot/project-static/docs/models/extras/status.html +1188 -59
  570. nautobot/project-static/docs/models/extras/tag.html +1180 -12
  571. nautobot/project-static/docs/models/extras/webhook.html +1180 -12
  572. nautobot/project-static/docs/models/ipam/ipaddress.html +1327 -102
  573. nautobot/project-static/docs/models/ipam/prefix.html +1276 -86
  574. nautobot/project-static/docs/models/ipam/rir.html +1276 -86
  575. nautobot/project-static/docs/models/ipam/routetarget.html +1276 -86
  576. nautobot/project-static/docs/models/ipam/service.html +1276 -86
  577. nautobot/project-static/docs/models/ipam/vlan.html +1276 -86
  578. nautobot/project-static/docs/models/ipam/vlangroup.html +1276 -86
  579. nautobot/project-static/docs/models/ipam/vrf.html +1276 -86
  580. nautobot/project-static/docs/models/tenancy/tenant.html +1276 -86
  581. nautobot/project-static/docs/models/tenancy/tenantgroup.html +1276 -86
  582. nautobot/project-static/docs/models/users/objectpermission.html +1314 -86
  583. nautobot/project-static/docs/models/users/token.html +1276 -86
  584. nautobot/project-static/docs/models/virtualization/cluster.html +1276 -86
  585. nautobot/project-static/docs/models/virtualization/clustergroup.html +1276 -86
  586. nautobot/project-static/docs/models/virtualization/clustertype.html +1276 -86
  587. nautobot/project-static/docs/models/virtualization/virtualmachine.html +1321 -127
  588. nautobot/project-static/docs/models/virtualization/vminterface.html +1276 -86
  589. nautobot/project-static/docs/objects.inv +0 -0
  590. nautobot/project-static/docs/plugins/development.html +1726 -495
  591. nautobot/project-static/docs/plugins/index.html +1178 -10
  592. nautobot/project-static/docs/plugins/porting-from-netbox.html +1178 -10
  593. nautobot/project-static/docs/release-notes/index.html +1178 -10
  594. nautobot/project-static/docs/release-notes/version-1.0.html +1178 -10
  595. nautobot/project-static/docs/release-notes/version-1.1.html +1178 -10
  596. nautobot/project-static/docs/release-notes/version-1.2.html +1178 -10
  597. nautobot/project-static/docs/release-notes/version-1.3.html +1178 -10
  598. nautobot/project-static/docs/release-notes/version-1.4.html +1178 -10
  599. nautobot/project-static/docs/release-notes/version-1.5.html +1608 -225
  600. nautobot/project-static/docs/release-notes/version-2.0.html +1547 -47
  601. nautobot/project-static/docs/requirements.txt +1 -0
  602. nautobot/project-static/docs/rest-api/authentication.html +1179 -11
  603. nautobot/project-static/docs/rest-api/filtering.html +1178 -10
  604. nautobot/project-static/docs/rest-api/overview.html +1841 -446
  605. nautobot/project-static/docs/rest-api/ui-related-endpoints.html +4057 -0
  606. nautobot/project-static/docs/search/search_index.json +1 -1
  607. nautobot/project-static/docs/sitemap.xml +197 -187
  608. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  609. nautobot/project-static/docs/user-guides/custom-fields.html +1178 -10
  610. nautobot/project-static/docs/user-guides/getting-started/creating-devices.html +1178 -10
  611. nautobot/project-static/docs/user-guides/getting-started/index.html +1178 -10
  612. nautobot/project-static/docs/user-guides/getting-started/interfaces.html +1178 -10
  613. nautobot/project-static/docs/user-guides/getting-started/ipam.html +1178 -10
  614. nautobot/project-static/docs/user-guides/getting-started/platforms.html +1178 -10
  615. nautobot/project-static/docs/user-guides/getting-started/regions.html +1178 -10
  616. nautobot/project-static/docs/user-guides/getting-started/search-bar.html +1178 -10
  617. nautobot/project-static/docs/user-guides/getting-started/tenants.html +1178 -10
  618. nautobot/project-static/docs/user-guides/getting-started/vlans-and-vlan-groups.html +1178 -10
  619. nautobot/project-static/docs/user-guides/git-data-source.html +1178 -10
  620. nautobot/project-static/docs/user-guides/graphql.html +1178 -10
  621. nautobot/project-static/docs/user-guides/relationships.html +1178 -10
  622. nautobot/project-static/docs/user-guides/s3-django-storage.html +1178 -10
  623. nautobot/project-static/js/forms.js +16 -9
  624. nautobot/project-static/js/theme.js +5 -0
  625. nautobot/tenancy/api/serializers.py +4 -32
  626. nautobot/tenancy/api/urls.py +1 -1
  627. nautobot/tenancy/forms.py +0 -28
  628. nautobot/tenancy/migrations/0008_tagsfield.py +19 -0
  629. nautobot/tenancy/models.py +0 -25
  630. nautobot/tenancy/navigation.py +6 -39
  631. nautobot/tenancy/templates/tenancy/tenant.html +12 -12
  632. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  633. nautobot/tenancy/tests/test_api.py +1 -3
  634. nautobot/tenancy/tests/test_filters.py +10 -5
  635. nautobot/tenancy/views.py +0 -2
  636. nautobot/ui/.eslintignore +6 -0
  637. nautobot/ui/.gitignore +10 -0
  638. nautobot/ui/.prettierignore +9 -0
  639. nautobot/ui/.prettierrc +4 -0
  640. nautobot/ui/README.md +33 -0
  641. nautobot/ui/app_imports.js.j2 +7 -0
  642. nautobot/ui/craco.config.js +46 -0
  643. nautobot/ui/jsconfig-base.json +11 -0
  644. nautobot/ui/jsconfig.json +5 -0
  645. nautobot/ui/lib/nautobot-craco-alias-plugin.js +40 -0
  646. nautobot/ui/package-lock.json +21451 -0
  647. nautobot/ui/package.json +70 -0
  648. nautobot/ui/public/index.html +47 -0
  649. nautobot/ui/public/logo192.png +0 -0
  650. nautobot/ui/public/logo512.png +0 -0
  651. nautobot/ui/public/manifest.json +25 -0
  652. nautobot/ui/public/nautobot_logo.svg +131 -0
  653. nautobot/ui/public/robots.txt +3 -0
  654. nautobot/ui/src/App.js +71 -0
  655. nautobot/ui/src/components/AppFullWidthComponents.js +8 -0
  656. nautobot/ui/src/components/AppTab.js +40 -0
  657. nautobot/ui/src/components/Apps.js +60 -0
  658. nautobot/ui/src/components/HomeChangelogPanel.js +98 -0
  659. nautobot/ui/src/components/HomePanel.js +58 -0
  660. nautobot/ui/src/components/JobHistoryTable.js +78 -0
  661. nautobot/ui/src/components/Layout.js +53 -0
  662. nautobot/ui/src/components/LoadingWidget.js +25 -0
  663. nautobot/ui/src/components/Navbar.js +116 -0
  664. nautobot/ui/src/components/NotificationPopover.js +27 -0
  665. nautobot/ui/src/components/ObjectListTable.js +209 -0
  666. nautobot/ui/src/components/ReferenceDataTag.js +35 -0
  667. nautobot/ui/src/components/RouterButton.js +10 -0
  668. nautobot/ui/src/components/RouterLink.js +10 -0
  669. nautobot/ui/src/components/SidebarNav.js +147 -0
  670. nautobot/ui/src/components/Table.js +48 -0
  671. nautobot/ui/src/components/TableItem.js +71 -0
  672. nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +16 -0
  673. nautobot/ui/src/components/__tests__/AppTab.test.js +21 -0
  674. nautobot/ui/src/components/__tests__/Apps.test.js +14 -0
  675. nautobot/ui/src/components/__tests__/Layout.test.js +33 -0
  676. nautobot/ui/src/components/__tests__/Table.test.js +36 -0
  677. nautobot/ui/src/components/__tests__/TableItem.test.js +37 -0
  678. nautobot/ui/src/components/__tests__/paginator.test.js +43 -0
  679. nautobot/ui/src/components/__tests__/paginator_form.test.js +13 -0
  680. nautobot/ui/src/components/pagination.js +93 -0
  681. nautobot/ui/src/components/paginator.js +79 -0
  682. nautobot/ui/src/components/paginator_form.js +43 -0
  683. nautobot/ui/src/components/usePagination.js +57 -0
  684. nautobot/ui/src/constants/apiPath.js +10 -0
  685. nautobot/ui/src/constants/icons.js +15 -0
  686. nautobot/ui/src/constants/size.js +15 -0
  687. nautobot/ui/src/index.js +65 -0
  688. nautobot/ui/src/reportWebVitals.js +15 -0
  689. nautobot/ui/src/router.js +77 -0
  690. nautobot/ui/src/utils/api.js +131 -0
  691. nautobot/ui/src/utils/app-import.js +15 -0
  692. nautobot/ui/src/utils/color.js +15 -0
  693. nautobot/ui/src/utils/date.js +14 -0
  694. nautobot/ui/src/utils/index.js +15 -0
  695. nautobot/ui/src/utils/navigation.js +32 -0
  696. nautobot/ui/src/utils/session.js +64 -0
  697. nautobot/ui/src/utils/store.js +242 -0
  698. nautobot/ui/src/utils/string.js +6 -0
  699. nautobot/ui/src/utils/url.js +4 -0
  700. nautobot/ui/src/views/Home.js +138 -0
  701. nautobot/ui/src/views/InstalledApps.js +80 -0
  702. nautobot/ui/src/views/Login.js +48 -0
  703. nautobot/ui/src/views/Logout.js +20 -0
  704. nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +11 -0
  705. nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +107 -0
  706. nautobot/ui/src/views/__tests__/Login.test.js +15 -0
  707. nautobot/ui/src/views/generic/GenericView.js +142 -0
  708. nautobot/ui/src/views/generic/ObjectCreate.js +96 -0
  709. nautobot/ui/src/views/generic/ObjectList.js +127 -0
  710. nautobot/ui/src/views/generic/ObjectRetrieve.js +551 -0
  711. nautobot/users/admin.py +1 -1
  712. nautobot/users/api/serializers.py +51 -61
  713. nautobot/users/api/urls.py +1 -1
  714. nautobot/users/api/views.py +53 -2
  715. nautobot/users/tests/test_api.py +110 -25
  716. nautobot/virtualization/api/serializers.py +18 -130
  717. nautobot/virtualization/api/urls.py +1 -1
  718. nautobot/virtualization/api/views.py +1 -22
  719. nautobot/virtualization/forms.py +13 -99
  720. nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -1
  721. nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +18 -11
  722. nautobot/virtualization/migrations/0015_rename_foreignkey_fields.py +1 -1
  723. nautobot/virtualization/migrations/0018_related_name_changes.py +1 -1
  724. nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +39 -0
  725. nautobot/virtualization/migrations/0022_vminterface_timestamps_data_migration.py +17 -0
  726. nautobot/virtualization/migrations/{0021_ipam__namespaces.py → 0023_ipam__namespaces.py} +2 -2
  727. nautobot/virtualization/migrations/0024_fixup_null_statuses.py +25 -0
  728. nautobot/virtualization/migrations/0025_status_nonnullable.py +29 -0
  729. nautobot/virtualization/models.py +31 -123
  730. nautobot/virtualization/navigation.py +18 -99
  731. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -1
  732. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +6 -0
  733. nautobot/virtualization/tests/test_api.py +25 -26
  734. nautobot/virtualization/tests/test_filters.py +41 -15
  735. nautobot/virtualization/tests/test_models.py +31 -7
  736. nautobot/virtualization/tests/test_views.py +42 -25
  737. nautobot/virtualization/views.py +7 -6
  738. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/METADATA +3 -7
  739. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/RECORD +744 -602
  740. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/WHEEL +1 -1
  741. nautobot/circuits/api/nested_serializers.py +0 -69
  742. nautobot/core/templates/plugin_template/navigation.py-tpl +0 -22
  743. nautobot/dcim/api/nested_serializers.py +0 -356
  744. nautobot/dcim/templates/dcim/device_import.html +0 -5
  745. nautobot/dcim/templates/dcim/device_import_child.html +0 -5
  746. nautobot/dcim/templates/dcim/inc/device_import_header.html +0 -4
  747. nautobot/extras/api/nested_serializers.py +0 -353
  748. nautobot/extras/migrations/0064_configcontext_data_migrations.py +0 -41
  749. nautobot/extras/migrations/0071_job__unique_name_data_migration.py +0 -46
  750. nautobot/extras/reports.py +0 -60
  751. nautobot/extras/scripts.py +0 -72
  752. nautobot/extras/tests/example_jobs/script_variables.py +0 -67
  753. nautobot/extras/tests/example_jobs/test_duplicate_name2.py +0 -5
  754. nautobot/extras/tests/example_jobs/test_fail.py +0 -16
  755. nautobot/extras/tests/example_jobs/test_file_upload_pass.py +0 -20
  756. nautobot/extras/tests/example_jobs/test_ipaddress_vars.py +0 -52
  757. nautobot/extras/tests/example_jobs/test_job_button_receiver.py +0 -21
  758. nautobot/extras/tests/example_jobs/test_job_hook_receiver.py +0 -20
  759. nautobot/extras/tests/example_jobs/test_location_with_custom_field.py +0 -35
  760. nautobot/extras/tests/example_jobs/test_log_redaction.py +0 -14
  761. nautobot/extras/tests/example_jobs/test_modify_db.py +0 -18
  762. nautobot/extras/tests/example_jobs/test_object_var_optional.py +0 -14
  763. nautobot/extras/tests/example_jobs/test_object_var_required.py +0 -14
  764. nautobot/extras/tests/example_jobs/test_object_vars.py +0 -29
  765. nautobot/extras/tests/example_jobs/test_pass.py +0 -19
  766. nautobot/extras/tests/example_jobs/test_read_only_fail.py +0 -24
  767. nautobot/extras/tests/example_jobs/test_read_only_no_commit_field.py +0 -10
  768. nautobot/extras/tests/example_jobs/test_read_only_pass.py +0 -22
  769. nautobot/ipam/api/nested_serializers.py +0 -159
  770. nautobot/ipam/migrations/0029_ipam__prefix__add_parent.py +0 -31
  771. nautobot/ipam/migrations/0030_ipam__prefix__data_migration.py +0 -13
  772. nautobot/ipam/migrations/0031_ipam__ipaddress__add_parent.py +0 -41
  773. nautobot/ipam/migrations/0032_ipam__ipaddress__data_migration.py +0 -11
  774. nautobot/tenancy/api/nested_serializers.py +0 -31
  775. nautobot/users/api/nested_serializers.py +0 -67
  776. nautobot/virtualization/api/nested_serializers.py +0 -65
  777. /nautobot/extras/{tests/example_jobs → test_jobs}/__init__.py +0 -0
  778. /nautobot/{dcim/models/sites.py → ipam/management/__init__.py} +0 -0
  779. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/LICENSE.txt +0 -0
  780. {nautobot-2.0.0a3.dist-info → nautobot-2.0.0b1.dist-info}/entry_points.txt +0 -0
@@ -1346,12 +1346,1166 @@
1346
1346
 
1347
1347
 
1348
1348
  <label class="md-nav__link" for="__nav_2_8" id="__nav_2_8_label" tabindex="0">
1349
+ Model Details
1350
+ <span class="md-nav__icon md-icon"></span>
1351
+ </label>
1352
+
1353
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1354
+ <label class="md-nav__title" for="__nav_2_8">
1355
+ <span class="md-nav__icon md-icon"></span>
1356
+ Model Details
1357
+ </label>
1358
+ <ul class="md-nav__list" data-md-scrollfix>
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+ <li class="md-nav__item md-nav__item--nested">
1367
+
1368
+
1369
+
1370
+
1371
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_1" >
1372
+
1373
+
1374
+
1375
+ <label class="md-nav__link" for="__nav_2_8_1" id="__nav_2_8_1_label" tabindex="0">
1376
+ Circuits
1377
+ <span class="md-nav__icon md-icon"></span>
1378
+ </label>
1379
+
1380
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_1_label" aria-expanded="false">
1381
+ <label class="md-nav__title" for="__nav_2_8_1">
1382
+ <span class="md-nav__icon md-icon"></span>
1383
+ Circuits
1384
+ </label>
1385
+ <ul class="md-nav__list" data-md-scrollfix>
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+ <li class="md-nav__item">
1393
+ <a href="../models/circuits/circuit.html" class="md-nav__link">
1394
+ Circuit
1395
+ </a>
1396
+ </li>
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+ <li class="md-nav__item">
1407
+ <a href="../models/circuits/circuittermination.html" class="md-nav__link">
1408
+ Circuit Termination
1409
+ </a>
1410
+ </li>
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+ <li class="md-nav__item">
1421
+ <a href="../models/circuits/circuittype.html" class="md-nav__link">
1422
+ Circuit Type
1423
+ </a>
1424
+ </li>
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+ <li class="md-nav__item">
1435
+ <a href="../models/circuits/provider.html" class="md-nav__link">
1436
+ Circuit Provider
1437
+ </a>
1438
+ </li>
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+ <li class="md-nav__item">
1449
+ <a href="../models/circuits/providernetwork.html" class="md-nav__link">
1450
+ Circuit Provider Network
1451
+ </a>
1452
+ </li>
1453
+
1454
+
1455
+
1456
+
1457
+ </ul>
1458
+ </nav>
1459
+ </li>
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+ <li class="md-nav__item md-nav__item--nested">
1471
+
1472
+
1473
+
1474
+
1475
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_2" >
1476
+
1477
+
1478
+
1479
+ <label class="md-nav__link" for="__nav_2_8_2" id="__nav_2_8_2_label" tabindex="0">
1480
+ DCIM
1481
+ <span class="md-nav__icon md-icon"></span>
1482
+ </label>
1483
+
1484
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_2_label" aria-expanded="false">
1485
+ <label class="md-nav__title" for="__nav_2_8_2">
1486
+ <span class="md-nav__icon md-icon"></span>
1487
+ DCIM
1488
+ </label>
1489
+ <ul class="md-nav__list" data-md-scrollfix>
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+ <li class="md-nav__item">
1497
+ <a href="../models/dcim/cable.html" class="md-nav__link">
1498
+ Cable
1499
+ </a>
1500
+ </li>
1501
+
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+ <li class="md-nav__item">
1511
+ <a href="../models/dcim/consoleport.html" class="md-nav__link">
1512
+ Console Port
1513
+ </a>
1514
+ </li>
1515
+
1516
+
1517
+
1518
+
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+ <li class="md-nav__item">
1525
+ <a href="../models/dcim/consoleporttemplate.html" class="md-nav__link">
1526
+ Console Port Template
1527
+ </a>
1528
+ </li>
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+ <li class="md-nav__item">
1539
+ <a href="../models/dcim/consoleserverport.html" class="md-nav__link">
1540
+ Console Server Port
1541
+ </a>
1542
+ </li>
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+ <li class="md-nav__item">
1553
+ <a href="../models/dcim/consoleserverporttemplate.html" class="md-nav__link">
1554
+ Console Server Port Template
1555
+ </a>
1556
+ </li>
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+ <li class="md-nav__item">
1567
+ <a href="../models/dcim/device.html" class="md-nav__link">
1568
+ Device
1569
+ </a>
1570
+ </li>
1571
+
1572
+
1573
+
1574
+
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+ <li class="md-nav__item">
1581
+ <a href="../models/dcim/devicebay.html" class="md-nav__link">
1582
+ Device Bay
1583
+ </a>
1584
+ </li>
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+ <li class="md-nav__item">
1595
+ <a href="../models/dcim/devicebaytemplate.html" class="md-nav__link">
1596
+ Device Bay Template
1597
+ </a>
1598
+ </li>
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+ <li class="md-nav__item">
1609
+ <a href="../models/dcim/deviceredundancygroup.html" class="md-nav__link">
1610
+ Device Redundancy Group
1611
+ </a>
1612
+ </li>
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+ <li class="md-nav__item">
1623
+ <a href="../models/dcim/devicetype.html" class="md-nav__link">
1624
+ Device Type
1625
+ </a>
1626
+ </li>
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+ <li class="md-nav__item">
1637
+ <a href="../models/dcim/frontport.html" class="md-nav__link">
1638
+ Front Port
1639
+ </a>
1640
+ </li>
1641
+
1642
+
1643
+
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+ <li class="md-nav__item">
1651
+ <a href="../models/dcim/frontporttemplate.html" class="md-nav__link">
1652
+ Front Port Template
1653
+ </a>
1654
+ </li>
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+ <li class="md-nav__item">
1665
+ <a href="../models/dcim/interface.html" class="md-nav__link">
1666
+ Interface
1667
+ </a>
1668
+ </li>
1669
+
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+ <li class="md-nav__item">
1679
+ <a href="../models/dcim/interfacetemplate.html" class="md-nav__link">
1680
+ Interface Template
1681
+ </a>
1682
+ </li>
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+ <li class="md-nav__item">
1693
+ <a href="../models/dcim/inventoryitem.html" class="md-nav__link">
1694
+ Inventory Item
1695
+ </a>
1696
+ </li>
1697
+
1698
+
1699
+
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+ <li class="md-nav__item">
1707
+ <a href="../models/dcim/location.html" class="md-nav__link">
1708
+ Location
1709
+ </a>
1710
+ </li>
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+ <li class="md-nav__item">
1721
+ <a href="../models/dcim/locationtype.html" class="md-nav__link">
1722
+ Location Type
1723
+ </a>
1724
+ </li>
1725
+
1726
+
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+ <li class="md-nav__item">
1735
+ <a href="../models/dcim/manufacturer.html" class="md-nav__link">
1736
+ Manufacturer
1737
+ </a>
1738
+ </li>
1739
+
1740
+
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+ <li class="md-nav__item">
1749
+ <a href="../models/dcim/platform.html" class="md-nav__link">
1750
+ Platform
1751
+ </a>
1752
+ </li>
1753
+
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+ <li class="md-nav__item">
1763
+ <a href="../models/dcim/powerfeed.html" class="md-nav__link">
1764
+ Power Feed
1765
+ </a>
1766
+ </li>
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+ <li class="md-nav__item">
1777
+ <a href="../models/dcim/poweroutlet.html" class="md-nav__link">
1778
+ Power Outlet
1779
+ </a>
1780
+ </li>
1781
+
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+ <li class="md-nav__item">
1791
+ <a href="../models/dcim/poweroutlettemplate.html" class="md-nav__link">
1792
+ Power Outlet Template
1793
+ </a>
1794
+ </li>
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+ <li class="md-nav__item">
1805
+ <a href="../models/dcim/powerpanel.html" class="md-nav__link">
1806
+ Power Panel
1807
+ </a>
1808
+ </li>
1809
+
1810
+
1811
+
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+ <li class="md-nav__item">
1819
+ <a href="../models/dcim/powerport.html" class="md-nav__link">
1820
+ Power Port
1821
+ </a>
1822
+ </li>
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+ <li class="md-nav__item">
1833
+ <a href="../models/dcim/powerporttemplate.html" class="md-nav__link">
1834
+ Power Port Template
1835
+ </a>
1836
+ </li>
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+ <li class="md-nav__item">
1847
+ <a href="../models/dcim/rack.html" class="md-nav__link">
1848
+ Rack
1849
+ </a>
1850
+ </li>
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+ <li class="md-nav__item">
1861
+ <a href="../models/dcim/rackgroup.html" class="md-nav__link">
1862
+ Rack Group
1863
+ </a>
1864
+ </li>
1865
+
1866
+
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+ <li class="md-nav__item">
1875
+ <a href="../models/dcim/rackreservation.html" class="md-nav__link">
1876
+ Rack Reservation
1877
+ </a>
1878
+ </li>
1879
+
1880
+
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+ <li class="md-nav__item">
1889
+ <a href="../models/dcim/rearport.html" class="md-nav__link">
1890
+ Rear Port
1891
+ </a>
1892
+ </li>
1893
+
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+ <li class="md-nav__item">
1903
+ <a href="../models/dcim/rearporttemplate.html" class="md-nav__link">
1904
+ Rear Port Template
1905
+ </a>
1906
+ </li>
1907
+
1908
+
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+ <li class="md-nav__item">
1917
+ <a href="../models/dcim/virtualchassis.html" class="md-nav__link">
1918
+ Virtual Chassis
1919
+ </a>
1920
+ </li>
1921
+
1922
+
1923
+
1924
+
1925
+ </ul>
1926
+ </nav>
1927
+ </li>
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+ <li class="md-nav__item md-nav__item--nested">
1939
+
1940
+
1941
+
1942
+
1943
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_3" >
1944
+
1945
+
1946
+
1947
+ <label class="md-nav__link" for="__nav_2_8_3" id="__nav_2_8_3_label" tabindex="0">
1948
+ Extras
1949
+ <span class="md-nav__icon md-icon"></span>
1950
+ </label>
1951
+
1952
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_3_label" aria-expanded="false">
1953
+ <label class="md-nav__title" for="__nav_2_8_3">
1954
+ <span class="md-nav__icon md-icon"></span>
1955
+ Extras
1956
+ </label>
1957
+ <ul class="md-nav__list" data-md-scrollfix>
1958
+
1959
+
1960
+
1961
+
1962
+
1963
+
1964
+ <li class="md-nav__item">
1965
+ <a href="../models/extras/configcontext.html" class="md-nav__link">
1966
+ Config Context
1967
+ </a>
1968
+ </li>
1969
+
1970
+
1971
+
1972
+
1973
+
1974
+
1975
+
1976
+
1977
+
1978
+ <li class="md-nav__item">
1979
+ <a href="../models/extras/configcontextschema.html" class="md-nav__link">
1980
+ Config Context Schema
1981
+ </a>
1982
+ </li>
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+ <li class="md-nav__item">
1993
+ <a href="../models/extras/graphqlquery.html" class="md-nav__link">
1994
+ GraphQL Query
1995
+ </a>
1996
+ </li>
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+ <li class="md-nav__item">
2007
+ <a href="../models/extras/imageattachment.html" class="md-nav__link">
2008
+ Image Attachment
2009
+ </a>
2010
+ </li>
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+ <li class="md-nav__item">
2021
+ <a href="../models/extras/job.html" class="md-nav__link">
2022
+ Job
2023
+ </a>
2024
+ </li>
2025
+
2026
+
2027
+
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+ <li class="md-nav__item">
2035
+ <a href="../models/extras/joblogentry.html" class="md-nav__link">
2036
+ Job Log Entry
2037
+ </a>
2038
+ </li>
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+ <li class="md-nav__item">
2049
+ <a href="../models/extras/jobresult.html" class="md-nav__link">
2050
+ Job Result
2051
+ </a>
2052
+ </li>
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+
2059
+
2060
+
2061
+
2062
+ <li class="md-nav__item">
2063
+ <a href="../models/extras/role.html" class="md-nav__link">
2064
+ Role
2065
+ </a>
2066
+ </li>
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+ <li class="md-nav__item">
2077
+ <a href="../models/extras/secret.html" class="md-nav__link">
2078
+ Secret
2079
+ </a>
2080
+ </li>
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+ <li class="md-nav__item">
2091
+ <a href="../models/extras/secretsgroup.html" class="md-nav__link">
2092
+ Secrets group
2093
+ </a>
2094
+ </li>
2095
+
2096
+
2097
+
2098
+
2099
+ </ul>
2100
+ </nav>
2101
+ </li>
2102
+
2103
+
2104
+
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+
2112
+ <li class="md-nav__item md-nav__item--nested">
2113
+
2114
+
2115
+
2116
+
2117
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_4" >
2118
+
2119
+
2120
+
2121
+ <label class="md-nav__link" for="__nav_2_8_4" id="__nav_2_8_4_label" tabindex="0">
2122
+ IPAM
2123
+ <span class="md-nav__icon md-icon"></span>
2124
+ </label>
2125
+
2126
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_4_label" aria-expanded="false">
2127
+ <label class="md-nav__title" for="__nav_2_8_4">
2128
+ <span class="md-nav__icon md-icon"></span>
2129
+ IPAM
2130
+ </label>
2131
+ <ul class="md-nav__list" data-md-scrollfix>
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+ <li class="md-nav__item">
2139
+ <a href="../models/ipam/ipaddress.html" class="md-nav__link">
2140
+ IP Address
2141
+ </a>
2142
+ </li>
2143
+
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+ <li class="md-nav__item">
2153
+ <a href="../models/ipam/prefix.html" class="md-nav__link">
2154
+ Prefix
2155
+ </a>
2156
+ </li>
2157
+
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+ <li class="md-nav__item">
2167
+ <a href="../models/ipam/rir.html" class="md-nav__link">
2168
+ Rir
2169
+ </a>
2170
+ </li>
2171
+
2172
+
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+ <li class="md-nav__item">
2181
+ <a href="../models/ipam/routetarget.html" class="md-nav__link">
2182
+ Route Target
2183
+ </a>
2184
+ </li>
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+ <li class="md-nav__item">
2195
+ <a href="../models/ipam/service.html" class="md-nav__link">
2196
+ Service
2197
+ </a>
2198
+ </li>
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+ <li class="md-nav__item">
2209
+ <a href="../models/ipam/vlan.html" class="md-nav__link">
2210
+ VLAN
2211
+ </a>
2212
+ </li>
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+ <li class="md-nav__item">
2223
+ <a href="../models/ipam/vlangroup.html" class="md-nav__link">
2224
+ VLAN Group
2225
+ </a>
2226
+ </li>
2227
+
2228
+
2229
+
2230
+
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+ <li class="md-nav__item">
2237
+ <a href="../models/ipam/vrf.html" class="md-nav__link">
2238
+ VRF
2239
+ </a>
2240
+ </li>
2241
+
2242
+
2243
+
2244
+
2245
+ </ul>
2246
+ </nav>
2247
+ </li>
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+ <li class="md-nav__item md-nav__item--nested">
2259
+
2260
+
2261
+
2262
+
2263
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_5" >
2264
+
2265
+
2266
+
2267
+ <label class="md-nav__link" for="__nav_2_8_5" id="__nav_2_8_5_label" tabindex="0">
2268
+ Tenancy
2269
+ <span class="md-nav__icon md-icon"></span>
2270
+ </label>
2271
+
2272
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_5_label" aria-expanded="false">
2273
+ <label class="md-nav__title" for="__nav_2_8_5">
2274
+ <span class="md-nav__icon md-icon"></span>
2275
+ Tenancy
2276
+ </label>
2277
+ <ul class="md-nav__list" data-md-scrollfix>
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+ <li class="md-nav__item">
2285
+ <a href="../models/tenancy/tenant.html" class="md-nav__link">
2286
+ Tenant
2287
+ </a>
2288
+ </li>
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+ <li class="md-nav__item">
2299
+ <a href="../models/tenancy/tenantgroup.html" class="md-nav__link">
2300
+ Tenant Group
2301
+ </a>
2302
+ </li>
2303
+
2304
+
2305
+
2306
+
2307
+ </ul>
2308
+ </nav>
2309
+ </li>
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+
2317
+
2318
+
2319
+
2320
+ <li class="md-nav__item md-nav__item--nested">
2321
+
2322
+
2323
+
2324
+
2325
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_6" >
2326
+
2327
+
2328
+
2329
+ <label class="md-nav__link" for="__nav_2_8_6" id="__nav_2_8_6_label" tabindex="0">
2330
+ Users
2331
+ <span class="md-nav__icon md-icon"></span>
2332
+ </label>
2333
+
2334
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_6_label" aria-expanded="false">
2335
+ <label class="md-nav__title" for="__nav_2_8_6">
2336
+ <span class="md-nav__icon md-icon"></span>
2337
+ Users
2338
+ </label>
2339
+ <ul class="md-nav__list" data-md-scrollfix>
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+
2346
+ <li class="md-nav__item">
2347
+ <a href="../models/users/objectpermission.html" class="md-nav__link">
2348
+ Object Permission
2349
+ </a>
2350
+ </li>
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+
2359
+
2360
+ <li class="md-nav__item">
2361
+ <a href="../models/users/token.html" class="md-nav__link">
2362
+ Token
2363
+ </a>
2364
+ </li>
2365
+
2366
+
2367
+
2368
+
2369
+ </ul>
2370
+ </nav>
2371
+ </li>
2372
+
2373
+
2374
+
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+ <li class="md-nav__item md-nav__item--nested">
2383
+
2384
+
2385
+
2386
+
2387
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_8_7" >
2388
+
2389
+
2390
+
2391
+ <label class="md-nav__link" for="__nav_2_8_7" id="__nav_2_8_7_label" tabindex="0">
2392
+ Virtualization
2393
+ <span class="md-nav__icon md-icon"></span>
2394
+ </label>
2395
+
2396
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_8_7_label" aria-expanded="false">
2397
+ <label class="md-nav__title" for="__nav_2_8_7">
2398
+ <span class="md-nav__icon md-icon"></span>
2399
+ Virtualization
2400
+ </label>
2401
+ <ul class="md-nav__list" data-md-scrollfix>
2402
+
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+ <li class="md-nav__item">
2409
+ <a href="../models/virtualization/cluster.html" class="md-nav__link">
2410
+ Cluster
2411
+ </a>
2412
+ </li>
2413
+
2414
+
2415
+
2416
+
2417
+
2418
+
2419
+
2420
+
2421
+
2422
+ <li class="md-nav__item">
2423
+ <a href="../models/virtualization/clustergroup.html" class="md-nav__link">
2424
+ Cluster Group
2425
+ </a>
2426
+ </li>
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+ <li class="md-nav__item">
2437
+ <a href="../models/virtualization/clustertype.html" class="md-nav__link">
2438
+ Cluster Type
2439
+ </a>
2440
+ </li>
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+ <li class="md-nav__item">
2451
+ <a href="../models/virtualization/virtualmachine.html" class="md-nav__link">
2452
+ Virtual Machine
2453
+ </a>
2454
+ </li>
2455
+
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+ <li class="md-nav__item">
2465
+ <a href="../models/virtualization/vminterface.html" class="md-nav__link">
2466
+ VM Interface
2467
+ </a>
2468
+ </li>
2469
+
2470
+
2471
+
2472
+
2473
+ </ul>
2474
+ </nav>
2475
+ </li>
2476
+
2477
+
2478
+
2479
+
2480
+ </ul>
2481
+ </nav>
2482
+ </li>
2483
+
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+ <li class="md-nav__item md-nav__item--nested">
2494
+
2495
+
2496
+
2497
+
2498
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2499
+
2500
+
2501
+
2502
+ <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
1349
2503
  Additional Features
1350
2504
  <span class="md-nav__icon md-icon"></span>
1351
2505
  </label>
1352
2506
 
1353
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_8_label" aria-expanded="false">
1354
- <label class="md-nav__title" for="__nav_2_8">
2507
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
2508
+ <label class="md-nav__title" for="__nav_2_9">
1355
2509
  <span class="md-nav__icon md-icon"></span>
1356
2510
  Additional Features
1357
2511
  </label>
@@ -1683,17 +2837,17 @@
1683
2837
 
1684
2838
 
1685
2839
 
1686
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_9" >
2840
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
1687
2841
 
1688
2842
 
1689
2843
 
1690
- <label class="md-nav__link" for="__nav_2_9" id="__nav_2_9_label" tabindex="0">
2844
+ <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
1691
2845
  REST API
1692
2846
  <span class="md-nav__icon md-icon"></span>
1693
2847
  </label>
1694
2848
 
1695
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_9_label" aria-expanded="false">
1696
- <label class="md-nav__title" for="__nav_2_9">
2849
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
2850
+ <label class="md-nav__title" for="__nav_2_10">
1697
2851
  <span class="md-nav__icon md-icon"></span>
1698
2852
  REST API
1699
2853
  </label>
@@ -1741,6 +2895,20 @@
1741
2895
 
1742
2896
 
1743
2897
 
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+ <li class="md-nav__item">
2904
+ <a href="../rest-api/ui-related-endpoints.html" class="md-nav__link">
2905
+ UI Endpoints
2906
+ </a>
2907
+ </li>
2908
+
2909
+
2910
+
2911
+
1744
2912
  </ul>
1745
2913
  </nav>
1746
2914
  </li>
@@ -1759,17 +2927,17 @@
1759
2927
 
1760
2928
 
1761
2929
 
1762
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_10" >
2930
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_11" >
1763
2931
 
1764
2932
 
1765
2933
 
1766
- <label class="md-nav__link" for="__nav_2_10" id="__nav_2_10_label" tabindex="0">
2934
+ <label class="md-nav__link" for="__nav_2_11" id="__nav_2_11_label" tabindex="0">
1767
2935
  GraphQL API
1768
2936
  <span class="md-nav__icon md-icon"></span>
1769
2937
  </label>
1770
2938
 
1771
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_10_label" aria-expanded="false">
1772
- <label class="md-nav__title" for="__nav_2_10">
2939
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_11_label" aria-expanded="false">
2940
+ <label class="md-nav__title" for="__nav_2_11">
1773
2941
  <span class="md-nav__icon md-icon"></span>
1774
2942
  GraphQL API
1775
2943
  </label>
@@ -2466,6 +3634,13 @@
2466
3634
  Added Site Fields to Location (#2954)
2467
3635
  </a>
2468
3636
 
3637
+ </li>
3638
+
3639
+ <li class="md-nav__item">
3640
+ <a href="#added-depth-rest-api-query-parameter" class="md-nav__link">
3641
+ Added Depth REST API Query Parameter
3642
+ </a>
3643
+
2469
3644
  </li>
2470
3645
 
2471
3646
  <li class="md-nav__item">
@@ -2527,6 +3702,20 @@
2527
3702
  Collapsed nautobot.utilities into nautobot.core (#2721)
2528
3703
  </a>
2529
3704
 
3705
+ </li>
3706
+
3707
+ <li class="md-nav__item">
3708
+ <a href="#rest-api-versioning-behavior-2799" class="md-nav__link">
3709
+ REST API Versioning Behavior (#2799)
3710
+ </a>
3711
+
3712
+ </li>
3713
+
3714
+ <li class="md-nav__item">
3715
+ <a href="#revamped-csv-import-and-export-2569-3715" class="md-nav__link">
3716
+ Revamped CSV Import and Export (#2569, #3715)
3717
+ </a>
3718
+
2530
3719
  </li>
2531
3720
 
2532
3721
  <li class="md-nav__item">
@@ -2584,6 +3773,20 @@
2584
3773
  <nav class="md-nav" aria-label="Removed">
2585
3774
  <ul class="md-nav__list">
2586
3775
 
3776
+ <li class="md-nav__item">
3777
+ <a href="#removed-brief-rest-api-query-parameter" class="md-nav__link">
3778
+ Removed Brief REST API Query Parameter
3779
+ </a>
3780
+
3781
+ </li>
3782
+
3783
+ <li class="md-nav__item">
3784
+ <a href="#removed-django-cacheops-1721" class="md-nav__link">
3785
+ Removed django-cacheops (#1721)
3786
+ </a>
3787
+
3788
+ </li>
3789
+
2587
3790
  <li class="md-nav__item">
2588
3791
  <a href="#removed-redundant-filter-fields-2804" class="md-nav__link">
2589
3792
  Removed Redundant Filter Fields (#2804)
@@ -2609,11 +3812,11 @@
2609
3812
  </li>
2610
3813
 
2611
3814
  <li class="md-nav__item">
2612
- <a href="#v200-alpha3-2023-04-13" class="md-nav__link">
2613
- v2.0.0-alpha.3 (2023-04-13)
3815
+ <a href="#v200-beta1-2023-06-06" class="md-nav__link">
3816
+ v2.0.0-beta.1 (2023-06-06)
2614
3817
  </a>
2615
3818
 
2616
- <nav class="md-nav" aria-label="v2.0.0-alpha.3 (2023-04-13)">
3819
+ <nav class="md-nav" aria-label="v2.0.0-beta.1 (2023-06-06)">
2617
3820
  <ul class="md-nav__list">
2618
3821
 
2619
3822
  <li class="md-nav__item">
@@ -2635,6 +3838,13 @@
2635
3838
  Dependencies
2636
3839
  </a>
2637
3840
 
3841
+ </li>
3842
+
3843
+ <li class="md-nav__item">
3844
+ <a href="#fixed" class="md-nav__link">
3845
+ Fixed
3846
+ </a>
3847
+
2638
3848
  </li>
2639
3849
 
2640
3850
  <li class="md-nav__item">
@@ -2650,11 +3860,11 @@
2650
3860
  </li>
2651
3861
 
2652
3862
  <li class="md-nav__item">
2653
- <a href="#v200-alpha2-2023-03-29" class="md-nav__link">
2654
- v2.0.0-alpha.2 (2023-03-29)
3863
+ <a href="#v200-alpha3-2023-04-13" class="md-nav__link">
3864
+ v2.0.0-alpha.3 (2023-04-13)
2655
3865
  </a>
2656
3866
 
2657
- <nav class="md-nav" aria-label="v2.0.0-alpha.2 (2023-03-29)">
3867
+ <nav class="md-nav" aria-label="v2.0.0-alpha.3 (2023-04-13)">
2658
3868
  <ul class="md-nav__list">
2659
3869
 
2660
3870
  <li class="md-nav__item">
@@ -2679,14 +3889,55 @@
2679
3889
  </li>
2680
3890
 
2681
3891
  <li class="md-nav__item">
2682
- <a href="#fixed" class="md-nav__link">
3892
+ <a href="#removed_2" class="md-nav__link">
3893
+ Removed
3894
+ </a>
3895
+
3896
+ </li>
3897
+
3898
+ </ul>
3899
+ </nav>
3900
+
3901
+ </li>
3902
+
3903
+ <li class="md-nav__item">
3904
+ <a href="#v200-alpha2-2023-03-29" class="md-nav__link">
3905
+ v2.0.0-alpha.2 (2023-03-29)
3906
+ </a>
3907
+
3908
+ <nav class="md-nav" aria-label="v2.0.0-alpha.2 (2023-03-29)">
3909
+ <ul class="md-nav__list">
3910
+
3911
+ <li class="md-nav__item">
3912
+ <a href="#added_3" class="md-nav__link">
3913
+ Added
3914
+ </a>
3915
+
3916
+ </li>
3917
+
3918
+ <li class="md-nav__item">
3919
+ <a href="#changed_3" class="md-nav__link">
3920
+ Changed
3921
+ </a>
3922
+
3923
+ </li>
3924
+
3925
+ <li class="md-nav__item">
3926
+ <a href="#dependencies_2" class="md-nav__link">
3927
+ Dependencies
3928
+ </a>
3929
+
3930
+ </li>
3931
+
3932
+ <li class="md-nav__item">
3933
+ <a href="#fixed_1" class="md-nav__link">
2683
3934
  Fixed
2684
3935
  </a>
2685
3936
 
2686
3937
  </li>
2687
3938
 
2688
3939
  <li class="md-nav__item">
2689
- <a href="#removed_2" class="md-nav__link">
3940
+ <a href="#removed_3" class="md-nav__link">
2690
3941
  Removed
2691
3942
  </a>
2692
3943
 
@@ -2706,28 +3957,28 @@
2706
3957
  <ul class="md-nav__list">
2707
3958
 
2708
3959
  <li class="md-nav__item">
2709
- <a href="#added_3" class="md-nav__link">
3960
+ <a href="#added_4" class="md-nav__link">
2710
3961
  Added
2711
3962
  </a>
2712
3963
 
2713
3964
  </li>
2714
3965
 
2715
3966
  <li class="md-nav__item">
2716
- <a href="#changed_3" class="md-nav__link">
3967
+ <a href="#changed_4" class="md-nav__link">
2717
3968
  Changed
2718
3969
  </a>
2719
3970
 
2720
3971
  </li>
2721
3972
 
2722
3973
  <li class="md-nav__item">
2723
- <a href="#fixed_1" class="md-nav__link">
3974
+ <a href="#fixed_2" class="md-nav__link">
2724
3975
  Fixed
2725
3976
  </a>
2726
3977
 
2727
3978
  </li>
2728
3979
 
2729
3980
  <li class="md-nav__item">
2730
- <a href="#removed_3" class="md-nav__link">
3981
+ <a href="#removed_4" class="md-nav__link">
2731
3982
  Removed
2732
3983
  </a>
2733
3984
 
@@ -3115,6 +4366,13 @@
3115
4366
  Added Site Fields to Location (#2954)
3116
4367
  </a>
3117
4368
 
4369
+ </li>
4370
+
4371
+ <li class="md-nav__item">
4372
+ <a href="#added-depth-rest-api-query-parameter" class="md-nav__link">
4373
+ Added Depth REST API Query Parameter
4374
+ </a>
4375
+
3118
4376
  </li>
3119
4377
 
3120
4378
  <li class="md-nav__item">
@@ -3176,6 +4434,20 @@
3176
4434
  Collapsed nautobot.utilities into nautobot.core (#2721)
3177
4435
  </a>
3178
4436
 
4437
+ </li>
4438
+
4439
+ <li class="md-nav__item">
4440
+ <a href="#rest-api-versioning-behavior-2799" class="md-nav__link">
4441
+ REST API Versioning Behavior (#2799)
4442
+ </a>
4443
+
4444
+ </li>
4445
+
4446
+ <li class="md-nav__item">
4447
+ <a href="#revamped-csv-import-and-export-2569-3715" class="md-nav__link">
4448
+ Revamped CSV Import and Export (#2569, #3715)
4449
+ </a>
4450
+
3179
4451
  </li>
3180
4452
 
3181
4453
  <li class="md-nav__item">
@@ -3233,6 +4505,20 @@
3233
4505
  <nav class="md-nav" aria-label="Removed">
3234
4506
  <ul class="md-nav__list">
3235
4507
 
4508
+ <li class="md-nav__item">
4509
+ <a href="#removed-brief-rest-api-query-parameter" class="md-nav__link">
4510
+ Removed Brief REST API Query Parameter
4511
+ </a>
4512
+
4513
+ </li>
4514
+
4515
+ <li class="md-nav__item">
4516
+ <a href="#removed-django-cacheops-1721" class="md-nav__link">
4517
+ Removed django-cacheops (#1721)
4518
+ </a>
4519
+
4520
+ </li>
4521
+
3236
4522
  <li class="md-nav__item">
3237
4523
  <a href="#removed-redundant-filter-fields-2804" class="md-nav__link">
3238
4524
  Removed Redundant Filter Fields (#2804)
@@ -3258,11 +4544,11 @@
3258
4544
  </li>
3259
4545
 
3260
4546
  <li class="md-nav__item">
3261
- <a href="#v200-alpha3-2023-04-13" class="md-nav__link">
3262
- v2.0.0-alpha.3 (2023-04-13)
4547
+ <a href="#v200-beta1-2023-06-06" class="md-nav__link">
4548
+ v2.0.0-beta.1 (2023-06-06)
3263
4549
  </a>
3264
4550
 
3265
- <nav class="md-nav" aria-label="v2.0.0-alpha.3 (2023-04-13)">
4551
+ <nav class="md-nav" aria-label="v2.0.0-beta.1 (2023-06-06)">
3266
4552
  <ul class="md-nav__list">
3267
4553
 
3268
4554
  <li class="md-nav__item">
@@ -3284,6 +4570,13 @@
3284
4570
  Dependencies
3285
4571
  </a>
3286
4572
 
4573
+ </li>
4574
+
4575
+ <li class="md-nav__item">
4576
+ <a href="#fixed" class="md-nav__link">
4577
+ Fixed
4578
+ </a>
4579
+
3287
4580
  </li>
3288
4581
 
3289
4582
  <li class="md-nav__item">
@@ -3299,11 +4592,11 @@
3299
4592
  </li>
3300
4593
 
3301
4594
  <li class="md-nav__item">
3302
- <a href="#v200-alpha2-2023-03-29" class="md-nav__link">
3303
- v2.0.0-alpha.2 (2023-03-29)
4595
+ <a href="#v200-alpha3-2023-04-13" class="md-nav__link">
4596
+ v2.0.0-alpha.3 (2023-04-13)
3304
4597
  </a>
3305
4598
 
3306
- <nav class="md-nav" aria-label="v2.0.0-alpha.2 (2023-03-29)">
4599
+ <nav class="md-nav" aria-label="v2.0.0-alpha.3 (2023-04-13)">
3307
4600
  <ul class="md-nav__list">
3308
4601
 
3309
4602
  <li class="md-nav__item">
@@ -3328,14 +4621,55 @@
3328
4621
  </li>
3329
4622
 
3330
4623
  <li class="md-nav__item">
3331
- <a href="#fixed" class="md-nav__link">
4624
+ <a href="#removed_2" class="md-nav__link">
4625
+ Removed
4626
+ </a>
4627
+
4628
+ </li>
4629
+
4630
+ </ul>
4631
+ </nav>
4632
+
4633
+ </li>
4634
+
4635
+ <li class="md-nav__item">
4636
+ <a href="#v200-alpha2-2023-03-29" class="md-nav__link">
4637
+ v2.0.0-alpha.2 (2023-03-29)
4638
+ </a>
4639
+
4640
+ <nav class="md-nav" aria-label="v2.0.0-alpha.2 (2023-03-29)">
4641
+ <ul class="md-nav__list">
4642
+
4643
+ <li class="md-nav__item">
4644
+ <a href="#added_3" class="md-nav__link">
4645
+ Added
4646
+ </a>
4647
+
4648
+ </li>
4649
+
4650
+ <li class="md-nav__item">
4651
+ <a href="#changed_3" class="md-nav__link">
4652
+ Changed
4653
+ </a>
4654
+
4655
+ </li>
4656
+
4657
+ <li class="md-nav__item">
4658
+ <a href="#dependencies_2" class="md-nav__link">
4659
+ Dependencies
4660
+ </a>
4661
+
4662
+ </li>
4663
+
4664
+ <li class="md-nav__item">
4665
+ <a href="#fixed_1" class="md-nav__link">
3332
4666
  Fixed
3333
4667
  </a>
3334
4668
 
3335
4669
  </li>
3336
4670
 
3337
4671
  <li class="md-nav__item">
3338
- <a href="#removed_2" class="md-nav__link">
4672
+ <a href="#removed_3" class="md-nav__link">
3339
4673
  Removed
3340
4674
  </a>
3341
4675
 
@@ -3355,28 +4689,28 @@
3355
4689
  <ul class="md-nav__list">
3356
4690
 
3357
4691
  <li class="md-nav__item">
3358
- <a href="#added_3" class="md-nav__link">
4692
+ <a href="#added_4" class="md-nav__link">
3359
4693
  Added
3360
4694
  </a>
3361
4695
 
3362
4696
  </li>
3363
4697
 
3364
4698
  <li class="md-nav__item">
3365
- <a href="#changed_3" class="md-nav__link">
4699
+ <a href="#changed_4" class="md-nav__link">
3366
4700
  Changed
3367
4701
  </a>
3368
4702
 
3369
4703
  </li>
3370
4704
 
3371
4705
  <li class="md-nav__item">
3372
- <a href="#fixed_1" class="md-nav__link">
4706
+ <a href="#fixed_2" class="md-nav__link">
3373
4707
  Fixed
3374
4708
  </a>
3375
4709
 
3376
4710
  </li>
3377
4711
 
3378
4712
  <li class="md-nav__item">
3379
- <a href="#removed_3" class="md-nav__link">
4713
+ <a href="#removed_4" class="md-nav__link">
3380
4714
  Removed
3381
4715
  </a>
3382
4716
 
@@ -3416,6 +4750,8 @@
3416
4750
  <p>DeviceRole, RackRole, IPAM Role, and IPAddressRoleChoices have all been merged into a single generic Role model. A role can now be created and associated to one or more of the content-types that previously implemented role as a field. These model content-types include dcim.device, dcim.rack, virtualization.virtualmachine, ipam.ipaddress, ipam.prefix, and ipam.vlan.</p>
3417
4751
  <h4 id="added-site-fields-to-location-2954">Added Site Fields to Location (<a href="https://github.com/nautobot/nautobot/issues/2954">#2954</a>)<a class="headerlink" href="#added-site-fields-to-location-2954" title="Permanent link">&para;</a></h4>
3418
4752
  <p>Added Site Model Fields to Location. Location Model now has <code>asn</code>, <code>comments</code>, <code>contact_email</code>, <code>contact_name</code>, <code>contact_phone</code>, <code>facility</code>, <code>latitude</code>, <code>longitude</code>, <code>physical_address</code>, <code>shipping_address</code> and <code>time_zone</code> fields.</p>
4753
+ <h4 id="added-depth-rest-api-query-parameter">Added Depth REST API Query Parameter<a class="headerlink" href="#added-depth-rest-api-query-parameter" title="Permanent link">&para;</a></h4>
4754
+ <p>Added the <code>?depth</code> query parameter in Nautobot v2.X to replace the <code>?brief</code> parameter in the REST API. It enables <a href="https://www.django-rest-framework.org/api-guide/serializers/#specifying-nested-serialization">nested serialization</a> functionality and offers a more dynamic and comprehensive browsable API. It allows users greater control of the API response data and it is available for both retrieving a single object and a list of objects. This parameter is a positive integer value that can range from 0 to 10. To learn more more, check out the <a href="../rest-api/overview.md/#depth-query-parameter">documentation on the <code>?depth</code> query parameter</a>.</p>
3419
4755
  <h4 id="natural-key-support-across-nautobot-models-2900">Natural Key Support Across Nautobot Models (<a href="https://github.com/nautobot/nautobot/issues/2900">#2900</a>)<a class="headerlink" href="#natural-key-support-across-nautobot-models-2900" title="Permanent link">&para;</a></h4>
3420
4756
  <p>Nautobot's <code>BaseModel</code> base class and related classes now implement automatic support for Django <a href="https://docs.djangoproject.com/en/3.2/topics/serialization/#natural-keys">natural keys</a> for lookup and referencing, as well as supporting a <code>natural_key_slug</code> concept similar to that introduced by <code>django-natural-keys</code>. (Nautobot does not depend on <code>django-natural-keys</code> but its implementation is heavily inspired by that project.) For example:</p>
3421
4757
  <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="n">DeviceType</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">first</span><span class="p">()</span><span class="o">.</span><span class="n">natural_key</span><span class="p">()</span>
@@ -3535,6 +4871,12 @@
3535
4871
  <p>Check out the <a href="../installation/region-and-site-data-migration-guide.html#region-and-site-related-data-model-migration-guide-for-existing-nautobot-app-installations">Region and Site Related Data Model Migration Guide</a> to learn how to migrate your Nautobot Apps and data models from <code>Site</code> and <code>Region</code> to <code>Location</code>.</p>
3536
4872
  <h4 id="collapsed-nautobotutilities-into-nautobotcore-2721">Collapsed <code>nautobot.utilities</code> into <code>nautobot.core</code> (<a href="https://github.com/nautobot/nautobot/issues/2721">#2721</a>)<a class="headerlink" href="#collapsed-nautobotutilities-into-nautobotcore-2721" title="Permanent link">&para;</a></h4>
3537
4873
  <p><code>nautobot.utilities</code> no longer exists as a separate Python module or Django app. Its functionality has been collapsed into the <code>nautobot.core</code> app. See details at <a href="../installation/upgrading-from-nautobot-v1.html#python-code-location-changes">Python Code Location Changes</a>.</p>
4874
+ <h4 id="rest-api-versioning-behavior-2799">REST API Versioning Behavior (<a href="https://github.com/nautobot/nautobot/issues/2799">#2799</a>)<a class="headerlink" href="#rest-api-versioning-behavior-2799" title="Permanent link">&para;</a></h4>
4875
+ <p>In Nautobot 2.0 and later, the REST API defaults, when the caller doesn't request a specific API version, to using the latest available version of the REST API. This is a change from Nautobot 1.x, where the default behavior was to use the 1.2 version of the REST API even when newer versions were available.</p>
4876
+ <h4 id="revamped-csv-import-and-export-2569-3715">Revamped CSV Import and Export (<a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a>, <a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a>)<a class="headerlink" href="#revamped-csv-import-and-export-2569-3715" title="Permanent link">&para;</a></h4>
4877
+ <p>Exporting objects and lists of objects to CSV format has been totally reimplemented in a new framework for ease of use and maintainability. Instead of accessing <code>http://nautobot/&lt;app&gt;/&lt;model&gt;/?export</code> you will now use the URL pattern <code>http://nautobot/api/&lt;app&gt;/&lt;model&gt;/?format=csv</code>, as the new CSV renderer is based on the REST API serializer definitions. This results in substantially more comprehensive CSV representations of many models.</p>
4878
+ <p>Conversely, importing objects from CSV format has also been reimplemented in the same new framework. The REST API can now accept CSV files as well as the existing JSON support, and the UI for importing CSVs uses this same framework behind the scenes.</p>
4879
+ <p>An immediate benefit you can notice from this reimplementation is that CSVs should now <strong>generally</strong> be "round-trip" capable, meaning that you can export a set of records to CSV format and then import that CSV into a different Nautobot instance (or delete the records and use the CSV to recreate them) without needing to "massage" the CSV into a different set of columns or fields.</p>
3538
4880
  <h4 id="renamed-database-foreign-keys-and-related-names-2520">Renamed Database Foreign Keys and Related Names (<a href="https://github.com/nautobot/nautobot/issues/2520">#2520</a>)<a class="headerlink" href="#renamed-database-foreign-keys-and-related-names-2520" title="Permanent link">&para;</a></h4>
3539
4881
  <p>Some Foreign Key fields have been renamed to follow a more self-consistent pattern across the Nautobot app. This change is aimed to offer more clarity and predictability when it comes to related object database operations:</p>
3540
4882
  <p>For example in v1.x to create a circuit object with <code>type</code> "circuit-type-1", you would do:</p>
@@ -3596,6 +4938,11 @@
3596
4938
  <p>Existing prefixes with a status of "Container" will be migrated to the "Container" type. Existing prefixes with <code>is_pool</code> set will be migrated to the "Pool" type. Prefixes with both <code>is_pool</code> set and a status of "Container" will be migrated to the "Pool" type.</p>
3597
4939
  <p>The "Container" status will be removed and all prefixes will be migrated to the "Active" status if it exists. If the "Active" status was deleted, prefixes will be migrated to the first available prefix status in the database that is not "Container".</p>
3598
4940
  <h3 id="removed">Removed<a class="headerlink" href="#removed" title="Permanent link">&para;</a></h3>
4941
+ <h4 id="removed-brief-rest-api-query-parameter">Removed Brief REST API Query Parameter<a class="headerlink" href="#removed-brief-rest-api-query-parameter" title="Permanent link">&para;</a></h4>
4942
+ <p>Support for <code>?brief</code> REST API query parameter and <code>Nested*Serializers</code> have been removed in Nautobot v2.X. They are replaced by the new <a href="../rest-api/overview.md/#depth-query-parameter"><code>?depth</code> query parameter</a>.</p>
4943
+ <h4 id="removed-django-cacheops-1721">Removed <code>django-cacheops</code> (<a href="https://github.com/nautobot/nautobot/issues/1721">#1721</a>)<a class="headerlink" href="#removed-django-cacheops-1721" title="Permanent link">&para;</a></h4>
4944
+ <p>Nautobot no longer uses <code>django-cacheops</code> for caching of database queries or other information. In some cases this has been replaced by the use of Django's native Redis caching capabilities.</p>
4945
+ <p>The configuration settings <code>CACHEOPS</code>, <code>CACHEOPS_DEFAULTS</code>, <code>CACHEOPS_DEGRADE_ON_FAILURE</code>, <code>CACHEOPS_ENABLED</code>, <code>CACHEOPS_HEALTH_CHECK_ENABLED</code>, <code>CACHEOPS_REDIS</code>, etc. are now unused by Nautobot and may be removed from your configuration.</p>
3599
4946
  <h4 id="removed-redundant-filter-fields-2804">Removed Redundant Filter Fields (<a href="https://github.com/nautobot/nautobot/pull/2804">#2804</a>)<a class="headerlink" href="#removed-redundant-filter-fields-2804" title="Permanent link">&para;</a></h4>
3600
4947
  <p>As a part of breaking changes made in v2.X, shadowed filter/filterset fields are being removed throughout Nautobot.</p>
3601
4948
  <p>In Nautobot 1.x, for some of the foreign-key related fields:
@@ -3610,20 +4957,173 @@
3610
4957
  <h4 id="removed-rq-support-2523">Removed RQ support (<a href="https://github.com/nautobot/nautobot/issue/2523">#2523</a>)<a class="headerlink" href="#removed-rq-support-2523" title="Permanent link">&para;</a></h4>
3611
4958
  <p>Support for RQ and <code>django-rq</code>, deprecated since Nautobot 1.1.0, has been fully removed from Nautobot 2.0.</p>
3612
4959
  <!-- towncrier release notes start -->
3613
- <h2 id="v200-alpha3-2023-04-13">v2.0.0-alpha.3 (2023-04-13)<a class="headerlink" href="#v200-alpha3-2023-04-13" title="Permanent link">&para;</a></h2>
4960
+ <h2 id="v200-beta1-2023-06-06">v2.0.0-beta.1 (2023-06-06)<a class="headerlink" href="#v200-beta1-2023-06-06" title="Permanent link">&para;</a></h2>
3614
4961
  <h3 id="added_1">Added<a class="headerlink" href="#added_1" title="Permanent link">&para;</a></h3>
3615
4962
  <ul>
3616
- <li><a href="https://github.com/nautobot/nautobot/issues/3337">#3337</a> - Add <code>Namespace</code> model to IPAM.</li>
4963
+ <li><a href="https://github.com/nautobot/nautobot/issues/851">#851</a> - Added list view with CSV import/export buttons for <code>CircuitTermination</code> objects.</li>
4964
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - Added <code>created</code> and <code>last_updated</code> fields on the <code>VMInterface</code> model. When migrating to this release, these fields will default to <code>None</code> for any pre-existing instances of this model.</li>
4965
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Added job stdout/stderr redirection to database <code>JobLogEntry</code> records.</li>
4966
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Added support to skip job logs from being written to the database.</li>
4967
+ <li><a href="https://github.com/nautobot/nautobot/issues/2901">#2901</a> - Added <code>get_absolute_url</code> method on <code>BaseModel</code> which will attempt to resolve the detail view route for all subclassed models.</li>
4968
+ <li><a href="https://github.com/nautobot/nautobot/issues/3192">#3192</a> - Added a data migration to migrate existing ScheduledJob instances to support new format.</li>
4969
+ <li><a href="https://github.com/nautobot/nautobot/issues/3203">#3203</a> - Added a <code>nautobot-server build_ui</code> command for building the web UI</li>
4970
+ <li><a href="https://github.com/nautobot/nautobot/issues/3237">#3237</a> - Added Node.JS to Docker final image, bundled <code>node_modules</code> to speed up rebuilds.</li>
4971
+ <li><a href="https://github.com/nautobot/nautobot/issues/3615">#3615</a> - Added toggle buttons between Legacy UI and New UI.</li>
4972
+ <li><a href="https://github.com/nautobot/nautobot/issues/3637">#3637</a> - Added <code>pre_delete</code> signal to nullify the device's <code>primary_ip</code> field/fields if its primary ips are removed from interface's <code>ip_addresses</code> m2m field.</li>
4973
+ <li><a href="https://github.com/nautobot/nautobot/issues/3637">#3637</a> - Added <code>pre_save</code> signal to catch invalid operations in manual creations of <code>IPAddressToInterface</code>.</li>
4974
+ <li><a href="https://github.com/nautobot/nautobot/issues/3637">#3637</a> - Added <code>unique_together</code> for through model <code>IPAddressToInterface</code>.</li>
4975
+ <li><a href="https://github.com/nautobot/nautobot/issues/3651">#3651</a> - Added <code>home_url</code>, <code>config_url</code>, and <code>docs_url</code> keys to the <code>/api/plugins/installed-plugins/</code> REST API endpoint.</li>
4976
+ <li><a href="https://github.com/nautobot/nautobot/issues/3679">#3679</a> - Added optional <code>api</code> argument to <code>BaseModel.get_absolute_url()</code>.</li>
4977
+ <li><a href="https://github.com/nautobot/nautobot/issues/3702">#3702</a> - Added basic Redis caching for <code>TreeModel.display</code> to reduce redundant queries when listing such objects.</li>
4978
+ <li><a href="https://github.com/nautobot/nautobot/issues/3708">#3708</a> - Added sorting support to the REST API via the <code>sort</code> query parameter.</li>
4979
+ <li><a href="https://github.com/nautobot/nautobot/issues/3713">#3713</a> - Added <code>celery_kwargs</code> field to <code>JobResult</code> and <code>ScheduledJob</code> models.</li>
4980
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Added generic test for GET/PUT round-trip in the REST API.</li>
4981
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Added support for <code>{"value": "x"}</code> format when writing to ChoiceFields in the REST API, making round-trip data easier.</li>
4982
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Added <code>NautobotCSVParser</code> class, providing the ability for the REST API to accept CSV as an input format.</li>
4983
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Added ability to specify a <code>parent_bay</code> when creating a Device via the REST API.</li>
4984
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Added <code>APIViewTestCases.CreateObjectViewTestCase.test_recreate_object_csv</code> generic test, testing the "round-trip" capability of each API endpoint's CSV export and import.</li>
4985
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Added (temporary) <code>natural_key_field_names</code> to <code>IPAddress</code>, <code>Prefix</code>, <code>RackReservation</code>, <code>ScheduledJob</code>, and <code>Service</code> models.</li>
4986
+ <li><a href="https://github.com/nautobot/nautobot/issues/3721">#3721</a> - Added App provided model view override.</li>
4987
+ <li><a href="https://github.com/nautobot/nautobot/issues/3722">#3722</a> - Added <code>termination_type</code> filter to <code>CableFilterSet</code>.</li>
4988
+ <li><a href="https://github.com/nautobot/nautobot/issues/3722">#3722</a> - Added <code>natural_key_slug</code> field to REST API serializers.</li>
4989
+ <li><a href="https://github.com/nautobot/nautobot/issues/3736">#3736</a> - Added App provided custom route view.</li>
4990
+ <li><a href="https://github.com/nautobot/nautobot/issues/3741">#3741</a> - Added natural-key-slug information to UI detail views.</li>
4991
+ <li><a href="https://github.com/nautobot/nautobot/issues/3754">#3754</a> - Added loading widget to the left of the ObjectListTable Buttons after initial data load.</li>
4992
+ <li><a href="https://github.com/nautobot/nautobot/issues/3759">#3759</a> - Implemented IPAM Namespace &amp; parenting data migrations.</li>
4993
+ <li><a href="https://github.com/nautobot/nautobot/issues/3767">#3767</a> - Added <code>detail-view-config</code> API endpoint to <code>ModelViewSetMixin</code>.</li>
4994
+ <li><a href="https://github.com/nautobot/nautobot/issues/3804">#3804</a> - Added feature to redirect all add and edit views to legacy UI.</li>
4995
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Added <code>bool</code> return value for <code>Nautobot.extras.datasources.git.ensure_git_repository()</code> to indicate whether the filesystem was changed.</li>
3617
4996
  </ul>
3618
4997
  <h3 id="changed_1">Changed<a class="headerlink" href="#changed_1" title="Permanent link">&para;</a></h3>
3619
4998
  <ul>
4999
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - The base class for all <code>tags</code> fields on <code>PrimaryModel</code> subclasses is now <code>nautobot.core.models.fields.TagsField</code> rather than <code>taggit.managers.TaggableManager</code>. Any apps using <code>PrimaryModel</code> as a base class will likely need to generate and run a schema migration to reflect this change.</li>
5000
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Changed <code>JobLogEntry.log_level</code> choices from <code>default</code>, <code>info</code>, <code>success</code>, <code>warning</code>, <code>failure</code> to Python default logging levels <code>debug</code>, <code>info</code>, <code>warning</code>, <code>error</code> and <code>critical</code>.</li>
5001
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Changed job logging from custom log methods on the <code>BaseJob</code> class to celery's <code>get_task_logger</code> logging implementation.</li>
5002
+ <li><a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a> - Revamped CSV export functionality to use REST API serializers for more self-consistency and reduced boilerplate.</li>
5003
+ <li><a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a> - Revised the natural key for <code>SecretsGroupAssociation</code> through-table model.</li>
5004
+ <li><a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a> - Changed behavior of <code>JobLogEntry.display</code> REST API field to match the model behavior.</li>
5005
+ <li><a href="https://github.com/nautobot/nautobot/issues/2799">#2799</a> - Changed REST API versioning to default to latest instead of earliest when unspecified by the client.</li>
5006
+ <li><a href="https://github.com/nautobot/nautobot/issues/3042">#3042</a> - Removed all <code>Nested*Serializer</code> classes in favor of a <code>depth</code>-based REST API design.</li>
5007
+ <li><a href="https://github.com/nautobot/nautobot/issues/3042">#3042</a> - The <code>?brief=True</code> REST API parameter has been replaced by a new <code>?depth=&lt;0-10&gt;</code> API parameter, allowing greater control of the returned data.</li>
5008
+ <li><a href="https://github.com/nautobot/nautobot/issues/3228">#3228</a> - Removed <code>run_job</code> Celery task and updated <code>BaseJob</code> to subclass Celery <code>Task</code>.</li>
5009
+ <li><a href="https://github.com/nautobot/nautobot/issues/3449">#3449</a> - Renamed <code>Relationship</code> model attribute <code>slug</code> to <code>key</code>.</li>
5010
+ <li><a href="https://github.com/nautobot/nautobot/issues/3449">#3449</a> - Renamed <code>Relationship</code> model attribute <code>name</code> to <code>label</code>.</li>
5011
+ <li><a href="https://github.com/nautobot/nautobot/issues/3450">#3450</a> - Renamed <code>ComputedField</code> model attribute <code>slug</code> to <code>key</code>.</li>
5012
+ <li><a href="https://github.com/nautobot/nautobot/issues/3465">#3465</a> - Renamed IPAddress <code>prefix_length</code> field to <code>mask_length</code>.</li>
5013
+ <li><a href="https://github.com/nautobot/nautobot/issues/3465">#3465</a> - Made IPAddress <code>host</code> field non-modifiable.</li>
5014
+ <li><a href="https://github.com/nautobot/nautobot/issues/3527">#3527</a> - Restructured navigation menus to context-centered design for 2.0.</li>
5015
+ <li><a href="https://github.com/nautobot/nautobot/issues/3552">#3552</a> - Extracted data tables from upgrading-from-nautobot-v1.md into separate YAML files.</li>
5016
+ <li><a href="https://github.com/nautobot/nautobot/issues/3586">#3586</a> - Changed REST API for Device and VirtualMachine to omit <code>config_context</code> by default and only include it when requested by using the <code>?include=config_context</code> query parameter.</li>
5017
+ <li><a href="https://github.com/nautobot/nautobot/issues/3607">#3607</a> - Changed the default <code>lookup_field</code> for <code>NautobotUIViewSet</code> to <code>"pk"</code> instead of <code>"slug"</code>.</li>
5018
+ <li><a href="https://github.com/nautobot/nautobot/issues/3650">#3650</a> - Updated ui 2.0 jsconfig.json to exclude <code>node_modules</code> and <code>build</code> directories.</li>
5019
+ <li><a href="https://github.com/nautobot/nautobot/issues/3663">#3663</a> - Modified <code>delete_button</code> and <code>edit_button</code> template tags to lookup <code>pk</code> and <code>slug</code> without the need to specify the lookup key.</li>
5020
+ <li><a href="https://github.com/nautobot/nautobot/issues/3679">#3679</a> - Changed <code>BaseModelSerializer</code> to inherit from <code>HyperlinkedModelSerializer</code> instead of <code>ModelSerializer</code>. This changed the REST API representation of related objects (at depth 0) from UUIDs to API hyperlinks to improve discoverability and usability of the API.</li>
5021
+ <li><a href="https://github.com/nautobot/nautobot/issues/3691">#3691</a> - Implemented <code>Meta.list_display_fields</code> for all serializers.</li>
5022
+ <li><a href="https://github.com/nautobot/nautobot/issues/3692">#3692</a> - Updated <code>JobResult</code> manager <code>store_result</code> method to censor sensitive variables.</li>
5023
+ <li><a href="https://github.com/nautobot/nautobot/issues/3702">#3702</a> - Changed nested serialization to never include tags, computed fields, relationships, and other M2M fields.</li>
5024
+ <li><a href="https://github.com/nautobot/nautobot/issues/3713">#3713</a> - Changed <code>Job.read_only</code> field to an informational field set by the job author and removed the ability for administrators to override this field. This field no longer changes the behavior of Nautobot core.</li>
5025
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Reworked CSV import to be based on the REST API implementation instead of custom forms and views.</li>
5026
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Changed the parameters and behavior of <code>CSVDataField</code> and <code>CSVFileField</code> in support of the new CSV import framework.</li>
5027
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Changed the <code>user</code> parameter on the RackReservation REST API to optional; if omitted, the requesting user will now be automatically selected as the owner of any created reservations.</li>
5028
+ <li><a href="https://github.com/nautobot/nautobot/issues/3742">#3742</a> - Centered the LoadingWidget component in UI.</li>
5029
+ <li><a href="https://github.com/nautobot/nautobot/issues/3742">#3742</a> - Lightened the color of the LoadingWidget text to gray-3.</li>
5030
+ <li><a href="https://github.com/nautobot/nautobot/issues/3742">#3742</a> - Lightened the color of the skeleton component when loading tables.</li>
5031
+ <li><a href="https://github.com/nautobot/nautobot/issues/3744">#3744</a> - A batch of improvements to state handling in the UI to solve loading bugs.</li>
5032
+ <li><a href="https://github.com/nautobot/nautobot/issues/3767">#3767</a> - Enhanced error handling for fetcher in React UI <code>ObjectRetrieveView</code>.</li>
5033
+ <li><a href="https://github.com/nautobot/nautobot/issues/3785">#3785</a> - Deprecated <code>StatusModel</code> mixin in favor of directly including a <code>StatusField</code> as needed.</li>
5034
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed Job <code>class_path</code> property from <code>&lt;source&gt;/&lt;module&gt;/&lt;ClassName&gt;</code> to simply <code>&lt;module&gt;.&lt;ClassName&gt;</code>.</li>
5035
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed GitRepository slugs to use underscores rather than dashes so they can be used as Python module names.</li>
5036
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed Job <code>module_name</code> for Git-derived Jobs to <code>&lt;git_repository_slug&gt;.jobs.&lt;module&gt;</code>.</li>
5037
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - System-provided Jobs are now enabled by default for running.</li>
5038
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed return signature for <code>Nautobot.core.utils.git.GitRepo.checkout()</code> to include whether the filesystem was changed.</li>
5039
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed <code>job</code> filter on JobButton, JobHook, JobResult, and ScheduledJob to be name-based rather than slug-based.</li>
5040
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed <code>Job.runnable</code> property to not consider whether the <code>job_class</code> is set, as a performance optimization.</li>
5041
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Moved test Jobs from <code>nautobot/extras/tests/example_jobs/test_*.py</code> to <code>nautobot/extras/test_jobs/*.py</code> to avoid unnecessary loading by the <code>unittest</code> runner.</li>
5042
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Changed client-side slug construction (legacy UI) to use underscores rather than dashes.</li>
5043
+ </ul>
5044
+ <h3 id="dependencies">Dependencies<a class="headerlink" href="#dependencies" title="Permanent link">&para;</a></h3>
5045
+ <ul>
5046
+ <li><a href="https://github.com/nautobot/nautobot/issues/1721">#1721</a> - Removed dependency on <code>django-cacheops</code>.</li>
5047
+ <li><a href="https://github.com/nautobot/nautobot/issues/3672">#3672</a> - Changed <code>napalm</code> dependency to 4.x release in order to allow Netmiko 4.x to install. Dependency resolution resulted in removing the following packages: <code>ciscoconfparse</code>, <code>deprecat</code>, <code>dnspython</code>, <code>loguru</code>, <code>toml</code>, <code>win32-setctime</code>.</li>
5048
+ </ul>
5049
+ <h3 id="fixed">Fixed<a class="headerlink" href="#fixed" title="Permanent link">&para;</a></h3>
5050
+ <ul>
5051
+ <li><a href="https://github.com/nautobot/nautobot/issues/3378">#3378</a> - Re-enabled skipped tests.</li>
5052
+ <li><a href="https://github.com/nautobot/nautobot/issues/3437">#3437</a> - Fixed the possibility of inadvertently applying the same <code>Tag</code> to the same object multiple times by adding appropriate uniqueness constraints on the <code>TaggedItem</code> through table.</li>
5053
+ <li><a href="https://github.com/nautobot/nautobot/issues/3518">#3518</a> - Fixed an error seen when running the <code>extras.0061_collect_roles_from_related_apps_roles</code> migration.</li>
5054
+ <li><a href="https://github.com/nautobot/nautobot/issues/3545">#3545</a> - Fixed a bug in Job edit view template where slug was missing, preventing creation from happening.</li>
5055
+ <li><a href="https://github.com/nautobot/nautobot/issues/3591">#3591</a> - Fixed a few errors in the v2.0 migration documentation.</li>
5056
+ <li><a href="https://github.com/nautobot/nautobot/issues/3592">#3592</a> - Fixed heuristic for duplicate calls to <code>populate_model_features_registry</code> causing skipped updates.</li>
5057
+ <li><a href="https://github.com/nautobot/nautobot/issues/3618">#3618</a> - Fix corrupted <code>package-lock.json</code> which was causing test failures.</li>
5058
+ <li><a href="https://github.com/nautobot/nautobot/issues/3675">#3675</a> - Fixed job edit form silently failing.</li>
5059
+ <li><a href="https://github.com/nautobot/nautobot/issues/3687">#3687</a> - Fixed a bug in <code>Prefix.reparent_ips()</code> that was too greedy in reparenting IP addresses when child prexies were deeply nested (such as /31)</li>
5060
+ <li><a href="https://github.com/nautobot/nautobot/issues/3702">#3702</a> - Added some missing <code>select_related</code> on <code>DeviceViewSet</code> and <code>PrefixViewSet</code> to improve performance.</li>
5061
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Fixed inability to set null via the REST API on <code>Interface.mac_address</code> and <code>VMInterface.mac_address</code>.</li>
5062
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Fixed inability to set null via the REST API on <code>DeviceType.front_image</code> and <code>DeviceType.rear_image</code>.</li>
5063
+ <li><a href="https://github.com/nautobot/nautobot/issues/3714">#3714</a> - Fixed <code>password</code> being incorrectly marked as a required field when editing a User via the REST API.</li>
5064
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Fixed inability to set the <code>failover_strategy</code> field as unspecified/blank when creating/updating <code>DeviceRedundancyGroup</code> via the REST API.</li>
5065
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Fixed incorrect interim natural key definition for <code>Device</code> and <code>VRF</code> models.</li>
5066
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Fixed the possibility of setting values for nonexistent custom fields via the REST API.</li>
5067
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Fixed incorrect password-handling logic when creating/updating a <code>User</code> via the REST API.</li>
5068
+ <li><a href="https://github.com/nautobot/nautobot/issues/3716">#3716</a> - Fixed an error when attempting to edit a user via the Nautobot admin UI.</li>
5069
+ <li><a href="https://github.com/nautobot/nautobot/issues/3722">#3722</a> - Fixed incorrect filter forms on console-connections, power-connections, and interface-connections list views.</li>
5070
+ <li><a href="https://github.com/nautobot/nautobot/issues/3729">#3729</a> - Fixed a bug that references a non-existent Relationship model attribute in Relationship migration file.</li>
5071
+ <li><a href="https://github.com/nautobot/nautobot/issues/3731">#3731</a> - Fixed <code>debugpy</code> workflow not working with the removal of <code>manage.py</code>.</li>
5072
+ <li><a href="https://github.com/nautobot/nautobot/issues/3737">#3737</a> - Fixed broken <code>--cache_test_fixtures</code> when running tests.</li>
5073
+ <li><a href="https://github.com/nautobot/nautobot/issues/3740">#3740</a> - Fixed container builds failed resulting from #3731.</li>
5074
+ <li><a href="https://github.com/nautobot/nautobot/issues/3741">#3741</a> - Fixed missing time-zone information on various Job-related tests in <code>nautobot.extras.tests.test_views</code>.</li>
5075
+ <li><a href="https://github.com/nautobot/nautobot/issues/3741">#3741</a> - Fixed various cable-termination API serializers incorrectly reporting the <code>cable</code> field as writable.</li>
5076
+ <li><a href="https://github.com/nautobot/nautobot/issues/3768">#3768</a> - Fixed new UI homepage breaks if recent object-changes reference objects that no longer exist.</li>
5077
+ <li><a href="https://github.com/nautobot/nautobot/issues/3785">#3785</a> - Fixed undesirable nullability of <code>status</code> fields to correctly match their intended usage.</li>
5078
+ <li><a href="https://github.com/nautobot/nautobot/issues/3786">#3786</a> - Fixed default descriptions of REST API actions in the OpenAPI schema to be more accurate.</li>
5079
+ <li><a href="https://github.com/nautobot/nautobot/issues/3792">#3792</a> - Fixed logging output not being suppressed during unit and integration tests.</li>
5080
+ <li><a href="https://github.com/nautobot/nautobot/issues/3828">#3828</a> - Fixed a bug caused by <a href="https://github.com/nautobot/nautobot/issues/3637">#3637</a> that prevents devices with primary_ip from being deleted.</li>
5081
+ <li><a href="https://github.com/nautobot/nautobot/issues/3829">#3829</a> - Fixed build failure caused by registered App missing ui/index.js.</li>
5082
+ <li><a href="https://github.com/nautobot/nautobot/issues/3833">#3833</a> - Fixed build failure caused by registered App missing urls.py file or a urlpatterns.</li>
5083
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Removed leftover/non-functional <code>Source</code> tab from job_approval_request.html.</li>
5084
+ <li><a href="https://github.com/nautobot/nautobot/issues/3864">#3864</a> - Fixed cases where Device.role was null, incongruent with the enforcement in the API and UI.</li>
5085
+ </ul>
5086
+ <h3 id="removed_1">Removed<a class="headerlink" href="#removed_1" title="Permanent link">&para;</a></h3>
5087
+ <ul>
5088
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - Removed monkey-patching of <code>taggit.managers.TaggableManager</code>.</li>
5089
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - Removed <code>nautobot.extras.utils.is_taggable</code>; use <code>nautobot.core.models.utils.is_taggable</code> instead.</li>
5090
+ <li><a href="https://github.com/nautobot/nautobot/issues/1633">#1633</a> - Removed backward-compatibility with <code>taggit</code> 1.x Python API; instead of <code>object.tags.set(tag1, tag2, tag3)</code> you must now do <code>object.tags.set([tag1, tag2, tag3])</code>.</li>
5091
+ <li><a href="https://github.com/nautobot/nautobot/issues/1721">#1721</a> - Removed dependency on and usage of <code>django-cacheops</code>.</li>
5092
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Removed custom <code>BaseJob</code> logging methods <code>_log</code>, <code>log</code>, <code>log_debug</code>, <code>log_success</code>, <code>log_info</code>, <code>log_warning</code> and <code>log_failure</code>.</li>
5093
+ <li><a href="https://github.com/nautobot/nautobot/issues/2331">#2331</a> - Removed <code>active_test</code> and <code>failed</code> properties from <code>BaseJob</code> class.</li>
5094
+ <li><a href="https://github.com/nautobot/nautobot/issues/2569">#2569</a> - Removed <code>csv_headers</code> and <code>to_csv()</code> from all models as they are no longer needed.</li>
5095
+ <li><a href="https://github.com/nautobot/nautobot/issues/2885">#2885</a> - Removed <code>changelog_url</code> from <code>ObjectView</code>'s context.</li>
5096
+ <li><a href="https://github.com/nautobot/nautobot/issues/3228">#3228</a> - Removed atomic transaction from Jobs.</li>
5097
+ <li><a href="https://github.com/nautobot/nautobot/issues/3228">#3228</a> - Removed support for <code>test_*</code> and <code>post_run</code> methods in Jobs.</li>
5098
+ <li><a href="https://github.com/nautobot/nautobot/issues/3465">#3465</a> - Removed <code>broadcast</code> field from IPAddress.</li>
5099
+ <li><a href="https://github.com/nautobot/nautobot/issues/3527">#3527</a> - Removed <code>NavMenuButton</code> and its subclasses as they are not a part of the 2.0 UI.</li>
5100
+ <li><a href="https://github.com/nautobot/nautobot/issues/3527">#3527</a> - Removed <code>NavMenuTab.weight</code> property as the menu tabs/contexts are not reorderable in 2.0.</li>
5101
+ <li><a href="https://github.com/nautobot/nautobot/issues/3623">#3623</a> - Removed remaining erroneous slug references from tenant.html and tenantgroup.html.</li>
5102
+ <li><a href="https://github.com/nautobot/nautobot/issues/3651">#3651</a> - Removed misspelled <code>verison</code> key from <code>/api/plugins/installed-plugins</code> REST API endpoint.</li>
5103
+ <li><a href="https://github.com/nautobot/nautobot/issues/3679">#3679</a> - Removed explicit <code>url</code> field declarations from most REST API serializers as they are now derived automatically.</li>
5104
+ <li><a href="https://github.com/nautobot/nautobot/issues/3713">#3713</a> - Removed <code>Job.read_only_override</code>, <code>JobResult.obj_type</code>, <code>JobResult.periodic_task_name</code>, and <code>JobResult.task_id</code> fields.</li>
5105
+ <li><a href="https://github.com/nautobot/nautobot/issues/3713">#3713</a> - Removed <code>NautobotFakeRequest</code> and associated methods, variables and logic.</li>
5106
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Removed <code>LocatableModelCSVFormMixin</code>, <code>RoleModelCSVFormMixin</code>, <code>RoleRequiredRoleModelCSVFormMixin</code>, and <code>StatusModelCSVFormMixin</code> classes, as they are no longer needed after reworking how CSV import is handled.</li>
5107
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Removed <code>bulk_create_form_class</code> field from <code>NautobotUIViewSet</code> as it's no longer used or needed.</li>
5108
+ <li><a href="https://github.com/nautobot/nautobot/issues/3715">#3715</a> - Removed <code>model_form</code> and <code>widget_attrs</code> fields from <code>BulkImportView</code> as they are no longer used or needed.</li>
5109
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Removed <code>Job.slug</code>, <code>Job.source</code>, and <code>Job.git_repository</code> database fields.</li>
5110
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Removed <code>source</code> and <code>slug</code> filters for Jobs.</li>
5111
+ <li><a href="https://github.com/nautobot/nautobot/issues/3840">#3840</a> - Removed <code>get_jobs()</code>, <code>get_job_classpaths()</code>, <code>jobs_in_directory()</code> functions.</li>
5112
+ </ul>
5113
+ <h2 id="v200-alpha3-2023-04-13">v2.0.0-alpha.3 (2023-04-13)<a class="headerlink" href="#v200-alpha3-2023-04-13" title="Permanent link">&para;</a></h2>
5114
+ <h3 id="added_2">Added<a class="headerlink" href="#added_2" title="Permanent link">&para;</a></h3>
5115
+ <ul>
5116
+ <li><a href="https://github.com/nautobot/nautobot/issues/3337">#3337</a> - Add <code>Namespace</code> model to IPAM.</li>
5117
+ </ul>
5118
+ <h3 id="changed_2">Changed<a class="headerlink" href="#changed_2" title="Permanent link">&para;</a></h3>
5119
+ <ul>
3620
5120
  <li><a href="https://github.com/nautobot/nautobot/issues/2915">#2915</a> - Implemented a concrete <code>parent</code> relationship from <code>Prefix</code> to itself.</li>
3621
5121
  <li><a href="https://github.com/nautobot/nautobot/issues/3337">#3337</a> - Changed Prefix and other model uniqueness to center around Namespace model.</li>
3622
5122
  <li><a href="https://github.com/nautobot/nautobot/issues/3337">#3337</a> - TODO: Update with many more changes.</li>
3623
5123
  <li><a href="https://github.com/nautobot/nautobot/issues/3439">#3439</a> - Changed the GraphQL <code>execute_saved_query</code> function's argument from <code>saved_query_slug</code> to <code>saved_query_name</code>.</li>
3624
5124
  <li><a href="https://github.com/nautobot/nautobot/issues/3523">#3523</a> - Renamed <code>nat_outside</code> field on IPAddress serializer to <code>nat_outside_list</code> for self-consistency.</li>
3625
5125
  </ul>
3626
- <h3 id="dependencies">Dependencies<a class="headerlink" href="#dependencies" title="Permanent link">&para;</a></h3>
5126
+ <h3 id="dependencies_1">Dependencies<a class="headerlink" href="#dependencies_1" title="Permanent link">&para;</a></h3>
3627
5127
  <ul>
3628
5128
  <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Dropped support for Python 3.7. Python 3.8 is now the minimum version required by Nautobot.</li>
3629
5129
  <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated <code>django-auth-ldap</code> dependency to <code>~4.2.0</code>.</li>
@@ -3640,13 +5140,13 @@
3640
5140
  <li><a href="https://github.com/nautobot/nautobot/issues/2316">#2316</a> - Updated various development-only dependencies to the latest available versions.</li>
3641
5141
  <li><a href="https://github.com/nautobot/nautobot/issues/3525">#3525</a> - Added explicit dependency on <code>packaging</code> that had been inadvertently omitted.</li>
3642
5142
  </ul>
3643
- <h3 id="removed_1">Removed<a class="headerlink" href="#removed_1" title="Permanent link">&para;</a></h3>
5143
+ <h3 id="removed_2">Removed<a class="headerlink" href="#removed_2" title="Permanent link">&para;</a></h3>
3644
5144
  <ul>
3645
5145
  <li><a href="https://github.com/nautobot/nautobot/issues/3439">#3439</a> - Removed <code>slug</code> field from many database models.</li>
3646
5146
  <li><a href="https://github.com/nautobot/nautobot/issues/3523">#3523</a> - Removed <code>nat_outside</code> getter-setter in IPAddress model.</li>
3647
5147
  </ul>
3648
5148
  <h2 id="v200-alpha2-2023-03-29">v2.0.0-alpha.2 (2023-03-29)<a class="headerlink" href="#v200-alpha2-2023-03-29" title="Permanent link">&para;</a></h2>
3649
- <h3 id="added_2">Added<a class="headerlink" href="#added_2" title="Permanent link">&para;</a></h3>
5149
+ <h3 id="added_3">Added<a class="headerlink" href="#added_3" title="Permanent link">&para;</a></h3>
3650
5150
  <ul>
3651
5151
  <li><a href="https://github.com/nautobot/nautobot/issues/2900">#2900</a> - Added natural-key support to most Nautobot models, inspired by the <code>django-natural-keys</code> library.</li>
3652
5152
  <li><a href="https://github.com/nautobot/nautobot/issues/2957">#2957</a> - Added Location constraints for objects (CircuitTermination, Device, PowerPanel, PowerFeed, RackGroup, Rack, Prefix, VLAN, VLANGroup, Cluster).</li>
@@ -3663,7 +5163,7 @@
3663
5163
  <li><a href="https://github.com/nautobot/nautobot/issues/3403">#3403</a> - Added support for Nautobot Apps to provide Django Constance Fields for the settings.</li>
3664
5164
  <li><a href="https://github.com/nautobot/nautobot/issues/3418">#3418</a> - Added ObjectPermission Data Migration from Region/Site to Location.</li>
3665
5165
  </ul>
3666
- <h3 id="changed_2">Changed<a class="headerlink" href="#changed_2" title="Permanent link">&para;</a></h3>
5166
+ <h3 id="changed_3">Changed<a class="headerlink" href="#changed_3" title="Permanent link">&para;</a></h3>
3667
5167
  <ul>
3668
5168
  <li><a href="https://github.com/nautobot/nautobot/issues/824">#824</a> - Renamed <code>slug</code> field to <code>key</code> on CustomField model class.</li>
3669
5169
  <li><a href="https://github.com/nautobot/nautobot/issues/824">#824</a> - Changed validation of CustomField <code>key</code> to enforce that it is valid as a GraphQL identifier.</li>
@@ -3707,12 +5207,12 @@
3707
5207
  <li><a href="https://github.com/nautobot/nautobot/issues/3351">#3351</a> - Changed extras abstract model ForeignKeys to use ForeignKeyWithAutoRelatedName.</li>
3708
5208
  <li><a href="https://github.com/nautobot/nautobot/issues/3354">#3354</a> - Synced in fixes from 1.5.x LTM branch up through v1.5.11.</li>
3709
5209
  </ul>
3710
- <h3 id="dependencies_1">Dependencies<a class="headerlink" href="#dependencies_1" title="Permanent link">&para;</a></h3>
5210
+ <h3 id="dependencies_2">Dependencies<a class="headerlink" href="#dependencies_2" title="Permanent link">&para;</a></h3>
3711
5211
  <ul>
3712
5212
  <li><a href="https://github.com/nautobot/nautobot/issues/2521">#2521</a> - Removed dependency on <code>django-cryptography</code>.</li>
3713
5213
  <li><a href="https://github.com/nautobot/nautobot/issues/2524">#2524</a> - Removed no-longer-used <code>drf-yasg</code> dependency.</li>
3714
5214
  </ul>
3715
- <h3 id="fixed">Fixed<a class="headerlink" href="#fixed" title="Permanent link">&para;</a></h3>
5215
+ <h3 id="fixed_1">Fixed<a class="headerlink" href="#fixed_1" title="Permanent link">&para;</a></h3>
3716
5216
  <ul>
3717
5217
  <li><a href="https://github.com/nautobot/nautobot/issues/633">#633</a> - Fixed job result not updating when job hard time limit is reached.</li>
3718
5218
  <li><a href="https://github.com/nautobot/nautobot/issues/1362">#1362</a> - Fixed migrations for <code>Prefix.type</code>.</li>
@@ -3727,7 +5227,7 @@
3727
5227
  <li><a href="https://github.com/nautobot/nautobot/issues/3342">#3342</a> - Fixed BaseFilterSet not using multiple choice filters for CharFields with choices.</li>
3728
5228
  <li><a href="https://github.com/nautobot/nautobot/issues/3457">#3457</a> - Fixed bug preventing scheduled job from running.</li>
3729
5229
  </ul>
3730
- <h3 id="removed_2">Removed<a class="headerlink" href="#removed_2" title="Permanent link">&para;</a></h3>
5230
+ <h3 id="removed_3">Removed<a class="headerlink" href="#removed_3" title="Permanent link">&para;</a></h3>
3731
5231
  <ul>
3732
5232
  <li><a href="https://github.com/nautobot/nautobot/issues/824">#824</a> - Removed <code>name</code> field from CustomField model class.</li>
3733
5233
  <li><a href="https://github.com/nautobot/nautobot/issues/1634">#1634</a> - Removed unnecessary legacy <code>manage.py</code> file from Nautobot repository.</li>
@@ -3744,7 +5244,7 @@
3744
5244
  <li><a href="https://github.com/nautobot/nautobot/issues/3302">#3302</a> - Removed <code>Aggregate</code> and migrated all existing instances to <code>Prefix</code>.</li>
3745
5245
  </ul>
3746
5246
  <h2 id="v200-alpha1-2023-01-31">v2.0.0-alpha.1 (2023-01-31)<a class="headerlink" href="#v200-alpha1-2023-01-31" title="Permanent link">&para;</a></h2>
3747
- <h3 id="added_3">Added<a class="headerlink" href="#added_3" title="Permanent link">&para;</a></h3>
5247
+ <h3 id="added_4">Added<a class="headerlink" href="#added_4" title="Permanent link">&para;</a></h3>
3748
5248
  <ul>
3749
5249
  <li><a href="https://github.com/nautobot/nautobot/issues/204">#204</a> - Added style guide documentation for importing python modules in Nautobot.</li>
3750
5250
  <li><a href="https://github.com/nautobot/nautobot/issues/1731">#1731</a> - Added missing filters to <code>circuits</code> app.</li>
@@ -3753,7 +5253,7 @@
3753
5253
  <li><a href="https://github.com/nautobot/nautobot/issues/2955">#2955</a> - Added "Region" and "Site" <code>LocationTypes</code> and their respective locations based on existing <code>Site</code> and <code>Region</code> instances.</li>
3754
5254
  <li><a href="https://github.com/nautobot/nautobot/issues/3132">#3132</a> - Added the ability for apps to register their models for inclusion in the global Nautobot search.</li>
3755
5255
  </ul>
3756
- <h3 id="changed_3">Changed<a class="headerlink" href="#changed_3" title="Permanent link">&para;</a></h3>
5256
+ <h3 id="changed_4">Changed<a class="headerlink" href="#changed_4" title="Permanent link">&para;</a></h3>
3757
5257
  <ul>
3758
5258
  <li><a href="https://github.com/nautobot/nautobot/issues/204">#204</a> - Changed imports to use module namespaces in <code>utilities/filters.py</code>.</li>
3759
5259
  <li><a href="https://github.com/nautobot/nautobot/issues/510">#510</a> - The <code>Region</code>, <code>RackGroup</code>, <code>TenantGroup</code>, and <code>InventoryItem</code> models are now based on <code>django-tree-queries</code> instead of <code>django-mptt</code>. This does change the API for certain tree operations on these models, for example <code>get_ancestors()</code> is now <code>ancestors()</code> and <code>get_descendants()</code> is now <code>descendants()</code>.</li>
@@ -3783,7 +5283,7 @@
3783
5283
  <li><a href="https://github.com/nautobot/nautobot/issues/3069">#3069</a> - Renamed foreign key fields and related names in Virtualization and DCIM apps to follow a common naming convention. See v2 upgrade guide for full list of changes.</li>
3784
5284
  <li><a href="https://github.com/nautobot/nautobot/issues/3177">#3177</a> - Updated <code>VLANFactory</code> to generate longer and more "realistic" <code>VLAN</code> names.</li>
3785
5285
  </ul>
3786
- <h3 id="fixed_1">Fixed<a class="headerlink" href="#fixed_1" title="Permanent link">&para;</a></h3>
5286
+ <h3 id="fixed_2">Fixed<a class="headerlink" href="#fixed_2" title="Permanent link">&para;</a></h3>
3787
5287
  <ul>
3788
5288
  <li><a href="https://github.com/nautobot/nautobot/issues/1982">#1982</a> - Fixed a UI presentation/validation issue with dynamic-groups using foreign-key filters that aren't explicitly defined in the corresponding FilterForm.</li>
3789
5289
  <li><a href="https://github.com/nautobot/nautobot/issues/2808">#2808</a> - Fixed incorrectly named filters in <code>circuits</code> app.</li>
@@ -3792,7 +5292,7 @@
3792
5292
  <li><a href="https://github.com/nautobot/nautobot/issues/3167">#3167</a> - Fixed <code>ObjectChange</code> records not being migrated and <code>legacy_role__name</code> not being a property in <code>Role</code> migrations.</li>
3793
5293
  <li><a href="https://github.com/nautobot/nautobot/issues/3177">#3177</a> - Fixed a spurious failure in <code>BulkEditObjectsViewTestCase.test_bulk_edit_objects_with_constrained_permission</code>.</li>
3794
5294
  </ul>
3795
- <h3 id="removed_3">Removed<a class="headerlink" href="#removed_3" title="Permanent link">&para;</a></h3>
5295
+ <h3 id="removed_4">Removed<a class="headerlink" href="#removed_4" title="Permanent link">&para;</a></h3>
3796
5296
  <ul>
3797
5297
  <li><a href="https://github.com/nautobot/nautobot/issues/510">#510</a> - Removed dependency on <code>django-mptt</code>. Models (<code>Region</code>, <code>RackGroup</code>, <code>TenantGroup</code>, <code>InventoryItem</code>) that previously were based on MPTT are now implemented using <code>django-tree-queries</code> instead.</li>
3798
5298
  <li><a href="https://github.com/nautobot/nautobot/issues/1731">#1731</a> - Removed redundant filters from <code>circuits</code> app.</li>