Design Quick Start - Nautobot Design Builder Documentation

Skip to content

# Design Quick Start

## Overview

The Demo Designs repository includes designs that can be used as a starting point for new design repositories. Simply fork the repository and add to or change the existing demo designs. The demo designs includes a full application stack that can be started with `invoke start` similar to Nautobot plugin or core development.

## Adding Designs

To add a new design you will need (at a minimum) a class extending `nautobot_design_builder.base.DesignJob`, a class extending `nautobot_design_builder.context.Context` and a design template. The design job must be imported in the `jobs/__init__.py` and it must also be either in a module in the `jobs` directory or it must be loaded in the `__init__.py` file in a package within the `jobs` directory. This follows the standard convention for Nautobot jobs.

For more information on creating designs see Getting Started with Designs.

Once the designs are loaded, you can start managing them from the "Design Builder" navigation tab.

## Sample Data

Much of the time, designs will need some data to exist in Nautobot before they can be built. In a development and testing environment it is necessary to generate this data for testing purposes. The Design Builder application comes with a `load_design` management command that will read a design YAML file (not a template) and will build the design in Nautobot. This can be used to produce sample data for a development environment. Simply create a YAML file that includes all of the object definitions needed for testing and load the file with `invoke build-design <filename>`. This should read the file and build all of the objects within Nautobot.