nautobot 2.4.4__py3-none-any.whl → 2.4.6__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 (139) hide show
  1. nautobot/__init__.py +19 -3
  2. nautobot/core/api/mixins.py +10 -0
  3. nautobot/core/celery/__init__.py +5 -3
  4. nautobot/core/celery/encoders.py +2 -2
  5. nautobot/core/forms/fields.py +21 -5
  6. nautobot/core/forms/utils.py +1 -0
  7. nautobot/core/jobs/__init__.py +3 -2
  8. nautobot/core/jobs/bulk_actions.py +1 -1
  9. nautobot/core/management/commands/generate_test_data.py +1 -1
  10. nautobot/core/models/name_color_content_types.py +9 -0
  11. nautobot/core/models/validators.py +7 -0
  12. nautobot/core/settings.py +0 -14
  13. nautobot/core/settings.yaml +0 -28
  14. nautobot/core/tables.py +6 -1
  15. nautobot/core/templates/generic/object_retrieve.html +1 -1
  16. nautobot/core/testing/__init__.py +2 -0
  17. nautobot/core/testing/api.py +18 -0
  18. nautobot/core/testing/mixins.py +9 -0
  19. nautobot/core/tests/nautobot_config.py +0 -2
  20. nautobot/core/tests/runner.py +17 -140
  21. nautobot/core/tests/test_api.py +4 -4
  22. nautobot/core/tests/test_authentication.py +83 -4
  23. nautobot/core/tests/test_forms.py +11 -8
  24. nautobot/core/tests/test_graphql.py +9 -0
  25. nautobot/core/tests/test_jobs.py +33 -27
  26. nautobot/core/ui/object_detail.py +31 -0
  27. nautobot/dcim/factory.py +2 -0
  28. nautobot/dcim/filters/__init__.py +5 -0
  29. nautobot/dcim/forms.py +17 -1
  30. nautobot/dcim/migrations/0068_alter_softwareimagefile_download_url.py +19 -0
  31. nautobot/dcim/migrations/0069_softwareimagefile_external_integration.py +25 -0
  32. nautobot/dcim/models/devices.py +9 -2
  33. nautobot/dcim/tables/devices.py +1 -0
  34. nautobot/dcim/templates/dcim/softwareimagefile_retrieve.html +4 -0
  35. nautobot/dcim/tests/test_api.py +74 -31
  36. nautobot/dcim/tests/test_filters.py +2 -0
  37. nautobot/dcim/tests/test_jobs.py +4 -6
  38. nautobot/dcim/tests/test_models.py +65 -0
  39. nautobot/dcim/tests/test_views.py +3 -0
  40. nautobot/extras/choices.py +8 -3
  41. nautobot/extras/forms/forms.py +7 -3
  42. nautobot/extras/jobs.py +181 -103
  43. nautobot/extras/management/utils.py +13 -2
  44. nautobot/extras/models/datasources.py +4 -1
  45. nautobot/extras/models/jobs.py +20 -17
  46. nautobot/extras/plugins/marketplace_manifest.yml +18 -0
  47. nautobot/extras/tables.py +29 -34
  48. nautobot/extras/templates/extras/inc/panel_changelog.html +1 -1
  49. nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
  50. nautobot/extras/templates/extras/status.html +1 -37
  51. nautobot/extras/test_jobs/atomic_transaction.py +6 -6
  52. nautobot/extras/test_jobs/fail.py +75 -1
  53. nautobot/extras/tests/integration/test_notes.py +1 -1
  54. nautobot/extras/tests/test_api.py +23 -8
  55. nautobot/extras/tests/test_changelog.py +4 -4
  56. nautobot/extras/tests/test_customfields.py +3 -0
  57. nautobot/extras/tests/test_datasources.py +64 -54
  58. nautobot/extras/tests/test_jobs.py +69 -62
  59. nautobot/extras/tests/test_models.py +1 -1
  60. nautobot/extras/tests/test_plugins.py +19 -13
  61. nautobot/extras/tests/test_relationships.py +14 -5
  62. nautobot/extras/tests/test_tags.py +2 -2
  63. nautobot/extras/tests/test_views.py +15 -6
  64. nautobot/extras/urls.py +1 -30
  65. nautobot/extras/views.py +17 -55
  66. nautobot/ipam/forms.py +15 -0
  67. nautobot/ipam/querysets.py +6 -0
  68. nautobot/ipam/tables.py +6 -2
  69. nautobot/ipam/templates/ipam/namespace_retrieve.html +0 -41
  70. nautobot/ipam/templates/ipam/rir.html +1 -43
  71. nautobot/ipam/templates/ipam/service.html +2 -46
  72. nautobot/ipam/templates/ipam/service_edit.html +1 -17
  73. nautobot/ipam/templates/ipam/service_retrieve.html +7 -0
  74. nautobot/ipam/tests/migration/__init__.py +0 -0
  75. nautobot/ipam/tests/migration/test_migrations.py +510 -0
  76. nautobot/ipam/tests/test_api.py +66 -36
  77. nautobot/ipam/tests/test_filters.py +0 -10
  78. nautobot/ipam/tests/test_models.py +16 -0
  79. nautobot/ipam/tests/test_views.py +44 -2
  80. nautobot/ipam/urls.py +2 -67
  81. nautobot/ipam/utils/migrations.py +185 -152
  82. nautobot/ipam/utils/testing.py +177 -0
  83. nautobot/ipam/views.py +119 -198
  84. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +43 -5
  85. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +47 -0
  86. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +18 -0
  87. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +35 -0
  88. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +63 -0
  89. nautobot/project-static/docs/development/apps/api/testing.html +0 -87
  90. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +1 -1
  91. nautobot/project-static/docs/development/core/best-practices.html +3 -3
  92. nautobot/project-static/docs/development/core/getting-started.html +78 -107
  93. nautobot/project-static/docs/development/core/release-checklist.html +1 -1
  94. nautobot/project-static/docs/development/core/style-guide.html +1 -1
  95. nautobot/project-static/docs/development/core/testing.html +24 -198
  96. nautobot/project-static/docs/development/jobs/index.html +27 -14
  97. nautobot/project-static/docs/media/user-guide/administration/getting-started/nautobot-cloud.png +0 -0
  98. nautobot/project-static/docs/objects.inv +0 -0
  99. nautobot/project-static/docs/overview/application_stack.html +1 -1
  100. nautobot/project-static/docs/release-notes/version-2.4.html +409 -1
  101. nautobot/project-static/docs/requirements.txt +1 -1
  102. nautobot/project-static/docs/search/search_index.json +1 -1
  103. nautobot/project-static/docs/sitemap.xml +290 -290
  104. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  105. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +2 -48
  106. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +71 -0
  107. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +3 -1
  108. nautobot/project-static/docs/user-guide/administration/installation/index.html +257 -16
  109. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +1 -1
  110. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +2 -2
  111. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +4 -0
  112. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +11 -11
  113. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +8 -8
  114. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +1 -0
  115. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +40 -25
  116. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +4 -4
  117. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +1 -1
  118. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +77 -5
  119. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +1 -1
  120. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +0 -1
  121. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +1 -1
  122. nautobot/project-static/docs/user-guide/index.html +89 -2
  123. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +207 -122
  124. nautobot/virtualization/forms.py +20 -0
  125. nautobot/virtualization/templates/virtualization/clustergroup.html +1 -39
  126. nautobot/virtualization/templates/virtualization/clustertype.html +1 -0
  127. nautobot/virtualization/tests/test_api.py +14 -3
  128. nautobot/virtualization/tests/test_views.py +10 -2
  129. nautobot/virtualization/urls.py +10 -93
  130. nautobot/virtualization/views.py +33 -72
  131. {nautobot-2.4.4.dist-info → nautobot-2.4.6.dist-info}/METADATA +8 -7
  132. {nautobot-2.4.4.dist-info → nautobot-2.4.6.dist-info}/RECORD +137 -132
  133. {nautobot-2.4.4.dist-info → nautobot-2.4.6.dist-info}/WHEEL +1 -1
  134. nautobot/core/tests/performance_baselines.yml +0 -8900
  135. nautobot/ipam/tests/test_migrations.py +0 -462
  136. /nautobot/ipam/templates/ipam/{namespace_ipaddresses.html → namespace_ip_addresses.html} +0 -0
  137. {nautobot-2.4.4.dist-info → nautobot-2.4.6.dist-info}/LICENSE.txt +0 -0
  138. {nautobot-2.4.4.dist-info → nautobot-2.4.6.dist-info}/NOTICE +0 -0
  139. {nautobot-2.4.4.dist-info → nautobot-2.4.6.dist-info}/entry_points.txt +0 -0
@@ -9294,10 +9294,10 @@ The following sections will guide you through how to create each object type.</p
9294
9294
  </div>
9295
9295
  <p>To create a new Device Role:</p>
9296
9296
  <ol>
9297
- <li>Click on <strong>Devices</strong> in the left sidebar menu</li>
9298
- <li>Find <strong>Device Roles</strong> on the drop-down menu</li>
9297
+ <li>Click on <strong>Organization</strong> in the left sidebar menu</li>
9298
+ <li>Find <strong>Roles</strong> on the drop-down menu</li>
9299
9299
  <li>Select <code>+</code></li>
9300
- <li>In the <code>Add a new device role</code> form, populate the <code>Name</code></li>
9300
+ <li>In the <code>Add a new role</code> form, populate the <code>Name</code></li>
9301
9301
  <li>Click on Create</li>
9302
9302
  </ol>
9303
9303
  <p><img alt="Create a device role" src="../images/getting-started-nautobot-ui/3-create-role.png" /></p>
@@ -9335,11 +9335,11 @@ Device types define the physical attributes of a device (rack height and depth)
9335
9335
  <p>To create a new Location Type:</p>
9336
9336
  <ol>
9337
9337
  <li>Click on <strong>Organization</strong> in the left sidebar menu</li>
9338
- <li>Find <strong>LocationTypes</strong></li>
9338
+ <li>Find <strong>Location Types</strong></li>
9339
9339
  <li>Select <strong>+</strong> to go to the <code>Add a new location type</code> form</li>
9340
- <li>Select a <code>Parent</code> LocationType if needed</li>
9341
- <li>Populate the LocationType's <code>Name</code></li>
9342
- <li>Select the desired <code>ContentTypes</code> for this LocationType (in this case <code>dcim.device</code>).</li>
9340
+ <li>Select a <code>Parent</code> Location Type if needed</li>
9341
+ <li>Populate the Location Type's <code>Name</code></li>
9342
+ <li>Select the desired <code>Content Types</code> for this Location Type (in this case <code>dcim.device</code>).</li>
9343
9343
  <li>Click on <code>Create</code> at the bottom of the form</li>
9344
9344
  </ol>
9345
9345
  <p><img alt="Create a location type" src="../images/getting-started-nautobot-ui/1-create-location-type.png" /></p>
@@ -9352,7 +9352,7 @@ Device types define the physical attributes of a device (rack height and depth)
9352
9352
  <li>Click on <strong>Organization</strong> in the left sidebar menu</li>
9353
9353
  <li>Find <strong>Locations</strong></li>
9354
9354
  <li>Select <strong>+</strong> to go to the <code>Add a new location</code> form</li>
9355
- <li>Select a <code>LocationType</code></li>
9355
+ <li>Select a <code>Location Type</code></li>
9356
9356
  <li>Select a <code>Parent</code> Location if needed</li>
9357
9357
  <li>Populate the Location's <code>Name</code></li>
9358
9358
  <li>Set the <code>Status</code> to <code>Active</code> in the drop-down selector</li>
@@ -9275,6 +9275,7 @@ Additional information on Locations is in the <a href="../../core-data-model/dci
9275
9275
  <li>Leave the <code>Parent</code> blank; <strong>North America</strong> will be a top-tier Location</li>
9276
9276
  <li>Select <strong>Continent</strong> from the Location Type drop-down menu selector</li>
9277
9277
  <li>Populate the <code>Name</code> to be <code>North America</code></li>
9278
+ <li>Select <code>Active</code> from the Status drop-down menu selector</li>
9278
9279
  <li>Click on the <code>Create and Add Another</code> button</li>
9279
9280
  </ol>
9280
9281
  <p>Canada:</p>
@@ -2016,9 +2016,10 @@
2016
2016
  </span>
2017
2017
  </a>
2018
2018
 
2019
- </li>
2020
-
2021
- <li class="md-nav__item">
2019
+ <nav class="md-nav" aria-label="Interface Add Example">
2020
+ <ul class="md-nav__list">
2021
+
2022
+ <li class="md-nav__item">
2022
2023
  <a href="#creating-a-device-type" class="md-nav__link">
2023
2024
  <span class="md-ellipsis">
2024
2025
  Creating a Device Type
@@ -2026,8 +2027,8 @@
2026
2027
  </a>
2027
2028
 
2028
2029
  </li>
2029
-
2030
- <li class="md-nav__item">
2030
+
2031
+ <li class="md-nav__item">
2031
2032
  <a href="#creating-a-new-device-using-the-device-type" class="md-nav__link">
2032
2033
  <span class="md-ellipsis">
2033
2034
  Creating a New Device Using the Device Type
@@ -2035,14 +2036,19 @@
2035
2036
  </a>
2036
2037
 
2037
2038
  </li>
2038
-
2039
- <li class="md-nav__item">
2039
+
2040
+ <li class="md-nav__item">
2040
2041
  <a href="#specifying-the-lag-components-on-the-device" class="md-nav__link">
2041
2042
  <span class="md-ellipsis">
2042
2043
  Specifying the LAG Components on the Device
2043
2044
  </span>
2044
2045
  </a>
2045
2046
 
2047
+ </li>
2048
+
2049
+ </ul>
2050
+ </nav>
2051
+
2046
2052
  </li>
2047
2053
 
2048
2054
  </ul>
@@ -9184,9 +9190,10 @@
9184
9190
  </span>
9185
9191
  </a>
9186
9192
 
9187
- </li>
9188
-
9189
- <li class="md-nav__item">
9193
+ <nav class="md-nav" aria-label="Interface Add Example">
9194
+ <ul class="md-nav__list">
9195
+
9196
+ <li class="md-nav__item">
9190
9197
  <a href="#creating-a-device-type" class="md-nav__link">
9191
9198
  <span class="md-ellipsis">
9192
9199
  Creating a Device Type
@@ -9194,8 +9201,8 @@
9194
9201
  </a>
9195
9202
 
9196
9203
  </li>
9197
-
9198
- <li class="md-nav__item">
9204
+
9205
+ <li class="md-nav__item">
9199
9206
  <a href="#creating-a-new-device-using-the-device-type" class="md-nav__link">
9200
9207
  <span class="md-ellipsis">
9201
9208
  Creating a New Device Using the Device Type
@@ -9203,14 +9210,19 @@
9203
9210
  </a>
9204
9211
 
9205
9212
  </li>
9206
-
9207
- <li class="md-nav__item">
9213
+
9214
+ <li class="md-nav__item">
9208
9215
  <a href="#specifying-the-lag-components-on-the-device" class="md-nav__link">
9209
9216
  <span class="md-ellipsis">
9210
9217
  Specifying the LAG Components on the Device
9211
9218
  </span>
9212
9219
  </a>
9213
9220
 
9221
+ </li>
9222
+
9223
+ </ul>
9224
+ </nav>
9225
+
9214
9226
  </li>
9215
9227
 
9216
9228
  </ul>
@@ -9241,13 +9253,13 @@
9241
9253
  </ul>
9242
9254
  <p>Which one you select depends on your use case; in some instances you will need to use both, as in the example below.</p>
9243
9255
  <h2 id="interface-add-example">Interface Add Example<a class="headerlink" href="#interface-add-example" title="Permanent link">&para;</a></h2>
9244
- <p>Let’s take an example:</p>
9256
+ <p>Let’s take an example, with the following goal:</p>
9245
9257
  <ul>
9246
9258
  <li>We want to define a Device Type of <code>MX240-edge</code></li>
9247
9259
  <li>This Device Type will have 20x 10G (<code>xe-[0-1]/0/[0-9]</code>) Interfaces and one LAG (<code>ae0</code>) Interface</li>
9248
9260
  <li>The <code>xe-0/0/9</code> and <code>xe-1/0/9</code> Interfaces will be members of the <code>ae0</code> Interface</li>
9249
9261
  </ul>
9250
- <h2 id="creating-a-device-type">Creating a Device Type<a class="headerlink" href="#creating-a-device-type" title="Permanent link">&para;</a></h2>
9262
+ <h3 id="creating-a-device-type">Creating a Device Type<a class="headerlink" href="#creating-a-device-type" title="Permanent link">&para;</a></h3>
9251
9263
  <p>We are going to use the <strong>Device Type</strong> to achieve part of this goal. Using the <strong>Device Type</strong> will also provide repeatability
9252
9264
  because the <strong>Device Type</strong> object also serves as a template. This templating feature is demonstrated in this example.</p>
9253
9265
  <p>Device Types can serve as templates for Devices, and as such the two are very similar. Here is a screenshot of a Device Type:</p>
@@ -9260,10 +9272,11 @@ because the <strong>Device Type</strong> object also serves as a template. This
9260
9272
  <li>Click on the <code>+</code> button to add a new Device Type<ul>
9261
9273
  <li>A Device Type requires a <strong>Manufacturer</strong> object to be created prior to creating the Device Type</li>
9262
9274
  <li>Device Type requires <strong>Manufacturer</strong>, <strong>Model</strong>, and <strong>Height</strong> values at creation</li>
9263
- <li>In this example, name the Device Type <code>APDU9941</code></li>
9275
+ <li>In this example, select <code>APC</code> from the <strong>Manufacturer</strong> drop-down selector, name the Device Type <strong>Model</strong> <code>APDU9941</code>, and input 5 for the <strong>Height</strong></li>
9264
9276
  </ul>
9265
9277
  </li>
9266
- <li>On the home page for the specific Device Type, click on <code>+Add Components</code> and select <code>Interfaces</code></li>
9278
+ <li>Click on <code>Create</code></li>
9279
+ <li>On the home page for the recently created Device Type, click on <code>+Add Components</code> and select <code>Interfaces</code></li>
9267
9280
  </ol>
9268
9281
  <p><img alt="Create a device type" src="../images/getting-started-nautobot-ui/15-create-device-type.png" /></p>
9269
9282
  <p>You will now see the <code>Interface Template</code> form:</p>
@@ -9271,14 +9284,15 @@ because the <strong>Device Type</strong> object also serves as a template. This
9271
9284
  <li>Add the <code>ae0</code> Interface Template<ul>
9272
9285
  <li><code>Manufacturer</code> will auto-populate to the Manufacturer of the Device Type you are editing</li>
9273
9286
  <li><code>Device Type</code> will auto-populate to the Device Type you are editing</li>
9274
- <li>Populate a <code>Name</code></li>
9287
+ <li>Populate a <code>Name</code> of <code>ae0</code></li>
9275
9288
  <li>Select a <code>Type</code> of <code>Link Aggregation Group (LAG)</code> from the drop-down selector</li>
9276
9289
  <li>Add a <code>Description</code> and <code>Label</code> (optional)</li>
9277
9290
  </ul>
9278
9291
  </li>
9279
9292
  <li>Click <code>Create and Add More</code></li>
9280
- <li>Create the <code>xe-</code> Interfaces<ul>
9281
- <li>This example shows bulk creation using a range (<code>xe-[0-1]/0/[0-9]</code>) in <code>Name</code></li>
9293
+ <li>Create the <code>xe-</code> Interfaces Template<ul>
9294
+ <li>Keep the same <code>Manufacturer</code> and <code>Device Type</code> as the previous step</li>
9295
+ <li>Populate a <code>Name</code> of <code>xe-[0-1]/0/[0-9]</code>. Using the syntax of <code>[&lt;start&gt;-&lt;end&gt;]</code> for numbers in the name field like this will cause a bulk creation using the range of numbers provided.</li>
9282
9296
  <li>Select the appropriate Type from the drop-down selector</li>
9283
9297
  </ul>
9284
9298
  </li>
@@ -9290,16 +9304,17 @@ see that the <strong>Interfaces</strong> tab now has the expected 21 Interfaces
9290
9304
  <p><img alt="Example interface template" src="../images/getting-started-nautobot-ui/17-templated-interfaces.png" /></p>
9291
9305
  <div class="admonition note">
9292
9306
  <p class="admonition-title">Note</p>
9293
- <p>As of this writing (Nautobot 1.0.3), Interfaces cannot be assigned in to a LAG in the Device Type template; component
9307
+ <p>Interfaces cannot be assigned in to a LAG in the Device Type template; component
9294
9308
  Interfaces must be designated in the specific instantiation of a Device created from the Device Type.</p>
9295
9309
  </div>
9296
- <h2 id="creating-a-new-device-using-the-device-type">Creating a New Device Using the Device Type<a class="headerlink" href="#creating-a-new-device-using-the-device-type" title="Permanent link">&para;</a></h2>
9310
+ <h3 id="creating-a-new-device-using-the-device-type">Creating a New Device Using the Device Type<a class="headerlink" href="#creating-a-new-device-using-the-device-type" title="Permanent link">&para;</a></h3>
9297
9311
  <p>Create a new Device with these attributes:</p>
9298
9312
  <ul>
9299
9313
  <li><strong>Name</strong> = <code>ang01-edge-01</code></li>
9300
9314
  <li><strong>Role</strong> select <code>edge</code></li>
9301
9315
  <li><strong>Device type</strong> select <code>APC APDU9941</code> (this will show up as a fusion of the <strong>Manufacturer</strong> (<code>APC</code>) for the Device Type and the Device Type (<code>APDU9941</code>) Names)</li>
9302
9316
  <li><strong>Location</strong> select <code>ANGO1</code></li>
9317
+ <li><strong>Status</strong> select <code>Active</code></li>
9303
9318
  </ul>
9304
9319
  <p>On the main screen for the new <em>Device</em>, you will see an <strong>Interfaces</strong> tab with the expected Interfaces from the <em>Device Type</em> template:</p>
9305
9320
  <p><img alt="Assign device type" src="../images/getting-started-nautobot-ui/18-assign-device-type.png" /></p>
@@ -9308,8 +9323,8 @@ Interfaces must be designated in the specific instantiation of a Device created
9308
9323
  <p>Device Type properties only apply to <strong>new</strong> instantiations of Devices from the Type;
9309
9324
  Devices created prior to a modification of the Device Type will not inherit the changes retroactively</p>
9310
9325
  </div>
9311
- <h2 id="specifying-the-lag-components-on-the-device">Specifying the LAG Components on the Device<a class="headerlink" href="#specifying-the-lag-components-on-the-device" title="Permanent link">&para;</a></h2>
9312
- <p>As of this writing (Nautobot 1.0.3), LAG component Interfaces cannot be assigned in the Device Type template, so we will
9326
+ <h3 id="specifying-the-lag-components-on-the-device">Specifying the LAG Components on the Device<a class="headerlink" href="#specifying-the-lag-components-on-the-device" title="Permanent link">&para;</a></h3>
9327
+ <p>LAG component Interfaces cannot be assigned in the Device Type template, so we will
9313
9328
  edit this new Device, specifying the component <code>ae0</code> Interfaces.</p>
9314
9329
  <ol>
9315
9330
  <li>On the new Device's main page, select the appropriate Interfaces (<code>xe-0/0/9</code> and <code>xe-1/0/9</code>) to be added to <code>ae0</code> and click on the <code>Edit</code> button</li>
@@ -9331,15 +9331,15 @@ Each Prefix can be assigned to a particular Location, an RIR and virtual routing
9331
9331
  <ol>
9332
9332
  <li>Click on <strong>Devices</strong> in the left side navigation menu</li>
9333
9333
  <li>Click on <strong>Devices</strong> to go to the main page for Devices</li>
9334
- <li>Find the Device whose Interface you wish to associate to an IP Address and click on it</li>
9335
- <li>Go to the <code>Interfaces</code> tab and look for the row with the Interface you are interested in</li>
9334
+ <li>Find the Device whose Interface you wish to associate to an IP Address and click on it, for example <code>ams01-leaf-01</code></li>
9335
+ <li>Go to the <code>Interfaces</code> tab and look for the row with the Interface you are interested in, such as <code>Ethernet3</code></li>
9336
9336
  <li>Click on the edit button for the Interface (a pencil icon)</li>
9337
9337
  </ol>
9338
9338
  <p><img alt="Assign IP address 1" src="../images/getting-started-nautobot-ui/33-assign-address.png" /></p>
9339
9339
  <p><img alt="Assign IP address 2" src="../images/getting-started-nautobot-ui/34-assign-address-2.png" /></p>
9340
9340
  <p>Once on the <code>Editing Interface</code> page:</p>
9341
9341
  <ol>
9342
- <li>Select an <code>IP Address</code> from the drop-down selector</li>
9342
+ <li>Select an <code>IP Address</code> from the drop-down selector, such as <code>10.0.1.0/32</code></li>
9343
9343
  <li>Click on the <code>Update</code> button<ul>
9344
9344
  <li>This will take you back to the Interfaces page for the Device, where you will see the assignment shown under the <code>IP Addresses</code> column</li>
9345
9345
  </ul>
@@ -9359,7 +9359,7 @@ Each Prefix can be assigned to a particular Location, an RIR and virtual routing
9359
9359
  <ol>
9360
9360
  <li>Click on <strong>IPAM</strong> in the left side navigation menu</li>
9361
9361
  <li>Click on <strong>Prefixes</strong> to get to the Prefixes main page</li>
9362
- <li>Find the Prefix you are interested in and click on the link</li>
9362
+ <li>Find the Prefix you are interested in and click on the link, such as <code>10.10.10.0/24</code></li>
9363
9363
  <li>To view the available and allocated IP Addresses, click on the <code>IP Addresses</code> tab</li>
9364
9364
  </ol>
9365
9365
  <p><img alt="Verify prefix 1" src="../images/getting-started-nautobot-ui/37-verify-prefix.png" /></p>
@@ -9321,7 +9321,7 @@ in the Search Bar.</p>
9321
9321
  <p>For a new Device, follow the steps to <a href="creating-devices.html">create a new Device</a> to reach the <code>Add a new device</code> page.</p>
9322
9322
  <h3 id="specifying-the-devices-platform">Specifying the Device's Platform<a class="headerlink" href="#specifying-the-devices-platform" title="Permanent link">&para;</a></h3>
9323
9323
  <ol>
9324
- <li>While on the <strong>Add a new device</strong>/<strong>Editing device</strong> page, scroll down to the 'Management' section</li>
9324
+ <li>While on the <strong>Add a new device</strong>/<strong>Editing device</strong> page, scroll down to the 'Software' section</li>
9325
9325
  <li>In the <code>Platform</code> field drop-down selector, select the appropriate Platform</li>
9326
9326
  <li>Click the <code>Update</code> (edit Device) or <code>Create</code> (add Device) button</li>
9327
9327
  </ol>
@@ -2036,6 +2036,17 @@
2036
2036
 
2037
2037
 
2038
2038
 
2039
+ <label class="md-nav__link md-nav__link--active" for="__toc">
2040
+
2041
+
2042
+ <span class="md-ellipsis">
2043
+ The Search Bar
2044
+ </span>
2045
+
2046
+
2047
+ <span class="md-nav__icon md-icon"></span>
2048
+ </label>
2049
+
2039
2050
  <a href="search-bar.html" class="md-nav__link md-nav__link--active">
2040
2051
 
2041
2052
 
@@ -2046,6 +2057,43 @@
2046
2057
 
2047
2058
  </a>
2048
2059
 
2060
+
2061
+
2062
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+ <label class="md-nav__title" for="__toc">
2070
+ <span class="md-nav__icon md-icon"></span>
2071
+ Table of contents
2072
+ </label>
2073
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2074
+
2075
+ <li class="md-nav__item">
2076
+ <a href="#searching-for-an-ip-address" class="md-nav__link">
2077
+ <span class="md-ellipsis">
2078
+ Searching For an IP Address
2079
+ </span>
2080
+ </a>
2081
+
2082
+ </li>
2083
+
2084
+ <li class="md-nav__item">
2085
+ <a href="#searching-for-a-device" class="md-nav__link">
2086
+ <span class="md-ellipsis">
2087
+ Searching for a Device
2088
+ </span>
2089
+ </a>
2090
+
2091
+ </li>
2092
+
2093
+ </ul>
2094
+
2095
+ </nav>
2096
+
2049
2097
  </li>
2050
2098
 
2051
2099
 
@@ -9105,6 +9153,32 @@
9105
9153
 
9106
9154
 
9107
9155
 
9156
+ <label class="md-nav__title" for="__toc">
9157
+ <span class="md-nav__icon md-icon"></span>
9158
+ Table of contents
9159
+ </label>
9160
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
9161
+
9162
+ <li class="md-nav__item">
9163
+ <a href="#searching-for-an-ip-address" class="md-nav__link">
9164
+ <span class="md-ellipsis">
9165
+ Searching For an IP Address
9166
+ </span>
9167
+ </a>
9168
+
9169
+ </li>
9170
+
9171
+ <li class="md-nav__item">
9172
+ <a href="#searching-for-a-device" class="md-nav__link">
9173
+ <span class="md-ellipsis">
9174
+ Searching for a Device
9175
+ </span>
9176
+ </a>
9177
+
9178
+ </li>
9179
+
9180
+ </ul>
9181
+
9108
9182
  </nav>
9109
9183
  </div>
9110
9184
  </div>
@@ -9124,8 +9198,7 @@
9124
9198
  <h1 id="the-search-bar">The Search Bar<a class="headerlink" href="#the-search-bar" title="Permanent link">&para;</a></h1>
9125
9199
  <p>The exercises in the prior sections in this <em>Getting Started Guide</em> walked you through how to <strong>navigate</strong> to the proper objects.</p>
9126
9200
  <p>You can also use the Search Bar to find desired objects with either partial or complete alpha/numeric characters or exact UUID.</p>
9127
- <p>We will show two quick examples.</p>
9128
- <p>Example one:</p>
9201
+ <h2 id="searching-for-an-ip-address">Searching For an IP Address<a class="headerlink" href="#searching-for-an-ip-address" title="Permanent link">&para;</a></h2>
9129
9202
  <ol>
9130
9203
  <li>Type in <code>10.10.10.0</code> in the Search Bar and click on <code>Search</code><ul>
9131
9204
  <li>This takes you to a search results page</li>
@@ -9137,7 +9210,7 @@
9137
9210
  <p>Clicking on any of these objects takes you to the main page for that object.
9138
9211
  This example shows the result of clicking on the <strong>IP Address</strong> object (4).</p>
9139
9212
  <p><img alt="Address search v2" src="../images/getting-started-nautobot-ui/42-address-search-v2.png" /></p>
9140
- <p>Example two shows a Device-specific search:</p>
9213
+ <h2 id="searching-for-a-device">Searching for a Device<a class="headerlink" href="#searching-for-a-device" title="Permanent link">&para;</a></h2>
9141
9214
  <ol>
9142
9215
  <li>Search for <code>edge</code><ul>
9143
9216
  <li>This takes you to a search results page</li>
@@ -9149,13 +9222,12 @@ This example shows the result of clicking on the <strong>IP Address</strong> obj
9149
9222
  <li><em>Device Type</em> for each Device</li>
9150
9223
  <li><em>Location</em> for each Device</li>
9151
9224
  </ol>
9152
- <p>Clicking on an of the links for the results takes you to the main page for that object. For example:</p>
9225
+ <p>Clicking on any of the links for the results takes you to the main page for that object. For example:</p>
9153
9226
  <ul>
9154
9227
  <li>Clicking on the <code>ANG01</code> Location takes you to the main page for the Location.</li>
9155
9228
  <li>Clicking on the <code>ang01-edge-02</code> Device takes you to the main page for the Device</li>
9156
9229
  </ul>
9157
9230
  <p><img alt="Device search results" src="../images/getting-started-nautobot-ui/41-device-search-results.png" /></p>
9158
- <p><strong>END OF <em>Getting Started in the Web UI</em> GUIDE</strong></p>
9159
9231
 
9160
9232
 
9161
9233
 
@@ -9208,7 +9208,7 @@
9208
9208
  </ol>
9209
9209
  <p><img alt="Add tenant" src="../images/getting-started-nautobot-ui/12-add-tenant.png" /></p>
9210
9210
  <h2 id="assigning-a-tenant-to-an-object">Assigning a Tenant to an Object<a class="headerlink" href="#assigning-a-tenant-to-an-object" title="Permanent link">&para;</a></h2>
9211
- <p>It is simple to assign a Tenant to an existing object. This next example will add a Tenant to an existing Device.</p>
9211
+ <p>To add a Tenant to an existing Device:</p>
9212
9212
  <ol>
9213
9213
  <li>Click on <strong>Devices</strong> in the left sidebar menu</li>
9214
9214
  <li>Look for the <strong>Devices</strong> option and click on it<ul>
@@ -9291,7 +9291,6 @@ you'll see the three VLANs and the Location assignment for each one. Each <code>
9291
9291
  <h3 id="assigning-vlans-to-an-interface">Assigning VLANs to an Interface<a class="headerlink" href="#assigning-vlans-to-an-interface" title="Permanent link">&para;</a></h3>
9292
9292
  <p>To assign a VLAN to an Interface:</p>
9293
9293
  <ol>
9294
- <li>Click on <strong>IPAM</strong> on the left sidebar menu</li>
9295
9294
  <li>Select <strong>Devices</strong> to go to the Devices main page</li>
9296
9295
  <li>Click on the name of the Device you wish to add a VLAN to (<code>ang01-edge-01</code>) in this example</li>
9297
9296
  <li>Click on the <code>Edit</code> button for the <code>xe-0/0/0</code> Interface to go to the <code>Editing interface xe-0/0/0</code> page</li>
@@ -9489,7 +9489,7 @@
9489
9489
  </ul>
9490
9490
  <p>Like other Nautobot features, it is possible to create, read, update, and delete Git repository objects <a href="../platform-functionality/gitrepository.html#manage-git-repositories-via-the-nautobot-rest-api">via the REST API</a> as well as via the GUI. In addition, it is also possible to trigger a resync of an existing repository in either interface. For more detail on this and other technical aspects of using this feature, please see the documentation on <a href="../platform-functionality/gitrepository.html">Git Repositories</a>.</p>
9491
9491
  <h2 id="supported-providers">Supported Providers<a class="headerlink" href="#supported-providers" title="Permanent link">&para;</a></h2>
9492
- <p>The feature uses the concept of a <code>provides</code> field to identify the provided data types and therefore map a repository to a use case. A list of the supported options is provided below.</p>
9492
+ <p>This feature uses the concept of a <code>provides</code> field to identify the provided data types and therefore map a repository to a use case. A list of the supported options is provided below.</p>
9493
9493
  <h3 id="core-functionality">Core Functionality<a class="headerlink" href="#core-functionality" title="Permanent link">&para;</a></h3>
9494
9494
  <table>
9495
9495
  <thead>
@@ -95,7 +95,7 @@
95
95
  <div data-md-component="skip">
96
96
 
97
97
 
98
- <a href="#user-guide" class="md-skip">
98
+ <a href="#user-guide-overview" class="md-skip">
99
99
  Skip to content
100
100
  </a>
101
101
 
@@ -9091,6 +9091,23 @@
9091
9091
 
9092
9092
 
9093
9093
 
9094
+ <label class="md-nav__title" for="__toc">
9095
+ <span class="md-nav__icon md-icon"></span>
9096
+ Table of contents
9097
+ </label>
9098
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
9099
+
9100
+ <li class="md-nav__item">
9101
+ <a href="#quick-links" class="md-nav__link">
9102
+ <span class="md-ellipsis">
9103
+ Quick Links
9104
+ </span>
9105
+ </a>
9106
+
9107
+ </li>
9108
+
9109
+ </ul>
9110
+
9094
9111
  </nav>
9095
9112
  </div>
9096
9113
  </div>
@@ -9107,7 +9124,77 @@
9107
9124
 
9108
9125
 
9109
9126
 
9110
- <h1 id="user-guide">User Guide<a class="headerlink" href="#user-guide" title="Permanent link">&para;</a></h1>
9127
+ <h1 id="user-guide-overview">User Guide Overview<a class="headerlink" href="#user-guide-overview" title="Permanent link">&para;</a></h1>
9128
+ <p>Welcome to the Nautobot User Guide! The User Guide is designed to help you setup, use, and operate your Nautobot installation.</p>
9129
+ <p>There are four main headings within the User Guide:</p>
9130
+ <ul>
9131
+ <li><strong>Administration</strong>: Get detailed instructions on <a href="administration/installation/index.html">installation</a>, <a href="administration/migration/migrating-from-netbox.html">migration</a>, <a href="administration/configuration/index.html">configuration</a>, and <a href="administration/upgrading/upgrading.html">upgrading Nautobot</a>.</li>
9132
+ <li><strong>Feature Guides</strong>: Walk through these guides if you are a <a href="feature-guides/getting-started/index.html">new user to Nautobot</a> and wondering how to perform common tasks in the Web UI.</li>
9133
+ <li><strong>Core Data Model</strong>: Read about all the Nautobot <a href="core-data-model/overview/introduction.html">data models</a> used to store your network data.</li>
9134
+ <li><strong>Platform Functionality</strong>: Dive deep into Nautobot extensibility, such as building automation with <a href="platform-functionality/jobs/index.html">Jobs</a>, programmatically accessing data through the <a href="platform-functionality/rest-api/overview.html">REST</a> and <a href="platform-functionality/graphql.html">GraphQL</a> APIs, or using <a href="platform-functionality/gitrepository.html">Git repositories</a> as a data source.</li>
9135
+ </ul>
9136
+ <h2 id="quick-links">Quick Links<a class="headerlink" href="#quick-links" title="Permanent link">&para;</a></h2>
9137
+ <div class="admonition tip">
9138
+ <p class="admonition-title">Tip</p>
9139
+ <p>Are you a <strong>new user</strong> to Nautobot looking to get started? Explore the following resources.</p>
9140
+ </div>
9141
+ <!-- pyml disable-num-lines 25 no-inline-html -->
9142
+ <div class="grid cards">
9143
+ <ul>
9144
+ <li>
9145
+ <p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 20q-2.28 0-3.89-1.57Q1 16.85 1 14.58q0-1.95 1.17-3.48 1.18-1.53 3.08-1.95.58-2.02 2.14-3.4Q8.95 4.38 11 4.08v8.07L9.4 10.6 8 12l4 4 4-4-1.4-1.4-1.6 1.55V4.08q2.58.35 4.29 2.31T19 11q1.73.2 2.86 1.5 1.14 1.28 1.14 3 0 1.88-1.31 3.19T18.5 20Z"/></svg></span> <strong>Installing Nautobot</strong></p>
9146
+ <hr />
9147
+ <p>Get started with <a href="administration/installation/index.html">Nautobot installation</a> on your own Linux Platform or in a Docker environment.</p>
9148
+ </li>
9149
+ <li>
9150
+ <p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15 20a1 1 0 0 0-1-1h-1v-2h4a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h4v2h-1a1 1 0 0 0-1 1H2v2h7a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1h7v-2zm-5-6V6l5 4z"/></svg></span> <strong>Using Nautobot</strong></p>
9151
+ <hr />
9152
+ <p>Dive into <a href="feature-guides/getting-started/index.html">how to use Nautobot</a> and the key components of the core web interface.</p>
9153
+ </li>
9154
+ <li>
9155
+ <p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15 2c1.94 0 3.59.7 4.95 2.05C21.3 5.41 22 7.06 22 9c0 1.56-.5 2.96-1.42 4.2-.94 1.23-2.14 2.07-3.61 2.5l.03-.32V15c0-2.19-.77-4.07-2.35-5.65S11.19 7 9 7h-.37l-.33.03c.43-1.47 1.27-2.67 2.5-3.61C12.04 2.5 13.44 2 15 2M9 8a7 7 0 0 1 7 7 7 7 0 0 1-7 7 7 7 0 0 1-7-7 7 7 0 0 1 7-7m0 2a5 5 0 0 0-5 5 5 5 0 0 0 5 5 5 5 0 0 0 5-5 5 5 0 0 0-5-5"/></svg></span> <strong>Migrating to Nautobot</strong></p>
9156
+ <hr />
9157
+ <p>Dig into how you can <a href="administration/migration/migrating-from-netbox.html">migrate from NetBox</a> to Nautobot seamlessly.</p>
9158
+ </li>
9159
+ <li>
9160
+ <p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21.5c-1.35-.85-3.8-1.5-5.5-1.5-1.65 0-3.35.3-4.75 1.05-.1.05-.15.05-.25.05-.25 0-.5-.25-.5-.5V6c.6-.45 1.25-.75 2-1 1.11-.35 2.33-.5 3.5-.5 1.95 0 4.05.4 5.5 1.5 1.45-1.1 3.55-1.5 5.5-1.5 1.17 0 2.39.15 3.5.5.75.25 1.4.55 2 1v14.6c0 .25-.25.5-.5.5-.1 0-.15 0-.25-.05-1.4-.75-3.1-1.05-4.75-1.05-1.7 0-4.15.65-5.5 1.5M12 8v11.5c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5V7c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5m1 3.5c1.11-.68 2.6-1 4.5-1 .91 0 1.76.09 2.5.28V9.23c-.87-.15-1.71-.23-2.5-.23q-2.655 0-4.5.84zm4.5.17c-1.71 0-3.21.26-4.5.79v1.69c1.11-.65 2.6-.99 4.5-.99 1.04 0 1.88.08 2.5.24v-1.5c-.87-.16-1.71-.23-2.5-.23m2.5 2.9c-.87-.16-1.71-.24-2.5-.24-1.83 0-3.33.27-4.5.8v1.69c1.11-.66 2.6-.99 4.5-.99 1.04 0 1.88.08 2.5.24z"/></svg></span> <strong>New User Resources</strong></p>
9161
+ <hr />
9162
+ <p>Take advantage of the <a href="https://go.networktocode.com/nautobot-navigators-collection">Nautobot Navigators</a> collection of curated resources, including eBooks and a guided Nautobot Sandbox tour.</p>
9163
+ </li>
9164
+ </ul>
9165
+ </div>
9166
+ <div class="admonition tip">
9167
+ <p class="admonition-title">Tip</p>
9168
+ <p>Already familiar with Nautobot and looking to expand your knowledge? Check out these advanced topics.</p>
9169
+ </div>
9170
+ <!-- pyml disable-num-lines 23 no-inline-html -->
9171
+ <div class="grid cards">
9172
+ <ul>
9173
+ <li>
9174
+ <p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 7H5a2 2 0 0 0-2 2v8h2v-4h2v4h2V9a2 2 0 0 0-2-2m0 4H5V9h2m7-2h-4v10h2v-4h2a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2m0 4h-2V9h2m6 0v6h1v2h-4v-2h1V9h-1V7h4v2Z"/></svg></span> <strong>Nautobot APIs</strong></p>
9175
+ <hr />
9176
+ <p>Check out the <a href="platform-functionality/rest-api/overview.html">REST API documentation</a> covering both basic features and advanced use cases.</p>
9177
+ <p>Are you looking for <a href="platform-functionality/graphql.html">GraphQL</a> APIs instead? If you are new to GraphQL, you can also read the <a href="platform-functionality/graphql.html">Nautobot GraphQL User Guide</a>.</p>
9178
+ </li>
9179
+ <li>
9180
+ <p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.04 12.13c.14 0 .27.06.38.17l1.28 1.28c.22.21.22.56 0 .77l-1 1-2.05-2.05 1-1c.11-.11.25-.17.39-.17m-1.97 1.75 2.05 2.05L15.06 22H13v-2.06zM10 2h4a2 2 0 0 1 2 2v2h4a2 2 0 0 1 2 2l-2 2V8H4v11h7v2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4V4a2 2 0 0 1 2-2m4 4V4h-4v2z"/></svg></span> <strong>Jobs</strong></p>
9181
+ <hr />
9182
+ <p>Looking to run your custom Python code on demand?</p>
9183
+ <p>Explore <a href="platform-functionality/jobs/index.html">Nautobot Jobs</a>, which leverage your Nautobot data to automate using your Python code.</p>
9184
+ </li>
9185
+ <li>
9186
+ <p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66-.12a.6.6 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22 2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.93 2.27"/></svg></span> <strong>Nautobot &amp; NAPALM</strong></p>
9187
+ <hr />
9188
+ <p>Are you curious how <a href="platform-functionality/napalm.html">NAPALM integrates with Nautobot?</a> Learn how you can use NAPALM functionality to fetch live data from network devices.</p>
9189
+ </li>
9190
+ <li>
9191
+ <p><span class="twemoji lg middle"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 3v6h8V3m-8 18h8V11h-8M3 21h8v-6H3m0-2h8V3H3z"/></svg></span> <strong>Nautobot Apps &amp; Solutions</strong></p>
9192
+ <hr />
9193
+ <p>Discover the power of <a href="https://networktocode.com/nautobot/nautobot-apps/">Nautobot Apps &amp; Solutions</a>, from the <a href="https://docs.nautobot.com/projects/golden-config/en/latest/">Golden Configuration app</a> enforcing configuration compliance to the <a href="https://docs.nautobot.com/projects/ssot/en/latest/">SSoT app</a> synchronizing data across multiple sources of truth.</p>
9194
+ <p>These apps are all open source and commercially supported by Network to Code.</p>
9195
+ </li>
9196
+ </ul>
9197
+ </div>
9111
9198
 
9112
9199
 
9113
9200