Portless: rutas locales con nombre
Proyecto educativo con Portless: un explorador de rutas y orígenes de solo lectura
Diseña una propuesta que explique prioridades y exposición sin configurar certificados ni compartir aplicaciones de forma oculta.
Qué aprenderás
- Haz visible la decisión de ruta
- Separa observar de modificar
- Convierte la prueba en especificación de regresión
Antes de empezar
- Conceptos de orígenes HTTP, puertos y terminal
- Distinguir loopback, LAN y exposición pública
Traza una petición, define límites de instalación y separa comportamiento observado de integraciones no probadas.
Conclusiones clave
- Explica niveles reales con datos sintéticos.
- La visualización de solo lectura no debe ocultar configuración del sistema.
- Mide comprensión, no complejidad de animación.
Haz visible la decisión de ruta
Una extensión educativa permitiría introducir un Host sintético y recorrer los niveles fijados: autoridad original, normalizada, candidatos locales exactos, autoridades tailnet y alternativa comodín. Resaltaría la primera ruta seleccionada y explicaría por qué no ganó un sufijo posterior más específico. Es una propuesta didáctica, no una función entregada por Portless.
Utiliza rutas y puertos sintéticos por defecto. El ejercicio no debe descubrir aplicaciones privadas, leer tokens reales ni conectarse al nombre introducido para animar el dibujo. Un flujo SVG 2D con explicación ordenada accesible basta para esta relación. Three.js añadiría renderizado e interacción sin aclarar necesariamente una cadena de cuatro prioridades.
Separa observar de modificar
Otra vista podría comparar orígenes entre HTTP, HTTPS, cambios de puerto del proxy y nombres de ramas. Debe explicar que esquema, host y puerto importan, mientras que cookies y listas autorizadas siguen reglas propias de aplicación. Mostrar dos URL distintas no demuestra validación de CORS ni OAuth.
Si posteriormente se importan rutas reales, hazlo de forma explícita, local y de solo lectura, y oculta nombres sensibles antes de exportar. No escondas confianza de certificados, force, servicios o túneles públicos dentro de un visualizador aparentemente inocuo. Esas operaciones necesitan autorización separada y consecuencias claras; un diagrama no justifica ampliar permisos.
Convierte la prueba en especificación de regresión
Los 24 casos existentes pueden aportar expectativas para el explorador: rechazo estricto, precedencia exacta y primer sufijo. Mantén selección explícita de versión para que un cambio de comportamiento no invalide la lección silenciosamente. Un fallo de análisis o visualización debe mostrarse como error, no convertirse en una ruta inventada pero convincente.
El siguiente hito sería un prototipo estático accesible, con teclado, etiquetas traducidas y comprobaciones de fixtures. Después evalúa si las personas predicen una ruta nueva y distinguen exposición local de pública. El artículo no entrega explorador interactivo, animación 3D ni estudio de usuarios: el SVG ilustra la propuesta y el experimento define sus límites de evidencia.
Pasos de implementación
- 1
Define rutas sintéticas y expectativas del experimento fijado.
- 2
Construye explicación 2D accesible antes de animar.
- 3
Mantén importación opcional y exportación redactada.
- 4
Prueba predicciones y diferencia propuestas de funciones entregadas.
Ejemplo para copiar
{
"propuesta": "explorador de rutas de solo lectura",
"estado": "no implementado",
"entrada": "Host y rutas sintéticos",
"peticionesDeRed": false,
"leerTokensReales": false,
"modificarCertificadosOServicios": false,
"comprobaciónEducativa": "predecir ruta y explicar exposición"
}Preguntas frecuentes
¿Portless ya incluye ese explorador?
No. Es una propuesta editorial basada en código fijado y resultados de pruebas, no una descripción de una interfaz existente.
¿Por qué no empezar con Three.js?
La relación esencial es una decisión ordenada. Un diagrama 2D accesible la explica con menos complejidad; añade 3D solo si demuestra valor educativo.
Fuentes
- packages/portless/src/proxy.tsFuente verificada 2026-09-08
- packages/portless/src/types.tsFuente verificada 2026-09-08
- README.mdFuente verificada 2026-09-08