DSL Project Folder Structure

Helium enforces a certain folder structure for apps. If apps do not conform to this structure, they cannot be compiled and deployed.


Description
builtin-reportsJasper reports that are used as attachments for emails sent from DSL logic. Each report and its associated resources (sub-reports and images) must be in a separate folder. Note that the Helium Dev client does not expect a recursive folder structure here. All resources for a report must be in that report's folder and not nested any deeper.
modelData model definition for DSL logic and views across the entire app (mobile and web modules).
jasper-reportsJasper reports that are displayed under the "Reports" menus in web applications. Each sub-folder in this folder represents a single report. Further sub-folders are ignored.
servicesFiles that contain units with logic that are called as services from Helium such as functions annotated by @InviteUser, @RoleName, @Scheduled, @ReceiveSms.
shared-libsContains list of zero or more directories, each representing a shared library that is included in the project.
utilities

Files that contain units with logic that is referenced from your Helium web application.

web-app

Contains the following sub-folders and represents the DSL web application: images, lang, presenters, views, static, email-template

notification-templatesContains files per locale containing messaging templates for Helium invite messages. Detailed documentation can be found here.
sql-scriptsContains SQL scripts that will be executed as part of schema upgrade during app deployment. Detailed documentation can be found here.
staticContains static web content resources to be used for rendering custom HTML in views as part of the <static> widget.

See the hierarchical structure below for further reference:

  • builtin-reports
    • per report folder
      • report jrxml file
      • other image or subreport resource
      • ...
  • model
  • jasper-reports
    • per report folder
      • report.json
      • master.jxml
      • other image or subreport resource
      • ...
  • services
  • shared-libs
  • utilities
  • notification-templates
  • sql-scripts
    • any flat or nested directory structure containing .sql files
  • web-app
    • email-templates
    • images
    • lang
    • presenters
    • views
    • static
      • any flat or nested directory structure containing static web content such as HTML, JS, CSS and images.