Aller au contenu

Configuration d'un ensemble de données recommandé

Objectifs d'apprentissage

À la fin de cette session pratique, vous serez capable de :

  • créer un nouvel ensemble de données avec une politique de données 'recommended'
  • ajouter un jeton d'accès à l'ensemble de données
  • valider que l'ensemble de données ne peut pas être accessible sans le jeton d'accès
  • ajouter le jeton d'accès aux en-têtes HTTP pour accéder à l'ensemble de données
  • ajouter un fichier de licence personnalisé hébergé sur votre instance wis2box

Introduction

Les données sont partagées sur WIS2 conformément à la Politique Unifiée des Données de l'OMM, qui définit deux catégories de données.

core : données fournies gratuitement et sans restriction, sans frais et sans conditions d'utilisation

recommended : données pouvant être fournies avec des conditions d'utilisation et/ou soumises à une licence

Les données partagées en tant que recommended :

  • peuvent être soumises à des conditions d'utilisation et de réutilisation
  • peuvent avoir des contrôles d'accès appliqués
  • ne sont pas mises en cache par les Global Caches de WIS2
  • doivent avoir un enregistrement de métadonnées incluant une URL de licence

Téléchargement des données recommandées

Étant donné que les Global Caches de WIS2 ne mettent pas en cache les données recommandées, vous ne verrez pas de notifications sur le sujet cache/a/wis2/<centre-id>/data/recommended/..

Le consommateur de données doit télécharger les données depuis le serveur de données hébergé par le fournisseur de données, en utilisant l'URL canonique fournie dans les notifications sur le sujet origin/a/wis2/<centre-id>/data/recommended/...

Dans cette session pratique, vous allez créer un nouvel ensemble de données avec une politique de données 'recommended' en utilisant l'éditeur de données dans wis2box-webapp. Vous apprendrez également à fournir une licence auto-hébergée et à ajouter éventuellement un contrôle d'accès.

Données aéronautiques dans WIS2

Pour cet exercice, il vous est demandé de créer un ensemble de données pour partager des données METAR, un format standard pour les observations météorologiques aéronautiques.

Étant donné que les données de météorologie aéronautique sont soumises à des restrictions d'utilisation, la politique de données Recommended s'applique.

Pour plus d'informations, consultez la section sur la publication des données de météorologie aéronautique dans le WIS2 Cookbook.

Préparation

Assurez-vous d'avoir un accès SSH à votre VM étudiant et que votre instance wis2box est opérationnelle.

Assurez-vous d'être connecté au broker MQTT de votre instance wis2box en utilisant MQTT Explorer. Vous pouvez utiliser les identifiants publics everyone/everyone pour vous connecter au broker.

Assurez-vous d'avoir un navigateur web ouvert avec le wis2box-webapp de votre instance en accédant à http://YOUR-HOST/wis2box-webapp.

Accédez à la page 'dataset editor' dans le wis2box-webapp et créez un nouvel ensemble de données.

Pour "Centre ID", utilisez le même que celui utilisé dans les sessions pratiques précédentes.

Sélectionnez Template = 'other' pour indiquer que vous n'utiliserez pas de modèle prédéfini pour l'ensemble de données :

create-dataset-recommended

Cliquez sur 'CONTINUE TO FORM' pour continuer.

Pour cet exercice, veuillez créer un ensemble de données pour les données METAR aéronautiques ;

  • choisissez un 'Local ID' approprié pour l'ensemble de données, par exemple 'aviation-metar'
  • fournissez un titre et une description pour l'ensemble de données
  • choisissez WMO Data Policy = 'recommended'

create-dataset-recommended

Notez que lorsque vous avez sélectionné WMO Data Policy = 'recommended', l'éditeur de données a automatiquement ajouté un champ pour 'License URL', qui est obligatoire pour les ensembles de données recommandés.

Ensuite :

  • Utilisez WIS2BOX_URL/data/aviation-license.html pour pointer vers un fichier de licence personnalisé hébergé sur votre instance, en remplaçant WIS2BOX_URL par l'URL de votre instance wis2box.
  • Sélectionnez 'Sub Disciple Topic' = 'aviation/metar' pour définir le sujet correct pour cet ensemble de données.

create-dataset-license-url

À propos de l'URL de licence

L'URL de licence associée à un ensemble de données recommandé informe les consommateurs de données sur les conditions d'utilisation des données.

Vous pouvez utiliser une URL pointant vers un fichier de licence hébergé sur votre instance wis2box, ou une URL pointant vers un fichier de licence hébergé sur un site web externe.

Pour cet exercice, nous utiliserons un fichier de licence auto-hébergé. Vous ajouterez le fichier 'aviation-license.html' à votre instance wis2box plus tard dans cette session pratique pour garantir que l'URL de licence est valide.

Étant donné que vous avez sélectionné Template = 'other', aucun mot-clé n'est pré-rempli pour l'ensemble de données. Ajoutez un minimum de 3 mots-clés pertinents pour l'ensemble de données :

create-dataset-metar-keywords

Continuez à remplir les champs obligatoires pour les Propriétés Spatiales et les Informations de Contact. Cliquez sur 'Validate form' pour vérifier que tous les champs obligatoires sont remplis.

Étant donné que vous avez sélectionné Template = 'other', aucun mappage de données n'est défini.

Veuillez ajouter le plugin pour 'Universal data without conversion' et assurez-vous de définir l'extension de fichier à .txt pour correspondre aux fichiers de données METAR que vous publierez dans cet ensemble de données plus tard dans cette session pratique :

create-dataset-plugin-universal-txt

Soumettez l'ensemble de données, en utilisant le jeton d'authentification créé précédemment, et vérifiez que le nouvel ensemble de données est créé dans le wis2box-webapp.

Vérifiez MQTT Explorer pour confirmer que vous recevez le Message de Notification WIS2 annonçant le nouvel enregistrement de métadonnées de découverte sur le sujet origin/a/wis2/<your-centre-id>/metadata.

Examiner votre nouvel ensemble de données dans le wis2box-api

Affichez la liste des ensembles de données dans le wis2box-api en ouvrant l'URL WIS2BOX_URL/oapi/collections/discovery-metadata/items dans votre navigateur web, en remplaçant WIS2BOX_URL par l'URL de votre instance wis2box.

Ouvrez le lien de l'ensemble de données nouvellement créé et faites défiler jusqu'à la section 'links' de la réponse JSON :

wis2box-api-recommended-dataset-links

Vous devriez voir un lien pour "License for this dataset" pointant vers l'URL fournie dans l'éditeur de données.

Si vous cliquez sur le lien, vous obtiendrez une erreur car le fichier de licence n'a pas encore été ajouté à votre instance wis2box.

Ajouter le fichier de licence à votre instance wis2box

Assurez-vous que le lien pour "License for this dataset" dans les métadonnées de votre ensemble de données recommandé fonctionne comme prévu.

Téléchargez cet exemple de fichier de licence aéronautique : aviation-license.html.

À propos de l'exemple de fichier de licence aéronautique

Il s'agit d'un exemple de fichier de licence pour les données aéronautiques. Vous pouvez modifier le fichier pour inclure des informations pertinentes pour votre organisation.

Pour télécharger ce fichier, utilisez la Console MinIO disponible sur le port 9001 de l'instance wis2box, en accédant à un navigateur web et en visitant http://YOUR-HOST:9001

Les identifiants pour accéder à la Console MinIO dans le fichier wis2box.env sont définis par les variables d'environnement WIS2BOX_STORAGE_USERNAME et WIS2BOX_STORAGE_PASSWORD.

Vous pouvez les trouver dans le fichier wis2box.env comme suit :

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

Une fois connecté à la Console MinIO, téléchargez le fichier de licence dans le chemin de base du bucket wis2box-public en utilisant le bouton “Upload” :

minio-upload-license

Après avoir téléchargé le fichier de licence, vérifiez si le fichier est accessible en visitant WIS2BOX_URL/data/aviation-license.html dans votre navigateur web, en remplaçant WIS2BOX_URL par l'URL de votre instance wis2box.

Note

Le proxy web dans wis2box redirige tous les fichiers stockés dans le bucket "wis2box-public" sous le chemin WIS2BOX_URL/data/

Le lien pour "License for this dataset" inclus dans les métadonnées de votre ensemble de données recommandé devrait maintenant fonctionner comme prévu.

Ajouter un jeton d'accès à l'ensemble de données

Connectez-vous au conteneur wis2box-management,

cd ~/wis2box
python3 wis2box-ctl.py login

Depuis la ligne de commande à l'intérieur du conteneur, vous pouvez sécuriser un ensemble de données en utilisant la commande wis2box auth add-token, en utilisant l'option --metadata-id pour spécifier l'identifiant des métadonnées de l'ensemble de données et le jeton d'accès comme argument.

Par exemple, pour ajouter le jeton d'accès S3cr3tT0k3n à l'ensemble de données avec l'identifiant de métadonnées 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

Quittez le conteneur wis2box-management :

exit

Publier des données dans l'ensemble de données

Téléchargez le fichier de données METAR suivant sur votre machine locale :

A_SAKO31RKSL290000_C_RKSL_20250729000055.txt

Ensuite, ingérez ce fichier dans votre ensemble de données en utilisant la console MinIO. Pour accéder à la console MinIO, ouvrez un navigateur web et visitez http://YOUR-HOST:9001, puis connectez-vous en utilisant les identifiants définis dans le fichier wis2box.env par les variables d'environnement WIS2BOX_STORAGE_USERNAME et WIS2BOX_STORAGE_PASSWORD.

Pour ingérer le fichier dans votre ensemble de données, allez dans le bucket wis2box-incoming et créez un nouveau dossier portant le nom de l'identifiant de métadonnées de votre ensemble de données. Ensuite, téléchargez le fichier de données METAR d'exemple dans ce dossier en utilisant le bouton “Upload” :

minio-wis2box-incoming-metar-data-uploaded

Assurez-vous que le nom du dossier correspond exactement à l'identifiant de métadonnées de votre ensemble de données et vérifiez que vous recevez des notifications de données WIS2 dans MQTT Explorer, sur le sujet origin/a/wis2/<your-centre-id>/data/recommended/aviation/metar :

mqtt-explorer-data-aviation-metar

Résolution des problèmes

Si vous ne recevez pas de notification après avoir téléchargé vos données, vous pouvez vérifier les journaux récents du conteneur wis2box-management pour identifier le problème :

docker logs -n100 wis2box-management

Copiez-collez l'URL du lien canonique depuis le message de notification WIS2 dans votre navigateur web. L'URL devrait ressembler à ceci :

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

Si vous avez correctement ajouté le jeton d'accès à l'ensemble de données, vous ne devriez pas pouvoir accéder aux données dans votre navigateur web. À la place, vous verrez une ERREUR 401 Authorization Required.

Ajouter le jeton d'accès aux en-têtes HTTP pour accéder à l'ensemble de données

Pour démontrer que le jeton d'accès est nécessaire pour accéder à l'ensemble de données, nous allons reproduire l'erreur que vous avez vue dans le navigateur en utilisant la commande wget en ligne de commande.

Depuis la ligne de commande dans votre VM étudiant, utilisez la commande wget avec le lien canonique que vous avez copié depuis le message de notification WIS2.

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

Vous devriez voir que la requête HTTP retourne 401 Unauthorized et que les données ne sont pas téléchargées.

Ajoutez maintenant le jeton d'accès aux en-têtes HTTP pour accéder à l'ensemble de données.

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

Les données devraient maintenant être téléchargées avec succès.

Supprimer le jeton d'accès de l'ensemble de données

Pour supprimer le jeton d'accès de l'ensemble de données, connectez-vous au conteneur wis2box-management,

cd ~/wis2box
python3 wis2box-ctl.py login

Et utilisez la commande wis2box auth remove-token pour supprimer le jeton d'accès de l'ensemble de données, en utilisant l'option --metadata-id pour spécifier l'identifiant de métadonnées de l'ensemble de données et le jeton d'accès comme argument :

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

Assurez-vous de remplacer urn:wmo:md:my-centre-id:aviation-metar par l'identifiant de métadonnées de votre ensemble de données.

Déconnectez-vous du conteneur wis2box-management :

exit

Et vérifiez que le jeton d'accès a été supprimé en essayant de télécharger les données à nouveau avec wget en utilisant le jeton d'accès dans les en-têtes HTTP, ou en essayant d'accéder aux données dans votre navigateur web.

Le contrôle d'accès est optionnel, uniquement pour les ensembles de données recommandés

WIS2 spécifie que les ensembles de données recommandés peuvent avoir des contrôles d'accès appliqués aux données. Il n'est pas obligatoire d'ajouter un contrôle d'accès à un ensemble de données recommandé, et vous pouvez vous fier uniquement à l'URL de la licence pour informer les consommateurs de données des conditions d'utilisation des données. Si vous appliquez un contrôle d'accès, vous êtes responsable de partager le jeton d'accès avec les consommateurs de données qui en ont besoin.

Si vous appliquez wis2box auth add-token à un ensemble de données avec une politique de données WMO 'core', les caches globaux signaleront une erreur au Global Monitoring car ils ne peuvent pas télécharger les données, et votre ensemble de données sera considéré comme non conforme aux réglementations techniques de WIS2.

Conclusion

Félicitations !

Au cours de cette session pratique, vous avez appris à :

  • créer un nouvel ensemble de données avec une politique de données 'recommended'
  • ajouter un fichier de licence personnalisé à votre instance wis2box
  • ajouter un jeton d'accès à l'ensemble de données
  • valider que l'ensemble de données ne peut pas être accessible sans le jeton d'accès
  • ajouter le jeton d'accès aux en-têtes HTTP pour accéder à l'ensemble de données