dataset/doc/link.md
2022-03-08 19:42:28 +01:00

6.1 KiB

Configuration liée

Une configuration liée est un ensemble d'élément partagé entre deux serveurs différents.

Lier un client à un serveur

<check name="set_linked">
  <param name="linked_provider">clients</param>
  <param name="linked_value" type="variable">service_variable</param>
  <target>service_variable_2</target>
</check>

Lier un client à un serveur avec un nom d'utilisateur issu du nom de domaine

Il faut commencer de créer une variable côté serveur :

<variable name="remotes" description="All clients" type="domainname" multi="True" provider="clients"/>

Le nom d'utilisateur sera ici le nom de domaine du serveur avec l'application de la fonction 'normalize_family'.

Pour lier deux configurations il faut créer deux variables côté client :

<variable name='service_server_address' type='domainname' description="Nom DNS du serveur" mandatory='True'/>
<variable name='service_remote_user' type='string' description="Remote username" mandatory='True' hidden="True"/>

Enfin il faut lier les deux configurations :

<fill name="set_linked">
  <param name="linked_server" type="variable">service_server_address</param>
  <param name="linked_provider">clients</param>
  <param name="linked_value" type="information">server_name</param>
  <target>service_remote_user</target>
</fill>

Ainsi, lorsque l'utilisateur renseignera la variable "service_server_address", cette valeur sera ajouter à la variable "remotes" du serveur. En retour la variable "service_remote_user" aura comme valeur "normalize_family(service_server_address)".

Lier un client unique à un serveur avec un nom d'utilisateur calculé sur le serveur

Il faut commencer de créer les variables côté serveur :

<variables>
  <variable name="remote" description="The client" type="domainname" provider="client"/>
  <variable name="username" hidden="True" provider="client_name"/>
</variables>
<constraints>
  <fill name="gen_user_name">
    <target>username</target>
  </fill>
</constraints>

Côté client :

<variable name='service_server_address' type='domainname' description="Nom DNS du serveur" mandatory='True'/>
<variable name='service_remote_user' type='string' description="Remote username" mandatory='True' hidden="True"/>
<fill name="set_linked">
  <param name="linked_server" type="variable">service_server_address</param>
  <param name="linked_provider">clients</param>
  <param name="linked_value" type="information">server_name</param>
  <param name="linked_returns">client_name</param>
  <target>service_remote_user</target>
</fill>

Ainsi, lorsque l'utilisateur renseignera la variable "service_server_address", cette valeur sera la variable "remote" du serveur. Un nom d'utilisateur sera alors généré côté serveur, la valeur de ce nom sera retourner au client comme valeur de 'service_remote_user'.

Lier plusieurs clients à un serveur avec un nom d'utilisateur calculé sur le serveur

Il faut commencer de créer les variables côté serveur :

<variables>
  <variable name="remotes" description="All clients" type="domainname" multi="True" provider="clients"/>
  <family name="remote_" description="Compte pour " dynamic="remotes">
    <variable name="username_" hidden="True" provider="client_name"/>
  </family>
</variables>
<constraints>
  <fill name="gen_user_name">
    <target>username_</target>
  </fill>
</constraints>

Côté client :

<variable name='service_server_address' type='domainname' description="Nom DNS du serveur" mandatory='True'/>
<variable name='service_remote_user' type='string' description="Remote username" mandatory='True' hidden="True"/>
<fill name="set_linked">
  <param name="linked_server" type="variable">service_server_address</param>
  <param name="linked_provider">clients</param>
  <param name="linked_value" type="information">server_name</param>
  <param name="linked_returns">client_name</param>
  <param name="dynamic" type="information">server_name</param>
  <target>service_remote_user</target>
</fill>

Ainsi, lorsque l'utilisateur renseignera la variable "service_server_address", cette valeur sera ajouter à la variable "remotes" du serveur. Un nom d'utilisateur sera alors généré côté serveur, la valeur de ce nom sera retourner au client comme valeur de 'service_remote_user'.

Caculer une variable d'un client par rapport à la valeur d'un serveur

Il faut commencer de créer une nouvelle variables côté serveur par exemple dans une famille dynamique :

<variables>
  <family name="remote_" description="Compte pour " dynamic="remotes">
    <variable name="password_" description="Password " auto_save="True" hidden="True" type="password" provider="client_password"/>
  </family>
</variables>
<constraints>
  <fill name="gen_password">
    <target>password_</target>
  </fill>
</constraints>

Côté client on veut récupérer ce mot de passe dans une variable :

<variable name='service_remote_user_password' type='password' description="Remote password" mandatory='True' hidden="True"/>

Et calculer cette valeur :

<fill name="get_linked_configuration">
  <param name="linked_server" type="variable">service_server_address</param>
  <param name="linked_provider">client_password</param>
  <param name="dynamic" type="variable">service_remote_user</param>
  <target>service_remote_user_password</target>
</fill>

Propoger la valeur d'une variable d'un client vers un serveur

<check name="set_linked_configuration">
  <param name="linked_server" type="variable">service_server_address</param>
  <param name="linked_provider">client_var</param>
  <param name="dynamic" type="variable">service_remote_user</param>
  <target>service_variable</target>
</check>

Propoger la valeur d'une variable d'un client vers un variable esclave du serveur

<check name="set_linked_configuration">
  <param name="linked_server" type="variable">service_server_address</param>
  <param name="leader_provider">client_var</param>
  <param name="leader_value" type="variable">service_variable</param>
  <param name="linked_provider">slave</param>
  <param name="dynamic" type="variable">service_server_address</param>
  <target>service_variable_2</target>
</check>