Skip to main content
JGJenks Guo

Documentación / explanation

Seguridad y privacidad

Qué pueden y no pueden hacer las interfaces pública y de administrador, cómo se protegen el token de administrador y el acceso a GitHub, y qué ocurre con los datos de los visitantes.

Dos tipos de acceso

Público — cualquiera, sin credenciales. La REST API (/api/v1/*), el servidor MCP público (/mcp), los comandos públicos de la CLI y los archivos estáticos son solo de lectura. Exponen únicamente el corpus publicado, que es público por diseño. ask_jenks y el chat del sitio web llaman a un modelo de lenguaje, por lo que se limitan por IP para evitar abusos.

Administrador — solo Jenks. /api/admin/*, /mcp/admin, jenks admin … y la consola en /admin requieren el token de administrador personal de Jenks en un encabezado Authorization: Bearer. Con él, quien llama puede validar, escribir y eliminar archivos de contenido y promocionar dev a main. Eso es poder real, por lo que el token se trata como una contraseña.

El token de administrador

  • Vive en el llavero de macOS como agent-env:JENKSGUO_ADMIN_TOKEN y solo se carga en una shell cuando se necesita. Nunca se escribe en contenido, commits, archivos de configuración que se compartan ni chats.
  • El Worker lo almacena como un secreto cifrado y lo compara en tiempo constante.
  • La consola de /admin nunca almacena el token. Al iniciar sesión se envía una vez a /api/admin/login, que establece una cookie de sesión HttpOnly, Secure, SameSite=Strict (12 horas, o 14 días con "remember"). Los scripts de la página no pueden leer esa cookie, y las escrituras autenticadas por cookie también deben enviar un encabezado x-jenks-admin, que un formulario de sitio cruzado no puede establecer.
  • Rótalo si pudiera haberse filtrado: genera un token nuevo, guárdalo en el llavero, actualiza el secreto del Worker, y el anterior deja de funcionar de inmediato, junto con todas las sesiones de la consola, porque las sesiones se firman con una clave derivada del token.

Qué puede modificar la API de administrador

Las escrituras se limitan a una lista de permitidos de rutas de contenido: las entradas del corpus, lentes, habilidades, documentos núcleo, el glosario de traducción y esta documentación. No puede cambiar código, flujos de trabajo, secretos ni nada fuera de content/. Cada escritura se valida primero contra el esquema de contenido.

Acceso a GitHub

Las escrituras de administrador se convierten en commits a través de la GitHub API usando un personal access token de granularidad fina limitado al repositorio único, con solo los permisos que la publicación necesita. Se almacena como un secreto cifrado del Worker. Como cada cambio es un commit:

  • el historial de git es el registro de auditoría — quién cambió qué, cuándo y por qué (el mensaje del commit),
  • siempre es posible deshacer — se puede restaurar cualquier versión anterior de cualquier archivo.

Los cambios arriesgados pueden prepararse en la rama dev y verificarse en https://dev.jenksguo.xyz antes de que algo llegue al sitio en vivo.

Privacidad de los visitantes

  • Sin rastreadores publicitarios ni cookies de marketing.
  • La transcripción del chat se guarda solo en el navegador del visitante (sessionStorage) y se borra al cerrar la pestaña. El sitio no almacena transcripciones de chat.
  • Los mensajes del chat se envían a través del Cloudflare Worker a OpenRouter, que los enruta a un modelo de lenguaje de terceros. Se pide a los visitantes que no compartan información personal sensible.
  • La entrada de voz usa el reconocimiento de voz del propio navegador cuando está disponible; de lo contrario, el audio se envía a OpenRouter para su transcripción. Las respuestas habladas usan la síntesis de voz del dispositivo.
  • Cloudflare conserva registros de solicitudes estándar para seguridad y limitación de tasa.

Privacidad del contenido

Todo lo que está bajo content/ es público. Los currículums de Jenks contenían números de teléfono, una dirección particular y contactos de referencias; nada de eso está en el corpus, y nunca debe añadirse. Los hechos sobre otras personas se limitan a lo necesario para describir los roles de Jenks.

Informar de un problema

Escribe a jenksguo@gmail.com con los detalles. Por favor, no pruebes la interfaz de administrador sin permiso.

.mdEsta página está traducida con ayuda de IA; los títulos oficiales permanecen en inglés.