50 Modules
Cada module es una biblioteca compartida (.so) que exporta 4 funciones. Cada uno hace una sola cosa. Juntos, se componen en cualquier sistema.
Infraestructura
mod_cli
CLI sobre UNIX socket. Edición de línea completa con teclas de dirección, historial (64 comandos), autocompletado con tabulador. Estado por cliente: path actual, sesión de autenticación. Conectar mediante portal -r o portalctl.
mod_web
Gateway de API REST HTTP/HTTPS. Mapea métodos HTTP a métodos Portal. Genera automáticamente un índice de API a partir de los paths activos. Tres métodos de autenticación: API Key, Bearer Token, HTTP Basic Auth. CORS habilitado. Dirección de enlace configurable.
v0.8.0 · Infraestructuramod_node
Federation de nodos sobre TCP/TLS. Conecta instancias Portal en una red distribuida. Pool de hilos worker por peer. Wire protocol PORTAL02. Hub routing para traversal de NAT. Autenticación por federation key (SHA-256). Reconexión automática.
v0.4.0 · Infraestructuramod_ssh
Servidor SSH para acceso CLI remoto. Cualquier cliente SSH estándar se conecta y obtiene la CLI interactiva completa. Usa el sistema propio de usuario/contraseña de Portal.
v1.0.0 · Infraestructuramod_config_sqlite
Backend de almacenamiento SQLite. Transparente — se registra como proveedor de almacenamiento del core. Crea tablas automáticamente. Modo WAL para concurrencia.
v0.6.0 · Infraestructuramod_config_psql
Backend de almacenamiento PostgreSQL. Transparente — se registra como proveedor de almacenamiento del core. Crea la base de datos y las tablas automáticamente. Consultas parametrizadas (seguro contra inyección SQL).
v0.5.0 · InfraestructuraDatos y mensajería
mod_cache
Caché clave-valor en memoria con expiración por TTL. Hash table thread-safe. CLI: cache set/get/del/keys/flush. Emite eventos ante cambios.
v1.0.0 · Datosmod_kv
Almacén clave-valor persistente. Respaldado en fichero, sobrevive a reinicios. Cada clave se almacena como un fichero. Thread-safe, protección contra path traversal.
v1.0.0 · Datosmod_shm
Regiones de memoria compartida POSIX con nombre. Crear, leer, escribir, destruir. Emite eventos al crear.
v1.0.0 · Datosmod_queue
Colas de mensajes FIFO thread-safe. Push, pop, peek. Emite eventos en push/pop.
v1.0.0 · Datosmod_websocket
Servidor WebSocket para push en tiempo real a navegadores. Los clientes envían nombres de path y reciben respuestas.
v1.0.0 · Datosmod_mqtt
Broker MQTT ligero. Los clientes publican/se suscriben a topics. La publicación MQTT se mapea a la emisión de eventos Portal.
v1.0.0 · Datosmod_email
Emisor de correo SMTP. Servidor y autenticación configurables. Emite evento al enviar.
v1.0.0 · Datosmod_file
Operaciones de sistema de ficheros en sandbox. Leer, escribir, listar, eliminar, info, mkdir. Protección contra path traversal. Tamaño máximo de fichero y directorio base configurables.
v1.0.0 · DatosLógica y scripting
mod_logic
Framework de lógica de aplicación. Orquestador independiente del lenguaje. Gestiona scripts, rutas y handlers de eventos. Delega la ejecución a motores de lenguaje mediante mensajes de path.
v1.0.0 · Lógicamod_logic_lua
Intérprete embebido Lua 5.4. En proceso, zero-copy. API: portal.get(), portal.call(), portal.set(), portal.route(), portal.on(), portal.log().
v1.0.0 · Lógicamod_logic_python
Python 3 en subproceso fork. Puente de comunicación JSON por pipe. import portal, misma API. Evita conflictos de señales de CPython con libev.
v1.1.0 · Lógicamod_logic_c
Motor de scripting en C. Compila ficheros .c con gcc en tiempo de carga, produce .so y los abre con dlopen. Velocidad nativa con hot-reload. Usa portal.h directamente.
v1.0.0 · Lógicamod_logic_pascal
Motor de scripting Free Pascal. Compila ficheros .pas con fpc. Exporta app_load, app_handle, app_unload con convención cdecl.
v1.0.0 · LógicaSistema y monitorización
mod_metrics
Métricas del sistema en tiempo real desde /proc: uso de CPU, memoria, espacio en disco, carga media, tiempo de actividad.
v1.0.0 · Sistemamod_health
Sondas de liveness/readiness. Compatible con Kubernetes/Docker. CLI: health, uptime.
v1.0.0 · Sistemamod_sysinfo
Información del sistema: hostname, SO, kernel, número de CPUs, interfaces de red, variables de entorno.
v1.0.0 · Sistemamod_process
Ejecución de comandos del sistema en sandbox vía popen. Lista blanca configurable. Rechaza patrones peligrosos. Solo administradores.
v1.0.0 · Sistemamod_log
Acceso a los logs de la instancia Portal mediante el sistema de paths. Tail, búsqueda por patrón, listar ficheros de log, rotar.
v1.0.0 · Sistemamod_audit
Log de auditoría en buffer circular. Se suscribe automáticamente a /events/*. Buscable por usuario o path. Persistencia en fichero opcional.
v1.0.0 · Sistemamod_cron
Planificador de tareas por intervalo. Las tareas disparan llamadas a paths. CLI: cron add/remove/trigger/jobs. Emite eventos.
v1.0.0 · Sistemamod_scheduler
Planificador de tareas diferidas de una sola ejecución. Las tareas se ejecutan una vez en un momento específico. Complemento a los intervalos de mod_cron.
v1.0.0 · Sistemamod_worker
Pools de hilos con nombre para ejecución de tareas en segundo plano. Número de hilos configurable, envío de tareas, estadísticas de completado/fallo.
v1.0.0 · Sistemamod_backup
Crear copias de seguridad tar.gz de la configuración y datos de la instancia. Restaurar desde archivos. Listar y eliminar copias. Solo administradores.
v1.0.0 · SistemaRed e integración
mod_proxy
Proxy inverso HTTP con rutas con nombre. Mapea paths de Portal a servidores upstream. Seguimiento de errores por ruta.
v1.0.0 · Redmod_dns
Utilidad DNS: resolución de nombres (A/AAAA), búsqueda inversa (PTR), búsqueda completa con alias.
v1.0.0 · Redmod_http_client
Peticiones HTTP/HTTPS salientes. CLI: curl <url>. Utilizado por otros modules para llamadas a APIs externas.
v1.0.0 · Redmod_webhook
Registrar URLs de webhook, despacho automático ante eventos Portal. Timeout y reintentos configurables. Se suscribe a /events/*.
v1.0.0 · Redmod_api_gateway
Enrutamiento de APIs externas con caché de respuestas (mod_cache), limitación de tasa (mod_firewall), paso de cabeceras de autenticación, timeout configurable.
v1.0.0 · Redmod_tunnel
Reenvío de puertos TCP a través de conexiones federation. Relay de bytes sin overhead usando select(). Permite SSH, HTTP o cualquier servicio TCP a través de NAT.
v1.0.0 · Redmod_acme
Automatización de certificados ACME/Let's Encrypt. Detecta automáticamente certbot o acme.sh, recurre a autofirmado. Solicitar, comprobar caducidad, renovación automática.
v1.0.0 · RedSeguridad
mod_firewall
Firewall basado en origen: reglas explícitas de permiso/denegación + limitación de tasa automática. Peticiones por ventana configurables. Thread-safe.
v1.0.0 · Seguridadmod_crypto
Hash SHA-256, hash MD5, codificación/decodificación Base64, codificación/decodificación hexadecimal. Todo sin dependencias (implementaciones embebidas).
v1.0.0 · Seguridadmod_ldap
Autenticación de usuarios contra servidores LDAP/Active Directory. Protocolo simple de LDAP bind (codificación BER). Función de prueba de conexión.
v1.0.0 · Seguridadmod_validator
Validar: email, IPv4/IPv6, URL, JSON, rangos numéricos, regex POSIX, nombres de host. Devuelve válido/inválido con detalles.
v1.0.0 · SeguridadIoT
mod_iot
Gestión completa de dispositivos IoT. Descubrimiento (escaneo ARP + identificación MAC + sondeo KLAP), control (on/off/toggle), monitorización. Drivers: MQTT (Tasmota/Shelly/Sonoff), HTTP (Shelly/Hue), Tapo KLAP v2 (enchufes, bombillas, hub y aspirador TP-Link), GPIO.
v1.0.0 · IoTmod_gpio
Control de pines GPIO vía Linux sysfs. Exportar/desexportar pines, establecer dirección, leer/escribir valores. Modo de simulación en hardware sin GPIO.
v1.0.0 · IoTCompresión
mod_xz
Compresión XZ/LZMA vía liblzma. Nivel configurable (0-9). API basada en buffer.
v1.0.0 · Sistemamod_gzip
Compresión Gzip vía zlib. Nivel configurable (1-9). Formato de cabecera gzip correcto.
v1.0.0 · SistemaRenderizado
mod_template
Renderizado de plantillas con sintaxis {{variable}}. Cargar desde ficheros, cachear en memoria, renderizar con sustitución.
v1.0.0 · Sistemamod_admin
Panel de administración web (SPA). Dashboard con métricas, explorador de modules, vista de federation de nodos, gestión de usuarios/grupos, editor de configuración, visor de log de auditoría.
v2.0.0 · SistemaEjemplos
mod_hello
Module de ejemplo mínimo que demuestra la interfaz de 4 exportaciones. Plantilla para nuevos modules.
v1.0.0 · Ejemplomod_myapp
Aplicación de ejemplo con contador, eventos y demostración de ACL.
v1.0.0 · EjemploInterfaz de module
Cada module exporta exactamente 4 símbolos:
portal_module_info_t *portal_module_info(void); // descriptor
int portal_module_load(portal_core_t *core); // inicializar
int portal_module_unload(portal_core_t *core); // limpieza
int portal_module_handle(portal_core_t *core, // gestionar mensajes
const portal_msg_t *msg,
portal_resp_t *resp);
Gestión en tiempo de ejecución
portal:/> module list # todos los modules cargados
portal:/> module load mymod # hot-load
portal:/> module unload mymod # descarga segura (espera llamadas activas)
portal:/> module reload mymod # descarga + carga atómica