← Documentation Home

Code Executor Module

Secure Docker-based code execution with ecosystem integration, Claude Code worktree support, and LibreChat coordination.

Module Information

Features

Installation

composer require drupal/code_executor
drush en code_executor

System Requirements

Post-Installation

# Install Playwright for E2E testing (optional)
npm run install:playwright

# Configure Docker
sudo usermod -aG docker www-data

Dependencies

Required Modules

Suggested

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

  1. Navigate to /admin/content/code-execution
  2. Click "Add Code Execution"
  3. Select language and enter code
  4. 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:

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

Troubleshooting

Docker Permission Issues

sudo usermod -aG docker www-data
sudo systemctl restart apache2

Container Cleanup

drush code-executor:cleanup

Performance Issues

Resources

See Also