Skip to content

Generation from templates

Dirigible ships a library of templates that generate either a full application or a single artefact. Templates live under components/template/template-*/ in the source tree and are reachable through the IDE's Generate action or the GenerationEndpoint REST API.

Two template families

FamilyExamplesWhat it produces
Applicationtemplate-application-angular, …-angular-java, …-angular-v2, template-application-dao, …-rest, …-data, …-feed, …-odata, …-schema, …-ui-angularFull CRUD app: tables, REST endpoints, OData, UI. Driven by an EDM model.
Single artefacttemplate-bpm, template-camel, template-camel-cron-route, template-camel-http-route, template-database-access, template-database-table, template-database-view, template-editor, template-extension-perspective, template-extension-view, template-form, template-form-builder-angularjs, template-html, template-http-client, template-job, template-listener, template-mapping-javascript, template-perspective, template-react, template-typescript, template-view, template-websocketOne file or a tight bundle of files for the named artefact.

Sample-project templates: template-bookstore, template-hello-world.

Generating from an Entity Data Model

The Entity Data Modeler (*.edm) is the canonical input to the application templates.

  1. Open or create an *.edm in the Entity Data modeler.
  2. Drag entities, add fields, draw associations.
  3. Right-click the model, choose Generate Application, pick a template, set the target project name.

The platform emits tables, OData services, REST endpoints, an Angular UI, and per-entity perspectives.

Generating from a Database Schema model

Use the Database Schema modeler for *.dsm files. The DSM is closer to raw DDL than an EDM; generation produces .schema / .table / .view artefacts and constraints.

REST API

The same templates are reachable programmatically through GenerationEndpoint:

POST /services/ide/generate
{
  "project": "demo",
  "template": "template-application-rest",
  "parameters": { ... }
}

Use this for CI-driven scaffolding or for embedding the platform inside another build system.

Templating engines

The body of each template uses the platform's @aerokit/sdk/template engines - Mustache, Velocity, or JavaScript-expression - depending on the template author's choice. The pipeline lives under components/template/.

See also

Released under the EPL-2.0 License.