hermes
Paramètres partagés par le serveur et tous les clients.
Sous-sections principales :
hermes.umask
- Description : Définit le umask par défaut pour chaque fichier ou répertoire créé par l’application : répertoires cache, fichiers cache et fichiers journaux. Attention comme c’est une valeur octale, elle doit être préfixée par un
0
.
- Obligatoire : Non
- Type : integer
- Valeurs valides : 0000 - 0777
- Valeur par défaut : 0027
hermes.cache
Section obligatoire pour définir les paramètres du cache.
hermes.cache.dirpath
- Description : Chemin d’un répertoire existant où les fichiers de cache seront stockés.
- Obligatoire : Oui
- Type : string
hermes.cache.enable_compression
- Description : Si
true
, tous les fichiers cache seront compressés avec gzip.
- Obligatoire : Non
- Type : boolean
- Valeur par défaut :
true
hermes.cache.backup_count
- Description : À chaque sauvegarde, si le contenu du fichier a changé, Hermes conservera le contenu du cache précédent jusqu’au backup_count spécifié.
- Obligatoire : Non
- Type : integer
- Valeurs valides : 0 - 999999
- Valeur par défaut : 1
hermes.cli_socket
Active le socket CLI qui permet la communication entre l’application et sa CLI.
hermes.cli_socket.path
- Description : Chemin d’accès au fichier de socket CLI à créer/utiliser. Si ce chemin n’est pas spécifié, la CLI sera désactivée.
- Obligatoire : Non
- Type : string
hermes.cli_socket.owner
- Description : Nom de l’utilisateur qui sera propriétaire du fichier socket lors de sa création, tel qu’il serait transmis à chown.
Si ce nom n’est pas spécifié, le nom de l’utilisateur qui exécute le serveur hermes sera utilisé.
- Obligatoire : Non
- Type : string
- Ignoré lorsque : dont_manage_sockfile vaut
true
hermes.cli_socket.group
- Description : Nom du groupe qui sera propriétaire du fichier socket lors de sa création, tel qu’il serait transmis à chown.
Si ce nom n’est pas spécifié, le nom de du groupe qui exécute le serveur hermes sera utilisé.
- Obligatoire : Non
- Type : string
- Ignoré lorsque : dont_manage_sockfile vaut
true
hermes.cli_socket.mode
- Description : Les autorisations à appliquer au fichier socket lors de sa création, telles qu’elles seraient transmises à chmod.
Pour les personnes habituées à /usr/bin/chmod, rappelez-vous que les modes sont des nombres octaux et doivent être préfixés par un 0
.
Si le mode n’est pas spécifié et que le fichier socket n’existe pas, le umask par défaut du système sera utilisé lors de la définition du mode pour le fichier socket nouvellement créé.
Si le mode n’est pas spécifié et que le fichier socket existe, le mode du fichier socket existant sera utilisé.
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 00600
- Valeurs valides : 0 - 07777
- Ignoré lorsque : dont_manage_sockfile vaut
true
hermes.cli_socket.dont_manage_sockfile
- Description : Indique qu’Hermes ne doit pas gérer la création du fichier socket et utiliser le descripteur de fichier socket fourni par son processus parent (généralement SystemD).
Le socket créé doit être un socket stream AF_UNIX d’écoute.
Un et un seul socket doit être fourni : Hermes s’en assurera en vérifiant que la variable d’environnement SystemD LISTEN_FDS
est définie sur 1
, et échouera dans le cas contraire.
- Obligatoire : Non
- Type : boolean
- Valeur par défaut :
false
hermes.logs
Section obligatoire pour définir les paramètres des fichiers log.
hermes.logs.logfile
- Description : Chemin d’un répertoire existant où les fichiers journaux seront stockés. Si ce chemin n’est pas spécifié, aucun fichier journal ne sera stocké sur le disque.
- Obligatoire : Oui
- Type : string
hermes.logs.backup_count
- Description : Hermes assurera une rotation de son fichier log tous les jours à minuit et conservera les backup_count versions précédentes des fichiers journaux.
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 7
- Valeurs valides : 0 - 999999
hermes.logs.verbosity
- Description : Verbosité de la journalisation.
- Obligatoire : Non
- Type : string
- Valeur par défaut : warning
- Valeurs valides :
- critical
- error
- warning
- info
- debug
hermes.logs.long_string_limit
- Description : Définit la limite (taille maximale) du contenu des attributs de chaîne à afficher dans les journaux.
Si le contenu d’un attribut de chaîne est supérieur à cette limite, il sera tronqué à cette limite et marqué comme LONG_STRING dans les journaux.
Peut être défini à null
pour désactiver cette fonctionnalité et toujours afficher l’intégralité de la chaîne dans les journaux.
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 512
- Valeurs valides : [1 - 999999] ou
null
hermes.mail
Section obligatoire pour définir les paramètres de messagerie (e-mail) permettant à Hermes de notifier les erreurs aux administrateurs.
Les e-mails contiendront 3 pièces jointes lorsque cela est possible : previous.txt
, current.txt
et diff.txt
, contenant l’état précédent, l’état actuel et la différence entre les états précédent et actuel.
hermes.mail.server
- Description : Nom DNS ou adresse IP du relais SMTP.
- Obligatoire : Oui
- Type : string
hermes.mail.from
- Description : Adresse e-mail qui sera définie comme adresse d’expéditeur, avec la syntaxe de messagerie
Nom d'utilisateur <nom@example.com>
- Obligatoire : Oui
- Type : string
hermes.mail.to
- Description : Adresse ou liste d’adresses de destination.
- Obligatoire : Oui
- Type : string | string[]
hermes.mail.compress_attachments
- Description : Indique si les pièces jointes doivent être compressées ou envoyées brutes.
- Obligatoire : Non
- Type : boolean
- Valeur par défaut :
true
hermes.mail.mailtext_maxsize
- Description : Taille maximale en octets pour le contenu de l’e-mail. Si la taille du contenu est supérieure à mailtext_maxsize, un message de substitution par défaut sera envoyé à la place.
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 1048576 (1 Mo)
- Valeurs valides : >= 0
hermes.mail.attachment_maxsize
- Description : Taille maximale en octets pour une seule pièce jointe de l’e-mail. Si la taille de la pièce jointe est supérieure à attachment_maxsize, elle ne sera pas jointe à l’e-mail et un message l’indiquant sera ajouté au contenu de l’e-mail.
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 5242880 (5 Mo)
- Valeurs valides : >= 0
hermes.plugins
Section obligatoire pour déclarer quels plugins doivent être chargés, avec leurs paramètres.
Elle est divisée en sous-sections par type de plugin.
hermes.plugins.attributes
Section facultative pour déclarer les plugins d’attributs à charger, ainsi que leurs paramètres.
Elle doit contenir une sous-section nommée avec le nom du plugin contenant elle-même une sous-section facultative settings
avec les paramètres du plugin, à renseigner selon la documentation du plugin.
Exemple avec le plugin ldapPasswordHash
:
hermes:
# (...)
plugins:
attributes:
ldapPasswordHash:
settings:
default_hash_types:
- SMD5
- SSHA
- SSHA256
- SSHA512
# (...)
hermes.plugins.datasources
Section obligatoire pour hermes-server
pour déclarer la ou les sources de données et leurs paramètres. Si elle est définie sur un hermes-client
, elle sera ignorée silencieusement.
Un même plugin de source de données peut être utilisé pour interroger plusieurs sources de données, donc pour chaque source de données souhaitée, vous devez déclarer une sous-section avec le nom souhaité de la source de données (qui sera utilisé dans le modèle de données), contenant deux entrées obligatoires :
type
(string) : le plugin de source de données à utiliser pour cette source de données.
settings
(subsection) : les paramètres du plugin de source de données pour cette source de données selon la documentation du plugin.
Exemple :
hermes:
# (...)
plugins:
datasources:
my_oracle1_datasource:
type: oracle
settings:
login: HERMES_DUMMY
password: "DuMmY_p4s5w0rD"
port: 1234
server: dummy.example.com
sid: DUMMY
my_oracle2_datasource:
type: oracle
settings:
login: HERMES_DUMMY2
password: "DuMmY2_p4s5w0rD"
port: 1234
server: dummy.example.com
sid: DUMMY2
my_ldap_datasource:
type: ldap
settings:
uri: ldaps://dummy.example.com:636
binddn: cn=binddn,dc=example,dc=com
bindpassword: DuMmY_p4s5w0rD
basedn: dc=example,dc=com
# (...)
hermes.plugins.messagebus
Section obligatoire pour déclarer le plugin de bus de messages à charger, ainsi que ses paramètres. Évidemment, vous devez configurer exactement un plugin de bus de messages.
- Sur
hermes-server
, il recherchera le plugin producteur de bus de messages dans le répertoire plugins/messagebus_producers/
.
- Sur
hermes-client
, il recherchera le plugin consommateur de bus de messages dans le répertoire plugins/messagebus_consumers/
.
Elle doit contenir une sous-section nommée avec le nom du plugin contenant une sous-section facultative settings
avec les paramètres du plugin à définir selon la documentation du plugin producteur de bus de messages ou consommateur de bus de messages.
Exemple avec le plugin producteur sqlite
:
hermes:
# (...)
plugins:
messagebus:
sqlite:
settings:
uri: /path/to/hermes/sqlite/message/bus.sqlite
retention_in_days: 30
# (...)
hermes-server
Paramètres du serveur.
Sous-sections principales :
hermes-server
hermes-server.updateInterval
- Description : Intervalle entre deux actualisations des données, en secondes.
- Obligatoire : Oui
- Type : integer
- Valeurs valides : >= 0
hermes-server.datamodel
Sous-section obligatoire utilisée pour configurer le modèle de données serveur.
Pour chaque type de données requis, une sous-section avec le nom souhaité du type de données doit être créée et configurée. Le nom du type de données DOIT commencer par un caractère alphanumérique.
Bien évidemment, au moins un type de données doit être configuré.
Remarque
L’ordre de déclaration des types de données est important pour garantir l’intégrité des données :
- les événements d’ajout/modification seront traités dans l’ordre de déclaration
- les événements de suppression seront traités dans l’ordre de déclaration inversé
Vous devez donc d’abord déclarer les types de données qui ne dépendent d’aucun autre type, puis les types qui ont des dépendances (clés étrangères) à ceux déclarés au dessus.
hermes-server.datamodel.data-type-name.primarykeyattr
- Description : Le nom de l’attribut du modèle de données utilisé comme clé primaire. Si la clé primaire est un tuple, vous pouvez déclarer une liste de noms.
- Obligatoire : Oui
- Type : string | string[]
hermes-server.datamodel.data-type-name.toString
- Description : Template Jinja permettant de définir la représentation d’une entrée dans les fichiers journaux.
- Obligatoire : Non
- Type : string
hermes-server.datamodel.data-type-name.on_merge_conflict
- Description : Définit le comportement si un même attribut a une valeur différente sur plusieurs sources.
- Obligatoire : Non
- Type : string
- Valeur par défaut : use_cached_entry
- Valeurs valides :
keep_first_value
: utilise la première valeur rencontrée dans l’ordre de déclaration des sources.
use_cached_entry
: ignore les données récupérées et continue à utiliser l’entrée en cache jusqu’à ce que le conflit soit résolu.
hermes-server.datamodel.data-type-name.foreignkeys
-
Description : Permet de déclarer des clés étrangères dans un type de données, que les clients utiliseront pour appliquer leur politique de clés étrangères. Voir Clés étrangères pour plus de détails.
Le paramètre est un dictionnaire avec la clé primaire du type de données actuel comme clé, un dictionnaire avec deux entrées comme valeur, faisant référence au type de données parent from_objtype
et à sa clé primaire from_attr
.
Bien que cela puisse sembler intuitif, la déclaration de clés étrangères ne créera aucune règle de contrainte d’intégrité automatiquement.
Avertissement
Que ce soit pour le type de données courant ou pour le parent, les attributs doivent être des clés primaires de leurs types respectifs.
De plus, la clé primaire du parent ne peut pas être multivaluée (un tuple).
Ces contraintes pourraient éventuellement être assouplies un jour, mais pour l’instant aucun cas d’utilisation pertinent n’en justifie le besoin.
Exemple :
foreignkeys:
group_id:
from_objtype: SRVGroups
from_attr: gid
user_id:
from_objtype: SRVUsers
from_attr: uid
-
Obligatoire : Non
-
Type : dict[string, dict[string, string]]
-
Valeur par défaut : {}
hermes-server.datamodel.data-type-name.integrity_constraints
-
Description : Contraintes d’intégrité entre les types de données, en Jinja.
ATTENTION : cela peut être affreusement lent, vous devriez donc essayer de faire au plus simple et idéalement vous limiter aux clés primaires.
Les variables Jinja disponibles sont :
- _SELF : l’objet actuel
- data-type-name_pkeys : un ensemble (set) contenant chaque clé primaire du type de données spécifié.
- data-type-name : une liste de dictionnaires contenant chaque entrée du type de données spécifié.
Exemple :
integrity_constraints:
- "{{ _SELF.pkey_attr in OTHERDataType_pkeys }}"
-
Obligatoire : Non
-
Type : string[]
-
Valeur par défaut : []
hermes-server.datamodel.data-type-name.sources
Sous-section obligatoire listant les sources de données à utiliser pour récupérer les données du type de données courant.
Pour chaque source de données utilisée, une sous-section portant son nom doit être définie et configurée.
Évidemment, au moins une source de données doit être configurée.
hermes-server.datamodel.data-type-name.sources.datasource-name.fetch
Sous-section obligatoire pour configurer la requête utilisée pour récupérer les données.
Selon le plugin de source de données utilisé, query et vars peuvent être facultatifs : configurez-les selon la documentation du plugin de source de données.
hermes-server.datamodel.data-type-name.sources.datasource-name.fetch.type
- Description : Indique au plugin de source de données le type de requête à exécuter. Il s’agit généralement de
fetch
.
- Obligatoire : Oui
- Type : string
- Valeurs valides :
fetch
: Indique que le plugin doit récupérer des données, sans modifier le jeu de données.
add
: Indique que le plugin doit ajouter des données au jeu de données.
delete
: Indique que le plugin doit supprimer des données du jeu de données.
modify
: Indique que le plugin doit modifier des données dans le jeu de données.
hermes-server.datamodel.data-type-name.sources.datasource-name.fetch.query
hermes-server.datamodel.data-type-name.sources.datasource-name.fetch.vars
Sous-section facultative contenant certaines variables à transmettre au plugin de source de données.
Le nom de la variable comme clé et sa valeur comme valeur. Chaque valeur peut être un template Jinja.
Les variables Jinja disponibles sont :
- REMOTE_ATTRIBUTES : la liste des noms d’attributs distants utilisés dans
attrsmapping
. Peut être utile pour générer des requêtes SQL avec les données requises sans utiliser de wildcards ni saisir manuellement la liste d’attributs.
- CACHED_VALUES : le cache de la requête précédente. Une liste de dictionnaires dans laquelle chaque dictionnaire est une entrée avec le nom d’attribut comme clé et sa valeur comme valeur.
- data-type-name_pkeys : un ensemble (set) contenant chaque clé primaire du type de données spécifié. Le type de données de la variable doit être déclaré avant celui actuel dans le modèle de données, sinon le contenu de la variable sera toujours vide car son contenu sera récupéré après celui du type de données actuel.
- data-type-name : une liste de dictionnaires contenant chaque entrée du type de données spécifié. Le type de données de la variable doit être déclaré avant celui courant dans le modèle de données, sinon le contenu de la variable sera toujours vide car son contenu sera récupéré après celui du type de données courant.
hermes-server.datamodel.data-type-name.sources.datasource-name.commit_one
Sous-section facultative permettant de configurer une requête à exécuter à chaque fois qu’une entrée a été traitée sans erreur.
Selon le plugin de source de données utilisé, query et vars peuvent être facultatifs : configurez-les selon la documentation du plugin de source de données.
Avertissement
commit_one et commit_all s’excluent mutuellement : vous pouvez définir aucun ou l’un d’entre eux, mais pas les deux en même temps.
hermes-server.datamodel.data-type-name.sources.datasource-name.commit_one.type
- Description : Indique au plugin de source de données le type de requête à exécuter.
- Obligatoire : Oui
- Type : string
- Valeurs valides :
fetch
: Indique que le plugin doit récupérer des données, sans modifier le jeu de données.
add
: Indique que le plugin doit ajouter des données au jeu de données.
delete
: Indique que le plugin doit supprimer des données du jeu de données.
modify
: Indique que le plugin doit modifier des données dans le jeu de données.
hermes-server.datamodel.data-type-name.sources.datasource-name.commit_one.query
hermes-server.datamodel.data-type-name.sources.datasource-name.commit_one.vars
Sous-section facultative contenant certaines variables à transmettre au plugin de source de données.
Le nom de la variable comme clé et sa valeur comme valeur. Chaque valeur peut être un template Jinja.
Les variables Jinja disponibles sont :
- REMOTE_ATTRIBUTES : la liste des noms d’attributs distants utilisés dans
attrsmapping
. Peut être utile pour générer des requêtes SQL avec les données requises sans utiliser de wildcards ni saisir manuellement la liste d’attributs.
- ITEM_CACHED_VALUES : la valeur de l’entrée courante en cache. Un dictionnaire avec le nom d’attribut comme clé et sa valeur comme valeur.
- ITEM_FETCHED_VALUES : la valeur de l’entrée courante fraîchement récupérée. Un dictionnaire avec le nom d’attribut comme clé et sa valeur comme valeur.
hermes-server.datamodel.data-type-name.sources.datasource-name.commit_all
Sous-section facultative permettant de configurer une requête à exécuter une fois que toutes les données ont été traitées sans erreur.
Selon le plugin de source de données utilisé, query et vars peuvent être facultatifs : configurez-les selon la documentation du plugin de source de données.
Avertissement
commit_all et commit_one s’excluent mutuellement : vous pouvez définir aucun ou l’un d’entre eux, mais pas les deux en même temps.
hermes-server.datamodel.data-type-name.sources.datasource-name.commit_all.type
- Description : Indique au plugin de source de données le type de requête à exécuter.
- Obligatoire : Oui
- Type : string
- Valeurs valides :
fetch
: Indique que le plugin doit récupérer des données, sans modifier le jeu de données.
add
: Indique que le plugin doit ajouter des données au jeu de données.
delete
: Indique que le plugin doit supprimer des données du jeu de données.
modify
: Indique que le plugin doit modifier des données dans le jeu de données.
hermes-server.datamodel.data-type-name.sources.datasource-name.commit_all.query
hermes-server.datamodel.data-type-name.sources.datasource-name.commit_all.vars
Sous-section facultative contenant certaines variables à transmettre au plugin de source de données.
Le nom de la variable comme clé et sa valeur comme valeur. Chaque valeur peut être un template Jinja.
Les variables Jinja disponibles sont :
- REMOTE_ATTRIBUTES : la liste des noms d’attributs distants utilisés dans
attrsmapping
. Peut être utile pour générer des requêtes SQL avec les données requises sans utiliser de wildcards ni saisir manuellement la liste d’attributs.
- CACHED_VALUES : le cache de la requête précédente. Une liste de dictionnaires dans laquelle chaque dictionnaire est une entrée avec le nom d’attribut comme clé et sa valeur comme valeur. Peut être utile pour filtrer la requête à l’aide d’une valeur mise en cache.
- FETCHED_VALUES: les valeurs fraîchement récupérées. Une liste de dictionnaires dans laquelle chaque dictionnaire est une entrée avec le nom d’attribut comme clé et sa valeur comme valeur. Peut être utile pour filtrer la requête à l’aide d’une valeur mise en cache.
hermes-server.datamodel.data-type-name.sources.datasource-name.attrsmapping
Sous-section obligatoire pour configurer le mapping d’attributs. Les attributs HERMES comme clés, les attributs DISTANTS (sur la source de données) comme valeurs.
Une liste de plusieurs attributs distants peut être définie pour plus de commodité, leurs valeurs non-NULL
seront combinées dans une liste.
Les valeurs NULL
et les listes vides ne seront pas chargées.
Un template Jinja peut être défini comme valeur. Si vous le faites, la valeur entière doit être un
template. Vous ne pouvez pas définir "{{ ATTRIBUTE.split('separator') }} SOME_NON_JINJA_ATTR"
.
Ceci est indispensable pour permettre à l’application d’identifier les REMOTE_ATTRIBUTES
Les variables Jinja disponibles sont :
- chaque attribut distant pour le type de données courant et la source de données dont sa valeur extraite, uniquement si sa valeur n’est pas
NULL
et n’est pas une liste vide.
- ITEM_CACHED_VALUES: la valeur de l’entrée courante en cache. Un dictionnaire avec le nom d’attribut comme clé et sa valeur comme valeur.
hermes-server.datamodel.data-type-name.sources.datasource-name.secrets_attrs
- Description : Définit les attributs qui contiendront des données sensibles, comme des mots de passe.
Ceci indique à Hermes de ne pas les mettre en cache. Les noms d’attribut définis ici doivent exister en tant que clés dans attrsmapping. Ils seront envoyés aux clients à moins qu’ils ne soient également définis dans local_attrs. Comme ils ne sont pas mis en cache, ils seront considérés comme ajoutés CHAQUE FOIS que le serveur sera redémarré, et les événements consécutifs à cet ajout seront émis.
- Obligatoire : Non
- Type : string[]
hermes-server.datamodel.data-type-name.sources.datasource-name.cacheonly_attrs
- Description : Définit les attributs qui seront uniquement stockés dans le cache.
Ils ne seront pas envoyés dans les événements, ni utilisés pour calculer le différentiel avec le cache. Les noms d’attribut définis ici doivent exister en tant que clés dans attrsmapping.
- Obligatoire : Non
- Type : string[]
hermes-server.datamodel.data-type-name.sources.datasource-name.local_attrs
- Description : Définit les attributs qui ne seront pas envoyés aux clients, mis en cache ni utilisés pour calculer le différentiel avec le cache.
Ils ne seront pas envoyés dans les événements, ni utilisés pour calculer le différentiel avec le cache. Les noms d’attributs définis ici doivent exister en tant que clés dans attrsmapping.
- Obligatoire : Non
- Type : string[]
hermes-server.datamodel.data-type-name.sources.datasource-name.pkey_merge_constraint
- Description : Contraintes sur les clés primaires lors de la fusion : elles seront appliquées lors de la fusion des sources de données.
Comme la fusion sera appliquée dans l’ordre de déclaration des sources de données dans le fichier de configuration, la première contrainte source sera ignorée (puisqu’elle sera créée et non fusionnée).
Ensuite, les premières données sources seront fusionnées avec celles de la deuxième source conformément à la pkey_merge_constraint
de la deuxième. Ensuite, les données résultantes seront fusionnées avec les données sources de la troisième source conformément à la pkey_merge_constraint
de la troisième, etc.
- Obligatoire : Non
- Type : string
- Valeur par défaut :
noConstraint
- Valeurs valides :
noConstraint
: n’applique aucune contrainte de fusion
mustNotExist
: la clé primaire de la source actuelle ne doit pas exister dans la précédente (dans l’ordre de déclaration des sources de données), sinon les données de la source actuelle seront supprimées
mustAlreadyExist
: la clé primaire de la source actuelle doit déjà exister dans la précédente (dans l’ordre de déclaration des sources de données), sinon les données de la source actuelle seront supprimées
mustExistInBoth
: la clé primaire de la source actuelle doit déjà exister dans la précédente (dans l’ordre de déclaration des sources de données), sinon les données des deux sources seront supprimées
hermes-server.datamodel.data-type-name.sources.datasource-name.merge_constraints
- Description : Contraintes de fusion avancées avec des règles Jinja.
Avertissement
Horriblement lent, évitez au maximum de les utiliser.
Jinja vars available are:
- _SELF: the data type item in current datasource being currently merged.
- For each datasource declared in current data type:
- datasource-name_pkeys: un ensemble (set) contenant chaque clé primaire du type de données courant dans la source de données spécifiée.
- datasource-name: les valeurs fraîchement récupérées depuis la source de données spéifiée. Une liste de dictionnaires dans laquelle chaque dictionnaire est une entrée avec le nom d’attribut comme clé et sa valeur comme valeur.
Remarque
si pkey_merge_constraint est défini, il sera appliqué avant merge_constraints
, et les variables Jinja contiendront les valeurs résultantes.
- Obligatoire : Non
- Type : string[]
hermes-client
Paramètres partagés par tous les clients.
Sous-sections principales :
- Description : Politique d’auto remédiation à appliquer dans la file d’erreurs pour les événements concernant un même objet.
Avertissement
L’activation de cette fonctionnalité peut modifier l’ordre de traitement normal des événements : si vos types de données ne sont liés que par des clés primaires, cela ne devrait pas poser de problème, mais si les liens entre eux sont plus complexes, vous devriez vraiment réfléchir à ce qui pourrait mal se passer avant de l’activer.
e.g. avec la politique maximum
et la corbeille activée, l’auto remédiation supprimera les deux événements lorsqu’un événement added
sera suivi d’un événement removed
. Sans erreur, l’objet aurait été créé puis stocké dans la corbeille, mais dans ce cas, il ne sera jamais créé.
Voir comment fonctionne l’auto remédiation pour plus de détails.
- Obligatoire : Non
- Type : string
- Valeur par défaut :
disabled
- Valeurs valides :
disabled
: pas d’auto remédiation, les événements sont empilés tels quels (par défaut).
conservative
: fusionne uniquement les événements added
et modified
entre eux.
- fusionne un événement
added
avec un événement modified
suivant.
- fusionne deux événements
modified
successifs.
maximum
: fusionne tous les événements qui peuvent être fusionnés.
- fusionne un événement
added
avec un événement modified
suivant.
- fusionne deux événements
modified
successifs.
- supprime les deux événements lorsqu’un événement
added
est suivi d’un événement removed
.
- fusionne un événement
removed
suivi d’un événement added
dans un événement modified
.
- supprime un événement
modified
lorsqu’il est suivi d’un événement removed
.
hermes-client.foreignkeys_policy
- Description : Définit les types d’événements qui seront placés dans la file d’erreurs si l’objet
qui les concerne est le parent (par clé étrangère) d’un objet déjà présent dans la file d’erreurs.
Voir Clés étrangères pour plus de détails.
- Obligatoire : Non
- Type : string
- Valeur par défaut :
on_remove_event
- Valeurs valides :
disabled
: Aucun événement, la politique est désactivée.
on_remove_event
: Uniquement sur les événements removed.
on_every_event
: Tous les types d’événements (added, modified, removed)
hermes-client.errorQueue_retryInterval
- Description : Nombre de minutes entre deux tentatives de traitement des événements en erreur.
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 60 (1 heure)
- Valeurs valides : 1 - 65535
hermes-client.trashbin_purgeInterval
- Description : Nombre de minutes entre deux tentatives de purge de la corbeille..
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 60 (1 heure)
- Valeurs valides : 1 - 65535
- Ignoré lorsque : trashbin_retention vaut
0
/unset
hermes-client.trashbin_retention
- Description : Nombre de jours pendant lesquels les données supprimées doivent être conservées dans la corbeille avant de les supprimer définitivement.
0
/unset
désactive la corbeille : les données seront immédiatement supprimées.
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 0 (pas de corbeille)
- Valeurs valides : >= 0
hermes-client.updateInterval
- Description : Nombre de secondes pendant lesquelles attendre une fois qu’il n’y a plus d’événements disponibles sur le bus de messages.
- Obligatoire : Non
- Type : integer
- Valeur par défaut : 5
- Valeurs valides : >= 0
hermes-client.useFirstInitsyncSequence
- Description : Si
true
, le client utilisera la première (plus ancienne) séquence initsync disponible sur le bus de messages. Si false
, la dernière (plus récente) sera utilisée.
- Obligatoire : Non
- Type : boolean
- Valeur par défaut :
false
hermes-client.datamodel
Sous-section obligatoire utilisée pour configurer le modèle de données client.
Pour chaque type de données requis, une sous-section avec le nom souhaité du type de données doit être créée et configurée. Le nom du type de données DOIT commencer par un caractère alphanumérique.
Bien évidemment, au moins un type de données doit être configuré.
hermes-client.datamodel.data-type-name.hermesType
- Description : Nom du type de données correspondant sur
hermes-server
.
- Obligatoire : Oui
- Type : string
hermes-client.datamodel.data-type-name.toString
- Description : Template Jinja permettant de définir la représentation d’une entrée dans les fichiers journaux.
- Obligatoire : Non
- Type : string
hermes-client.datamodel.data-type-name.attrsmapping
Sous-section pour configurer le mapping d’attributs. Les attributs CLIENT comme clés, les attributs DISTANTS (identifiés comme des attributs HERMES sur le serveur hermes) comme valeurs.
Un template Jinja peut être défini comme valeur. Dans ce cas, toute valeur en dehors du template sera utilisée comme chaîne brute et non comme un nom d’attribut distant.
Les variables Jinja disponibles sont :
- chaque attribut distant pour le type de données actuel, uniquement si sa valeur n’est pas
NULL
et n’est pas une liste vide.
Remarque
Si vous n’utilisez pas leur valeur, il n’est pas nécessaire de déclarer un mapping pour les clés primaires. Pour certains types de données, vous pouvez omettre le mapping d’attributs, ce qui équivaut à définir un modèle de données vide : il ne contiendra donc que sa ou ses clés primaires.