Code Executor Module
Secure Docker-based code execution with ecosystem integration, Claude Code worktree support, and LibreChat coordination.
Module Information
- Name: Code Executor
- Machine Name:
code_executor - Package: Artificial Intelligence (AI)
- Version: 0.1.1
- Drupal Compatibility: ^10 || ^11
- OSSA Compliant: Yes
- Source:
/Users/flux423/Sites/LLM/all_drupal_custom/modules/code_executor/
Features
- Multi-Language Support: Python, JavaScript, TypeScript, PHP, and more
- Docker-Based Sandboxing: Isolated execution environments
- Resource Management: CPU, memory, and execution time limits
- Security Features: Input validation, rate limiting, container security
- AI Integration: AI Agents framework for code analysis
- Workflow Automation: ECA integration
- REST & GraphQL APIs: Comprehensive API endpoints
- Real-Time Monitoring: Performance tracking
- LibreChat Integration: Seamless coordination with LibreChat tools API
- Federated Execution: Distributed code execution
Installation
composer require drupal/code_executor
drush en code_executor
System Requirements
- Docker installed and configured
- PHP 8.1 or higher
- Composer for dependency management
Post-Installation
# Install Playwright for E2E testing (optional)
npm run install:playwright
# Configure Docker
sudo usermod -aG docker www-data
Dependencies
Required Modules
- webform:webform, webform_ui, webform_submission_log
- rules:rules
- advancedqueue:advancedqueue
- drupal:eck
- key:key
- encrypt:encrypt
- security_review:security_review
- alternative_services:alternative_services
- llm:llm
- openapi_ui:openapi_ui, openapi_ui_redoc
- drupal:ai, ai_agents, ai_automators, ai_assistant_api
- drupal:eca, eca_base
Suggested
- admin_toolbar:admin_toolbar, admin_toolbar_tools
- entity_browser:entity_browser
- views_bulk_operations:views_bulk_operations
Configuration
Navigate to: /admin/config/llm-platform/code-executor
# Basic Settings
execution_retention_days: 30
allowed_languages:
- python
- javascript
- typescript
- php
# Docker Configuration
docker:
base_image: 'drupal:latest'
memory_limit: '512M'
cpu_limit: 1.0
timeout: 300
# Security
security:
rate_limit:
enabled: true
max_executions_per_hour: 50
input_validation:
max_code_size: 1048576 # 1MB
dangerous_patterns: []
Usage
Via Web Interface
- Navigate to
/admin/content/code-execution - Click "Add Code Execution"
- Select language and enter code
- Submit to execute
Via REST API
curl -X POST https://example.com/api/code-executor/execute \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"language": "python",
"code": "print(\"Hello World\")",
"timeout": 5000
}'
Via GraphQL
mutation {
executeCode(
language: "python"
code: "print('Hello World')"
) {
output
error
executionTime
memoryUsed
}
}
Via Drush
# Execute code
drush code-executor:execute python "print('Hello World')"
# List supported languages
drush code-executor:languages
# Clean up old executions
drush code-executor:cleanup
Permissions
Configure at /admin/people/permissions:
- Execute code: Execute code through the API
- Administer code executor: Configure settings
- View code executions: View execution history
API Documentation
Interactive documentation via Redoc:
- Navigate to /admin/config/web-services/openapi-ui
Testing
PHPUnit Tests
# Run all tests
npm run test:php
# Run specific suite
phpunit --testsuite Unit
phpunit --testsuite Kernel
phpunit --testsuite Functional
Playwright E2E Tests
# Run E2E tests
npm run test:e2e
# Run with UI
npm run test:e2e:ui
# Debug tests
npm run test:e2e:debug
Security Considerations
- All execution in isolated Docker containers
- Resource limits prevent exhaustion attacks
- Input validation prevents injection
- Rate limiting prevents abuse
- Audit logging tracks activity
- Security Review module integration
Troubleshooting
Docker Permission Issues
sudo usermod -aG docker www-data
sudo systemctl restart apache2
Container Cleanup
drush code-executor:cleanup
Performance Issues
- Adjust timeout values in settings
- Review resource limits (CPU, memory)
- Check Docker daemon performance
- Enable Redis caching
Resources
- Project: https://www.drupal.org/project/code_executor
- Issues: https://www.drupal.org/project/issues/code_executor
- OSSA: https://gitlab.bluefly.io/llm/ossa