Cette page décrit comment définir dans le format JSON les liens externes qui permettront d'accéder à la météo sans passer par l'Interface de Visualisation de Shinken .
Elle permet de définir :
"external_links" : {
"default_link" : {
"link_protocol" : "default",
"link_base_url" : "default",
"link_external_part_url" : "default",
"authentication_needed" : "default",
"info_bar" : {
"background_color" : "default",
"logo_displayed" : "default",
"position" : "default",
"refresh" : {
"chrono_displayed" : "default",
"generation_time_displayed" : "default"
}
}
},
"links" : [
{
"link_name" : "Mon nom de lien",
"link_protocol" : "default",
"link_base_url" : "default",
"link_external_part_url" : "default",
"authentication_needed" : "default",
"info_bar" : {
"background_color" : "default",
"logo_displayed" : "default",
"position" : "default",
"refresh" : {
"chrono_displayed" : "default",
"generation_time_displayed" : "default"
}
}
}
]
} |
Les URL des liens ont le format suivant : <link_protocol>://<link_base_url>/service-weather/<link_external_part_url>/<weather_uuid>/<link_uuid> |
Dans le format, JSON, le rajout d'un nouveau lien se fait au niveau de la section "links" .
...
"external_links" : {
...
"links": [
{
DEFINITION DU LIEN 1
},
{
DEFINITION DU LIEN 2
},
...
]
...
}
... |
Les liens vont être définis à l'aide de paramètres composés ( "clé" : "valeur" )
...
{
"link_name": "external portal display",
"authentication_needed": true,
},
... |
Un paramètre peut être non défini, mais avoir une valeur :
La valeur d'un paramètre peut être définie à 3 niveaux différents :
La valeur d'un paramètre sera déterminée en parcourant les 3 niveaux dans cet ordre jusqu'à ce qu'une valeur définie soit trouvée :
|
Pour les notifications, il y a un quatrième niveau qui est celui de la météo. En effet si aucune configuration n'est présente sur le lien ou sur le niveau "default_link", alors il prendra la configuration, si existante, de la météo. |
{
...
"links": [
{
"link_name" : "external portal display",
"link_uuid" : "e214ce6ac1580cef86ddf7479ba9bf1d",
"link_protocol" : "protocol_from_webui",
"link_base_url" : "my.proxy:8080",
"link_external_part_url": "external",
"authentication_needed": true,
"info_bar": {
},
"notifications": {
}
},
...
]
...
} |
| Nom | Type | Unité | Défaut | Commentaire | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Texte | --- | --- | Le nom est obligatoire. Les caractères suivants sont interdits :
| ||||||||||||
| Texte | --- | --- | Correspond à l'identifiant unique du lien. Est automatiquement ajouté au lien si manquant. Il peut être personnalisé, mais il doit impérativement être unique parmi les liens de cette météo. Les caractères suivants sont interdits :
| ||||||||||||
| Texte | --- | protocol_from_webui | Cette option permet de choisir le protocole qui va être utilisé pour le lien externe.
| ||||||||||||
| Booléen | --- | default |
| ||||||||||||
| Texte | --- | default | Cette option permet de modifier la base URL ( adresse IP ou nom du serveur, et éventuellement son port ) d'accès du lien externe.
Exemple d'URL : http://localhost:7767/service-weather/external/abcd01/xyz009 Où :
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.
| ||||||||||||
| Texte | --- | default | Cette option permet de modifier le chemin d'accès du lien, c'est une partie personnalisable de l'url qui sera partagée.
Exemple d'URL : http://localhost:7767/service-weather/external/abcd01/xyz009 Où :
Le caractère / et les autres caractères interdits dans les URL ne sont pas autorisés dans ce paramètre. Si la valeur default est définie, voir le chapitre Calcul de la valeur d'un paramètre en cascade.
| ||||||||||||
| Objet | --- | --- | Permet de définir un paramétrage pour la barre d'information de ce lien. Voir ci-dessous pour le paramétrage d'une barre d'information. | ||||||||||||
| Objet | --- | --- | Permet de définir les paramètres de notifications de ce lien. Voir ci dessous pour le paramétrage des notifications. |
{
...
"info_bar": {
"position" : "top",
"background_color": "#343434",
"logo_displayed" : false,
"refresh" : {
"chrono_displayed": true,
"generation_time_displayed" : false
}
}
...
} |
| Nom | Type | Unité | Défaut | Commentaire | ||
|---|---|---|---|---|---|---|
| Texte | --- | default | Position 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. | ||
| Couleur Web | --- | default | Couleur de la barre d'information. Le format de la valeur est une couleur web ( au format hécadécimal, en anglais, ou en rgb ) ( Voir : https://en.wikipedia.org/wiki/Web_colors ) Si la valeur default est définie, voir le chapitre Calcul de la valeur d'un paramètre en cascade. | ||
| Booléen | --- | default | Option d'affichage du logo Shinken.
Si la valeur default est définie, voir le chapitre Calcul de la valeur d'un paramètre en cascade | ||
| --- | --- | --- | 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. |
{
...
"refresh" : {
"chrono_displayed": true,
"generation_time_displayed" : false
}
...
} |
| Nom | Type | Unité | Défaut | Commentaire | ||
|---|---|---|---|---|---|---|
| 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 ).
| ||
| 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 ).
|
Le paramétrage des notifications suit un héritage particulier :
...
"notifications": {
"sound": {
"enabled": "default"
},
"visual": {
"blink": {
"enabled": "default"
}
}
}
... |
Il est possible de paramétrer les notifications sonores de la météo en modifiant "sound" de la partie "notifications" du JSON.
...
"notifications" : {
"sound": {
"enabled": "default"
},
...
}
... |
| Nom | Type | Unité | Défaut | Commentaire | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Booléen | --- | default |
|
Il est possible de paramétrer les notifications visuelles de la météo sur ce lien en modifiant "visual" de la partie "notifications" du JSON. Ces notifications apparaissent sous la forme d'un clignotement de 3 secondes sur les éléments concernés par un changement d'état.
...
"notifications" : {
...
"visual": {
"blink": {
"enabled": "default"
}
},
...
}
... |
| Nom | Type | Unité | Défaut | Commentaire | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Booléen | --- | default |
|
{
...
"default_link" : {
"link_protocol" : "protocol_from_webui",
"link_base_url" : "my.proxy:8080",
"link_external_part_url" : "external",
"authentication_needed" : true,
"links": [],
"info_bar": {
"position" : "top",
"background_color": "#343434",
"logo_displayed" : true,
"refresh" : {
"chrono_displayed": true,
"generation_time_displayed" : false
}
},
"notifications": {}
...
} |
| Nom | Type | Unité | Défaut | Commentaire | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| protocol_from_webui | Cette option permet de choisir quel protocole utiliser pour les liens externes par défaut.
Si la valeur default est définie, voir le chapitre Calcul de la valeur d'un paramètre en cascade. | ||||||||||||||
| Texte | --- | L'url du Broker | Cette option permet de modifier la base de l'URL ( adresse IP ou nom du serveur, et éventuellement son port ) d'accès aux liens externes.
Exemple d'URL : http://localhost:7767/service-weather/external/abcd01/xyz009 Où :
Le caractère / et les autres caractères interdits dans les URL, ne sont pas autorisés dans ce paramètre. Si la valeur default est définie, voir le chapitre Calcul de la valeur d'un paramètre en cascade.
| ||||||||||||
| Texte | --- | external | Cette option permet de modifier le chemin d'accès aux liens externes, c'est une partie personnalisable de l'url qui sera partagée.
Exemple d'URL : http://localhost:7767/service-weather/external/abcd01/xyz009
Le caractère / et les autres caractères interdits dans les URL ne sont pas autorisés dans ce paramètre.
| ||||||||||||
| Booléen | --- | default | Cette option permet de définir si une identification est nécessaire pour accéder aux liens externes par défaut. Ce paramètre peut être surchargé dans la configuration de chaque lien.
| ||||||||||||
| Objet | --- | --- | Configuration qui sera utilisée par défaut par tous les liens externes. Il est possible pour chaque lien de redéfinir sa 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. | ||||||||||||
| Objet | --- | --- | Configuration qui sera utilisée par défaut par tous les liens externes. Il est possible pour chaque lien de redéfinir sa propre configuration afin de ne pas utiliser celle-ci. Pour plus d'informations sur la configuration des notifications, voir le chapitre La configuration des notifications. |
Afin de limiter l'accès à la vue météo, il est possible de définir si le lien externe est accessible aux personnes non identifiées par l'Interface de Visualisation de Shinken.
Un ensemble d'options permettant de paramétrer ce système est disponible dans le fichier JSON de la vue :
{
...
"users" : {
"owner_user" : {
"uuid": "user_uuid",
"name": "user_name"
},
},
"external_links": {
"default_link" : {
"authentication_needed" : true
},
"links": [
{
"authentication_needed": true
}
]
}
...
} |
Le champ intéressant est authentication_needed ( paramétrable dans chaque lien ).
Le champ "owner_user" n'est pas encore pris en compte dans cette version ( En cours de développement ). |
"position" : "bottom",
"background_color": "#000000",
"logo_displayed" : true,
"refresh" : {
"chrono_displayed": true,
"generation_time_displayed" : true
} |
|
"position" : "top",
"background_color": "orange",
"logo_displayed" : true,
"refresh" : {
"chrono_displayed": true,
"generation_time_displayed" : true
} |
|