# Vérification

> La page de santé de la configuration : ce que la station analyse dans les procédures, la logique, les tableaux de bord et les listes de ses serveurs et brokers, chaque constat qu'elle peut rapporter et sa formulation, ce qu'une ligne ouvre, le badge de la barre de navigation, et pourquoi rien ne se répare ici.

La page Vérification liste ce sur quoi la station ne peut pas s'appuyer : une liaison de voie, un
verrouillage, un champ d'automatisme, une expression, un script ou une condition de Logic, ou un
composant de tableau de bord qui désigne un tag, une variable, une procédure ou une adresse que la
station n'a plus, une expression, un script ou une condition de Logic écrits d'une façon que leur éditeur refuse, une action de Process dont un essai n'a pas pu émettre la paperasse telle qu'elle est configurée, et une procédure que le démarrage d'un essai refuserait. C'est l'entrée **Vérification** au pied de la barre de navigation, elle
s'ouvre pour une identité qui détient la permission **Voir la vérification**, et elle répond à
`/validation`. C'est une page qui défile, dessinée sur toute la largeur parce que chaque constat est
une phrase. Elle est la sœur de l'état de santé du runtime dans la barre d'état : celui-là dit si la
station lit, celle-ci dit si la configuration se résout encore.

Elle liste aussi une ligne d'une liste par laquelle la station livre ses données (la liste du serveur OPC UA, la table des registres du serveur Modbus ou la liste de publication d'un broker MQTT) dont la source a été supprimée : une telle ligne reste dans sa liste et ne sert ni ne publie rien.

La page rapporte; elle ne répare jamais. Une ligne ouvre l'éditeur auquel appartient le défaut, sur
l'entité qui le porte, et la réparation est votre modification là-bas.

## La carte d'état {#the-status-card}

La carte du haut est toute la réponse de la page sur la configuration, et le seul endroit où une
station saine est annoncée :

| État | Point | Titre | Détail |
|---|---|---|---|
| Saine | Vert | Rien à corriger | Chaque référence des procédures, de la logique, des tableaux de bord et de ce que la station sert et publie se résout, chaque procédure démarrerait, et chaque action a ce qu'il lui faut pour sortir. |
| Constats | Ambre | *N* éléments à corriger (« 1 élément » pour un seul) | Rien ne se corrige ici. Une ligne ouvre l'éditeur qui détient le défaut, sur l'entité qui le porte. |

La carte porte la seule commande de la page, **Relancer le contrôle** (infobulle : « Contrôler de
nouveau toute la configuration maintenant. La liste se rafraîchit aussi d'elle-même dès que quelque
chose change. »). Elle est grisée pendant qu'un contrôle est en cours. Comme un contrôle qui trouve
la même chose laisse la liste exactement telle qu'elle était, le résultat est rapporté dans le
journal des actions de la barre d'état : « Contrôle terminé : rien à corriger. », « Contrôle terminé :
*N* éléments à corriger. », ou « Échec du contrôle : *raison* ».

Vous avez rarement besoin de Relancer le contrôle. Le vérificateur est toujours actif, sur la
station, et refait le contrôle de lui-même 750 millisecondes après toute rafale de modifications sur
l'une des surfaces qu'il lit : les équipements, les lignes et les tags de Connector; les modèles de
Process; les ressources; les variables, les actions et les alarmes de Logic; les tableaux de
bord; les modèles d'étiquette; les mises en page de rapport. La page et le badge de la barre de
navigation suivent le résultat. Un contrôle que Connector traverse pendant qu'il fait entrer ou
sortir des équipements (une actualisation de pilote, un équipement en cours d'ajout) est repris une
fois Connector stabilisé, pour qu'une référence ne soit jamais dite brisée simplement parce que son
équipement est en vol.

Il lit aussi les trois listes par lesquelles la station livre ses données : une ligne ajoutée, modifiée ou supprimée sur le serveur OPC UA, sur le serveur Modbus ou sur la carte Publier d'un broker relance le contrôle de la même façon, tout comme la suppression du tag, de la variable, de l'alarme ou de la commande qu'une ligne nomme.

## Les groupes {#the-groups}

Les constats sont groupés par la surface à laquelle ils appartiennent, dans un ordre fixe. Un groupe
qui ne contient rien n'est pas dessiné, donc une station qui a un seul défaut de tableau de bord
montre un seul groupe.

| Groupe | Genres de constat | La ligne sous le titre |
|---|---|---|
| Process | Les liaisons (liaisons de voie, verrouillages, automatisme), les procédures et les occurrences qu'elles arment, et la paperasse des actions | *N éléments.* Liaisons de voie, verrouillages et automatismes d'unité nommant un tag, une variable ou une procédure que la station ne possède plus, procédures qu'un démarrage refuserait, et actions dont un essai n'a pas pu produire les documents tels qu'ils sont configurés. |
| Logic | Variables d'expression, actions, alarmes | *N éléments.* Expressions, scripts d'action et conditions d'alarme lisant une adresse qui ne se résout plus, ou écrits d'une façon que leur éditeur refuse. |
| Tableaux de bord | Composants | *N éléments.* Composants dont les propriétés pointent vers une adresse qui ne se résout plus. Ils s'affichent, mais ne lisent rien. |
| Connector | Lignes de la liste du serveur OPC UA, de la table des registres du serveur Modbus et des listes de publication des brokers MQTT | *N éléments.* Lignes de la liste du serveur OPC UA, de la table des registres du serveur Modbus et des listes de publication des brokers MQTT dont la source a été supprimée. Elles restent dans leur liste, mais ne servent ni ne publient rien. |

## Une ligne {#a-row}

Chaque ligne est un constat, et elle dit de quoi elle parle sans rien ouvrir :

- Un glyphe pour le genre : une unité pour une liaison de Process, une marque d'impression pour la paperasse d'une action, la marque de composition écrite pour une procédure, un drapeau pour une occurrence, les marques de variable, d'action et d'alarme de l'arbre de Logic, la
  marque de tableau de bord pour un composant.
- Le **nom** de l'entité, puis son **type** quand le type dit quelque chose que le nom ne dit pas (un
  composant que l'intégrateur n'a jamais nommé retombe sur son genre, et la ligne n'indique pas
  « Cadran Cadran »), puis « dans *emplacement* » quand il y en a un.
- Le constat : pour un champ qui nomme une cible, « *Champ* pointe vers `référence`, qui n'existe
  plus. » avec la référence en chasse fixe; pour un champ que le runtime ne peut pas employer,
  « *Champ* : *ce qui ne va pas*. »
- Un chevron à droite : la ligne ouvre quelque chose. L'infobulle de la ligne et son nom accessible
  sont la phrase entière plus l'endroit où le clic aboutit (« Ouvrir l'unité dans Process. »,
  « Ouvrir l'action dans Process. », « Ouvrir la procédure dans Process. », « Ouvrir l'occurrence dans Process. », « Ouvrir le composant dans l'éditeur. », « Ouvrir la variable
  dans Logic. », « Ouvrir l'action dans Logic. », « Ouvrir l'alarme dans Logic. »).
- Pour une ligne d'une liste de serveur, le glyphe est la marque que l'arbre de Connector dessine pour ce qui porte la liste (le serveur OPC UA, le serveur Modbus, le broker MQTT), et le clic aboutit là où l'infobulle se termine (« Ouvrir la ligne dans le serveur OPC UA. », « Ouvrir la ligne dans le serveur Modbus. », « Ouvrir la ligne sur la page du broker MQTT. »).

## Chaque constat que le contrôle peut produire {#every-finding-the-scan-can-produce}

La formulation ci-dessous est celle de la page. Une liaison de voie stocke la clé de sa source,
donc sa ligne nomme la clé qui ne se résout plus; un verrouillage, une source d'automatisme et un
retour stockent une identité que l'opérateur ne lit jamais, donc leurs lignes disent que le tag ou
la variable a été supprimé au lieu de l'afficher.

### Process : liaisons de voie {#process-channel-bindings}

Type « Liaison de voie »; nom : le nom de la voie (ou « (voie supprimée) »); emplacement :
« *Modèle* · *Unité* ». Ouvre l'écran Voies du modèle sur l'unité.

| Champ | Formulation |
|---|---|
| Tag | pointe vers la clé de tag stockée, qui n'existe plus |
| Variable | pointe vers la clé de variable stockée, qui n'existe plus |

### Process : verrouillages {#process-interlocks}

Type « Verrouillage »; nom : le nom de l'unité; emplacement : « *Modèle* · *Unité* ». Une unité est
jugée sur ce qu'elle observe réellement : sa propre source, ou celle du modèle par défaut quand elle
suit le modèle. Ouvre l'écran Automatisme du modèle sur l'unité.

| Champ | Formulation |
|---|---|
| Source du signal | il suit le modèle, dont la valeur par défaut ne nomme aucune source booléenne. |
| Source du signal | aucune source booléenne n'est configurée. |
| Source du signal | un tag et une variable sont sélectionnés en même temps. |
| Tag | le tag auquel il était réglé a été supprimé. |
| Tag | un tag DateTime n'est pas convertible en booléen. (également les tags Guid et ByteString) |
| Variable | la variable à laquelle il était réglé a été supprimée. |
| Variable | une variable de type date et heure n'est pas convertible en booléen. (également les variables de type image, icône et couleur) |

Les trois premiers ne sont rapportés que tant que le verrouillage d'arrêt du modèle est activé.

### Process : automatisme {#process-automation}

Type « Automatisme »; nom : le nom de l'unité; emplacement : « *Modèle* · *Unité* ». Seul un
automatisme **activé** est jugé : un automatisme désactivé ne pilote rien et se retire de la liste.
Ouvre l'écran Automatisme du modèle sur l'unité.

| Champ | Formulation |
|---|---|
| Commandes | aucune source de démarrage n'est configurée. |
| Procédure | la procédure fixe n'est pas disponible. (sélection fixe) |
| Sélecteur | un constat de source (plus bas), pour une source entière |
| Code de sélecteur *n* | il sélectionne une procédure qui a été supprimée. |
| Source de la commande *Démarrer*, source de la commande *Arrêter*, et ainsi de suite, une par source de commande | un constat de source, pour une source booléenne |
| Métadonnées | une correspondance alimente une procédure ou un champ qui a été supprimé. |
| Métadonnée « *champ* » | un constat de source (numérique pour un champ numérique; booléen, entier, réel, texte ou date pour les autres), ou : ce champ ne prend pas en charge la génération automatique. |
| Retour « Prêt », Retour « Actif », Retour « Code sélectionné », Retour « Résultat de commande » | le tag qu'il écrit a été supprimé. / le tag qu'il écrit n'est pas accessible en écriture. / il exige un tag booléen. (Prêt, Actif) / il exige un tag entier. (Code sélectionné, Résultat de commande) |

Un constat de source est l'un de ceux-ci : « aucune source n'est configurée. », « un tag et une
variable sont sélectionnés en même temps. », « le tag qu'il lit a été supprimé. », « le tag
qu'il lit n'est pas accessible en lecture. » (le tag est désactivé ou en écriture seule), « un tag *type* n'est pas
compatible ici. », « la variable qu'il lit a été supprimée. », « une variable de type *type*
n'est pas compatible ici. ». La compatibilité suit le rôle du champ : une source booléenne a besoin d'un tag ou
d'une variable booléenne; une source entière d'un type entier; une source numérique d'un type
entier ou réel; une source de métadonnées de n'importe quel type booléen, entier, réel, texte ou
date.

### Process : procédures {#process-procedures}

Type « Procédure »; nom : le nom de la procédure; emplacement : le nom du modèle. Le jugement passe par le portail même que franchit le démarrage d'un essai, donc une procédure que cette liste dit exécutable est une procédure que le banc accepte. Ouvre la page propre à la procédure.

| Champ | Formulation |
|---|---|
| Composition de la procédure | Une évaluation juge sur des lignes enregistrées. Cette procédure en porte une, mais n'a aucun datalog. |
| Composition de la procédure | L'occurrence surveillée « *nom* » observe des échantillons enregistrés. Cette procédure l'arme, mais n'a aucun datalog. |
| Composition de la procédure | Rien à exécuter : cette procédure ne référence ni datalog ni recette. |
| Composition de la procédure | Le mode instantané a besoin d'une recette instantanée (ou d'aucune). Un profil temporel n'a pas d'instant unique. |
| Composition de la procédure | Le mode contrôlé a besoin d'une recette instantanée (ou d'aucune). Les consignes s'appliquent au démarrage, l'état sûr à l'arrêt. |
| Composition de la procédure | Le mode temporel a besoin d'une durée. Fixez-en une. |
| Composition de la procédure | Le mode temporel a besoin d'une recette temporelle (ou d'aucune). Un jeu instantané n'a pas de ligne de temps. |
| Composition de la procédure | Le profil de la recette (*N* ms) est plus long que la fenêtre temporelle (*M* ms). |
| Composition de la procédure | L'occurrence surveillée « *nom* » observe « Channels.*voie* », que le datalog de cette procédure n'enregistre pas. |
| Composition de la procédure | Un refus portant sur ce qu'un essai terminé apporte à la production, ou sur une valeur de recette qui n'atteint pas la voie qu'elle vise, dans les mots de l'éditeur qui en est propriétaire. |

### Process : occurrences {#process-occurrences}

Type « Occurrence »; nom : le nom de l'occurrence; emplacement : le nom du modèle. Seule une occurrence armée par une procédure est lue, et elle l'est une seule fois quel que soit le nombre de procédures qui l'arment, car la condition est unique et la correction aussi. Ouvre la page propre à l'occurrence.

| Champ | Formulation |
|---|---|
| Condition surveillée | Le refus de la condition elle-même, dans les mots de l'éditeur d'occurrences : une référence de voie que ce modèle n'a pas, une condition illisible, une condition qui renvoie autre chose qu'un booléen, ou deux voies qui aboutissent au même nom. Il est écrit en anglais lui aussi. |

Une condition qui tient toute seule et qui ne peut pourtant pas être jugée, parce que le datalog de la procédure laisse de côté la voie qu'elle surveille, est un constat sur cette procédure : le datalog est le choix de la procédure.

### Process : paperasse des actions {#process-action-paperwork}

Type « Action »; nom : le nom de l'action; emplacement : le nom du modèle. Le jugement est le même
que celui dont la page propre à l'action tire son avis « À vérifier », donc une action dite prête
là-bas est prête ici. Ouvre la page propre à l'action.

| Champ | Formulation |
|---|---|
| Commandes | Ajoutez une commande : cette action n'émet encore rien. |
| Commande *n* · Étiquette (Démarrage), Commande *n* · Rapport (Fin), et ainsi de suite | La première remarque à propos de cette commande, puis « (*k* de plus sur cette commande) » quand il y en a d'autres. Une commande qui porte plusieurs remarques demeure une seule réparation, faite sur une seule page, donc c'est une seule ligne. |

Les remarques qu'une commande peut porter, dans l'ordre où elles se réparent :

- Sélectionnez au moins un verdict de fin. (une commande à la fin sans aucun verdict coché)
- Choisissez un rapport. / Le rapport sélectionné n'existe plus.
- Choisissez un modèle d'étiquette. / Le modèle a été effacé ou supprimé; les correspondances
  enregistrées sont conservées. / Le modèle global sélectionné n'existe plus.
- Le modèle sélectionné n'a encore aucune commande d'imprimante; écrivez-les ou importez-les avant
  qu'un essai n'atteigne cette commande.
- Les marqueurs du modèle ne peuvent pas être lus : *erreur*
- `{{marker}}` a besoin d'une source. / `{{marker}}` est associé plus d'une fois.
- `{{marker}}` : choisissez une source / cette source n'est pas disponible au démarrage /
  sélectionnez un champ du catalogue de métadonnées de ce modèle / sélectionnez un critère dans l'une
  des évaluations de ce modèle / fixez un cycle explicite, numéroté à partir de zéro, de 0 à *n* / retirez les
  décimales de cette source de date et heure / utilisez le format par défaut pour cette source
  numérique / les décimales doivent être comprises entre 0 et 9 / retirez la mise en forme numérique ou
  de date de cette source de texte
- `{{marker}}` a été retiré du modèle actuel; supprimez sa correspondance enregistrée.

### Logic {#logic}

Aucun emplacement : les genres de Logic sont au premier niveau. Une ligne par adresse distincte qui
ne se résout pas, avec l'adresse écrite comme l'expression l'écrit. Seules les variables d'expression
sont analysées; une variable de mémoire n'a aucune expression à lire. Quand chaque adresse d'un texte se résout, le texte est aussi jugé comme son éditeur le juge, et un texte que l'éditeur refuse fait une ligne, avec la phrase même de l'éditeur pour formulation : une alarme enregistrée comme `!Variables.Start` donne « « Variables.Start » est le point lui-même, pas sa valeur : comme condition, il compte toujours comme vrai. Lisez sa valeur avec Variables.Start.ValueToBool(). » Le jugement laisse de côté l'évaluation d'essai de l'éditeur sur les valeurs actuelles, une ligne ne va donc jamais et ne vient jamais avec une lecture, et un texte vide n'est pas listé : c'est une définition pas encore écrite.

| Type | Champ | Formulation |
|---|---|---|
| Variable d'expression | Expression de calcul | pointe vers `address`, qui n'existe plus |
| Action | Script de l'action | pointe vers `address`, qui n'existe plus |
| Alarme | Condition surveillée | pointe vers `address`, qui n'existe plus |
| Variable d'expression | Expression de calcul | la phrase par laquelle son éditeur refuse le texte ([Ce que la validation refuse](logic-expressions#what-validation-refuses)) |
| Action | Script de l'action | la phrase par laquelle son éditeur refuse le texte ([Ce que la validation refuse](logic-actions#what-validation-refuses)) |
| Alarme | Condition surveillée | la phrase par laquelle son éditeur refuse le texte ([Ce que la validation refuse](logic-expressions#what-validation-refuses)) |

### Tableaux de bord {#dashboards}

Type : le genre du composant tel que l'éditeur le nomme (Cadran, Graphique en courbes, Valeur…); nom :
le nom saisi pour le composant, sinon sa légende, sinon ce que l'éditeur en dérive; emplacement : le
nom du tableau de bord. Une ligne par champ d'adresse, donc un composant dont la valeur et dont la
couleur lisent deux points retirés compte deux réparations.

| Champ | Formulation |
|---|---|
| Adresse, Point de couleur, Série n° 2 › Adresse, et tout autre champ d'adresse du genre, chacun sous l'étiquette que lui donne le volet des propriétés de l'éditeur (une liste imbriquée se lit comme son chemin) | pointe vers `address`, qui n'existe plus |

Seuls les champs d'adresse sont lus, et seulement une valeur qui s'analyse comme une adresse enracinée
comptant au moins un segment : un libellé qui contient « Process.Presse 1.Température » est du texte,
pas une référence, et n'est jamais rapporté. La même adresse dans le même champ est un seul constat.
Les vues définies sur un modèle de Process sont écartées : elles lient des voies par un substitut
d'unité, et aucun point ne répond à ces adresses tant qu'une unité n'ouvre pas la vue.

### Connector {#connector}

Une ligne de la liste du serveur OPC UA, de la table des registres du serveur Modbus ou de la liste de publication d'un broker MQTT tient sa source (un tag, une variable, une alarme et, sur le serveur OPC UA, aussi une commande d'un équipement) par son identité : un renommage ne la casse jamais, et une suppression laisse la ligne en place, nommant ce qu'elle a perdu. Une telle ligne est listée ici, la même que sa propre table montre comme manquante. Une source que la station possède encore sans la proposer (un tag désactivé, un tag d'un équipement désactivé, une variable d'un type qu'aucun registre ne porte) n'est pas listée : les champs de la ligne disent eux-mêmes ce qui la tient à l'écart. La ligne stocke une identité que l'opérateur ne lit jamais, elle dit donc quel genre de source a disparu au lieu de l'afficher.

| Type | Nom | Emplacement | Champ | Formulation |
|---|---|---|---|---|
| Nœud servi | Tag Connector manquant, Variable Logic manquante, Alarme Logic manquante ou Commande manquante | Serveur OPC UA | Source du signal | le tag servi a été supprimé. / la variable servie a été supprimée. / l'alarme servie a été supprimée. / la commande servie a été supprimée. |
| Ligne de la table des registres | la place de la ligne telle que la table la lit (sa classe de registre et son registre) | Serveur Modbus | Source du signal | le tag servi a été supprimé. / la variable servie a été supprimée. / l'alarme servie a été supprimée. |
| Topic MQTT publié | le topic de la ligne | le nom du broker | Source du signal | le tag publié a été supprimé. / la variable publiée a été supprimée. / l'alarme publiée a été supprimée. |

La page ne supprime ni ne modifie rien, et chaque serveur continue de faire avec la ligne ce qu'il faisait : le serveur OPC UA ne sert rien pour elle, le serveur Modbus répond par l'exception 04 à un client qui lit ses registres, et le broker garde le dernier message qu'il a retenu sur le topic. La réparation se fait sur la carte de la ligne : une autre source choisie, ou la ligne supprimée.

## Ce qu'une ligne ouvre {#what-a-row-opens}

| Genre | Ouvre | Où cela aboutit |
|---|---|---|
| Composant | Le tableau de bord en mode édition (`/d/{dashboard}?edit=true&focus={component}`) | Avec le composant sélectionné et ses propriétés affichées, là où l'adresse se retape. Modifier demande la permission Modifier les tableaux de bord; sans elle, le tableau de bord s'ouvre en consultation. |
| Liaison de voie | L'espace de travail Process (`/process?focus={unit}&screen=channels`) | L'écran Voies du modèle, avec la ligne de cette unité choisie et chaque dossier au-dessus déplié. |
| Verrouillage, Automatisme | L'espace de travail Process (`/process?focus={unit}&screen=automation`) | L'écran Automatisme du modèle, avec la ligne de cette unité choisie. |
| Paperasse d'action | L'espace de travail Process (`/process?focus={action}&screen=action`) | La page propre à l'action dans la colonne. |
| Procédure | L'espace de travail Process (`/process?focus={procedure}&screen=procedure`) | La page propre à la procédure dans la colonne. |
| Occurrence | L'espace de travail Process (`/process?focus={occurrence}&screen=occurrence`) | La page propre à l'occurrence dans la colonne. |
| Variable d'expression, Action, Alarme | La page Logic (`/logic?focus={id}`) | L'entité sélectionnée dans son éditeur, avec sa section de l'espace d'adressage dépliée. |
| Nœud servi, Ligne de la table des registres, Topic MQTT publié | Le Connector (`/connector?focus={row}`) | Le serveur OPC UA, le serveur Modbus ou le broker sélectionné dans l'arbre, avec la ligne sélectionnée dans sa carte Nœuds servis, Table des registres ou Publier et ses champs ouverts sous la table, où une autre source est choisie ou la ligne supprimée. |

Ouvrir vous dépose sur le défaut; la page de destination applique ensuite ses propres permissions à
la modification (Gérer Process sur les écrans de Process, Configurer Logic dans Logic, Configurer Connector dans le
Connector). Une entité
qui ne se résout plus quand la page arrive (supprimée entretemps) est ignorée, et la page s'ouvre là
où elle s'ouvrirait normalement.

## Le badge de la barre de navigation {#the-rail-badge}

L'entrée Vérification de la barre de navigation porte une pastille de prudence avec le nombre
d'éléments à réparer, « 99+ » au-delà de quatre-vingt-dix-neuf, et aucune pastille tant que la
configuration est saine. Le compte est celui du vérificateur, tenu à jour en arrière-plan par le même
contrôle que la page suit, donc il bouge à mesure que vous modifiez sur n'importe quelle page, sans
que cette page soit ouverte. Ouvrir cette page et y relancer le contrôle mettent aussi le compte à
jour, donc la pastille n'affiche jamais un autre nombre que la liste.

## Ce que la page ne fait jamais {#what-the-page-never-does}

- Elle ne répare rien : aucune reliaison, aucune suppression, aucun changement de nom. Chaque ligne
  est une ouverture; il n'y a pas d'autre action sur une ligne, et aucune action de lot.
- Elle ne juge jamais le runtime : un équipement qui ne communique pas relève de l'état de santé de
  la barre d'état, pas d'un constat ici. Une référence à un tag qui existe mais qui lit une mauvaise
  qualité se résout.
- Elle ne rapporte jamais un automatisme désactivé, une vue définie sur un modèle, du texte libre qui
  ressemble à une adresse, une variable de mémoire, ni une deuxième remarque et les suivantes d'une
  même commande d'action (le compte dit combien d'autres attendent sur cette page).
- Elle ne lit jamais une occurrence qu'aucune procédure n'arme, et ne liste jamais deux fois la même occurrence armée, quel que soit le nombre de procédures qui l'arment : une condition est une correction.
- Elle n'analyse jamais pendant que Connector est en pleine transition; elle attend et mesure une
  seule fois.
- C'est la même liste sur chaque écran, dans la fenêtre de la station comme dans un navigateur, et la
  même pour toute identité qui peut l'ouvrir : la permission contrôle la page, pas ses lignes.
- Tant que le runtime est arrêté, la page cède la place à l'avis de mise en pause comme toute page;
  le badge garde son dernier compte.
- Elle ne supprime jamais une ligne d'une liste de serveur et ne change jamais ce qu'un serveur en fait, et ne liste jamais une source que la station possède encore sans la proposer (un tag désactivé, une variable d'un type qu'aucun registre ne porte) : la carte de la ligne le dit elle-même.
