Skip to main content

Configuration File

The starting point of the application is the configuration file, which contains all the necessary information for generation.

Let's consider an example:

ProjectName: ScyCommerce

Auth: auth0

Dashboard:
Name: svelte-crud
Flags:
Architecture: graphql

GlobalWorkers:
- Name: grafana-prometheus
Flags:
Panel: 19924-asp-net-core
- Name: elk

DefaultFramework: aspnet-ddd
DefaultDatabase: postgresql
DefaultServiceFlags:
Logging: elk

Services:
Products:
Flags:
Metrics: prometheus
Models:
Category:
Title: string
Description: string
Supplier:
Name: string
Orders:
Framework: jin
Database: mongodb
Models:
Order:
Date: string

At first glance, this might seem quite intricate, but let's break down each keyword step by step.

  1. ProjectName* - the name of the project, which will be used in folder names, templates, etc.
  2. Auth* - specifying the authentication and/or authorization system, it's just a marker for templates and doesn't require plugin installation.
  3. Dashboard - Fields required for the dashboard plugin.
    1. Name - Specifying the plugin name.
    2. Flags - Specifying flags.
  4. GlobalWorkers - Specifying a list of fields required for global worker plugins.
    1. Name - Specifying the plugin name.
    2. Flags - Specifying flags.
  5. DefaultFramework - Specifying the name of the framework plugin to be applied to all services by default (can be overwritten by the Framework parameter in the service).
  6. DefaultDatabase - Specifying the name of the database to be applied to all services by default, it's just a marker for templates and doesn't require plugin installation (can be overwritten by the Database parameter in the service).
  7. DefaultServiceFlags - Specifying flags to be applied to all services by default (can be combined with the Flags parameter in the service).
  8. Services* - List of services, where the key is the service name.
  9. Models* - List of models, where the key is the model name, and the value is a dictionary consisting of the field name (key) and data type (value).

* - Mandatory element.

That's all you need to create a project, a small configuration file and nothing more. If there are any terms you don't understand, don't forget to refer to the navigation list or click on the link within the word.