Script Executor
The script executor runs pre-uploaded scripts from the managed scripts directory.
Configuration
[hooks.executor]
type = "script"
path = "deploy.sh"
The path is relative to the scripts directory (default data/scripts).
Managing scripts
Scripts are managed through the web UI at /scripts:
- Upload: Create new scripts with the web editor
- Edit: Modify existing scripts in the browser
- Delete: Remove scripts you no longer need
Filename rules
- Alphanumeric characters, hyphens, underscores, and dots only
- No path traversal (
..is rejected) - No leading dots (hidden files)
- Maximum file size: 1 MB
Payload access
Scripts receive the payload as a JSON file at data/logs/{execution_id}/payload.json. Read it in your script:
#!/bin/bash
PAYLOAD=$(cat "$SENDWORD_PAYLOAD_PATH")
REPO=$(echo "$PAYLOAD" | jq -r '.repo')
echo "Deploying $REPO"