Skip to content

OpenWebconcept/operaton-dmn-evaluator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Operaton DMN Evaluator

The Operaton DMN Evaluator plugin integrates WordPress Gravity Forms with Operaton DMN (Decision Model and Notation) engines to provide real-time decision evaluation capabilities. ENHANCED in v1.0.0-beta.11: Completely refactored architecture with performance monitoring, manager-based design, and comprehensive debugging capabilities.

πŸ“ Repository Information

Primary Development Repository

πŸš€ Active development happens on GitLab: git.open-regels.nl/showcases/operaton-dmn-evaluator

Public Mirror

πŸ“‹ GitHub mirror for visibility: github.com/OpenWebconcept/operaton-dmn-evaluator

Where to Go for:

Need Location Link
πŸ› Report Bugs GitLab Issues Create Issue
✨ Feature Requests GitLab Issues Create Issue
πŸ’Ύ Latest Releases GitLab Releases View Releases
πŸ”„ Auto-Updates Configured via GitLab Release System

Note: Active development happens on GitLab. GitHub is a read-only mirror for visibility within the OpenWebconcept ecosystem.

About OpenWebconcept

This plugin is part of the OpenWebconcept ecosystem - a collection of WordPress building blocks for government and public sector websites.

OWC logo

Prerequisites

  • WordPress 5.0+ with admin access
  • Gravity Forms plugin installed and activated
  • Access to an Operaton DMN engine (cloud or self-hosted)
  • DMN decision tables and/or BPMN processes deployed on the Operaton engine
  • PHP 7.4+ (8.0+ recommended for optimal performance)

Change Log

All notable changes to this project are documented in the CHANGELOG.md.

What's New in v1.0.0-beta.12 ✨

1. Complete Test Coverage Implementation

  • βœ… 29 comprehensive unit tests covering all critical functionality
  • βœ… 117 assertions ensuring robust validation across all scenarios
  • βœ… Sub-second execution (33ms locally, 12s in CI/CD)
  • βœ… 100% test success rate with automated quality gates

2. Professional CI/CD Pipeline

  • βœ… GitLab CI/CD integration with automated testing on every commit
  • βœ… Multi-stage pipeline (build, test, quality, security)
  • βœ… JUnit XML reporting for GitLab test result visualization
  • βœ… Automated security scanning with vulnerability detection
  • βœ… Code quality enforcement with PSR12 standards (1,216 auto-fixes applied)

3. Comprehensive Test Categories

  • βœ… Unit Tests: Individual component testing (API, Database, Performance)
  • βœ… Integration Tests: Multi-component workflow validation
  • βœ… E2E Tests (Cypress): Live environment browser testing (6 tests, 3s execution)
  • βœ… E2E Tests (Playwright): Cross-browser testing (10 tests, 2 browsers, 14.6s execution)
  • βœ… Security Tests: XSS prevention, SQL injection protection, input sanitization
  • βœ… Performance Tests: Throughput benchmarking, memory usage monitoring
  • βœ… Error Handling Tests: Graceful degradation and failure recovery

You will find a comprehensive description in the TESTS readme.

Plugin Architecture (v1.0.0-beta.11)

Enterprise-Grade Architecture

  • Manager-Based Design: Modular architecture with specialized managers for different functionality
  • Performance Monitoring: Real-time performance tracking with sub-millisecond precision
  • Advanced Debugging: Comprehensive debug system with detailed status reporting
  • Enhanced Error Handling: Robust error handling with graceful degradation
  • Optimized Loading: Intelligent asset loading and state management

Dual Execution Modes

  • Direct Decision Evaluation: Execute single DMN decisions for simple use cases
  • Process Execution with Decision Flow: Execute complete BPMN processes with comprehensive decision analysis
  • Flexible Configuration: Choose the appropriate mode based on your complexity requirements
  • Professional Decision Summaries: Excel-style decision flow analysis on form completion

Core Capabilities

  • Real-time Evaluation: Execute decisions/processes directly from Gravity Forms
  • Multiple Result Fields: Map multiple DMN/process result fields to different form fields
  • Advanced Field Mapping: Map form fields to DMN variables with comprehensive type validation
  • Professional Decision Flow: Excel-style decision summaries with complete process analysis
  • Process Instance Tracking: Complete traceability through Operaton process instances
  • Multi-page Form Support: Works seamlessly with single and multi-page Gravity Forms

Integration Features

  • Automatic Button Injection: Smart evaluation button placement based on execution mode
  • Form Validation: Full integration with Gravity Forms validation system
  • Clean State Management: Intelligent clearing of results when form inputs change
  • Visual Feedback: Enhanced notifications and professional result presentation
  • Comprehensive Debug Support: Advanced logging and decision flow analysis

Manager-Based Design ✨ NEW

The plugin now uses a sophisticated manager-based architecture for optimal performance and maintainability:

Core Managers

  • 🎨 Assets Manager (Operaton_DMN_Assets): Handles CSS/JavaScript loading with intelligent conditional loading
  • βš™οΈ Admin Manager (Operaton_DMN_Admin): Manages WordPress admin interface and configuration pages
  • πŸ—„οΈ Database Manager (Operaton_DMN_Database): Handles all database operations and schema management
  • 🌐 API Manager (Operaton_DMN_API): Manages external API calls and REST endpoint handling
  • πŸ“‹ Gravity Forms Manager (Operaton_DMN_Gravity_Forms): Handles all Gravity Forms integration
  • πŸ”§ Quirks Fix Manager (Operaton_DMN_Quirks_Fix): Manages DOCTYPE and jQuery compatibility
  • πŸ“Š Performance Monitor (Operaton_DMN_Performance_Monitor): Real-time performance tracking

Performance Characteristics ✨ NEW

  • Lightning-Fast Loading: 0.4-0.6ms plugin initialization
  • Efficient Memory Usage: 10-14MB peak memory (excellent for complex plugins)
  • Intelligent Asset Loading: Scripts only load when needed
  • Zero Health Issues: Comprehensive health monitoring with issue detection
Plugin Performance Metrics (Typical):
β”œβ”€β”€ Total Initialization: 0.41ms
β”œβ”€β”€ Assets Manager Load: 0.21ms
β”œβ”€β”€ Database Manager Load: 0.35ms
β”œβ”€β”€ Gravity Forms Load: 0.46ms
β”œβ”€β”€ Peak Memory Usage: 10MB
└── WordPress Load Time: 60-70ms

Plugin Structure

operaton-dmn-evaluator/
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   β”œβ”€β”€ admin.css                    # Enhanced admin styles with debug interface
β”‚   β”‚   β”œβ”€β”€ frontend.css                 # Frontend styles with decision flow CSS
β”‚   β”‚   β”œβ”€β”€ debug.css                    # Debug interface styling
β”‚   β”‚   └── radio-sync.css               # Radio button synchronization styles
β”‚   β”œβ”€β”€ images/                          # Documentation images and screenshots
β”‚   └── js/
β”‚       β”œβ”€β”€ admin.js                     # Enhanced admin interface JavaScript
β”‚       β”œβ”€β”€ api-test.js                  # API endpoint testing functionality
β”‚       β”œβ”€β”€ decision-flow.js             # Decision flow display and interaction
β”‚       β”œβ”€β”€ frontend.js                  # Core frontend evaluation functionality
β”‚       β”œβ”€β”€ gravity-forms.js             # Gravity Forms integration scripts
β”‚       └── radio-sync.js                # Radio button synchronization system
β”œβ”€β”€ includes/                            # ✨ NEW - Modular manager architecture
β”‚   β”œβ”€β”€ class-operaton-dmn-admin.php     # Admin interface manager
β”‚   β”œβ”€β”€ class-operaton-dmn-api.php       # API handling and REST endpoints
β”‚   β”œβ”€β”€ class-operaton-dmn-assets.php    # Asset loading and management
β”‚   β”œβ”€β”€ class-operaton-dmn-database.php  # Database operations and schema
β”‚   β”œβ”€β”€ class-operaton-dmn-gravity-forms.php # Gravity Forms integration
β”‚   β”œβ”€β”€ class-operaton-dmn-performance.php   # Performance monitoring system
β”‚   β”œβ”€β”€ class-operaton-dmn-quirks-fix.php    # Compatibility and DOCTYPE fixes
β”‚   β”œβ”€β”€ plugin-updater.php               # Auto-update system
β”‚   └── update-debug.php                 # Advanced debug interface
β”œβ”€β”€ scripts/
β”‚   └── create-release.sh                # Release package creation
β”œβ”€β”€ templates/
β”‚   β”œβ”€β”€ admin/
β”‚   β”‚   β”œβ”€β”€ form.php                     # Configuration form template
β”‚   β”‚   └── list.php                     # Configuration list template
β”œβ”€β”€ vendor/
β”‚   └── plugin-update-checker/           # Update checker library
β”œβ”€β”€ operaton-dmn-plugin.php              # ✨ REFACTORED - Clean main plugin file
β”œβ”€β”€ CHANGELOG.md                         # Detailed version history
└── README.md                            # This comprehensive guide

Key Architecture Benefits

Modularity and Maintainability

  • Separation of Concerns: Each manager handles specific functionality
  • Clean Dependencies: Well-defined relationships between components
  • Easy Testing: Individual managers can be tested independently
  • Scalable Design: Easy to add new features without affecting existing code

Performance Optimization

  • Lazy Loading: Managers only load when needed
  • Intelligent Caching: Multiple caching layers for optimal performance
  • Resource Efficiency: Minimal memory footprint with maximum functionality
  • Debug Integration: Performance monitoring built into every component

Developer Experience

  • Clear Structure: Easy to understand and modify
  • Comprehensive Logging: Detailed debug information throughout
  • Error Handling: Graceful error handling with informative messages
  • Hook System: Clean WordPress integration following best practices

Installation

  1. Create Plugin Directory:

    cd /wp-content/plugins/
    mkdir operaton-dmn-evaluator
    cd operaton-dmn-evaluator
  2. Download Latest Release:

    • Visit GitLab Releases
    • Download the latest v1.0.0-beta.11 package
    • Extract files to plugin directory
  3. Activate Plugin:

    • Go to WordPress Admin β†’ Plugins
    • Find "Operaton DMN Evaluator" and activate it
    • Plugin will automatically create database tables and initialize
  4. Verify Installation:

    • Go to Operaton DMN β†’ Configurations
    • Use the "πŸ”§ Debug Tools" β†’ "Get Plugin Status" button to verify all managers are loaded

Demo Heusden Pass and Child Package

A live demo of the plugin is available at https://owc-gemeente.test.open-regels.nl/

  • Page 1: The start form opens with pre-filled data via the Haal Centraal BRP API using a test citizen service number (BSN). A fictitious income has been prefilled as well. Click β€œNext”.
  • Page 2: Adjust the radio buttons as needed and click β€œEvaluate.” If left unchanged, the value β€œtrue” will appear for β€œeligibilityHeusdenPass” and β€œeligibilityChildPackage” will be "false". A green confirmation notification will briefly appear in the top right corner. Click β€œNext.”
  • Page 3: The final step shows an overview of all input and output values per decision table. In this example, there are 11 tables, making it 100% transparent how decisions regarding Heusden Pass and Child Package eligibility are made.

Form step 2


Configuration Guide

Performance Monitoring

Real-Time Performance Tracking

The plugin includes comprehensive performance monitoring:

{
  "plugin_version": "1.0.0-beta.10",
  "managers": {
    "assets": "loaded",
    "admin": "loaded",
    "database": "loaded",
    "api": "loaded",
    "gravity_forms": "loaded",
    "quirks_fix": "loaded",
    "performance": "loaded"
  },
  "performance": {
    "total_time_ms": 75.51,
    "peak_memory_formatted": "10 MB",
    "performance_grade": "A+ (Excellent)",
    "recommendations": [
      "πŸš€ Excellent loading speed!",
      "🧠 Very efficient memory usage!"
    ]
  }
}

Debug Interface

Access comprehensive debugging via Operaton DMN β†’ Configurations β†’ Debug Tools:

  • Plugin Status: Real-time manager status and health monitoring
  • Performance Metrics: Detailed timing and memory usage statistics
  • Asset Loading: Script and style loading status with context
  • Environment Info: WordPress, PHP, and theme compatibility information

Execution Modes

1. Direct Decision Evaluation

Best for: Simple decision logic, single decision tables, basic use cases

  • Single Decision: Evaluates one DMN decision table directly
  • Simple Configuration: Just base URL + decision key
  • Immediate Results: Direct result population in form fields
  • Lightweight: Minimal API calls and processing
  • Use Cases: Product recommendations, simple eligibility checks, basic calculations

2. Process Execution with Decision Flow

Best for: Complex business logic, multi-step decisions, comprehensive analysis

  • Complete Process: Executes full BPMN processes with multiple decisions
  • Decision Flow Analysis: Comprehensive tracking of all decision instances
  • Professional Summaries: Excel-style decision flow display on final form page
  • Process Tracking: Complete traceability through process instance IDs
  • Use Cases: Complex eligibility assessments, multi-criteria evaluations, government applications

Configuration Settings

Basic Configuration

Available configurations listed with enhanced debug information.

Configuration List

Selecting a configuration opens the corresponding dashboard.

Configuration Item

Configuration Management

  • Health Monitoring: Each configuration includes health status checking
  • Performance Tracking: Database operations are monitored for optimization
  • Validation Enhancement: Comprehensive validation with detailed error messages
  • Auto-Migration: Database schema updates automatically during plugin updates

Execution Mode Selection

Choose Your Execution Approach

Direct Decision Evaluation

  • Radio button selection for simple decision table evaluation
  • Requires: Base endpoint URL + Decision key
  • Results: Direct field population
  • Best for: Single-step decisions

Process Execution with Decision Flow

  • Radio button selection for comprehensive process execution
  • Requires: Base endpoint URL + Process key
  • Results: Multiple field population + decision flow summary
  • Best for: Multi-step business processes

Enhanced DMN/Process Engine Connection

Intelligent Endpoint Construction

  • Smart URL Building: Automatic endpoint construction with validation
  • Real-time Preview: Live preview of generated URLs
  • Connection Testing: Enhanced testing with detailed error reporting
  • Compatibility Checking: Automatic Operaton version detection

Base Endpoint URL

  • Purpose: Base URL to your Operaton engine
  • Required: Yes (for both modes)
  • Format: Should end with /engine-rest/
  • Auto-Detection: Plugin detects and suggests correct format
  • Examples:
    • Operaton Cloud: https://your-tenant.operaton.cloud/engine-rest/
    • Self-hosted: https://operatondev.open-regels.nl/engine-rest/
    • Local: http://localhost:8080/engine-rest/

Advanced Field Mapping

Configuration Item

Intelligent Field Detection

  • Auto-Detection: Automatic field type detection from Gravity Forms
  • Type Validation: Enhanced validation for data type compatibility
  • Radio Button Sync: Advanced radio button synchronization system
  • Multi-Field Support: Comprehensive support for complex field mappings

Enhanced Result Processing

// Example of enhanced result extraction capabilities
$results = array(
    'aanmerkingHeusdenPas' => array(
        'value' => false,
        'field_id' => 35,
        'extraction_method' => 'process_variable_direct'
    ),
    'aanmerkingKindPakket' => array(
        'value' => true,
        'field_id' => 36,
        'extraction_method' => 'nested_container_search'
    )
);

Decision Flow Summary

Professional Excel-Style Display

Enhanced decision flow summaries with improved performance and styling:

Advanced Caching System

  • Intelligent Caching: 10-minute cache for successful retrievals
  • Error Caching: 2-minute cache for failed requests
  • Cache Busting: Manual refresh with cache invalidation
  • Performance Optimization: Reduced API calls with smart caching

Enhanced Visual Design

  • Professional Styling: Enhanced Excel-style tables with improved responsiveness
  • Performance Indicators: Loading states with progress indication
  • Interactive Elements: Enhanced refresh buttons with loading states
  • Mobile Optimization: Improved mobile display with responsive design

Comprehensive Decision Analysis

πŸ“Š Summary Statistics:
- Total Decision Types: 3
- Total Evaluations Shown: 5
- Filter Applied: Activity_FinalResultCompilation only
- Process Instance: abc-123-def-456

πŸ”„ Refresh Decision Flow

Form Integration Behavior

Enhanced Asset Loading

Intelligent Loading System

  • Context-Aware Loading: Scripts only load when Gravity Forms are detected
  • Performance Optimization: Conditional asset loading prevents bloat
  • Emergency Fallback: Automatic asset recovery for edge cases
  • Debug Information: Comprehensive loading status tracking

Asset Loading Status

{
  "scripts": {
    "operaton-dmn-frontend": {
      "registered": true,
      "enqueued": true,
      "done": true
    }
  },
  "context": {
    "script_loading_note": "Scripts are only registered when needed - this is optimal behavior"
  }
}

Enhanced State Management

  • Manager Coordination: All managers coordinate for clean state management
  • Performance Tracking: State changes are monitored for optimization
  • Error Recovery: Automatic state recovery for failed operations
  • Session Management: Enhanced session handling for process execution

Advanced Features

Comprehensive Health Monitoring

System Health Dashboard

{
  "health": [],
  "managers": {
    "assets": "loaded",
    "admin": "loaded",
    "database": "loaded",
    "api": "loaded",
    "gravity_forms": "loaded",
    "quirks_fix": "loaded",
    "performance": "loaded",
    "gravity_forms_available": true
  }
}

Health Check Categories

  • Manager Status: All managers loaded and operational
  • Database Health: Schema integrity and performance
  • API Connectivity: External service connectivity
  • Gravity Forms Integration: Plugin compatibility and availability
  • Performance Metrics: System performance within acceptable ranges

Enhanced Debugging System

Multi-Level Debug Information

  1. Manager Level: Individual manager performance and status
  2. System Level: Overall plugin performance and health
  3. Integration Level: Third-party integration status
  4. Performance Level: Detailed timing and memory usage

Debug Interface Features

  • Real-Time Monitoring: Live performance metrics during operation
  • Historical Data: Performance trends and optimization opportunities
  • Error Tracking: Comprehensive error logging with context
  • Environment Analysis: Complete system compatibility analysis

Advanced Error Handling

Graceful Degradation

  • Component Isolation: Manager failures don't affect other components
  • Fallback Mechanisms: Automatic fallback to simpler functionality
  • User-Friendly Messages: Clear error messages without technical details
  • Recovery Procedures: Automatic recovery from transient failures

Performance Benchmarks

Industry Comparison

  • Lightning-fast initialization: 0.4-0.8ms plugin construction time
  • Optimized asset loading: Smart caching with 300-400% cache efficiency
  • Atomic loading prevention: Successfully prevents duplicate script loading (6 preventions per page)
  • Minimal memory footprint: 10-14MB peak memory usage
  • Fast database operations: 0.18-0.3ms config fetches

Market Comparison:

  • Premium plugins (like WooCommerce, Elementor): Usually 50-200ms initialization
  • This plugin: 0.4-0.8ms initialization
  • Industry average: 100-500ms for complex form plugins
  • Total page load impact: <2ms additional overhead

Stats in Get Plugin Status

=== OPERATON DMN PERFORMANCE SUMMARY ===
Request: GET /wp-admin/admin.php?page=operaton-dmn
Total Time: 239.31ms
Peak Memory: 14 MB
Milestones: 12
Performance Grade: A+ (Excellent)

Key Milestones:
  quirks_fix_loaded: 0.14ms
  assets_manager_loaded: 0.2ms
  admin_manager_loaded: 0.27ms
  database_manager_loaded: 0.32ms
  api_manager_loaded: 0.37ms
  gravity_forms_manager_loaded: 0.43ms
  plugin_construct_complete: 0.48ms
  wp_loaded: 60.75ms
========================================

Troubleshooting

Enhanced Debug Capabilities

Debug Tools Access

  1. Go to Operaton DMN β†’ Configurations
  2. Click πŸ”§ Debug Tools β†’ Get Plugin Status
  3. Review comprehensive system status

Performance Issues

Slow plugin loading (>5ms initialization)

  • Check PHP version (8.0+ recommended)
  • Review memory limits (128M+ recommended)
  • Verify no conflicting plugins
  • Check database performance

Manager loading failures

  • Verify file permissions on /includes/ directory
  • Check for PHP fatal errors in debug log
  • Ensure all manager files are present
  • Review WordPress debug log for specific errors

Asset Loading Issues

Scripts not registering when expected

  • This is often optimal behavior - scripts load only when needed
  • Check debug status: "Scripts are only registered when needed - this is optimal behavior"
  • Verify Gravity Forms is present on the page for frontend assets
  • Review asset loading context in debug information

Emergency asset loading failures

  • Check browser console for JavaScript errors
  • Verify operaton_ajax object is available
  • Review emergency fallback system in browser debug
  • Clear browser cache and reload

Manager-Specific Troubleshooting

Assets Manager Issues

  • Symptom: Scripts not loading when expected
  • Solution: Check context - scripts only load when Gravity Forms detected
  • Debug: Review assets.context.script_loading_note in debug status

Database Manager Issues

  • Symptom: Configuration save failures
  • Solution: Check database permissions and WordPress debug log
  • Debug: Review health array for database-specific issues

API Manager Issues

  • Symptom: External API calls failing
  • Solution: Test connectivity and review endpoint configuration
  • Debug: Check API manager status and connection test results

Advanced Configuration

Manager Configuration

Performance Monitoring Configuration

// Enable detailed performance monitoring
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

// Performance monitoring automatically available
$performance = operaton_dmn_get_manager('performance');
$summary = $performance->get_summary();

Manager Access Patterns

// Get specific managers for advanced integration
$api_manager = operaton_dmn_get_manager('api');
$database_manager = operaton_dmn_get_manager('database');
$assets_manager = operaton_dmn_get_manager('assets');

Enhanced Caching System

Multi-Level Caching

  1. WordPress Object Cache: Manager-level caching for configuration data
  2. Transient Cache: API response caching for decision flow data
  3. Static Cache: In-memory caching for repeated operations within requests
  4. Performance Cache: Benchmark data for optimization analysis

Cache Management

  • Automatic Invalidation: Cache automatically cleared on configuration changes
  • Manual Clearing: Admin interface provides cache clearing options
  • Performance Monitoring: Cache hit/miss ratios tracked for optimization

API Integration Details

Enhanced API Architecture

Manager-Based API Handling

The API Manager provides enhanced capabilities:

// Enhanced API manager with comprehensive error handling
class Operaton_DMN_API {
    private $performance;        // Performance monitoring integration
    private $core;              // Core plugin reference
    private $database;          // Database manager integration

    // Enhanced evaluation with performance tracking
    public function handle_evaluation($request) {
        $timer_id = $this->performance->start_timer('api_evaluation');
        // ... evaluation logic
        $this->performance->stop_timer($timer_id, 'Evaluation completed');
    }
}

API Performance Monitoring

All API calls are automatically monitored:

{
  "api_performance": {
    "evaluation_time_ms": 45.67,
    "external_api_time_ms": 123.45,
    "response_processing_ms": 12.34,
    "result_population_ms": 8.90
  }
}

Version Information

  • Plugin Version: 1.0.0-beta.12
  • Architecture: Manager-based modular design
  • Performance Grade: A+ (Excellent)
  • Gravity Forms Compatibility: 2.4+
  • WordPress Compatibility: 5.0+
  • PHP Requirements: 7.4+ (8.0+ recommended)
  • Operaton Engine Compatibility: 7.x+

About

πŸ”— Mirror of GitLab repo - Active development at git.open-regels.nl/showcases/operaton-dmn-evaluator

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks