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.
- ProjectName* - the name of the project, which will be used in folder names, templates, etc.
- Auth* - specifying the authentication and/or authorization system, it's just a marker for templates and doesn't require plugin installation.
- Dashboard - Fields required for the dashboard plugin.
- Name - Specifying the plugin name.
- Flags - Specifying flags.
- GlobalWorkers - Specifying a list of fields required for global worker plugins.
- Name - Specifying the plugin name.
- Flags - Specifying flags.
- 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).
- 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).
- DefaultServiceFlags - Specifying flags to be applied to all services by default (can be combined with the Flags parameter in the service).
- Services* - List of services, where the key is the service name.
- 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.