# Scripts CLI de référence

Anakeen Platform est livrée avec de nombreux scripts CLI. Ce chapitre décrit ces derniers.

# cleanContext

# Description

Le script cleanContext permet d'effectuer les opérations de nettoyage journalières du contexte.
Opérations principales:

  • Suppression des messages de log antérieurs à la durée de rétention paramétrée par CORE_LOGDURATION,
  • Suppression des fichiers temporaires antérieurs à la durée de rétention paramétrée par CORE_TMPDIR_MAXAGE,
  • Suppression des Smart Elements Anakeen Platform temporaires, et des noms logiques temporaires (générés par l'exportation des profils par exemple),
  • Nettoyage des noms logiques lorsque des Smart Elements ont été supprimés à la main en base de données.

# Usage

  • full: Permet d'effectuer des opérations de nettoyage additionnelles (telles que celles lancées la nuit, par la crontab du contexte):
    • Suppression des références à des Smart Elements supprimés dans les répertoires (DIR),
    • Suppression des verrous sur les Smart Elements,
    • Suppression de la définition des Smart Fields pour les Smart Structures supprimées à la main en base de données.

# Limite d'usage

N/A

# destroyStructure

# Description

Le script destroyStructure permet de supprimer complètement une Smart Structure et ses Smart Elements.

# Usage

  • name (obligatoire): Identifiant, ou nom logique, de la Smart Structure sur laquelle appliquer le traitement,
  • transaction: Permet d'indiquer que l'erreur d'une sous-opération doit annuler l'ensemble des modifications,
    Dans le cas contraire, l'échec d'une sous-opération ne mettra pas en erreur l'ensemble du traitement, qui poursuivra alors son exécution.

# Limite d'usage

Attention

La suppression d'une Smart Structure entraîne la suppression de tous les Smart Elements de cette Smart Structure et cette opération est irréversible.
Dans le cas de la suppression d'une Smart Structure qui comporte des Smart Structures dérivées, il faudra d'abord supprimer les Smart Structures dérivées avant de pouvoir supprimer cette Smart Structure parente.

# generateDocumentClass

# Description

Le script generateDocumentClass permet de régénérer les classes PHP des Smart Structures Anakeen Platform.

# Usage

  • docid (défaut 0) : Identifiant, ou nom logique, de la Smart Structure pour laquelle on souhaite régénérer la class PHP.
    Si aucune Smart Structure n'est spécifiée, ou si la valeur 0 est spécifiée, le traitement est effectué sur toutes les Smart Structures.

# Limite d'usage

N/A

# importAccounts

# Description

Le script importAcounts permet d'importer des définitions de Smart Element compte Account.

# Usage

  • file
    • le fichier à importer,
    • le fichier doit être au format XML.
  • report-file
    • permet de spécifier un fichier de rapport dans lequel seront inscrits les résultats de l'import.
  • dry-run
    • permet d'effectuer (yes) seulement une analyse, dans ce cas, l'importation n'est pas effectuée.

# Limite d'usage

N/A

# importConfiguration

# Description

Le script importConfiguration permet d'importer des définitions de Smart Structures au format XML.

# Usage

  • file (obligatoire)
    • le fichier à importer,
    • le fichier doit être au format XML.
  • glob
    • permet de spécifier un format glob.
  • analyze (défaut no)
    • permet d'effectuer (yes) seulement une validation du format et de la structure du fichier importé.
  • log
    • permet de spécifier un fichier de log dans lequel seront inscrits les résultats de la l'import.
  • verbose
    • permet de spécifier l'affichage de l'opération en cours.
  • debug
    • permet de spécifier l'affichage explicite de toutes les opérations effectuées.

# Limite d'usage

N/A

# importDocuments

# Description

Le script importDocuments permet d'importer des Smart Elements.

# Usage

  • file (obligatoire)
    • le fichier à importer,
    • le fichier peut être au format XML ou bien une archive (si l'option --archive=yes est utilisée).
  • analyze (défaut no)
    • permet d'effectuer (yes) seulement une validation du format et de la structure du fichier importé.
  • archive (défaut no)
    • permet d'indiquer si le fichier est une archive (yes) ou bien un fichier d'importation texte (no).
  • log
    • permet de spécifier un fichier de log dans lequel seront inscrits les résultats de l'import.
  • policy (défaut update)
    • permet de spécifier le comportement lorsqu'on importe un Smart Element qui existe déjà,
    • la détection des Smart Elements existants est spécifiée par la directive d'import KEYS,
    • les valeurs possibles pour l'option policy sont:
      • add: un nouveau Smart Element est créé systématiquement, même si un Smart Element existant est détecté,
      • keep: si un Smart Element existant est détecté, alors le Smart Element existant est conservé en l'état, et l'importation ne crée pas de nouveau Smart Element,
      • update: si un Smart Element existant est détecté, le Smart Element existant est mis à jour avec les données du Smart Element importé.
  • htmlmode(défaut yes)
    • permet de spécifier si les messages du fichier de log doivent être inscrits au format HTML (yes) ou au format texte (no).
  • reset[]
    • permet de spécifier les éléments qui doivent être supprimés, ou redéfinis, lors de l'importation d'une définition de Smart Structure,
    • les valeurs possibles sont celles de l'instruction RESET,
    • cette option peut être utilisée plusieurs fois afin de spécifier plusieurs valeurs.
  • to
    • permet d'envoyer le log au format HTML à l'adresse mail indiquée par cette option.
  • dir
    • identifiant, ou nom logique, d'un répertoire Anakeen Platform dans lequel seront insérés les Smart Elements importés.
  • strict(défaut yes)
    • permet de spécifier (yes) si une erreur d'importation d'un Smart Element invalide l'importation de tous les Smart Elements. Si le mode strict est désactivé (no), alors une erreur sur un Smart Element n'empêchera pas les autres Smart Elements d'être importés.

# Limite d'usage

N/A

# manageContextCrontab

# Description

Le script manageContextCrontab permet d'enregistrer, ou supprimer, des crontabs du contexte dans l'ordonnanceur cron du système.

# Usage

  • cmd (obligatoire)
    • l'opération à effectuer, pouvant être :
      • list: afficher la liste des fichiers de crontab chargés et actifs pour le contexte,
      • register: charger, ou mettre à jour, un fichier de définition de crontab pour le contexte,
      • unregister: décharger un fichier de définition de crontab pour le contexte,
      • unregister-all: décharger toutes les définitions de crontab pour le contexte.
  • file
    • permet de spécifier le fichier de crontab à charger/décharger pour le contexte,
    • le contenu du fichier doit être conforme à la syntaxe des fichiers cron du système,
    • cette option est requise pour les opérations register et unregister.
  • user
    • permet de spécifier le nom de l'utilisateur système sous lequel sont chargés/déchargés les fichiers crontab,
    • par défaut, l'uid de l'utilisateur courant (utilisateur du process Apache par exemple) est utilisé.

# Limite d'usage

N/A

# refreshDocuments

# Description

Le script refreshDocuments permet d'appliquer une méthode sur les Smart Elements d'une Smart Structure donnée.

# Usage

  • famid(obligatoire)
    • identifiant, ou nom logique, de la Smart Structure des Smart Elements sur lesquels s'applique le traitement.
  • method (défaut refresh)
    • la méthode à appliquer sur les Smart Elements de la smart Structure,
    • par défaut, c'est la méthode refresh() qui est appliquée.
  • arg
    • permet de spécifier le premier argument de la méthode.
  • revision (défaut no)
    • permet de spécifier si la méthode doit être appliquée sur toutes les révisions des Smart Elements (yes) ou seulement sur la dernière révision des Smart Elements (no).
  • docid
    • permet de restreindre le traitement à un seul Smart Element dont l'identifiant ou le nom logique est spécifié par cette option.
  • start
    • la liste des Smart Elements à traiter est ordonnée par ordre décroissant des identifiants de Smart Element(id),
    • cette option permet de commencer le traitement à partir d'un indice de Smart Element donné,
    • Voir SearchElements::setStart().
  • slice
    • permet de limiter le traitement à un nombre donné de Smart Elements,
    • dans ce cas, seul les slice premiers Smart Elements (à partir du Smart Element désigné par start) seront traités,
    • Voir SearchElements::setSlice().
  • fldid
    • permet de restreindre le traitement aux Smart Elements présents dans un répertoire ou retournés par une recherche,
    • fldid: peut donc être l'identifiant ou le nom logique d'un Smart Element répertoire (DIR ou dérivé) ou d'un Smart Element recherche (SEARCH ou dérivé).
  • filter
    • permet de spécifier un filtre SQL additionnel pour la sélection des Smart Elements sur lesquels est appliqué le traitement.
  • save (défaut light)
    • permet de spécifier si une méthode de post-traitement doit être appliquée pour la sauvegarde des modifications effectuées par la méthode method,
    • les valeurs possibles sont:
      • complete: appelle la méthode store() après l'exécution de la méthode method
      • light: appelle la méthode modify(true) après l'exécution de la méthode method,
      • none: n'appelle aucune autre méthode additionnelle après l'exécution de la méthode method.
  • status-file
    • permet de spécifier la création d'un fichier de rapport contenant:
      • le nombre de Smart Elements sélectionnés pour traitement (ligne ALL:),
      • le nombre de Smart Elements traités (ligne PROCESSED:),
      • le nombre de Smart Elements traités avec erreur (ligne FAILURE:),
      • le nombre de Smart Elements traités avec succès (ligne SUCCESS:),
    • si - est spécifié, le fichier de rapport est alors écrit sur le flux de sortie standard STDOUT
    • si le fichier spécifié existe déjà, le fichier est supprimé avant d'être re-créé,
    • par défaut, aucun fichier de rapport n'est créé.
  • stop-on-error
    • permet de stopper le traitement lorsque la méthode store() ou modify() d'un Smart Element retourne une erreur, ou lorsqu'une exception est levée,
    • par défaut, le comportement est de poursuivre le traitement lorsqu'un Smart Element retourne une erreur ou lance une exception.

# Limite d'usage

Seul le premier argument de la méthode method peut être spécifié avec l'option arg. Les autres arguments de la méthode ne seront donc pas positionnés (ce qui peut restreindre les méthodes utilisables par ce traitement).

# setParameter

# Description

Le script setParameter permet de définir la valeur d'un paramètre de l'application.

# Usage

  • param
    • permet de spécifier le nom du paramètre à définir.
  • value
    • permet de spécifier la valeur du paramètre à définir.
  • default
    • permet de spécifier la valeur par défaut d'un paramètre utilisateur.

# Limite d'usage

Avertissements

  • Dans le cas où value est utilisé mais vide, le script effacera la valeur du paramètre.
  • L'option value n'accepte pas de valeurs multivaluées,
  • Si le paramètre à modifier est un paramètre utilisateur, alors l'une des options userid ou default doit être définie.

Attention L'option `default` n'est utilisable que pour les paramètres de type utilisateur; dans le cas où

le paramètre n'est pas un paramètre utilisateur, ce script retournera une exception. :::

# vault_init

# Description

Le script vault_init permet d'initialiser un nouveau coffre.

# Usage

  • path (défaut /var/www/html/platform/vaultfs)
    • permet de spécifier le chemin d'accès au coffre.
  • name (défaut DEFAULT)
    • permet de spécifier un nom de coffre.
  • size (défaut 524288000)
    • permet de spécifier la taille du coffre (en octets).

# Limite d'usage

Avertissements

Le dossier utilisé par le coffre doit être créé préalablement à l'utilisation de ce script.

# SupervisorTokenManager

# Description

Le script SupervisorTokenManager permet de créer, consulter ou supprimer des jetons d'accès de l'outil de supervision.

Sur l'interface de supervision, l'identifiant est admin

# Usage

  • manage [create|consult|delete]
    • Permet de créer, consulter ou supprimer un jeton d'accès

Dans le cas du delete :

  • supervisorId [supervisor-XXXXXXXXXXXXX]
    • Permet de spécifier l'id du jeton d'accès.

# Exemple

La création :

www-data$ ./ank.php --script=SupervisorTokenManager --manage=create
'e230b0ca1b493937d1f207b8e7327eb7'

La consultation :

www-data$ ./ank.php --script=SupervisorTokenManager --manage=consult
'[
    {
        "supervisorId": "supervisor-63725f1084298",
        "creationTimestamp": "2022-11-14T16:30:24+01:00",
        "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb7"
    }
]'

La suppression :

www-data$ ./ank.php --script=SupervisorTokenManager --manage=delete --supervisorId=supervisor-63725f1084298
true