Skip to content

Configuration Directory & Tasks

Directories

Build & Tools

Directory Explanation
build Artefacts of build steps
buildSrc, gradle, .gradle-user, .gradle-repo Gradle environment incl. libraries for external build
Jenkinsfile, jenkins Example for CI/CD integration, optional depending on environment
tools/jre
tools/just

Configurations

Directory Explanation
backends Definition of available backends, their endpoints and their nodes for fetching data (#MISS)
client-config/config.json Client configuration file
i18n Directory containing customer localizations
library Libraries for business logic of various backends/adapters (#MISS)
schedules Schedule definitions for scripts executions
static-content Static-Content to customize and extend the client
trees Base of use-case configurations, template support available
trees/mapping Definition of mappings between the ui and the configured node of a backend (#MISS)
trees/ui Definition of ui representation of a use-case (#MISS)
trees/maximo Use-Cases for Maximo v2 backend, will be uploaded to treeConfigurations folder
v2 Folder to configure v2 based Maximo backend, must exist (#MISS)

Setup

Gradle & gradle.properties

Gradles main configuration and cache management is controlled through the GRADLE_USER_HOME environment variable. The default value for this is the .gradle folder in the users home directory, independend of the folder/project Gradle is executed. To get a project dependent setup GRADLE_USER_HOME must be defined.

If a relative path is configured, this path is relative to Gradles main project folder.

Examples for gradle.properties in GRADLE_USER_HOME:

Local-Dev

s3Url = http://localhost:9001
s3AccessKey = 8nbOhwqd5qklRMDh0QmC
s3Secret = xWWoxZOLzzVZTceqk72LXq5MwvCVVz6Eutoyu8n5
//s3BucketPrefix = foobar
mwUrl = http://localhost:8080 - cloud-vm Beispiel:

Cloud-VM Example

s3Url = https://s3.some.project.insight-cloud.app
s3AccessKey = XYZXYZXYZXYZXYZXYZXYZXYZXYZ
s3Secret = ZYXZYXZYXZYXZYXZYXZYXZYXZYX
mwUrl = https://some.project.insight-cloud.app:8443/middleware

Tasks

just gradle: executes gradle with GRADLE_USER_HOME=.gradle-user

Gradle-Tasks

Task Description
tasks List all available Gradle tasks
storageInit create all necessary buckets in the S3 storageInit

must be execute once during setup the environment
uploadClientConfig Generate & Upload client config and static-content
uploadLanguages Upload language translations
uploadLibrary* Build, Upload and Notify adapters for business logic libraries
uploadMaximoConfigurations Upload Maximo UseCases into Maximo treeConfigurations folder
uploadSuiteConfigurations Upload Insight UseCases to middleware
  • * wrapper task configured in build.gradle.kts

S3 storage upload

Most upload tasks put files into S3 buckets:

  • insight-backend
  • insight-config

These names can be prefixed with an installation-specific prefix by setting S3BucketPrefix in the projects gradle.properties file

If an S3BucketPrefix is defined here, the corresponding services must be configured by using the env INSIGHT_S3_BUCKET_PREFIX as well.

Library upload

Insight provides the possibilty to implement specific backend routines. The compilation and handling must be done with gradle as well and must happen in the library subfolder. As these library implementations are very specific to a specific project they must be properly configured and can't be prepared for all circumstances.

An example for this is the uploadLibrary task, which is supposed to compile and upload all library code to the corresponding adapters. As the amount and type of adapter vary per customer project this task has to be modified in the build.gradle.kts, so it contains all required dependcies to all sub-tasks in the library folder.

The library projects responsible for uploading must have the same name as their corresponding service running the adapter. As best practice we use the suffix -suite for those names, like business-suite, hxgn-suite, ...

Migration Hints:

Folders:

  • templates/ui => trees/templates
  • raw/ui => trees/ui

Example, structure of template project