FeaturesΒΆ

Here is a summary of the current functional scope of QDT.

Configurable execution via environment variablesΒΆ

🎯 Configure execution and deployment via variables defined at the IT level.

For example, the path or URL of the deployment scenario to use can be defined with the QDT_SCENARIO_PATH variable.

You can also define (non-exhaustive list):

  • the logging level

  • the location for storing logs

  • the logs filename

  • the network proxy to use specifically for QDT (by default, the system-configured proxy is used)

  • the SSL certificate store to use

  • the location of the QDT local working directory

  • the path to the QGIS executable to use

  • the behavior of plugin downloads

β€”> πŸ“– QDT Environment Variables


Detect QGIS installationΒΆ

🎯 Define the path to the QGIS executable, necessary in particular for shortcuts.

- name: Find installed QGIS
  uses: qgis-installation-finder
  with:
      search_paths:
        - "%PROGRAMFILES%\\QGIS"
        - "%PROGRAMFILES%"
        - "C:\\OSGeo4W"
        - "/usr/bin/qgis"
    - version_priority:
      - 3.44
      - 3.40
      - 3.36

β€”> πŸ“– QGIS Installation Finder


Define environment variablesΒΆ

🎯 Configure QGIS-related tools that are compatible with environment variables. Examples:

β€”> πŸ“– Environment Variables Manager


Synchronize profiles from Git or HTTPΒΆ

🎯 Synchronize profiles from different types of sources:

  • βœ… from a public Git project (internet or local network)

  • βœ… from an HTTP server

  • ❌ private project with authentication

β€”> πŸ“– Profiles Downloader and Profiles Synchronizer


Install QGIS pluginsΒΆ

🎯 Install QGIS plugins from different types of repositories:

  • βœ… official repository

  • βœ… private repository accessible without authentication

  • βœ… plugin stored on a local or network file system without authentication

  • ❌ private plugin repository with authentication

β€”> πŸ“– Plugins Downloader and Plugins Synchronizer


Create Desktop/Start Menu shortcutsΒΆ

🎯 Create shortcuts to launch QGIS with a specific profile.

Oslandia profile icon for QGIS

QDT selects the most suitable icon format for the operating system. So, if multiple operating systems are targetted by the deployment, it is recommended to store shortcut icons in different formats (.ico for Windows, .png or .svg for Linux).

On Linux (freedesktop), this also integrates a context menu with specific actions:

Shortcut created by QDT - Context menu on Linux

β€”> πŸ“– Shortcuts Manager


Define a splash screenΒΆ

🎯 Customize the QGIS splash screen for each profile.

Oslandia profile splash screen

β€”> πŸ“– Splash Screen Manager


Set the default profileΒΆ

🎯 Define the default profile to use when launching QGIS to prevent the end user from having to select it each time or encourage them to use a specific profile.

Concretly, it allows the QGIS admin to specify the profile policy when launching QGIS (profiles.ini file):

[core]
defaultProfile=Oslandia
lastProfile=default
selectionPolicy=1

QGIS - Profiles settings

β€”> πŸ“– Default Profile Setter


Variabilize QGIS INI filesΒΆ

🎯 Allow the use of environment variables in QGIS INI files to avoid hardcoded values and facilitate profile portability.

Example of usage in a QGIS3.ini file, you can write:

[svg]
searchPathsForSVG=/usr/share/qgis/svg/,$ORG_QGIS_COMMONS/svg/

If the ORG_QGIS_COMMONS environment variable is defined in QDT’s runtime environment, its value will be used to complete the SVG file search path for QGIS.


Deployment rulesΒΆ

🎯 Deploy a profile based on certain conditions related to the user’s context:

  • environment variable

  • domain (AD) or local groups of the current user

  • date and time

  • technical environment (operating system, etc.)

{
    "rules": [
        {
            "name": "QDT_IS_GIS_ADMIN exists",
            "description": "Deploy only if $env:QDT_IS_GIS_ADMIN exists",
            "conditions": {
                "all": [
                    {
                        "path": "$.env.QDT_IS_GIS_ADMIN",
                        "operator": "not_equal",
                        "value": ""
                    },
                    {
                        "path": "$.environment.operating_system_code",
                        "value": "windows",
                        "operator": "equal"
                    },
                    {
                        "path": "$.date.current_year",
                        "value": 2023,
                        "operator": "greater_than_inclusive"
                    }
                ]
            }
        }
    ]
}

β€”> πŸ“– QDT Rules


Graphical editorΒΆ

🎯 Facilitate the editing of QGIS profiles for QDT with a graphical interface.

Since 2024, the Profile Manager plugin for QGIS, initially created by WhereGroup, includes a QDT tab allowing the user to export a profile from QGIS in the QDT formalism:

Profile Manager plugin


Technical toolingΒΆ

  • a clearly stated software security policy equipped with control mechanisms: Security Policy

  • Windows executable signed with an Oslandia certificate

  • JSON Schemas to validate scenario.qdt.yml and profile.json

  • command autocompletion for commands, options, and command-line arguments (CLI) to facilitate usage

  • verbose logging that automatically rotates

  • modern, advanced, and tested Python code

  • a software forge supporting development based on DevOps principles