Blueprints

Each exporter package contains all blueprints that it needs to function. Blueprints define how the exporter generates the resulting code, and how it manipulates with Supernova Universal Data Model.

Blueprints can be accessed through Exporter Editor by selecting the blueprints tab.

Exporter Blueprint Configuration Interface

Blueprint List

All bundled exporters are listed in the left section of the blueprint tab. You can add new blueprint by clicking on + button and remove it either by right-clicking or selecting the blueprint and clicking on - button at the bottom of the list.

There are 2 important pieces of information in the list. The name of the blueprint, and its code identifier. Name is only for reference purposes, but it is worth naming blueprints properly, especially in large exporters. The code identifier is further described below.

Grouping

Each blueprint is part of the group. If no group is provided, Main group is used, otherwise the group you created is used instead. Use groups to logically separate blueprints by their functionality or purpose, such as "Components", "Support", "Generates File", and any other you deem useful.

Blueprint Detail

Following properties are available:

  • Blueprint Name - The name of the blueprint, shown everywhere inside Supernova

  • Group - Specific group that blueprint belongs to. Blueprints with the same name are sorted under the same category in the left panel

  • Description - Description of the exporter used for search and in the list of installed exporters

  • Blueprint ID - A unique identifier that can be used to reference blueprint inside code, for operations like include or others

Blueprint Configuration File

All configuration data is contained inside [Blueprint ID].json file in the /Supernova/Blueprint/Config folder of the exporter package. There is one configuration file for each blueprint. The configuration file has the following structure:

{
"editorSettings" : {
},
"group" : "Primary",
"id" : "header",
"invocation" : "once",
"name" : "Header",
"overview" : ""
}

As you can notice, there are a few additional properties not exposed in the interface:

  • invocation - Configurable inside blueprint editor, this setting defines how and how many times to invoke the blueprint when exporter runs

  • editorSettings - Internal properties that the editor needs to know about blueprints, the content is not important and can't be set manually - but the backing dictionary should always be present

Blueprint Code File

Each blueprint also contains the actual content of the blueprint. It is not a property in the configuration file, but instead a separate file [Blueprint ID].blazar in the /Supernova/Blueprint/Sources folder.

We chose this approach so you can also edit blueprint outside Supernova - if you open blueprint with VSCode with Studio extension installed, it will, for example, automatically highlight the code for you the same way as Studio does.