Skip to main content
Version: 2023

Deployment package

Introduction to deploying applications

Deployment packages provide a way to easily deploy applications created with the Thinkwise Platform to different locations, customers or tenants. Deployment packages can be executed using the Thinkwise Deployment Center, either using the graphical user interface (GUI) or the command line interface (CLI). The CLI can also be used together with deployment and release management tools like Octopus Deploy to automate deployments.

It is important to know that:

  • All jobs are performed by Indicium. So, the creation of the deployment package will continue even if you close the Software Factory GUI.
  • Since all jobs are performed by Indicium, it is possible to automate the entire process.
  • All developers can track a job's progress. For example, if one developer starts creating a deployment package, another developer can see this in their Deployment package screen. This behavior extends to the validation- and unit test tabs in various modelers, and to the Validation and Unit test screens that can be opened directly from the menu.

Create a deployment package

You can create a deployment package for a branch in the Deployment package screen.

To create a deployment package:

menu Deployment > Deployment package > tab Deployment package

  1. Click the Create deployment package task Run.

    The model and branch are preselected.

  2. It is possible to release your product with its own name and release number. Select the Different model name checkbox and enter names in fields As model and As branch. For example, your model in the Software Factory is called 'ERP' but is released as 'Thinkwise Software' (model), version '2.3' (branch).

  3. Enter a name for the Model version that will be created with the deployment package. This name will be stored in the menu Models > Model overview > tab Branches > tab Model settings.

  4. Select an Upgrade method. See Generation method.

  5. To verify your model while creating the deployment package, make sure that the option Verify synchronization is checked.

  6. In field Note, you can add the reason for creating the deployment package. The reason is also visible in the History tab.

  7. Click Execute. This will:

    • Generate the branch definition.
    • Validate the branch definition.
    • Generate the branch code for the full install and the full/smart upgrade.
      • The upgrade will be generated full or smart depending on the choice made in the Upgrade method field.
    • Generate the synchronization script for IAM.
    • Generate the manifest for the Thinkwise Deployment Center.

After a successful run, all deployment package files are written to the configured file storage location. A field containing the exact location appears on the screen. You can navigate to this folder open folder.


Creating a deployment package can take a while.

Creating a deployment package Creating a deployment package

Include modules in the deployment package

menu Deployment > Deployment package > tab Deployment package > tab Modules

If a branch contains any modules, a list of available modules will be shown. Select or clear the modules to include or exclude them from the deployment package.

The Roles tab shows all roles and the modules to which they belong. A checkmark before the role indicates whether it is included in the deployment package.

  • Any roles that are not assigned to a module will always be deployed by default.
  • Clearing modules that were previously deployed will remove them from your application during the next deployment.

Modules Selected modules

Post synchronization code

menu Deployment > Deployment package > tab Post synchronization code

It is possible to add arbitrary SQL code to a deployment package. This code will be executed on IAM after the synchronisation to IAM has been finished.

The code can, for example, respond to the tag mechanism in IAM in order to control what the code affects. Tags are available for users, user groups, tenants and applications. See: User tags, User group tags, Tenant tags, or Applications tags.

The current model_id and branch_id are available as variables, as long as there are no "GO" statements encountered.


This code is different from the post synchronization code in the Synchronization screen.

Post synchronization code
An example of how to use the Post synchronization code

Automate the creation of a deployment package

See Automate deployment.


menu Deployment > Deployment package > tab History

The History tab page shows a list of previously created deployment packages.

Was this page helpful?

Happy React is loading...