Documentation

No results
    gitHub

    Deployment policy

    At Hackolade, we want to let customers benefit from newly developed features as soon as they are developed and tested.  As we say: "Application code is only happy when deployed in production..."  or "what's the use of developing something if it is to leave it in a drawer?"   ;-)  This is why we release a new version of the application every single week of the year.

     

    But some large customers don't want users to be able to upgrade, and prefer to deploy our desktop app with a specific configuration whereby they turn off the checks for application and plugin updates.  The main drawback is that users are not aware of the availability of newly developed enhancements, resulting in customers not taking advantage of the heavy investments that Hackolade makes in continuously enhancing the application.

     

    Deployment policy file

    A deployment policy file allows configuration by the customer.  

     

    The policy allows to selectively turn off the checks for application and plugin updates. As a result, users would not get prompted to update the application and/or the plugins at startup.

     

    The deployment policy file name is

    hackolade-deployment-policy.toml

     

    Policy file format

    The application looks for the presence and content the deployment policy file every time the application starts, we apply the configuration, and adjust the application behavior accordingly.  

     

    We have chosen TOML for the format of our policy file.

    • it has a formal open source specification;
    • it allows comments (contrary to JSON for example);
    • it supports data types;
    • it can be parsed using smol-toml, a small dependency-free library that is fully compliant with the latest version of the TOML specification.

     

    Check whether application updates are disallowed

    • By default, the check for application updates on startup is enabled.

     

    Update checks are disabled if the deployment policy file contains the line:

    canCheckForApplicationUpdates = false

     

    The default application behavior is altered so that:

    • the check for application updates on startup becomes disabled.
    • the related configuration parameter becomes hidden in Tools > Options > General.
    • the related entry becomes hidden in the Help menu.

    Check whether plugin updates are disallowed

    • By default, the check for plugin updates on startup is enabled.

     

    Update checks are disabled if the deployment policy file contains the line:

    canCheckForPluginUpdates = false

     

    The default application behavior is altered so that:

    • the check for application updates on startup becomes disabled.
    • the related configuration parameter becomes hidden in Tools > Options > General.
    • the related entry becomes hidden in the Help menu
    • users don't get prompted to install plugins (e.g. when opening a model for a target for which the plugin is not installed).

     

    Check whether plugin installation is disallowed

     

    Plugin installation are disabled if the deployment policy file contains the line:

    canInstallPlugin

     

    The default application behavior is altered so that:

    • the plugin manager is hidden
    • users don't get prompted to install plugins (e.g. when opening a model for a target for which the plugin is not installed).

     

    Policy file location

    The file location is different depending on the Operating System:

     

    Windows

    The deployment policy file is located in the application folder, next to the executable file. 

     

    By default the installer places places the application in: 

    C:\Program Files\Hackolade

     

    Although this location may be different if the user changes it during installation, or if the IT image is configured to locate it elsewhere.

     

    Linux

    The deployment policy file is located in the application folder where it was unzipped, next to the executable file.

     

    MacOS

    On MacOS, the application is installed as one single .app bundle whose content must comply with a predefined structure.  Every file in that package also has a signature (in Contents / _CodeSignature / CodeResources). The MacOS Gatekeeper ensures that the files still match their original signature before starting the app.  As a result alteration of any file in the package would lead to Gatekeeper refusing to start the application. 

     

    The deployment policy file is therefore located in 

    Hackolade.app/Contents/Plug-Ins

     

    Logging and error handling

    In the application log file Hackolade.log, that can be found in Help > AccessApplication Logs, we keep track of the policy

     

    If the policy file is empty (aka by default), the log contains this entry:

    Policy: {}

     

    If a custom policy has been defined, the policy is documented, for example:

    Policy: {
        "canCheckForApplicationUpdates": false,
        "canCheckForPluginUpdates": false
    }

     

    If there is an error (e.g. a parsing error), the entry may contain:

    Policy: failed (see below)
    Error while parsing the deployment policy: /Users/%username%/.hackolade/hackolade-deployment-policy.toml
    [cause]: Invalid TOML document: invalid value

    11: # Whether or not the installation of plugins is allowed
    12: canInstallPlugin = false;
                     ^

     

    If the policy file could not be found, the entry may contain:

    Policy: null