Tunnel Query
Descripción
Sección titulada «Descripción»El nodo Tunnel Query ejecuta consultas SQL sobre una base de datos MySQL remota a la que no podés acceder directamente — el típico hosting compartido donde el puerto de MySQL está cerrado y no hay VPN. En vez de conectar al puerto 3306, envía la consulta por HTTPS a un archivo tunnel.php en ese hosting, que la ejecuta localmente con PDO y prepared statements.
Soporta variables dinámicas en la consulta ({{campo}}, {{@NombreNodo.campo}}, {{#N.campo}}, {{var.nombre}}), para automatizar sitios PHP/WordPress/WooCommerce en hosting económico sin exponer la base de datos.
Configuralo primero: para crear e instalar tu
tunnel.php, seguí la guía del Tunnel Connector — incluye un asistente que genera tu configuración.
Configuración
Sección titulada «Configuración»| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| credentials_id | credentials | Sí | Credencial del túnel (URL del tunnel.php + secret compartido) |
| query | code | Sí | Consulta SQL a ejecutar (soporta {{variable}}) |
| database | text | No | Sobrescribe la base de datos por defecto del túnel (multi-tenant, header X-Tenant-DB) |
Credenciales
Sección titulada «Credenciales»Credencial tipo tunnel, con:
- url: URL completa de tu
tunnel.php(ej.https://tu-dominio.com/floogos/tunnel.php) - secret: secret compartido, ≥32 caracteres (coincide con
TUNNEL_SECRETdetunnel.config.php) - database: (opcional) base de datos por defecto
{ "nextModule": null, "data": [ { "id": 1, "nombre": "Ejemplo", "email": "test@test.com" } ], "_meta": { "success": true, "rowCount": 1, "insertId": null }}Ejemplo de Uso
Sección titulada «Ejemplo de Uso»{ "credentials_id": 1, "query": "SELECT * FROM pedidos WHERE estado = 'pendiente' LIMIT 100"}Con variables dinámicas:
{ "credentials_id": 1, "query": "INSERT INTO clientes (nombre, email) VALUES ('{{nombre}}', '{{email}}')"}- Las variables
{{campo}}se convierten en marcadores posicionales?y se envían comoparams(prepared statements) — nunca por interpolación de strings. - El túnel permite SELECT / INSERT / UPDATE; DELETE solo en tablas de lista blanca; DROP / ALTER / TRUNCATE / CREATE / GRANT y multi-statement están bloqueados; las keywords peligrosas (
INTO OUTFILE,LOAD_FILE,SLEEP,BENCHMARK,mysql.user) se rechazan. - Usa HTTPS (
axios) con timeout configurable (por defecto 15000 ms). - Un
403normalmente indica un secret incorrecto o una IP no permitida por el túnel.
Nodos relacionados
Sección titulada «Nodos relacionados»- MySQL Query — conexión directa a MySQL
- HTTP Request — peticiones HTTP genéricas