Saltar a contenido

Configuración de un conjunto de datos recomendado

Resultados de aprendizaje

Al final de esta sesión práctica, serás capaz de:

  • crear un nuevo conjunto de datos con la política de datos 'recommended'
  • agregar un token de acceso al conjunto de datos
  • validar que el conjunto de datos no puede ser accedido sin el token de acceso
  • agregar el token de acceso a los encabezados HTTP para acceder al conjunto de datos
  • agregar un archivo de licencia personalizado alojado en tu instancia de wis2box

Introducción

Los datos se comparten en WIS2 de acuerdo con la Política Unificada de Datos de la OMM, que define dos categorías de datos.

core: datos que se proporcionan de forma gratuita y sin restricciones, sin costo y sin condiciones de uso.

recommended: datos que pueden proporcionarse con condiciones de uso y/o sujetos a una licencia.

Los datos compartidos como recommended:

  • pueden estar sujetos a condiciones de uso y reutilización
  • pueden tener controles de acceso aplicados a los datos
  • no son almacenados en caché por los WIS2 Global Caches
  • deben tener un registro de metadatos que incluya una URL de licencia

Descarga de datos recomendados

Dado que los WIS Global Caches no almacenan en caché los datos recomendados, no verás notificaciones en el tema cache/a/wis2/<centre-id>/data/recommended/..

El consumidor de datos debe descargar los datos del servidor de datos alojado por el proveedor de datos, utilizando la URL canónica proporcionada en las notificaciones en el tema origin/a/wis2/<centre-id>/data/recommended/...

En esta sesión práctica, crearás un nuevo conjunto de datos con la política de datos 'recommended' utilizando el editor de conjuntos de datos en wis2box-webapp. También aprenderás cómo proporcionar una licencia autoalojada y cómo agregar opcionalmente control de acceso.

Datos de aviación en WIS2

Para este ejercicio se te pide crear un conjunto de datos para compartir datos METAR, un formato estándar para reportar observaciones meteorológicas de aviación.

Dado que los datos de meteorología aeronáutica están sujetos a restricciones de uso, se aplica la política de datos Recommended.

Para más información, consulta la sección sobre publicación de datos de meteorología aeronáutica en el WIS2 Cookbook.

Preparación

Asegúrate de tener acceso SSH a tu VM de estudiante y que tu instancia de wis2box esté funcionando.

Asegúrate de estar conectado al broker MQTT de tu instancia de wis2box utilizando MQTT Explorer. Puedes usar las credenciales públicas everyone/everyone para conectarte al broker.

Asegúrate de tener un navegador web abierto con el wis2box-webapp de tu instancia accediendo a http://YOUR-HOST/wis2box-webapp.

Ve a la página 'dataset editor' en el wis2box-webapp y crea un nuevo conjunto de datos.

Para "Centre ID", utiliza el mismo que usaste en las sesiones prácticas anteriores.

Selecciona Template = 'other' para indicar que no usarás una plantilla predefinida para el conjunto de datos:

create-dataset-recommended

Haz clic en 'CONTINUE TO FORM' para continuar.

Para este ejercicio, crea un conjunto de datos para datos METAR de aviación;

  • elige un 'Local ID' apropiado para el conjunto de datos, por ejemplo 'aviation-metar'
  • proporciona un título y una descripción para el conjunto de datos
  • elige WMO Data Policy = 'recommended'

create-dataset-recommended

Nota que al seleccionar WMO Data Policy = 'recommended', el editor de conjuntos de datos agregó automáticamente un campo para 'License URL', que es obligatorio para conjuntos de datos recomendados.

A continuación:

  • Usa WIS2BOX_URL/data/aviation-license.html para apuntar a un archivo de licencia personalizado alojado en tu instancia, reemplazando WIS2BOX_URL con la URL de tu instancia de wis2box.
  • Selecciona 'Sub Disciple Topic' = 'aviation/metar' para definir el tema correcto para este conjunto de datos.

create-dataset-license-url

Sobre la URL de licencia

La URL de licencia asociada con un conjunto de datos recomendado informa a los consumidores de datos sobre las condiciones de uso de los datos.

Puedes usar una URL que apunte a un archivo de licencia alojado en tu instancia de wis2box, o una URL que apunte a un archivo de licencia alojado en un sitio web externo.

Para este ejercicio, usaremos un archivo de licencia autoalojado. Agregarás el archivo 'aviation-license.html' a tu instancia de wis2box más adelante en esta sesión práctica para garantizar que la URL de licencia sea válida.

Dado que seleccionaste Template = 'other', no se completan automáticamente palabras clave para el conjunto de datos. Agrega un mínimo de 3 palabras clave relevantes para el conjunto de datos:

create-dataset-metar-keywords

Continúa completando los campos requeridos para Propiedades Espaciales e Información de Contacto. Haz clic en 'Validate form' para verificar que todos los campos obligatorios estén completos.

Dado que seleccionaste Template = 'other', no se definen mapeos de conjuntos de datos.

Por favor, agrega el plugin para 'Universal data without conversion' y asegúrate de establecer la extensión de archivo en .txt para que coincida con los archivos de datos METAR que publicarás en este conjunto de datos más adelante en esta sesión práctica:

create-dataset-plugin-universal-txt

Envía el conjunto de datos, utilizando el token de autenticación creado previamente, y verifica que el nuevo conjunto de datos se haya creado en el wis2box-webapp.

Verifica en MQTT Explorer que recibes el mensaje de notificación WIS2 anunciando el nuevo registro de metadatos de descubrimiento en el tema origin/a/wis2/<your-centre-id>/metadata.

Revisa tu nuevo conjunto de datos en el wis2box-api

Visualiza la lista de conjuntos de datos en el wis2box-api abriendo la URL WIS2BOX_URL/oapi/collections/discovery-metadata/items en tu navegador web, reemplazando WIS2BOX_URL con la URL de tu instancia de wis2box.

Abre el enlace del conjunto de datos recién creado y desplázate hacia abajo hasta la sección 'links' de la respuesta JSON:

wis2box-api-recommended-dataset-links

Deberías ver un enlace para "License for this dataset" apuntando a la URL proporcionada en el editor de conjuntos de datos.

Si haces clic en el enlace, obtendrás un error ya que el archivo de licencia aún no se ha agregado a tu instancia de wis2box.

Agrega el archivo de licencia a tu instancia de wis2box

Asegúrate de que el enlace para "License for this dataset" en los metadatos de tu conjunto de datos recomendado funcione como se espera.

Descarga este archivo de licencia de aviación de ejemplo: aviation-license.html.

Sobre el archivo de licencia de aviación de ejemplo

Este es un archivo de licencia de ejemplo para datos de aviación. Es posible que desees editar el archivo para incluir información relevante para tu organización.

Para subir este archivo, utiliza la consola MinIO disponible en el puerto 9001 de la instancia de wis2box, accediendo a un navegador web y visitando http://YOUR-HOST:9001.

Las credenciales para acceder a la consola MinIO en el archivo wis2box.env están definidas por las variables de entorno WIS2BOX_STORAGE_USERNAME y WIS2BOX_STORAGE_PASSWORD.

Puedes encontrarlas en el archivo wis2box.env de la siguiente manera:

cat wis2box.env | grep WIS2BOX_STORAGE_USERNAME
cat wis2box.env | grep WIS2BOX_STORAGE_PASSWORD

Una vez que hayas iniciado sesión en la consola MinIO, sube el archivo de licencia en la ruta base del bucket wis2box-public utilizando el botón “Upload”:

minio-upload-license

Después de subir el archivo de licencia, verifica si el archivo es accesible visitando WIS2BOX_URL/data/aviation-license.html en tu navegador web, reemplazando WIS2BOX_URL con la URL de tu instancia de wis2box.

Note

El proxy web en wis2box redirige todos los archivos almacenados en el bucket "wis2box-public" bajo la ruta WIS2BOX_URL/data/

El enlace para "License for this dataset" incluido en los metadatos de tu conjunto de datos recomendado debería funcionar como se espera.

Agrega un token de acceso al conjunto de datos

Inicia sesión en el contenedor wis2box-management,

cd ~/wis2box
python3 wis2box-ctl.py login

Desde la línea de comandos dentro del contenedor, puedes asegurar un conjunto de datos utilizando el comando wis2box auth add-token, usando el flag --metadata-id para especificar el identificador de metadatos del conjunto de datos y el token de acceso como argumento.

Por ejemplo, para agregar el token de acceso S3cr3tT0k3n al conjunto de datos con identificador de metadatos urn:wmo:md:my-centre-id:core.surface-based-observations.synop:

wis2box auth add-token --metadata-id urn:wmo:md:my-centre-id:aviation-metar S3cr3tT0k3n

Sal del contenedor wis2box-management:

exit

Publica algunos datos en el conjunto de datos

Descarga el siguiente archivo de datos METAR de ejemplo a tu máquina local:

A_SAKO31RKSL290000_C_RKSL_20250729000055.txt

Luego, ingrese este archivo en su conjunto de datos utilizando la consola de MinIO. Para acceder a la consola de MinIO, abra un navegador web y visite http://YOUR-HOST:9001 e inicie sesión utilizando las credenciales definidas en el archivo wis2box.env por las variables de entorno WIS2BOX_STORAGE_USERNAME y WIS2BOX_STORAGE_PASSWORD.

Para ingresar el archivo en su conjunto de datos, vaya al bucket wis2box-incoming y cree una nueva carpeta con el nombre del identificador de metadatos de su conjunto de datos. Luego, cargue el archivo de datos METAR de ejemplo en esta carpeta utilizando el botón “Upload”:

minio-wis2box-incoming-metar-data-uploaded

Asegúrese de que el nombre de la carpeta sea igual al identificador de metadatos de su conjunto de datos y verifique que reciba notificaciones de datos WIS2 en MQTT Explorer, en el tema origin/a/wis2/<your-centre-id>/data/recommended/aviation/metar:

mqtt-explorer-data-aviation-metar

Resolución de problemas

Si no recibió una notificación después de cargar sus datos, puede verificar los registros recientes del contenedor wis2box-management para solucionar el problema:

docker logs -n100 wis2box-management

Copie y pegue la URL del enlace canónico desde el mensaje de notificación WIS2 en su navegador web. La URL debería verse similar a esta:

http://example.training.wis2dev.io/data/2025-07-29/wis/urn:wmo:md:int-wmo-example:aviation-metar/A_SAKO31RKSL290000_C_RKSL_20250729000055.txt

Si agregó correctamente el token de acceso al conjunto de datos, no debería poder acceder a los datos en su navegador web. En su lugar, verá un ERROR 401 Authorization Required.

Agregar el token de acceso a los encabezados HTTP para acceder al conjunto de datos

Para demostrar que se requiere el token de acceso para acceder al conjunto de datos, reproduciremos el error que vio en el navegador utilizando la función de línea de comandos wget.

Desde la línea de comandos en su máquina virtual de estudiante, use el comando wget con el enlace canónico que copió del mensaje de notificación WIS2.

wget http://example.training.wis2dev.io/data/2025-07-29/wis/urn:wmo:md:int-wmo-example:aviation-metar/A_SAKO31RKSL290000_C_RKSL_20250729000055.txt

Debería ver que la solicitud HTTP devuelve 401 Unauthorized y los datos no se descargan.

Ahora agregue el token de acceso a los encabezados HTTP para acceder al conjunto de datos.

wget --header="Authorization: Bearer S3cr3tT0k3n" <canonical-link>

Ahora los datos deberían descargarse correctamente.

Eliminar el token de acceso del conjunto de datos

Para eliminar el token de acceso del conjunto de datos, inicie sesión en el contenedor wis2box-management,

cd ~/wis2box
python3 wis2box-ctl.py login

Y use el comando wis2box auth remove-token para eliminar el token de acceso del conjunto de datos, utilizando el flag --metadata-id para especificar el identificador de metadatos del conjunto de datos y el token de acceso como argumento:

wis2box auth remove-token --metadata-id urn:wmo:md:my-centre-id:aviation-metar S3cr3tT0k3n

Asegúrese de reemplazar urn:wmo:md:my-centre-id:aviation-metar con el identificador de metadatos de su conjunto de datos.

Cierre la sesión del contenedor wis2box-management:

exit

Y verifique que el token de acceso haya sido eliminado intentando descargar los datos nuevamente utilizando wget con el token de acceso en los encabezados HTTP, o intentando acceder a los datos en su navegador web.

El control de acceso es opcional, solo para conjuntos de datos recomendados

WIS2 especifica que los conjuntos de datos recomendados pueden tener controles de acceso aplicados a los datos. No es obligatorio agregar control de acceso a un conjunto de datos recomendado y puede confiar únicamente en la URL de la licencia para informar a los consumidores de datos sobre las condiciones de uso de los datos. Si aplica control de acceso, usted es responsable de compartir el token de acceso con cualquier consumidor de datos que necesite acceder a estos datos.

Si aplica wis2box auth add-token a un conjunto de datos con la política de datos 'core' de WMO, las Global Caches informarán un error al Global Monitoring ya que no pueden descargar los datos y su conjunto de datos se considerará no conforme con las Regulaciones Técnicas de WIS2.

Conclusión

¡Felicidades!

En esta sesión práctica, aprendió a:

  • crear un nuevo conjunto de datos con la política de datos 'recommended'
  • agregar un archivo de licencia personalizado a su instancia de wis2box
  • agregar un token de acceso al conjunto de datos
  • validar que el conjunto de datos no se puede acceder sin el token de acceso
  • agregar el token de acceso a los encabezados HTTP para acceder al conjunto de datos