Skip to main content

Enterprise IT

VIKTOR is a low-code application development platform based on Python. This guide outlines the prerequisites to use VIKTOR within an enterprise IT environment.

Device settings

In order to develop applications on the VIKTOR platform the machine of a developer needs to meet the following requirements:

  • The machine runs a Windows or Linux operating system.
  • Python 3.10 - 3.13 (64-bit) is available or can be installed by the developer.
  • A code editor is available or can be installed by the developer.
  • The machine has internet access (TCP over port 443, TLS >= v1.2).
  • The developer should have administrator rights for the installation of the VIKTOR worker. This application is shipped as Microsoft Installer (.msi) files.

Network / proxy settings

The CLI is used to connect local application code (hosted on the machine of the developer) to a cloud-based development workspace. This requires an internet connection with network settings specified below.

Domains

The following domains should be accessible on the machine of the developer in order to be able to use VIKTOR.

  • *.viktor.ai (viktor.ai and all of its subdomains)
  • *.amazonaws.com (all subdomains of amazonaws.com)

If you want to be more restrictive, it is possible be more selective on the allowed urls, note these domains are subject to change, so we strongly recommend to whitelist all subdomains of viktor.ai & amazonaws.com

Do replace <region> with one of eu1 for Frankfurt, ap1 for Australia, eu2 for London, us1 for the US.

Also do <company> with your viktor subdomain (e.g. acme for acme.viktor.ai).

  • addons.viktor.ai (used in environments in Frankfurt)

  • addons.<region>.viktor.ai (for the other regions)

  • api-<company>.viktor.ai (still used but deprecated, for environments in Frankfurt)

  • api-<company>.<region>.viktor.ai (still used but deprecated, for environments in other regions)

  • cloud.viktor.ai

  • community.viktor.ai

  • <company>.viktor.ai (for environments in Frankfurt, for example acme.viktor.ai)

  • <company>.<region>.viktor.ai (for environments in other regions, for example acme.eu2.viktor.ai)

  • connect.viktor.ai (deprecated, used in some environments in Frankfurt)

  • connect.<region>.viktor.ai

  • developers.viktor.ai (for environments in Frankfurt)

  • developers.<region>.viktor.ai (for environments in other regions)

  • docs.viktor.ai

  • errors.viktor.ai

  • sys.viktor.ai (for environments in Frankfurt)

  • sys.<region>.viktor.ai (for environments in other regions)

  • viktor.ai

  • viktor-storage.s3.amazonaws.com (still used but deprecated, for environments in Frankfurt)

  • viktor-storage-<region>.s3.amazonaws.com

  • viktor-system.s3.amazonaws.com

Furthermore, installation of third-party Python packages requires access to:

  • files.pythonhosted.org
  • pypi.org
  • pypi.python.org

SSL certificates

If a proxy is configured in such a way that the SSL certification chain is modified by replacing the root CA's certificate by a self-signed certificate, the developer may run into SSL cert verification errors while either installing or running an app locally:

errors while installing the app

Pip (the Python package manager) has introduced the truststore feature to use the system certificate store for Python versions 3.10 and higher. The VIKTOR CLI uses this feature automatically when you use a Python version that supports it. Therefore, the easiest solution is to use Python 3.10 or higher which can be configured depending on the selected isolation mode:

Install Python 3.10 or higher and configure this version for developing apps with the command viktor-cli configure.

errors while running the app

By default Python's requests package does not use the system certificate store, but uses a bundled CA certificate store to establish secure connections. Because the certificate of the proxy is not present in the bundled CA certificate store an error will occur. VIKTOR automatically mounts the system certificates when making requests since SDK version v14.15.2. Therefore, the easiest solution is to develop apps using this version or higher.