Présentation

Cette page vous décrit comment définir dans le format JSON les liens externes qui permettront d'accéder à la météo de l’extérieur.

Vous allez pouvoir définir :

  • Le comportement par défaut des liens de votre météo
  • Les paramètres de chaque lien, si vous souhaitez avoir un comportement spécifique par lien.


Pour les liens externes, on ne parle pas de "zone d'entête" mais de "barre d'information".

Ces deux éléments présentent les mêmes informations, mais la différence réside dans le fait que la "barre d'information" dans les liens externes peuvent être personaliés et déplacés ( voir supprimée ). Ce qui implique donc que la "barre d'information" peut ne pas se trouver en haut de la page, d'où la différence de noms.


Description


Les URL des liens sont construits de la façon suivante : <link_base_url>/service-weather/<link_external_part_url>/<weather_uuid>/<link_uuid>


Ajout d'un nouveau lien externe

Dans le format, JSON, Le rajout d'un nouveau widget se fait au niveau de la partie "links".


...
"external_links" : {
	...
    "links": [
		{
			DEFINITION DU LIEN 1
    	},
		{
        	DEFINITION DU LIEN 2
    	},
    	...
   ]
...
}
...


Définition d'un lien externe

Paramètres des liens externe

Les liens vont être définis à l'aide de paramètres composés :

  • Du nom ;
  • De la valeur ;


...
    {
		"link_name": "external portal display",
        "authentication_needed": true,
        ...
        }
	},
...


Un paramètre peut être non défini, mais avoir une valeur :

  • Si le paramètre n'est pas présent dans le JSON ou si elle existe, mais que sa valeur est égale à "default", la météo va le considérer comme ayant une valeur non définie et va calculer sa valeur par défaut ( voir le chapitre Calcul de la valeur d'un paramètre en cascade ).
    • Dans la définition des liens, choisir si vous préférez supprimer un paramètre pour qu'il soit à la valeur par défaut, ou explicitement écrire "default" dépendra uniquement de ce que vous trouvez le plus confortable :
      • Ne pas garder un champ réduira la longueur du JSON ;
      • Mettre les champs à "default" vous permettra de ne pas chercher le nom d'un paramètre, si vous voulez lui mettre une valeur ;

Calcul de la valeur d'un paramètre en cascade

La valeur d'un paramètre peut être définie à 3 niveaux différents:

  • Dans le lien ( ce qui servira pour ce lien uniquement ) ;
  • Dans le niveau "links_default" ( ce qui servira de valeur par défaut de ce paramètre pour cette météo ) ;
  • Dans les fichiers de configurations de la météo ( ces valeurs serviront alors de valeur par défaut de toutes les météos ) ;


La valeur d'un paramètre sera déterminée en parcourant les 3 niveaux dans l'ordre jusqu'à ce qu'une valeur définie est trouvée : 

  1. le niveau "lien" ;
  2. le niveau "links_default" ;
  3. le niveau "fichier de configuration".


Remarque : 

  • Si le paramètre n'est défini à aucun des trois niveaux précédents, le module de météo dispose de valeur par défaut.
  • Il est donc déconseillé de se baser dessus, car au fil des livraisons, nous pourrions être amenés à changer ces valeurs.


La configuration des liens


{
... 
   
	"links": [ 
    	{
        	"link_name" : "external portal display",
            "link_uuid" : "e214ce6ac1580cef86ddf7479ba9bf1d",
            "link_base_url" : "http://my.proxy:8080",
            "link_external_part_url": "external",
            "authentication_needed": true,
            "info_bar": { 
            	...
            }
		}, 
	... 
    ] 
...
}



NomTypeUnitéDéfautCommentaire


link_name


Texte

---

---

Le nom est obligatoire.
Les caractères suivants sont interdits :

  • ', ", <, >


link_uuid


Texte

---

---

Correspond à l'identifiant unique du lien. Ne pas changer.

Est automatiquement ajouté au lien si manquant.



authentication_needed


Booléen

---

1


NomCommentaire


1 ou true


Le lien ne sera accessible que par authentification Shinken


0 ou false


Le lien sera accessible par tout le monde
Si la valeur default est définie, ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )



info_bar


Objet------

Permet de définir un paramétrage pour la barre d'information uniquement pour ce lien. Voir ci-dessous pour le paramétrage d'une barre d'information.


link_base_url


Texte---

La valeur du paramètre :
links__default_base_url

Cette option vous permet de modifier la base URL d'accès aux liens externes.

Elle peut correspondre à l'identifiant de votre système sur lequel est hébergé Shinken ou à un serveur proxy si vous en utilisez un.

Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )



Exemple d'URL : http://localhost:7767/service-weather/external/abcd01/xyz009

Où :

  • http://localhost:7767 est la valeur de ce paramètre,
  • external est la valeur du paramètre external_part_url,
  • abcd01 est l'uuid de la météo du service,
  • xyz009 est l'uuid de configuration du lien externe

Le caractère / et les autres caractères interdits dans les URL ne sont pas autorisés dans ce paramètre.

Exemple de caractères interdit : !,#,$,&,',(,),*,+,,/,:,;,=,?,@,[,],<,>, caractères avec des accents, ...




link_external_part_url


Texte---

La valeur du paramètre :
links__default_external_part_url


Cette option vous permet de modifier le chemin d'accès aux liens externes.

Elle peut vous permettre de rediriger les utilisateurs de ces liens externes vers les différentes météos des services de votre serveur proxy.

Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )



Exemple d'URL : http://localhost:7767/service-weather/external/abcd01/xyz009

Où :

  • http://localhost:7767 est la valeur de la base URL,
  • external est la valeur de ce paramètre,
  • abcd01 est l'uuid de la météo du service,
  • xyz009 est l'uuid de configuration du lien externe

Le caractère / et les autres caractères interdits dans les URL ne sont pas autorisés dans ce paramètre.
Exemple de caractères interdit : !,#,$,&,',(,),*,+,,/,:,;,=,?,@,[,],<,>, caractères avec des accents, ...


La configuration de la barre d'information des liens


{
...     
   "info_bar": {
      "position"        : "top",
        "background_color": "#343434",
        "logo_displayed"    : false,
        "refresh"         : {
            "chrono_displayed": true,
            "generation_time_displayed"  : false
      	}
    }
...
}



NomTypeUnitéDéfautCommentaire


position


Texte---default

Position de la barre d'information.
Les valeurs possibles sont :

  • top ( affichage en haut de la vue ),
  • bottom ( affichage en bas de la vue )

Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )




background_color


Hexadécimal--- default

Couleur de la barre d'information.
Si la valeur default est définie
( voir le chapitre Calcul de la valeur d'un paramètre en cascade )




logo_displayed


Booléen--- default

Option d'affichage du logo Shinken.
Les valeurs possibles sont :

  • false ( le logo n'est pas affiché )
  • true ( le logo est affiché avec son texte en noir )

Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )



refresh


---------Options d'affichage des informations de rafraichissement ( voir le paragraphe Option d'affichage des informations de rafraichissement )


Si la barre d'information est vide ( tous les éléments qui peuvent être affichés sont à hidden ou false ), elle ne sera pas présente.


La configuration des informations de rafraichissement dans la barre d'information des liens


{
...     
   "refresh"         : {
       "chrono_displayed": true,
       "generation_time_displayed"  : false
   }
...
}



NomTypeUnitéDéfautCommentaire


chrono_displayed


Booléen--- default

Affiche sur la barre d'information ( à droite ) l'icône d'horloge indiquant le temps restant avant le prochain rafraichissement ( heure de génération de la page ).
Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )



generation_time_displayed


Booléen--- default

Affiche sur la barre d'information ( à droite ) le texte indiquant l'heure du dernier rafraichissement ( heure de génération de la page ).
Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )




La configuration du niveau "links_default" des liens


{
...     
    "external_links" : {
        "links__default_info_bar": {
            "position" : "top", 
			"background_color": "#343434",
            "logo_displayed" : true,
            "refresh" : {
                "chrono_displayed": true,
                "generation_time_displayed" : false
            }
        },
        "links__default_base_url" : "http://my.proxy:8080",
        "links__default_external_part_url" : "external",
        "links__default_authentication_needed" : true,
        "links": [
            ...         
        ]
    },
...
}



NomTypeUnitéDéfautCommentaire


links__default_info_bar


Objet------

Configuration qui sera utilisée par défaut par tous les liens externes.

Il est possible pour chaque lien de redéfinir leur propre configuration afin de ne pas utiliser celle-ci.

Pour plus d'informations sur la configuration d'une barre d'information, voir le chapitre La configuration de la barre d'information des liens


links__default_base_url


Texte---L'url du Broker

Cette option vous permet de modifier la base de l'URL d'accès aux liens externes.

Elle peut correspondre à l'identifiant de votre système sur lequel est hébergé Shinken ou à un serveur proxy si vous en utilisez un.

Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )

Exemple d'URL : http://localhost:7767/service-weather/external/abcd01/xyz009
Où :

  • http://localhost:7767 est la valeur de ce paramètre,
  • external est la valeur du paramètre external_part_url,
  • abcd01 est l'uuid de la météo du service,
  • xyz009 est l'uuid de configuration du lien externe

Le caractère / et les autres caractères interdits dans les URL, ne sont pas autorisés dans ce paramètre.
Exemple de caractères interdit : !,#,$,&,',(,),*,+,,/,:,;,=,?,@,[,],<,>, caractères avec des accents, ...



links__default_external_part_url


Texte---external

Cette option vous permet de modifier le chemin d'accès aux liens externes.

Elle peut vous permettre de rediriger les utilisateurs de ces liens externes vers les différentes météos des services de votre serveur proxy.


Exemple d'URL : http://localhost:7767/service-weather/external/abcd01/xyz009
Où :

  • http://localhost:7767 est la valeur de la base URL,
  • external est la valeur de ce paramètre,
  • abcd01 est l'uuid de la météo du service,
  • xyz009 est l'uuid de configuration du lien externe

Le caractère / et les autres caractères interdits dans les URL ne sont pas autorisés dans ce paramètre.
Exemple de caractères interdit : !,#,$,&,',(,),*,+,,/,:,;,=,?,@,[,],<,>, caractères avec des accents ...
Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )



links__default_authentication_needed


Booléen---true

Cette option permet de définir si une authentification est nécessaire pour accéder aux liens externes par défaut. Ce paramètre peut être écrasé pour chaque lien en fonction de leur configuration.

NomCommentaire


1 ou true


Le lien ne sera accessible que par authentification Shinken


0 ou false


Le lien sera accessible par tout le monde
Si la valeur default est définie ( voir le chapitre Calcul de la valeur d'un paramètre en cascade )



Gestion de l'authentification pour l'accès aux liens externes

Afin de limiter l'accès à la vue météo, il est possible de définir si le lien d'export est accessible aux personnes non authentifiées. 

Afin de paramétrer ce système, un ensemble d'options est disponible dans le fichier JSON de la vue :

{
...
	"users"        : {	
		"owner_user"                     : {
	    	"uuid": "user_uuid",
			"name": "user_name"
    	},
	},
	"external_links": {
        "default_links__authentication_needed" : true,
        "links": [
		    {
			    ...
   			    "authentication_needed": true
		    }
	    ]
    }
...
}


Le champ qui nous intéresse est authentication_needed (paramétrable dans chaque lien).

Le champ "owner_user" n'est pas encore pris en compte dans la version - En cours de développement 



Exemples de dispositions de la barre information 

Lien externe avec barre blanche en haut, logo sombre, chrono et texte visibles


"position"        : "top",
"background_color": "#ffffff",
"logo_displayed"    : true,
"refresh"         : {
	"chrono_displayed": true,
	"generation_time_displayed"  : true
}




Lien externe avec barre orange en bas, logo clair, chrono et texte visibles


"position"        : "bottom",
"background_color": "#E16853",
"logo_displayed"    : true,
"refresh"         : {
	"chrono_displayed": true,
	"generation_time_displayed"  : true
}