Skip to content

VitexSoftware/multiflexi-probe

Repository files navigation

MultiFlexi Probe

Testing and debugging tool for MultiFlexi task launcher.

MultiFlexi probe logo

Description

MultiFlexi Probe is a diagnostic application designed to test and validate the MultiFlexi task execution environment. It provides comprehensive information about:

  • Command-line arguments
  • Environment variables
  • File system access
  • Container mount information
  • Output capture (stdout/stderr)

Features

  • Environment Testing: Displays all environment variables in JSON format
  • File Upload Testing: Validates file path parameters
  • Output Control: Configurable exit codes for testing error handling
  • Result Export: Saves environment data to JSON file
  • Container Ready: Available as OCI image for containerized execution
  • Localization: Supports English and Czech interface descriptions

Secret Redaction

MultiFlexi injects real secrets into every job's environment (database credentials, ENCRYPTION_MASTER_KEY, credential fields, ...). Because this probe's whole purpose is to dump the full environment, and MultiFlexi stores that dump (RESULT_FILE / stdout) permanently in the job table, running it on an instance with real credentials configured would otherwise leak them into the database and every future backup.

To prevent that, any environment variable whose name matches PASSWORD, SECRET, TOKEN, CREDENTIAL, ENCRYPTION_MASTER_KEY, MULTIFLEXI_MASTER_KEY, or ends in _KEY is redacted to ***REDACTED*** by default (the variable still appears in the output, just without its value — so ZABBIX_KEY is redacted too, even though it's not actually secret).

Set PROBE_SHOW_SECRETS=true to get the raw, unredacted dump. Only do this in a throwaway test environment with no real credentials configured.

Configuration Schema

This application follows MultiFlexi Application Schema version 3.4.0 with:

  • Localized application name and descriptions (English/Czech)
  • Localized environment variable descriptions
  • Schema-compliant configuration structure
  • Optional Kubernetes metadata under kubernetes.helm and kubernetes.artifacts

Installation

From Debian Package

sudo apt install multiflexi-probe

From Source

make install

Usage

multiflexi-probe [file-path]

Configuration

The MultiFlexi Probe application configuration (multiflexi/probe.multiflexi.app.json) follows the MultiFlexi Application Schema version 3.4.0 with localization support for both English and Czech languages.

Environment Variables

  • FILE_UPLOAD: Path to test file (default: /etc/fstab)
  • PASSWORD: Example secret field for testing
  • APP_DEBUG: Enable debug output (true/false)
  • RESULT_FILE: Output JSON file path (default: env_report.json)
  • FORCE_EXITCODE: Force specific exit code (integer)
  • PROBE_SLEEP: Sleep this many seconds before exiting, to simulate a long-running job (integer, default: 0 — disabled)
  • ZABBIX_KEY: Zabbix item key name template
  • PROBE_SHOW_SECRETS: Disable secret redaction in the env dump (true/false, default: false — see Secret Redaction)

Docker/Podman

Build image:

make dimage

Build multi-architecture image:

make dimagex

Run container:

docker run vitexsoftware/multiflexi-probe

Helm

The repository includes a Helm chart in helm/ for Kubernetes deployment.

The production chart reference is oci://ghcr.io/vitexsoftware/helm-charts/multiflexi-probe (defined in app.json). The local ./helm path is only used during development.

Render chart templates:

make helm-template

Lint chart:

make helm-lint

Install or upgrade chart:

make helm-install

it gives the following output:

helm upgrade --install multiflexi-probe helm/ --namespace multiflexi --create-namespace
Release "multiflexi-probe" does not exist. Installing it now.
NAME: multiflexi-probe
LAST DEPLOYED: Thu Apr  2 10:25:37 2026
NAMESPACE: multiflexi
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
NOTES:
1. Check deployment status:
   kubectl get pods -n multiflexi -l app.kubernetes.io/instance=multiflexi-probe

2. Inspect environment variables resolved by chart:
   kubectl describe configmap multiflexi-probe-multiflexi-probe -n multiflexi

3. Run one-off probe command in the pod:
   kubectl exec -n multiflexi deploy/multiflexi-probe-multiflexi-probe -- multiflexi-probe /etc/fstab

Development

Build Package

make debs

Validate JSON Schema

# Note: MultiFlexi CLI validation may have issues in some versions
# Try different validation approaches:

# Method 1: MultiFlexi CLI (if working)
multiflexi-cli application validate-json --file multiflexi/multiflexi_probe.multiflexi.app.json

# Method 2: JSON syntax validation
json_verify < multiflexi/multiflexi_probe.multiflexi.app.json

# Method 3: Using online validator with schema URL
# https://raw.githubusercontent.com/VitexSoftware/php-vitexsoftware-multiflexi-core/refs/heads/main/multiflexi.app.schema.json

Test Locally

make test

Author

Vítězslav Dvořák info@vitexsoftware.cz

License

GPL-2.0-or-later

Homepage

https://github.com/VitexSoftware/MultiFlexi

About

MultiFlexi probe tool for testing task launcher

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors