Skip to main content
Version: 2022

Manifest for the Deployment Center

Manifest

The manifest is a JSON or YAML configuration file that describes the structure of deployable products inside an installation package to the Deployment Center. This mostly includes the types of products contained in the package and the location of the files needed to deploy them.

Schema

The schema specification version of the manifest dictates the way the Deployment Center translates the contents to deployable products.

Version 1 was created to support installation packages that are downloaded from TCP. When the schema specification version is not declared inside a manifest, the Deployment Center will assume that it corresponds to version 1.

A schema specification version 2 has been introduced in version 1.8.0 of the Deployment Center to support the creation of manifests for custom applications.

note
  • It is not recommended to use version 1 to create custom installations.
  • As of the Deployment Center 1.8.0 release, manifests using schema 1 are considered deprecated. Support for these manifests has been removed in version 2.0.0.

Specification (v2): Root properties

This section describes the structure and properties of a manifest that uses schema specification V2/2.

PropertyValueDescriptionRequired
schema2 or "V2".Declares the schema version that the manifest file uses. If absent or set to value other than 2/"V2" the deployer assumes schema version 1 is used.
defaultPathAn absolute file path.Gives the deployer a default directory root path for the following:

  • The directory of the database application files
  • The directory to install a Mobile/Windows GUI to.
productsA collection of products.

Products

PropertyValueDescriptionRequired
typeA string with one of the following values:

Declares the type of product that is being described to the deployer.

Depending on the value different properties are expected.

Database products

Database products are used for applications generated by a Software Factory.

Valid types for database products are:

  • IAM
  • SF
  • Application
  • Upcycler.
PropertyValueDescriptionRequired
projectId"MY_APP"A string corresponding to the application's project ID in the Software Factory that generated the installation/upgrade files.Application
version"2018.2", "2019.1", "2019.1", "1.00", "1.10" etc.The version of the application contained in the installation package.
metaVersion"2019.1", "2019.1" etc.A string corresponding to the IAM/SF version an application is targeting.

Note: For SF and IAM types this value is considered equal to the version property and is therefore ignored.
Application
projectFolder"D:\\SoftwareFactory\\Applications"An absolute file path that should be equal to the project's project folder specification value that was used when generating the installation scripts, WITHOUT the project ID and version parts.

Used to update imported IAM models with the path that the deployer used during installing or upgrading a database product.
dependenciesSee Database dependency valuesA collection of strings that indicate pre-conditions that the database or database engine must satisfy before an install or upgrade can be performed.
encodingSee Encoding.Possibility to override the encoding for script files.
packagesA collection of database packages.Describes which actions the deployer can perform for this database product.

Database dependency values

ValueChecked duringDescriptionSupported in deployer
CompatibilityLevel100
  • Install
  • Upgrade
Checks if the targeted database (engine) compatibility level is set to 100 (SQL Server 2008 (R2)) or higher during an upgrade or installation.

Note: This is the minimum level for scripts generated by SF/IAM installations from 2017.1 until 2019.1.
>= 1.8.0
CompatibilityLevel110
  • Install
  • Upgrade
Checks if the targeted database (engine) compatibility level is set to 110 (SQL Server 2012) or higher during an upgrade or installation.

Note: This is the minimum level for scripts generated by 2019.1 SF/IAM installations and onwards.
>= 1.8.0
CompatibilityLevel120
  • Install
  • Upgrade
Checks if the targeted database (engine) compatibility level is set to 120 (SQL Server 2014) or higher during an upgrade or installation.>= 1.11.0
CompatibilityLevel130
  • Install
  • Upgrade
Checks if the targeted database (engine) compatibility level is set to 130 (SQL Server 2016) or higher during an upgrade or installation.>= 1.11.0
CompatibilityLevel140
  • Install
  • Upgrade
Checks if the targeted database (engine) compatibility level is set to 140 (SQL Server 2017) or higher during an upgrade or installation.>= 2.0.0
CompatibilityLevel150
  • Install
  • Upgrade
Checks if the targeted database (engine) compatibility level is set to 150 (SQL Server 2019) or higher during an upgrade or installation.>= 2.0.0
FullTextSearch
  • Install
  • Upgrade
Checks if the Full-Text Search feature is installed on the targeted SQL Server instance.>= 1.9.0
Invalid
  • Install
  • Upgrade
Represents an unrecognized dependency which will always block deployment.

If you encounter one of these please check if the dependency value you are trying to use is correctly spelled inside the manifest and supported by the deployer version that is being used.

Database packages

Database products are only considered full products when they declare at least one package property value.

PropertyValueDescriptionRequired
type
  • Install
  • Upgrade
  • Hotfix
The database product sub-type that the package is declaring.

Note: The hotfix sub-type is mostly used in conjunction with the IAM and SF product types. Users wishing to use the hotfix sub-type with the Application product type must adhere to certain rules for the deployer to properly execute such a combination. Please contact Thinkwise Product Innovation for more information about these rules.
path
  • "IAM\\Install"
  • "D:/installation_packages/IAM/Install"
  • etc.
A directory path to the root of a generated database application package.

Relative paths are considered relative to the location of the manifest file.
defaultDatabaseName"THINKWISE_IAM"A default database name to use during an Install package.

Note: Only used in the deployer GUI.
encoding"windows-1252" or "utf-8"Possibility to override the encoding for script files. See Encoding.Default is "windows-1252"
supportedVersionsA collection of supported upgrade version properties.Describes upgrade paths that the deployer can use to upgrade to the current product version.Upgrade

Supported upgrade versions

These properties are used to describe upgrade paths that the deployer can use when upgrading to the version that a database product declares.

PropertyValueDescriptionRequired
version"2017.1", "2019.1", "1.00" etc.The current version of the database product that is targeted for the upgrade.
upgradesTo"2019.1", "1.10" etc.The version that the database product which is targeted for an upgrade will have when all files have been executed.

This is then the next version that the deployer will look for in the supported upgrade version properties to find further upgrade files.

This process continues until the next upgradesTo version is equal to the product's declared version.

Having an incomplete or looping upgrade path results in an invalid Upgrade product.
filesA collection of path strings.Absolute or relative path values to the files needed to perform the upgrade from the current version to the upgradesTo version.

Files are executed by the deployer in the order they are inserted into the collection.

Relative paths are considered relative to the computed value of the database package's path property.

Use path for a compact manifest.
files or path
pathThe directory that contains the upgrade scripts.Use instead of files. Leads to a more compact manifest.files or path
encoding"windows-1252" or "utf-8"Possibility to override the encoding for script files. See Encoding.Default is "windows-1252"

Rules for the path property:

  • Only the immediate directory is scanned for .sql files. Subdirectories will be skipped.

  • All .sql files inside the specified directory must adhere to the <order/sequence number>_<code file name>.sql format the Software Factory uses to generate the code files.

  • The path of a supportedVersion is relative to the path of the upgrade package, which in turn is relative to the location of the manifest file.

  • Using the manifest below as an example:

    If the manifest file is located at "C:\Manifests", the path of the upgrade package resolves to "C:\Manifests\IAM\Upgrade". The and the path of the 2021.3 -> 2022.1 supportedVersion resolves to "C:\Manifests\IAM\Upgrade\2022.1".

Example:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
packages:
- type: "Upgrade"
path: "IAM/Upgrade"
supportedVersions:
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"

GUI/Indicium products

These are the properties for all products that aren't a database application product.

Valid types for these products are:

  • Universal
  • Indicium
  • Windows
  • Web
  • Mobile
  • Upcycler
PropertyValueDescriptionRequired
path
  • "GUI\\Windows"
  • "D:/installation/GUI/Web"
  • etc.
A directory path to the root of the product files.

Relative paths are considered relative to the location of the manifest file.
shortcutName"My_mobile_viewer"Mobile only and optional.

Provides a name for the shortcut to the viewer executable. If not provided the shortcut's name will be "Thinkwise".

Examples

note

These examples use the same structure that an installation package downloaded from TCP.

Installation packages downloaded from TCP always include a JSON manifest, click the YAML tab to see the equivalent in YAML.

Universal/Indicium/Win/Web/Mobile

{
"schema": 2,
"defaultPath": "D:\\SoftwareFactory",
"products": [
{
"type": "Universal",
"path": "GUI/Universal"
},
{
"type": "Indicium",
"path": "foldername/Indicium"
},
{
"type": "Windows",
"path": "GUI/Windows"
},
{
"type": "Web",
"path": "GUI/Web"
},
{
"type": "Mobile",
"path": "GUI/Mobile",
"shortcutName": "THINKWISE"
}
]
}

IAM

{
"schema": 2,
"products": [
{
"type": "IAM",
"version": "2021.3",
"projectFolder": "T:\\Software_fabriek\\Applicaties",
"dependencies": [
"CompatibilityLevel130"
],
"packages": [
{
"type": "Install",
"path": "IAM/Install",
"defaultDatabaseName": "THINKWISE_IAM"
},
{
"type": "Upgrade",
"path": "IAM/Upgrade",
"supportedVersions": [
{
"version": "2021.1",
"upgradesTo": "2021.2",
"files": [
"2021.2\\020_Upgrade.sql",
"2021.2\\030_Checks.sql",
"2021.2\\040_Constraints.sql",
"2021.2\\050_Indexes.sql",
"2021.2\\060_Functions.sql",
"2021.2\\065_Table_valued_functions.sql",
"2021.2\\070_Views.sql",
"2021.2\\080_Procedures.sql",
"2021.2\\090_Instead_of_triggers.sql",
"2021.2\\100_Triggers.sql",
"2021.2\\110_Tasks.sql",
"2021.2\\120_Defaults.sql",
"2021.2\\130_Layouts.sql",
"2021.2\\140_Contexts.sql",
"2021.2\\145_Badges.sql",
"2021.2\\150_Processes.sql",
"2021.2\\999_Apply_roles_on_database.sql",
"2021.2\\999_Manual.sql"
]
},
{
"version": "2021.2",
"upgradesTo": "2021.3",
"files": [
"2021.3\\020_Upgrade.sql",
"2021.3\\030_Checks.sql",
"2021.3\\040_Constraints.sql",
"2021.3\\050_Indexes.sql",
"2021.3\\060_Functions.sql",
"2021.3\\065_Table_valued_functions.sql",
"2021.3\\070_Views.sql",
"2021.3\\080_Procedures.sql",
"2021.3\\090_Instead_of_triggers.sql",
"2021.3\\100_Triggers.sql",
"2021.3\\110_Tasks.sql",
"2021.3\\120_Defaults.sql",
"2021.3\\140_Contexts.sql",
"2021.3\\150_Processes.sql",
"2021.3\\999_Apply_roles_on_database.sql",
"2021.3\\999_Manual.sql"
]
}
]
},
{
"type": "Hotfix",
"path": "IAM/Hotfixes"
}
]
}
]
}

Software Factory

{
"schema": 2,
"products": [
{
"type": "SF",
"version": "2021.3",
"projectFolder": "T:\\Product Innovation\\Applications",
"dependencies": [
"CompatibilityLevel130",
"FullTextSearch"
],
"packages": [
{
"type": "Install",
"path": "SF/Install",
"defaultDatabaseName": "THINKWISE_SF"
},
{
"type": "Upgrade",
"path": "SF/Upgrade",
"supportedVersions": [
{
"version": "2021.1",
"upgradesTo": "2021.2",
"files": [
"2021.2\\020_Upgrade.sql",
"2021.2\\030_Checks.sql",
"2021.2\\040_Constraints.sql",
"2021.2\\050_Indexes.sql",
"2021.2\\060_Functions.sql",
"2021.2\\065_Table_valued_functions.sql",
"2021.2\\070_Views.sql",
"2021.2\\072_History_Functions.sql",
"2021.2\\074_History_Views.sql",
"2021.2\\080_Procedures.sql",
"2021.2\\081_Data_Procedures.sql",
"2021.2\\090_Instead_of_triggers.sql",
"2021.2\\100_Triggers.sql",
"2021.2\\110_Tasks.sql",
"2021.2\\120_Defaults.sql",
"2021.2\\130_Layouts.sql",
"2021.2\\140_Contexts.sql",
"2021.2\\145_Badges.sql",
"2021.2\\150_Processes.sql",
"2021.2\\999_Manual.sql"
]
},
{
"version": "2021.2",
"upgradesTo": "2021.3",
"files": [
"2021.3\\020_Upgrade.sql",
"2021.3\\030_Checks.sql",
"2021.3\\040_Constraints.sql",
"2021.3\\050_Indexes.sql",
"2021.3\\060_Functions.sql",
"2021.3\\065_Table_valued_functions.sql",
"2021.3\\070_Views.sql",
"2021.3\\072_History_Functions.sql",
"2021.3\\074_History_Views.sql",
"2021.3\\080_Procedures.sql",
"2021.3\\081_Data_Procedures.sql",
"2021.3\\090_Instead_of_triggers.sql",
"2021.3\\100_Triggers.sql",
"2021.3\\110_Tasks.sql",
"2021.3\\120_Defaults.sql",
"2021.3\\130_Layouts.sql",
"2021.3\\140_Contexts.sql",
"2021.3\\145_Badges.sql",
"2021.3\\150_Processes.sql",
"2021.3\\999_Manual.sql"
]
}
]
},
{
"type": "Hotfix",
"path": "SF/Hotfixes"
}
]
}
]
}

Application

{
"schema": 2,
"defaultPath": "D:\\SoftwareFactory",
"products": [
{
"type": "Application",
"projectId": "MY_APP",
"version": "1.10",
"metaVersion": "2021.3",
"projectFolder": "D:\\SoftwareFactory\\DevApplications",
"dependencies": [
"CompatibilityLevel130"
],
"packages": [
{
"type": "Install",
"path": "MY_APP/Install",
"defaultDatabaseName": "MY_APP"
},
{
"type": "Upgrade",
"path": "MY_APP/Upgrade",
"supportedVersions": [
{
"version": "1.00",
"upgradesTo": "1.10",
"files": [
"1.10\\020_Upgrade.sql",
"1.10\\030_Checks.sql",
"1.10\\040_Constraints.sql",
"1.10\\050_Indexes.sql",
"1.10\\060_Functions.sql",
"1.10\\070_Views.sql",
"1.10\\080_Procedures.sql",
"1.10\\090_Instead_of_triggers.sql",
"1.10\\100_Triggers.sql",
"1.10\\110_Tasks.sql",
"1.10\\120_Defaults.sql",
"1.10\\130_Layouts.sql",
"1.10\\140_Contexts.sql",
"1.10\\145_Badges.sql",
"1.10\\150_Processes.sql",
"1.10\\999_Apply_roles_on_database.sql"
]
}
]
}
]
}
]
}

Encoding

As of the Thinkwise Platform release 2021.3, the script generation process is run by Indicium. That allows overriding the encoding for script files.

The encoding property can be set at the following levels inside an IAM, Software Factory, Upcycler, or application type product:

  • Product level.
  • Package level.
  • supportedVersion level inside an upgrade package.

When the encoding is changed at higher levels, the Deployment Center will use the same encoding at lower levels or until it encounters another override value.

note
  • Because the meta model import is not a separate package type inside manifests using schema V2, it currently assumes the same encoding as the install or upgrade package, depending on which was used to detect the presence of the import scripts (usually the install package).
  • encoding specifies the fallback encoding it should use if it does not detect a BOM. This means that technically you could mix file encodings in a package as long as encoding with a defined BOM is used. But if possible, it is still best to use a single encoding.

Default encoding

To maintain backward compatibility with previously generated manifests using the V2 specification, the default value of the encoding property is windows-1252. Using this default, means that the following manifest:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
packages:
- type: "Install"
path: "IAM/Install"
- type: "Upgrade"
path: "IAM/Upgrade"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
- type: "Hotfix"
path: "IAM/Hotfixes"

is interpreted by the Deployment Center as:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "windows-1252"
packages:
- type: "Install"
path: "IAM/Install"
encoding: "windows-1252"
- type: "Upgrade"
path: "IAM/Upgrade"
encoding: "windows-1252"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
encoding: "windows-1252"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
encoding: "windows-1252"
- type: "Hotfix"
path: "IAM/Hotfixes"
encoding: "windows-1252"

Default for entire product to UTF-8

To change the default script encoding for the entire product to UTF-8:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "utf-8"
packages:
- type: "Install"
path: "IAM/Install"
- type: "Upgrade"
path: "IAM/Upgrade"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
- type: "Hotfix"
path: "IAM/Hotfixes"

Manifest as interpreted by the Deployment Center:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "utf-8"
packages:
- type: "Install"
path: "IAM/Install"
encoding: "utf-8"
- type: "Upgrade"
path: "IAM/Upgrade"
encoding: "utf-8"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
encoding: "utf-8"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
encoding: "utf-8"
- type: "Hotfix"
path: "IAM/Hotfixes"
encoding: "utf-8"

Default to UTF-8, upgrade package at Windows-1252

To change the default encoding of the product to UTF-8 but leave the upgrade package at Windows-1252:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "utf-8"
packages:
- type: "Install"
path: "IAM/Install"
- type: "Upgrade"
path: "IAM/Upgrade"
encoding: "windows-1252"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
- type: "Hotfix"
path: "IAM/Hotfixes"

Manifest as interpreted by the Deployment Center:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "utf-8"
packages:
- type: "Install"
path: "IAM/Install"
encoding: "utf-8"
- type: "Upgrade"
path: "IAM/Upgrade"
encoding: "windows-1252"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
encoding: "windows-1252"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
encoding: "windows-1252"
- type: "Hotfix"
path: "IAM/Hotfixes"
encoding: "utf-8"

Default to UTF-8, supportedVersion upgrade at Windows-1252

To change the default encoding of the product to UTF-8 but leave the supportedVersion upgrade for 2021.2 to 2021.3 at Windows-1252:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "utf-8"
packages:
- type: "Install"
path: "IAM/Install"
- type: "Upgrade"
path: "IAM/Upgrade"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
encoding: "windows-1252"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
- type: "Hotfix"
path: "IAM/Hotfixes"

Manifest as interpreted by the Deployment Center:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "utf-8"
packages:
- type: "Install"
path: "IAM/Install"
encoding: "utf-8"
- type: "Upgrade"
path: "IAM/Upgrade"
encoding: "utf-8"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
encoding: "windows-1252"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
encoding: "utf-8"
- type: "Hotfix"
path: "IAM/Hotfixes"
encoding: "utf-8"

Default to UTF-8, upgrade package at Windows-1252, UTF-8 for supportedVersion upgrade

To change the default encoding of the product to UTF-8, leave the upgrade package at Windows-1252 but use UTF-8 again for the 2021.3 to 2022.1 supportedVersion upgrade:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "utf-8"
packages:
- type: "Install"
path: "IAM/Install"
- type: "Upgrade"
path: "IAM/Upgrade"
encoding: "windows-1252"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
encoding: "utf-8"
- type: "Hotfix"
path: "IAM/Hotfixes"

Manifest as interpreted by the Deployment Center:

schema: 2
products:
- type: "IAM"
version: "2022.1"
projectFolder: "T:\\Product Innovation\\Applications"
dependencies:
- "CompatibilityLevel140"
encoding: "utf-8"
packages:
- type: "Install"
path: "IAM/Install"
encoding: "utf-8"
- type: "Upgrade"
path: "IAM/Upgrade"
encoding: "windows-1252"
supportedVersions:
- version: "2021.2"
upgradesTo: "2021.3"
path: "2021.3"
encoding: "windows-1252"
- version: "2021.3"
upgradesTo: "2022.1"
path: "2022.1"
encoding: "utf-8"
- type: "Hotfix"
path: "IAM/Hotfixes"
encoding: "utf-8"

Was this page helpful?