Skip to Content
ReferenceSoftware Templates

Software Templates

What is a software template?

Software template provide pre-built, standardized structures for common types of applications. This allows developers to:

  • Quickly start new projects without building the basic architecture from scratch
  • Ensure consistency across multiple projects
  • Follow best practices and proven patterns built into the template
  • Focus on implementing specific business logic rather than generic boilerplate code

This efficiency can significantly reduce development time, especially for common application types, allowing teams to deliver projects faster and with more consistency.

CECG Software Templates

CECG provides software templates that integrate the entire P2P lifecycle, offering a significant advantage in application development.

These templates:

  • Incorporate the full P2P process out-of-the-box
  • Include built-in deployment pipelines with gated stages
  • Enable developers to start from zero and rapidly create a functional application

You can find the templates in the CECG Software Templates repository 

Integration via corectl

Corectl leverages the templates to create a new project via corectl app create command.

To ease authoring of a new software template there is a command corectl template render that will render a template into a new directory.

Parameters

Software templates can be parameterized to allow for customization of the template.

There are 2 types of parameters:

  1. Custom parameters defined in the template.yaml file
  2. Implicit parameters set by corectl when creating a new application

Custom parameters

Custom parameters are defined in the template.yaml file.

They are defined in the parameters section of the file.

For example:

parameters: - name: appName description: Name of the application type: string optional: true default: my-app

When rendering a template corectl will prompt user for the values of the parameters.

Implicit parameters

Implicit parameters are set by corectl when creating a new application.

At the moment, there are 4 implicit parameters:

- name: name description: application name optional: false - name: tenant description: tenant used to deploy the application optional: false - name: working_directory description: working directory where application is located optional: false default: "./" - name: version_prefix description: version prefix for application optional: false default: "v"
  • name is the name of the application
  • tenant is the tenant used to deploy the application