Introducción
La API de previsualización de un equipo de soporte está informando de la configuración del entorno en vivo, y su simulación de mantenimiento rechaza la credencial de previsualización. El entorno en vivo sigue funcionando. Su tarea consiste en restaurar el límite de previsualización sin debilitar la autorización de mantenimiento ni modificar el comportamiento del entorno en vivo.
Este desafío independiente proporciona un Worker pequeño, dos entornos locales con nombre y credenciales sintéticas en una máquina virtual nueva. Aplique las prácticas de configuración, carga de secretos y pruebas en tiempo de ejecución de los laboratorios guiados. Para completar el desafío, ambos entornos locales deben cumplir el contrato siguiente; después, deberá eliminar los servidores temporales y los archivos de secretos. Aquí, los nombres preview y live describen entornos de prueba locales; este desafío no requiere iniciar sesión en Cloudflare ni realizar ningún despliegue.
Restaurar el aislamiento de previsualización
Situación actual
El proyecto preparado se encuentra en /home/labex/project/preview-drift. Ya están instalados Node 22.22.0, Wrangler 4.131.1 local del proyecto y el entorno de ejecución independiente para pruebas. Los servidores de desarrollo todavía no están ejecutándose. El controlador proporcionado implementa el estado de salud público y una simulación sintética de mantenimiento; el problema está en la configuración pública y en la carga de credenciales del entorno de previsualización.
Alcance
Trabaje con wrangler.jsonc, src/index.js, .dev.vars.preview, .dev.vars.live y .gitignore. Inspeccione el controlador y la configuración para encontrar el contrato de los bindings. Los dos archivos dotenv contienen credenciales aleatorias distintas y destinadas únicamente a pruebas. Puede inspeccionar sus nombres de clave sin mostrar sus valores. Mantenga las credenciales privadas en esta máquina virtual y excluidas de Git.
Ejecute el entorno de Wrangler preview en el puerto de loopback 8080 y live en el puerto 8081. Asigne puertos de inspector diferentes a los dos tiempos de ejecución simultáneos. Utilice los comandos habituales de desarrollo de Wrangler local del proyecto; este desafío no crea recursos remotos. QUEUE_LABEL es una cadena de visualización, no un servicio de colas.
Objetivo
Ambos entornos locales deben exponer su identidad pública prevista y permitir el mantenimiento únicamente con su propia credencial configurada. El entorno de previsualización debe estar aislado del entorno en vivo, y el estado de salud público existente y el comportamiento seguro ante errores deben seguir disponibles.
Criterios de aceptación
- GET
/healthdevuelve JSON con el estadook. El entorno de previsualización identifica el entornopreviewy la colasandbox; el entorno en vivo identifica el entornolivey la colaprimary. - Cada entorno carga su propia credencial sintética mediante el binding
MAINTENANCE_TOKENdel controlador. Mantenga ambos valores de credencial distintos y fuera del código fuente y de las variables públicas de Wrangler. Los archivos dotenv locales deben seguir siendo legibles únicamente por el usuario de la máquina virtual y estar excluidos de Git. - POST
/maintenancedevuelve 200 conoperation: dry-runy el nombre del entorno únicamente cuando recibe una credencial Bearer válida para ese entorno. Las credenciales ausentes, no válidas o pertenecientes al otro entorno devuelven 401 conerror: unauthorized. - Si falta el secreto configurado, la solicitud debe fallar de forma segura con 503 y
error: maintenance_unconfigured. GET/maintenancesigue devolviendo 405 conerror: method_not_allowed; una ruta desconocida sigue devolviendo 404 conerror: not_found. - Las respuestas y los registros de la aplicación no contienen valores de credenciales. Los dos servidores locales deben seguir ejecutándose para las dos comprobaciones de este paso. No se requiere autorización en la nube, despliegue, informe ni marcador de éxito copiado.
Pistas
Compare el origen de cada valor público
Lea las búsquedas de variables de entorno del controlador y compárelas con los objetos de entorno con nombre de wrangler.jsonc. Las variables de entorno de Wrangler no se heredan automáticamente. El entorno seleccionado por un tiempo de ejecución y los valores incluidos en ese entorno son elementos distintos.
Investigue una respuesta maintenance-unconfigured
Distinga entre un binding configurado ausente y una credencial entrante rechazada. Compare el nombre del binding del controlador con los nombres de clave del archivo dotenv específico del entorno. La existencia de un archivo local no garantiza que defina el binding que lee el controlador. Después de cambiar la configuración, vuelva a comprobar que el tiempo de ejecución esté listo.
Mantenga el comportamiento en vivo y el límite de seguridad
Pruebe el estado de salud y el mantenimiento en ambas direcciones. Un token válido en un entorno debe ser no válido en el otro. La operación de mantenimiento proporcionada es una simulación, por lo que una solicitud correctamente autorizada no modifica ningún dato de la aplicación.
Dejar limpio el espacio de trabajo
Situación actual
Los entornos locales reparados han superado las comprobaciones funcionales. Sus procesos de desarrollo y los archivos de credenciales sintéticas todavía están presentes en esta máquina virtual.
Alcance
Solo son temporales los trabajos de desarrollo de este desafío en los puertos 8080 y 8081, sus archivos .dev.vars.preview y .dev.vars.live, y las variables del shell que contienen sus valores. Conserve el código fuente reparado, la configuración, las dependencias y los servicios de LabEx.
Objetivo
El proyecto reparado debe seguir disponible, sin ningún servidor del desafío en ejecución ni archivos de secretos locales.
Criterios de aceptación
- Ninguno de los puertos 8080 y 8081 tiene un servidor de desarrollo escuchando.
- No queda ningún archivo de secretos
.dev.vars*ni.env*en el proyecto del desafío. - Limpie las variables del shell utilizadas para las credenciales sintéticas. Esta es una acción de limpieza del estudiante; el backend no puede inspeccionar el estado de su shell interactivo.
- Conserve los procesos y archivos no relacionados. Este desafío es exclusivamente local: no hay recursos en la nube ni credenciales de Cloudflare que eliminar.
Pistas
Diríjase a los trabajos que inició
Utilice la lista de trabajos del shell para identificar los dos procesos de desarrollo de Wrangler. Los números de trabajo pueden cambiar después de reiniciar un servidor. La verificación funcional debe realizarse antes de la limpieza; eliminar primero los secretos haría que las comprobaciones anteriores no fueran concluyentes.
Resumen
Rastreó el desajuste de identidad de previsualización hasta los valores del entorno con nombre, y el fallo de mantenimiento hasta el nombre del binding de credenciales. La reparación restauró el aislamiento de previsualización y mantuvo el comportamiento en vivo, el estado de salud público y la autorización del lado del servidor.
Las pruebas con credenciales ausentes, no válidas, de otro entorno y válidas establecieron el límite de forma más completa que una única respuesta exitosa. La limpieza final eliminó los procesos locales y los secretos sintéticos, y conservó el proyecto reparado.

