Run various tools on top of AbraFlexi and Stormware Pohoda https://multiflexi.eu
Find a file
2026-03-19 15:11:05 +01:00
.devcontainer Add GDPR compliance features and enhance CLI and documentation 2025-10-20 14:59:11 +02:00
.github fix: update Debian packaging rules and autoloading for multiflexi-web 2026-03-05 01:47:49 +01:00
.vscode Refines UI, updates credential handling, and deprecates unused code 2025-11-11 21:13:50 +01:00
bin Refactor MultiFlexi package: Remove deprecated files and update dependencies 2026-02-04 01:38:13 +01:00
debian feat: Remove deprecated MultiFlexi components, tests, and assets. 2026-03-19 15:08:47 +01:00
doc code moved to https://github.com/VitexSoftware/multiflexi-web project 2026-03-16 19:23:07 +01:00
docker feat: Add OpenTelemetry metrics integration 2025-10-30 13:07:24 +01:00
docs feat: Remove deprecated MultiFlexi components, tests, and assets. 2026-03-19 15:08:47 +01:00
gdpr Update copyright and legal documents to 2026 2026-01-27 00:35:30 +01:00
lib Refactor MultiFlexi package: Remove deprecated files and update dependencies 2026-02-04 01:38:13 +01:00
nbproject feat: Remove deprecated MultiFlexi components, tests, and assets. 2026-03-19 15:08:47 +01:00
tools feat: introduce app assignment functionality and enhance various UI components and pages. 2026-01-17 14:52:23 +01:00
zabbix Add comprehensive Zabbix template and update packaging 2025-10-30 13:39:13 +01:00
.gitignore Update AJAX authentication check to use Ease\Shared user method for consistency 2026-02-03 12:02:34 +01:00
.readthedocs.yaml ReadTheDocs update 2024-09-12 10:30:05 +02:00
AGENTS.md feat: Remove deprecated MultiFlexi components, tests, and assets. 2026-03-19 15:08:47 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2024-11-03 14:28:41 +01:00
CONTRIBUTING.md Contributing guidelines add 2024-11-03 14:36:49 +01:00
FA6-UPGRADE.md Upgrade to Font Awesome 6 and fix multiple issues 2026-01-21 14:18:18 +01:00
INSTALL.md Migrate encryption to ENCRYPTION_MASTER_KEY in .env 2025-10-30 10:55:13 +01:00
LICENSE Create LICENSE 2024-11-03 14:26:21 +01:00
Makefile feat: Remove deprecated MultiFlexi components, tests, and assets. 2026-03-19 15:08:47 +01:00
multiflexi-social-preview.svg Add rotation animation to social preview logo 2025-10-25 18:04:04 +02:00
multiflexi.png Readme update 2024-04-03 11:50:54 +02:00
multiflexi.svg MultiFlexi App icon added 2024-04-02 18:24:59 +02:00
openapitools.json Initial API Base 2022-10-09 23:45:34 +02:00
phinx-adapter.php feat: introduce app assignment functionality and enhance various UI components and pages. 2026-01-17 14:52:23 +01:00
pyproject.toml Try to build intial docs 2024-09-12 01:13:30 +02:00
README.cs.md Doc update 2025-11-13 23:56:15 +01:00
README.md docs: remove outdated environment variable section and add log monitoring tip 2026-02-26 18:28:40 +01:00
rector.php CredentialType now keep its settings 2025-03-24 20:43:52 +01:00
selenium.js Scheduled job Uploads 2023-08-31 23:58:15 +02:00
test-bitwarden-server-config.php Update dependencies and versions in composer.lock 2025-12-02 22:21:42 +01:00
test-bitwarden-service.php Update dependencies and versions in composer.lock 2025-12-02 22:21:42 +01:00
test-bitwarden.php Update dependencies and versions in composer.lock 2025-12-02 22:21:42 +01:00
test-duplicates.php Release version 2.2.1 2025-11-21 03:09:55 +01:00
test-lister.php Release version 2.2.1 2025-11-21 03:09:55 +01:00
Vagrantfile Better Code 2024-08-29 16:10:47 +02:00

MultiFlexi

MFB

ReadTheDocs wakatime CodeFactor GitHub license GitHub release

MultiFlexi is a comprehensive PHP-based task scheduling and automation framework designed for accounting and business system integrations. It enables scheduled execution of applications and tools across multiple companies and platforms, with primary focus on systems like AbraFlexi and Pohoda.

Version 1.32.0 introduces comprehensive security enhancements as part of GDPR Phase 3 compliance, including security audit logging, data encryption, API rate limiting, and IP whitelisting.

Key Features

  • Multi-Platform Integration: Native support for AbraFlexi, Pohoda, and other business systems
  • Flexible Job Scheduling: Automated task execution with customizable intervals and dependencies
  • Advanced Credential Management: Secure handling of authentication credentials with extensible credential types
  • Multiple Execution Environments: Support for native execution, containerized deployments, and cloud environments
  • Comprehensive Logging: Detailed execution logs with Zabbix and OpenTelemetry monitoring integration
  • Multi-Interface Support:
    • Responsive Bootstrap 4 web interface with real-time monitoring
    • Rich command-line interface with extensive management commands
    • RESTful API with OAuth2 authentication and multiple output formats
  • Enterprise-Ready: User authentication, API tokens, data isolation, and comprehensive monitoring (Zabbix + OpenTelemetry)
  • Privacy & GDPR Compliance: Comprehensive consent management, self-hosted analytics support, and European privacy standards
  • Security Features: AES-256 data encryption, comprehensive audit logging, API rate limiting, IP whitelisting, and advanced security monitoring

Architecture

MultiFlexi features a layered architecture with:

  • Database Layer: ORM with migrations managing applications, companies, run templates, and jobs
  • Application Management: External app definitions, metadata validation, and lifecycle management
  • Job Execution System: Multi-environment execution with environment variable injection
  • Credential Framework: Extensible credential types for various system integrations
  • Configuration Management: Environment-based configuration with type-safe field definitions
  • Security Layer: Authentication, authorization, secure credential handling, data encryption, audit logging, rate limiting, and IP access control

Member Projects

Environment Variables

Privacy & Analytics:

  • ENABLE_GOOGLE_ANALYTICS - Enable/disable Google Analytics (default: false for European self-hosting)

Security Configuration (GDPR Phase 3):

  • SECURITY_AUDIT_ENABLED - Enable comprehensive security event logging (default: true)
  • DATA_ENCRYPTION_ENABLED - Enable AES-256 data encryption for sensitive information (default: true)
  • RATE_LIMITING_ENABLED - Enable API rate limiting protection (default: true)
  • IP_WHITELIST_ENABLED - Enable IP whitelisting for administrative access (default: false)
  • ENCRYPTION_MASTER_KEY - Master key for data encryption at rest (automatically generated during installation)

Encryption Configuration:

MultiFlexi uses AES-256-GCM encryption to protect sensitive credentials and personal data. The encryption system requires a master key configured via ENCRYPTION_MASTER_KEY in /etc/multiflexi/multiflexi.env.

  • Automatic Setup: Master key is automatically generated during package installation
  • Manual Configuration: openssl rand -base64 32 to generate a new key
  • Status Check: Use multiflexi-cli appstatus or multiflexi-cli encryption status
  • Key Management: Encryption keys are wrapped with the master key and stored in the database

See INSTALL.md for detailed encryption configuration and security notes.

Monitoring Configuration:

  • ZABBIX_SERVER - Zabbix server address for infrastructure monitoring
  • ZABBIX_HOST - Hostname for Zabbix metrics
  • OTEL_ENABLED - Enable OpenTelemetry metrics export (default: false)
  • OTEL_SERVICE_NAME - Service name for OpenTelemetry (default: multiflexi)
  • OTEL_EXPORTER_OTLP_ENDPOINT - OTLP collector endpoint (default: http://localhost:4318)
  • OTEL_EXPORTER_OTLP_PROTOCOL - Protocol for OTLP (http/json or grpc)

Custom Variables: Individual module configurations per company with extensible variable definitions.

Monitoring & Observability

MultiFlexi provides comprehensive monitoring through two complementary systems:

Zabbix Integration

Real-time infrastructure monitoring with:

  • Job execution tracking and phase monitoring
  • Application and company metrics
  • Automatic alert generation
  • LLD (Low-Level Discovery) support for dynamic monitoring

Configuration:

ZABBIX_SERVER=zabbix.example.com
ZABBIX_HOST=multiflexi-server

See Zabbix documentation for detailed setup.

OpenTelemetry Integration

Modern observability with vendor-neutral metrics export to:

  • Prometheus + Grafana
  • OpenTelemetry Collector
  • Cloud-native monitoring stacks

Available Metrics:

  • multiflexi.jobs.total - Total job executions
  • multiflexi.jobs.success - Successful jobs
  • multiflexi.jobs.failed - Failed jobs
  • multiflexi.job.duration - Job execution time
  • multiflexi.jobs.running - Currently running jobs
  • multiflexi.applications.total - Application count
  • multiflexi.companies.total - Company count

Configuration:

OTEL_ENABLED=true
OTEL_SERVICE_NAME=multiflexi
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
OTEL_EXPORTER_OTLP_PROTOCOL=http/json

Test your configuration:

multiflexi-cli telemetry:test

See OpenTelemetry documentation for deployment examples, Grafana dashboards, and complete integration guide.

See the https://multiflexi.readthedocs.io/ for complete documentation

Demo

A demo instance is available

demo screenshot

Installation

Debian packages are available. For more information about installation, see the installation documentation

Command Line Usage

In the bin directory, you will find the following launchers for various functions:

  • multiflexi-app2json - exports the application definition to a file
  • multiflexi-executor - periodic application launcher
  • multiflexi-job2script - generates a script with environment settings and a command to run a job by its number
  • multiflexi-json-app-remover - removes an application from MultiFlexi based on a JSON definition
  • multiflexi-json2app - loads application definitions from a file
  • multiflexi-probe - system monitoring and health check probe for MultiFlexi functionality testing

multiflexi-cli

The MultiFlexi CLI provides comprehensive management capabilities with support for applications, companies, jobs, run templates, and more.

Usage: multiflexi-cli [action] [options]

Key commands: application, company, job, runtemplate, version

Application management:

  • multiflexi-cli application validate-json --file app.json - validate application JSON against schema
  • multiflexi-cli application import-json --file app.json - import application from JSON
  • multiflexi-cli application list - list all applications

Example:

$ multiflexi-cli remove app 15
02/20/2024 23:48:51 🌼 MultiFlexi cli⦒(15)AbraFlexi send@MultiFlexi\Application Unassigned from 3 companies
02/20/2024 23:48:53 🌼 MultiFlexi cli⦒(15)AbraFlexi send@MultiFlexi\Application 2 RunTemplate removal
02/20/2024 23:48:56 🌼 MultiFlexi cli⦒(15)AbraFlexi send@MultiFlexi\Application 2 Config fields removed
02/20/2024 23:48:57 🌼 MultiFlexi cli⦒(15)AbraFlexi send@MultiFlexi\Application 881 Jobs removed
Done.

Plugins

Any executable script or binary can be used as a plugin.

App Listing page

You can find the complete list on the project page.

See the full list of ready-to-run applications within the MultiFlexi platform on the application list page.

MultiFlexi App