Changement des arguments en ligne du bootstrap

Le bootstrap utilise des arguments avec lesquels l’utilisateur peut interagir. Ce n’est pas nouveau et la liste s’allonge lentement mais inexorablement.

Les arguments permettent par exemple d’interrompre le démarrage du bootstrap pour afficher comme il travaille et si tout se passe bien. Ils permettent aussi de dire quel application on veut charger ou d’activer le mode de récupération.

L’allongement de la liste des arguments ajoute des possibilités mais introduit potentiellement des failles d’implémentation ou d’interprétation. Moins il y en a pour ce code critique, mieux c’est.

L’interaction avec le bootstrap étant de très bas niveau, proche d’une demande de contenu d’un objet ou de ses liens, il a été décidé de réduire au minimum la taille des arguments. Et comme il n’y a pas d’ambiguïté rien que sur la première lettre des arguments, les nouveaux arguments font maintenant une seule lettre.

Ce qui réduit pour la partie purement du ressort de nebule la liste des arguments à :

  • o : le contenu de l’objet. Opérateur dont la valeur désigne l’objet attendu.
  • l : le contenu des liens de l’objet. Opérateur dont la valeur désigne l’objet.
  • e : l’entité instance du serveur. Fichier contenant l’ID de l’entité.
  • a : l’ID de référence de l’application à utiliser. Opérateur dont la valeur désigne l’objet de référence.
  • b : arrêt du bootstrap. Commutateur.
  • f : nettoyage complet de la session enregistrée. Commutateur.
  • i : affichage réduit pour insertion à l’intérieur d’une autre page. Commutateur.
  • r : mode de récupération. Commutateur.
  • u : demande de chargement de la dernière version de la bibliothèque et de l’application. Commutateur.

Un opérateur désigne une chaîne de texte de type clé=valeur. Un fichier désigne un fichier accessible directement sur le serveur sous ce nom. Un commutateur désigne une valeur présente comme argument d’une URL et qui suffit à activer un comportement défini.

Par exemple :

  • http://server.nebule.org/?o=6501352a9da77110e52e31338fd4801a
  • http://server.nebule.org/?l=6501352a9da77110e52e31338fd4801a
  • http://server.nebule.org/?b
  • http://server.nebule.org/?a=0
  • http://server.nebule.org/?f&r

Ce qui peut être récupéré via les arguments o, l et e le sont aussi directement via l’URL sans utiliser les arguments. Dans ce cas aucun pré-traitement n’est appliqué et applicable.

Par exemple :

  • http://server.nebule.org/o/6501352a9da77110e52e31338fd4801a
  • http://server.nebule.org/l/6501352a9da77110e52e31338fd4801a
  • http://server.nebule.org/e

Mode de récupération

Un mode de récupération était déjà plus ou moins bien implémenté. Il a été repris à l’occasion de la ré-écriture du bootstrap et il a notamment été corrigé dans la librairie nebule.

L’activation de ce mode de récupération empêche simplement l’entité instance du serveur et l’entité par défaut de devenir autorités locales. C’est à dire que les options qui leur permettent de devenir autorités locales ne sont plus pris en compte.
Le fait d’être autorité locale permet de générer des liens, qui seront réellement reconnus, pour faire des mises à jours de la librairie et des applications au même titre que le maître du code bachue. C’est comme cela que l’on peut travailler le code signé sans avoir recours en permanence au maître du code. Et c’est aussi comme cela que l’on peut mettre en place sa propre application sans qu’elle soit signée du maître du code.

L’activation peut se faire via les arguments de l’URL en ajoutant rescue si l’option permitOnlineRescue est à true.
En cas de besoin, option modeRescue permet à true d’activer et de forcer le mode de récupération sans tenir compte de l’option permitOnlineRescue.