Files
jabali-panel/docs/agent-functions.yaml
2026-01-24 19:36:46 +02:00

604 lines
15 KiB
YAML

# Jabali Agent Functions Reference
# Communication via Unix socket: /var/run/jabali/agent.sock
# Request format: {"action": "category.action", "params": {...}}
user:
create:
description: Create a new system user
params:
username: string (required) - Lowercase alphanumeric, max 32 chars
password: string (optional) - If not provided, generates random
returns: {success: bool, username: string, home: string}
delete:
description: Delete a system user and their data
params:
username: string (required)
returns: {success: bool}
exists:
description: Check if user exists
params:
username: string (required)
returns: {success: bool, exists: bool}
password:
description: Set user password
params:
username: string (required)
password: string (required)
returns: {success: bool}
domain:
create:
description: Create a new domain with nginx vhost
params:
username: string (required)
domain: string (required) - Valid domain name
php_version: string (optional) - e.g., "8.4"
returns: {success: bool, domain: string, document_root: string}
delete:
description: Delete a domain
params:
username: string (required)
domain: string (required)
returns: {success: bool}
list:
description: List domains for a user
params:
username: string (required)
returns: {success: bool, domains: array}
toggle:
description: Enable/disable a domain
params:
username: string (required)
domain: string (required)
enabled: bool (required)
returns: {success: bool}
wp:
install:
description: Install WordPress
params:
username: string (required)
domain: string (required)
path: string (optional) - Subdirectory, default ""
title: string (required)
admin_user: string (required)
admin_password: string (required)
admin_email: string (required)
enable_auto_update: bool (optional) - Default false
returns: {success: bool, url: string}
list:
description: List WordPress installations
params:
username: string (required)
returns: {success: bool, installations: array}
delete:
description: Delete WordPress installation
params:
username: string (required)
domain: string (required)
path: string (optional)
returns: {success: bool}
auto_login:
description: Generate auto-login URL
params:
username: string (required)
domain: string (required)
path: string (optional)
returns: {success: bool, url: string}
update:
description: Update WordPress core
params:
username: string (required)
domain: string (required)
path: string (optional)
returns: {success: bool, version: string}
scan:
description: Security scan via WPScan API
params:
url: string (required)
returns: {success: bool, vulnerabilities: array, plugins: array}
toggle_debug:
description: Toggle WP_DEBUG mode
params:
username: string (required)
domain: string (required)
path: string (optional)
enabled: bool (required)
returns: {success: bool, debug_enabled: bool}
toggle_auto_update:
description: Toggle auto-updates
params:
username: string (required)
domain: string (required)
path: string (optional)
enabled: bool (required)
returns: {success: bool, auto_update: bool}
create_staging:
description: Create staging environment
params:
username: string (required)
domain: string (required)
path: string (optional)
staging_subdomain: string (required) - e.g., "staging"
returns: {success: bool, staging_url: string}
email:
enable_domain:
description: Enable email for a domain
params:
domain: string (required)
returns: {success: bool}
disable_domain:
description: Disable email for a domain
params:
domain: string (required)
returns: {success: bool}
generate_dkim:
description: Generate DKIM keys for domain
params:
domain: string (required)
returns: {success: bool, dkim_record: string}
mailbox_create:
description: Create an email mailbox
params:
domain: string (required)
username: string (required) - Local part of email
password: string (required)
quota: int (optional) - MB, default 1024
returns: {success: bool, email: string}
mailbox_delete:
description: Delete a mailbox
params:
domain: string (required)
username: string (required)
returns: {success: bool}
mailbox_change_password:
description: Change mailbox password
params:
domain: string (required)
username: string (required)
password: string (required)
returns: {success: bool}
forwarder_create:
description: Create email forwarder
params:
domain: string (required)
source: string (required) - Local part or full address
destination: string (required) - Comma-separated destinations
returns: {success: bool}
mysql:
list_databases:
description: List databases for a user
params:
username: string (required)
returns: {success: bool, databases: array}
create_database:
description: Create a new database
params:
username: string (required)
database: string (required)
returns: {success: bool, database: string}
delete_database:
description: Delete a database
params:
username: string (required)
database: string (required)
returns: {success: bool}
create_user:
description: Create a database user
params:
username: string (required) - DB username
password: string (required)
host: string (optional) - Default "localhost"
returns: {success: bool}
grant_privileges:
description: Grant privileges to user
params:
username: string (required)
database: string (required)
privileges: array (optional) - Default ALL
returns: {success: bool}
import_database:
description: Import SQL file
params:
username: string (required)
database: string (required)
file: string (required) - Path to SQL file
returns: {success: bool}
export_database:
description: Export database to file
params:
username: string (required)
database: string (required)
file: string (required) - Output path
returns: {success: bool}
ssl:
check:
description: Check SSL certificate status
params:
domain: string (required)
returns: {success: bool, valid: bool, expires: string, issuer: string}
issue:
description: Issue Let's Encrypt certificate
params:
domain: string (required)
email: string (required)
returns: {success: bool, expires: string}
install:
description: Install custom certificate
params:
domain: string (required)
cert: string (required) - PEM certificate
key: string (required) - Private key
chain: string (optional) - CA chain
returns: {success: bool}
renew:
description: Renew certificate
params:
domain: string (required)
returns: {success: bool}
backup:
create:
description: Create user backup
params:
username: string (required)
include_databases: bool (optional) - Default true
include_email: bool (optional) - Default true
returns: {success: bool, backup_file: string, size: int}
restore:
description: Restore from backup
params:
username: string (required)
backup_file: string (required)
returns: {success: bool}
list:
description: List backups for user
params:
username: string (required)
returns: {success: bool, backups: array}
delete:
description: Delete a backup
params:
backup_file: string (required)
returns: {success: bool}
dns:
create_zone:
description: Create DNS zone file
params:
domain: string (required)
ip: string (required) - Primary IP
ns1: string (optional) - Nameserver 1
ns2: string (optional) - Nameserver 2
returns: {success: bool}
sync_zone:
description: Sync zone from database records
params:
domain: string (required)
returns: {success: bool}
delete_zone:
description: Delete DNS zone
params:
domain: string (required)
returns: {success: bool}
reload:
description: Reload BIND configuration
params: {}
returns: {success: bool}
service:
list:
description: List managed services
params: {}
returns: {success: bool, services: array}
start:
description: Start a service
params:
service: string (required)
returns: {success: bool}
stop:
description: Stop a service
params:
service: string (required)
returns: {success: bool}
restart:
description: Restart a service
params:
service: string (required)
returns: {success: bool}
status:
description: Get service status
params:
service: string (required)
returns: {success: bool, running: bool, enabled: bool}
ufw:
status:
description: Get firewall status
params: {}
returns: {success: bool, enabled: bool, default_policy: string}
list_rules:
description: List firewall rules
params: {}
returns: {success: bool, rules: array}
allow_port:
description: Allow a port
params:
port: int (required)
protocol: string (optional) - tcp/udp, default both
returns: {success: bool}
deny_port:
description: Deny a port
params:
port: int (required)
returns: {success: bool}
allow_ip:
description: Allow an IP address
params:
ip: string (required)
returns: {success: bool}
deny_ip:
description: Deny an IP address
params:
ip: string (required)
returns: {success: bool}
file:
list:
description: List directory contents
params:
username: string (required)
path: string (required)
returns: {success: bool, files: array}
read:
description: Read file contents
params:
username: string (required)
path: string (required)
returns: {success: bool, content: string}
write:
description: Write file
params:
username: string (required)
path: string (required)
content: string (required)
returns: {success: bool}
delete:
description: Delete file or directory
params:
username: string (required)
path: string (required)
returns: {success: bool}
extract:
description: Extract archive
params:
username: string (required)
path: string (required) - Archive path
destination: string (optional) - Extract destination
returns: {success: bool}
ssh:
list_keys:
description: List authorized SSH keys
params:
username: string (required)
returns: {success: bool, keys: array}
add_key:
description: Add SSH public key
params:
username: string (required)
key: string (required) - Public key content
name: string (optional) - Key name/comment
returns: {success: bool}
delete_key:
description: Remove SSH key
params:
username: string (required)
fingerprint: string (required)
returns: {success: bool}
enable_shell:
description: Enable shell access for user
params:
username: string (required)
returns: {success: bool}
disable_shell:
description: Disable shell access (set to /bin/false)
params:
username: string (required)
returns: {success: bool}
cron:
list:
description: List cron jobs
params:
username: string (required)
returns: {success: bool, jobs: array}
create:
description: Create cron job
params:
username: string (required)
minute: string (required)
hour: string (required)
day: string (required)
month: string (required)
weekday: string (required)
command: string (required)
returns: {success: bool}
delete:
description: Delete cron job
params:
username: string (required)
id: int (required)
returns: {success: bool}
toggle:
description: Enable/disable cron job
params:
username: string (required)
id: int (required)
enabled: bool (required)
returns: {success: bool}
php:
list_versions:
description: List installed PHP versions
params: {}
returns: {success: bool, versions: array, default: string}
install:
description: Install PHP version
params:
version: string (required) - e.g., "8.3"
returns: {success: bool}
uninstall:
description: Uninstall PHP version
params:
version: string (required)
returns: {success: bool}
set_default:
description: Set default PHP version
params:
version: string (required)
returns: {success: bool}
reload_fpm:
description: Reload PHP-FPM for version
params:
version: string (required)
returns: {success: bool}
restart_fpm:
description: Reload PHP-FPM for version (legacy alias)
params:
version: string (required)
returns: {success: bool}
metrics:
overview:
description: Get system overview
params: {}
returns: {success: bool, cpu: object, memory: object, disk: object, uptime: string}
cpu:
description: Get CPU usage
params: {}
returns: {success: bool, usage: float, cores: int, load: array}
memory:
description: Get memory usage
params: {}
returns: {success: bool, total: int, used: int, free: int, percent: float}
disk:
description: Get disk usage
params: {}
returns: {success: bool, filesystems: array}
processes:
description: Get top processes
params:
limit: int (optional) - Default 10
returns: {success: bool, processes: array}
quota:
status:
description: Get quota system status
params: {}
returns: {success: bool, enabled: bool}
enable:
description: Enable disk quotas
params: {}
returns: {success: bool}
set:
description: Set user quota
params:
username: string (required)
soft: int (required) - Soft limit in MB
hard: int (required) - Hard limit in MB
returns: {success: bool}
get:
description: Get user quota usage
params:
username: string (required)
returns: {success: bool, used: int, soft: int, hard: int}
clamav:
status:
description: Get ClamAV status
params: {}
returns: {success: bool, installed: bool, running: bool, signatures: int}
scan:
description: Scan path for malware
params:
path: string (required)
recursive: bool (optional) - Default true
returns: {success: bool, infected_files: array, scanned: int}
update_signatures:
description: Update virus signatures
params: {}
returns: {success: bool}