Previsualizar la deriva de configuración

CloudflareBeginner
Practicar Ahora

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 /health devuelve JSON con el estado ok. El entorno de previsualización identifica el entorno preview y la cola sandbox; el entorno en vivo identifica el entorno live y la cola primary.
  • Cada entorno carga su propia credencial sintética mediante el binding MAINTENANCE_TOKEN del 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 /maintenance devuelve 200 con operation: dry-run y 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 con error: unauthorized.
  • Si falta el secreto configurado, la solicitud debe fallar de forma segura con 503 y error: maintenance_unconfigured. GET /maintenance sigue devolviendo 405 con error: method_not_allowed; una ruta desconocida sigue devolviendo 404 con error: 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.

✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar